Ввод данных

Ввод данных 
Как я уже говорил, что программу можно разделить на три основных блока.
1. Ввод данных.
2. Обработка данных.
         3. Вывод результата.
Начнем по порядку. С ввода данных.
Помимо прочего каждой программе дается имя. Требования следующие: используются буквы латинского алфавита и цифры. Начинаться имя должно с букв.
Пример:
Program summa;
Program — оператор, говорящий о том, что далее будет имя программы.
Summa — название программы.
Каждая команда в паскале должна заканчиваться точкой с запятой «;».
Программы на языке Паскаль начинаются с описания величин, которые будут использованы. Название величин описанных в начале программы должно совпадать с именем в самой программе. Даже если имя в описании будет начинаться с маленькой буквы, а в самой программе с большой — то компилятор выдаст ошибку.
Компилятор — это сервис, который проверяет программу на наличие ошибок. Если компилятор покажет, хотя бы одну. Программа не пойдет!!!
Существует несколько типов величин:


Идентификатор
Длина (байт)
Диапазон значений
Целые типы
integer
2
-32768..32767
byte
1
0..255
word
2
0..65535
shortint
1
-128..127
longint
4
-2147483648..2147483647
Вещественные типы
real
6
2,9x10-39 - 1,7x1038
single
4
1,5x10-45 - 3,4x1038
double
8
5x10-324 - 1,7x10308
extended
10
3,4x10-4932 - 1,1x104932
Логический тип
boolean
1
true, false
Символьный тип

Char
1
все символы кода ASCII




Описание величин начинается оператором var.

Пример:
Составить программу нахождения суммы двух натуральных чисел a и b.
Program summa;
var a,b,c: integer;
Если бы числа были вещественными, то было бы:
Program summa;
var a,b,c: real;
И так далее.
Если вы спросите откуда взялась величина с, то объясняю - при сложении величин a и b, получается результат. Это и будет величина c.

При составлении программы возникает вопрос, как будем вводить данные в программу. Существует несколько способов:
1 способ.
Данные величин прописываются в программе.
Пример программы:
program summa;(название программы)

 var
 a, b, c: integer;                       (описываем тип величин)
begin(тело программы всегда начинается с оператора begin)
a:=3; b:=4;{Присвоение значений всегда производится командой (:=)}
c:=a+b;
end.
(суммируем a и b, получаем значение c)
(Программа всегда заканчивается командой end и обязательно ставится точка.
                                                                           2 способ.
Ввод и вывод данных с терминального устройства.
Терминальное устройство - это устройство, с которым работает пользователь, обычно это клавиатура и экран (дисплей).
Ввод данных
Для ввода исходных данных чаще всего используется процедуры: 
Read(A1,A2,...AK);
ReadLn(A1,A2,...AK);
Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.Второй оператор, не только производит ввод данных, но и производит переход к началу следующей строке.
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Не допускается разделение вводимых чисел запятыми!
Вывод данных
Для вывода результатов работы программы на экран используются процедуры:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.
Пример программы:




program summa;(название программы)

 var
 a, b, c: integer;                       (описываем тип величин)
begin(тело программы всегда начинается с оператора begin)
writeln ('BBedi a');{Данная строка сообщает пользователю, что необходимо ввести величину а, текст который находится между кавычками копируется на экран}
read (a);


writeln('BBedi b');




read (b);
c:=a+b;
writeln('cymma raBna=',c);




end.
(ввод значения а, так как в предыдущей команде окончание ln, то данные вводятся на новой строке)
{Данная строка сообщает пользователю, что необходимо ввести величину b, текст который находится между кавычками копируется на экран}
(ввод значения b)
находим сумму
(Вывод результата на экран)

(Программа всегда заканчивается командой end и обязательно ставится точка.


3 способ.
Файловый ввод и вывод данных.
Этот метод позволяет автоматизировать ввод-вывод данных, исключив человека из этого процесса.
Файл - поименованная целостная совокупность данных на внешнем носителе информации.

По способу организации в Паскале различают файлы трех типов - 
текстовые, типизированные и нетипизированные.

Текстовые файлы

Текстовые файлы состоят из символьных строк (символы из набора ASCII). Строки могут иметь разную длину, каждая строка заканчивается специальными символами возврата каретки CR (#13) и перевода строки LF (#10). Эти символы во время "заставляют" следующий за ними символ печататься с новой строки. Оканчивается текстовый файл признаком конца файла (EOF - сокращенно End Of File, #26).

Существуют два способа доступа к файлам - 
последовательный и прямой. Текстовые файлы допускают только последовательный доступ. Это означает, что для нахождения определенного элемента такого файла нужно просмотреть все, что ему предшествовало. При последовательном доступе программа не может в любой момент времени считать из файла произвольную порцию информации или произвести запись в произвольное место файла.

Можно считать, что при обращении к файлу используется специальный указатель на элемент файла, а файл представляет собой последовательность элементов, каждому из которых присвоен свой номер. Указатель при считывании очередного элемента файла перемещается к следующему элементу.

Программа может читать данные из имеющегося файла, создавать новые файлы, изменять уже созданные файлы, но в любом случае последовательность обращения к файлу следующая:
  • установить связь программы с файлом;
  • "открыть" файл для чтения или записи;
  • читать из файла или записать в файл;
  • закрыть файл.

Операторы работы с файловым типом данных

В программе на Паскале текстовый файл представлен файловой переменной типа TEXT.
Var <имя файловой переменной>: text;
Связь файловой переменной с именем файла на диске осуществляется с помощью оператора
Assign (имя файловой переменной, имя файла на диске);
Имя файла на диске больше нигде в программе не появляется. <Имя файла на диске> должно содержать полный путь для поиска данного файла. Если полный путь к файлу не указан, то файл будет искаться в каталоге, где находится исходный текст программы.
Открытие файла для чтения выполняется оператором
Reset (имя файловой переменной);
Если на диске нет файла с данным именем, то выполнение программы прервется.Открытие файла для записи осуществляется оператором
Rewrite (имя файловой переменной);
Если на диске нет файла с данным именем, то файл будет создан.Открытие файла для дозаписи осуществляется оператором
Append (имя файловой переменной);
Если на диске нет файла с данным именем, то выполнение программы прервется.
Окончание работы с файлом фиксируется с помощью оператора
Close (имя файловой переменной);

Пример программы










program summa;

 var

  a, b, c: integer;

  f, g: text; {Описываем файловые переменные f и g.}
begin

 assign (f, 'input.txt'); {Устанавливаем связь программы с файлом на диске.}
 reset (f);{Открываем файл для чтения.}
 readln (f, a, b);{Читаем две переменные целого типа из файла.}
 close (f);{Закрываем файл.}
 c:=a+b;

 assign (g, 'output.txt');{Устанавливаем связь программы с файлом на диске.}
 rewrite (g);{Открываем файл для записи.}
 writeln (g, c);{Записываем значение переменной c в файл.}
 close (g);{Закрываем файл.}
end.



Обратите внимание, что первым параметром в операторах readln и writeln ставится файловая переменная. Если ее не будет, то ввод будет осуществляться с клавиатуры, а вывод - на экран.
P.S. Третий способ сейчас наверное самый "модный". Поэтому в дальнейшем при разборе задач я буду использовать именно этот способ.


Комментариев нет:

Отправить комментарий