Оператор ввода-вывода в Pascal. Описание некоторых стандартных типов данных и встроенные операции и функции, применимые к ним

Операторы размещаются в разделе операторов между ключевыми словами и отделяются друг от друга точкой с запятой. Операторы, не содержащие никаких других операторов, называются простыми:

Оператор присваивания – это самый основной оператор. В нем выражение с правой стороны и индет. результата разделены знаком присваивания:=

Например: y:=x + 5 div 2

Оператор вызова процедуры служит для активизации предварительно определенной пользователем, или стандартной, процедуры. Например: clrscr; и т.д.

Пустой оператор не содержит никаких символов и не выполняет никаких действий. Обычно пустой оператор используется для организации перехода к концу локального или глобального блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставятся метка и двоеточие.

Оператор безусловного перехода gotoозначает “перейти к “ и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор. Пример:gotometka1;

ВВОД-ВЫВОД ДАННЫХ: процедура чтения Readввод числовых данных, символов, строк и т.д. для последующей их обработки программой. Формат:read(x1,x2,x3…); илиread(FV,x1,x2,x3…); , где х1,х2,х3.. – переменные,FV– переменная, связанная с фалом, откуда будет выполнятся чтение. Процедура чтенияReadlnаналогична процедуреRead, только осуществляется переход на следующую строку. Процедура записиWriteпроизводит вывод числовых данных, символов, строк и булевских значений. Формат: Write (x1,x2,x3…); или Write (FV,x1,x2,x3…);

где x– переменные,FV– имя файла, куда производится вывод.Writeln– перевод на другую строку.

26.Операторы ввода данных с клавиатуры.

Read("список переменных");

Readln("список переменных");

Write("введите значение а="); Readln(a);

введите значение а= .

Readln(a); Readln(b); Readln(c); или Readln(a, b, c);

Readln(с1, с2, с3, c4); {ожидает ввода значений символьных переменных с1, с2, с3, c4, например: "У", "Р", "А", "!" и нажатия Enter }

Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА!

27.Оператор выбора.

Case "параметр" Of

"список помеченных операторов"

Else "оператор" End;

Пример операторов для определения порядка целого числа N от 0 до 999:

0..9: writeln("однозначное");

10..99: writeln("двузначное");

100..999: writeln("трехзначное")

else writeln("Число "N" не входит в указанный диапазон") end;

28.Условный оператор.

IF "условие" Then "оператор1" Else "оператор2";

Например, вычисление квадратного корня из числа "a" проводится при условии a>=0,

IF a >= 0 Then b:= Sqrt(a) Else begin WriteLn ("a<0"); Readln; Halt end;

Оператор Halt прекращает выполнение программы.

29.Оператор цикла.

С параметром

For i:= N1 To N2 Do "оператор";

For i:= N1 DownTo N2 Do "оператор";

С условием

While "условие" DO "оператор";

Repeat "операторы" Until "условие";

"условие" - выражение логического типа (Boolean).

30 .Оператор перехода к метке.

Goto "метка";

M1: Write("Введите x>=0"); Readln(x); If x<0 Then Goto M1;

Метки описываются в разделе описания, например:Label M1;

31.Линейные массивы.

Описание массивов:

VarA:array[ 1. .30 ] of byte;

S: array[ 1. . 30 ] of string;

SO:array[ 1. . 30 ]ofstring;

Присвоение значений элементам массива:

A:= 5; A:= 4; и т. д.

S:= "Иванов"; S:= "Петров"; и т. д.

Присвоение значения элементам массива "y" по зависимости:

y=sin(x), где x= Pi * i/180, 0<= i <=180 .

For i:= 0 to 180 Do y[i]:= sin(Pi * i/180);

Присвоение случайных значений в диапазоне от -30 до +40 ста элементам массива "R":

Randomize; for i:=1 to 100 Do R[i]:= - 30+Random(71);

10. Операторы ввода и вывода

Рассмотрим организациюввода и вывода данных с терминального уст-

ройства. Терминальное устройство - это устройство, с которым работает

пользователь, обычно это экран (дисплей) и клавиатура.

Для ввода и вывода данных используются стандартные процедуры ввода

и вывода Read и Write, оперирующие стандартными последовательными файлами

INPUT и OUTPUT.

Эти файлы разбиваются на строки переменной длины,отделяемые друг

от друга признаком конца строки.Конец строки задается нажатием кла-

Для ввода исходных данных используются операторы процедур ввода:

Read(A1,A2,...AK);

ReadLn(A1,A2,...AK);

Первый из них реализует чтение К значений исходных данных иприс-

ваивание этих значений переменным А1,А2,...,АК. Второй оператор

реализует чтение К значений исходных данных, пропуск остальных значе-

ний до начала следующей строки, присваивание считанных значений пере-

менным А1,А2, ..., АК. Третий оператор реализует пропуск строки ис-

ходных данных.

При вводе исходных данныхпроисходитпреобразованиеизвнешней

формы представления во внутреннюю, определяемую типом переменных. Пе-

ременные, образующиесписок ввода, могут принадлежать либо к целому,

либо кдействительному,либо к символьному типам. Чтение исходных

данных логического типа в языке ПАСКАЛЬ недопустимо.

Операторы вводапри чтении значений переменных целого и

действительного типа пропускает пробелы,предшествующие числу.В то

же время эти операторы не пропускают пробелов,предшествующих значе-

ниям символьных переменных,так как пробелыявляютсяравноправными

символами строк. Пример записи операторов ввода:

var rV, rS: Real;

iW, iJ: Integer;

................

Read(rV, rS, iW, iJ);

Значения исходных данных могут отделяться друг от другапробелами

и нажатием клавиш табуляции и Enter.

Для вывода результатов работы программы на экран используются

операторы:

Write(A1,A2,...AK);

WriteLn(A1,A2,...AK);

Первый из этих операторов реализует вывод значений переменныхА1,

А2,...,АК встроку экрана.Второй оператор реализует вывод

значений переменных А1,А2,...,АК и переход кначалуследующей

строки. Третийоператор реализует пропуск строки и переход к началу

следующей строки.

Переменные, составляющие список вывода, могут относиться к целому,

действительному, символьному или булевскому типам. В качестве элемен-

та списка вывода кроме имен переменных могут использоваться выражения

и строки.

Вывод каждогозначения в строку экрана происходит в соот-

ветствии с шириной поля вывода,определяемой конкретнойреализацией

Форма представления значений в поле вывода соответствует типупе-

ременных и выражений:величины целого типа выводятся как целые деся-

тичные числа,действительного типа - какдействительныедесятичные

числа с десятичным порядком,символьного типа и строки - в виде сим-

волов, логического типа - в виде логических констант TRUE и FALSE.

Оператор выводапозволяетзадатьширину поля вывода для каждого

элемента списка вывода.В этом случае

элемент списка вывода имеет вид А:К, где

А - выражение или строка,К - выражение либо константа целоготипа.

Если выводимое значение занимает в поле вывода меньше позиций, чем К,

то перед этим значением располагаются пробелы.Если выводимое значе-

ние не помещается в ширину поля К,то для этого значения будет отве-

дено необходимое количество позиций. Для величин действительного типа

элемент списка вывода может иметь вид А:К:М, где А - переменная или выраже-

ние действительного типа,К - ширина поля вывода,М-числоцифр

дробной частивыводимого значения.К и М - выражения или константы

целого типа.В этом случае действительные значения выводятся в форме

десятичного числа с фиксированной точкой.

Пример записи операторов вывода:

. . . . . . . . . . . .

var rA, rB: Real;iP,iQ:Integer;

bR, bS: Boolean;chT, chV, chU, chW: Char;

. . . . . . . . . . . .

WriteLn(rA, rB:10:2);

WriteLn(iP, iQ:8);

WriteLn(bR, bS:8);

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

Эти команды позволяют вводить данные в одиночные переменные или в несколько переменных сразу во время выполнения программы с клавиатуры. Элементами списка ввода могут быть имена переменных, которые должны быть заполнены значениями, введенными с клавиатуры.

Выполнение операторов ввода происходит так: ход программы приостанавливается, на экран выводится курсор, компьютер ожидает от пользователя набора данных для переменных, имена которых указаны в списке ввода. Пользователь с клавиатуры вводит необходимые знамения в том порядке, в котором они требуются списком ввода, нажимает Enter . После этого набранные данные попадают в соответствующие им переменные и выполнение программы продолжается. Данные при вводе разделяются пробелами.

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

Разница между работой оператора Read и Readln в Паскале состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln — с новой строки.

Эти операторы позволяют выводить на экран монитора данные из списка вывода. Элементами списка вывода могут являться имена переменных, выражения, константы. Прежде чем вывести на экран значения выражений, компьютер сначала их вычислит. Элементы списка, также как и в операторах ввода, разделяются запятыми.

Различие между двумя операторами вывода в Паскале таково: после выполнения оператора Writeln (от Write line) происходит переход па новую строчку, а после выполнения инструкции Write переход на новую строчку не происходит и печать по последующим командам вывода Write или Writeln будет происходить на той же строчке. При вызове оператора Writeln без параметров просто происходит переход па новую строчку.

В Бейсике каждый новый оператор PRINT выводит значения в новую строку.

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

Вывод каждого значения в строку экрана происходит в соответствии с шириной поля вывода, определяемой конкретной реализацией языка.

Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа — в виде логических констант TRUE и FALSE.

Рассмотри процедуру чтения информации из файла на Паскале.

Для начала необходимо объявить файловую переменную. Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т. д.). Их можно использовать лишь для выполнения операций с файлами (чтение, запись и т. д.).

Перед тем как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом при помощи процедуры Assign .

Assign(<Имя файловой переменной>,<Имя файла>);

Имя файла задастся либо строковой константой, либо через переменную тина String. Имя файла должно соответствовать правилам работающей в данный момент операционной системы. Если строка имени пустая, то связь файловой переменной осуществляется со стандартным устройством ввода-вывода (как правило - с консолью).

После этого файл должен быть открыт одной из процедур:

Reset(<Имя файловой переменной>);

Открывается существующий файл для чтения, указатель текущей компоненты файла настраивается на начало файла. Если физического файла, соответствующего файловой переменной, не существует, то возникает ситуация ошибки ввода-вывода.

Rewrite(<Имя файловой переменной>);

Открывается новый пустой файл для записи, ему присваивается имя, заданное процедурой Assign . Если файл с таким именем уже существует, то он уничтожается. После работы с файлом он, как правило, должен быть закрыт процедурой Close .

Close(<Имя файловой переменной>);

Это требование обязательно должно соблюдаться для файла, в который производилась запись.

Цель лабор а торной работы: научиться правильно описывать переменные, используя следующие стандартные типы данных:целочисленные. вещественные и логический; изучить операторы ввода-вывода данных, выработать практические навыки работы с системой PascalABC, научиться создавать, вводить в компьютер, выполнять и исправлять простейшие программы на языке Pascal в режиме диалога, познакомиться с диагностическими сообщениями компилятора об ошибках при выполнении программ, реализующих линейные алгоритмы.

Оператором называют специальную совокупность служебных слов, идентификаторов и специальных знаков, выполняющих определенные действия. Операторы отделяются друг от друга точкой с запятой «;».Примеры орераторов.

Оператор присваивания: (:=). Оператор присваивания служит для присваивания значений переменным, например: x:=1; a:=5. 02; b:= 32*a+Sin(x); S:= "Иван Иванович".

Составной оператор: Begin <операторы> End;

Составной оператор служит для записи в свое тело других операторов, последовательность которых рассматривается в данном случае как один оператор. Этим оператором начинается и заканчивается раздел выполнения основной программы, подпрограммы, функции. После последнего оператора END основной программы ставится точка.

    1. Операторы ввода/вывода данных

Для выполнения операций ввода-вывода служат четыре оператора:

Read,ReadLn,Write,WriteLn. Оператор чтения (Read) обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой.

Формат: Read(X1, Х2, .. , Хn), где X1, Х2, .. , Хn–переменные допустимых типов данных.

Значения X1, Х2, .. , Хnнабираются минимум через один пробел на клавиатуре пользователем и высвечиваются на экране. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка. Если в программе имеется несколько операторовRead, данные для них вводятся потоком, т. е. после считывания значений переменных для одного оператораReadданные для следующего оператораRead–набираются на той же строке, что и для предыдущего до окончания строки, затем происходит переход на следующую строку. Оператор чтенияReadLnаналогичен операторуRead, единственное отличие заключается в том, что после считывания последнего в списке значения для одного оператора ReadLn данные для следующего оператора ReadLn будут считываться с начала новой строки.

Оператор записи (Write) производит вывод данных.

Формат: Write(X1, Х2, .. , Хn), где X1, Х2, .. , Хn- выражения типаinteger,byte,real,char,Booleanи т.д.

Пример: Write(125); (выражение представлено значением)Write(А+В–С); {выводится результат выражения).

Оператор Writeдает возможность выводить значения переменных следующими способами.

    Вывод десятичного представления величины Iначиная с позиции расположения курсора (I):

    Вывод десятичного представления величины I в крайние правые позиции поля шириной р (I:р):

Где ַ– пробел.

3. Вывод десятичного представления величины Iв крайние правые позиции поля шириной р и дробной части числа ширинойq(I:р:q):

Оператор записи WriteLnаналогичен операторуWrite, но после вывода последнего в списке значения для текущего оператора WriteLn происходит перевод курсора к началу следующей строки. Оператор WriteLn, записанный без параметров, вызывает перевод строки.

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

a:=5.12345678912345678912345; Writeln("а=", a); выведет на экран надпись.

Как организован ввод-вывод данных с терминального устройства? Для начала (кто не знает), определим терминальное устройство. Терминальное устройство - это клавиатура, дисплей, т.е. то, с чем пользователь обычно работает. Какие существуют операторы ввода вывода Паскаль ?

Ввод данных Паскаль:

Как ввести данные в Паскале? Очень легко и просто! Ввод исходных данных в Паскале осуществляется процедурой readln:

readln(b1,b2,…,bk)

В этом примере процедура readln осуществляет чтение k значений исходных данных и присваивает эти значения переменным b1, b2,…, bk с переходом на новую строку (похожая процедура read отличается от readln отсутствием перехода на следующую строку). Когда мы вводим данные в Паскале, происходит своеобразное преобразование внешней формы во внутреннюю, которую определяет тип переменных.

Переменные, входящие в состав списка ввода, могут относиться к разным типам: целому, действительному, символьному. Однако чтение логических данных не допускается в Паскале. Исходные данные (т.е. их значения) отделяются друг от друга нажатием клавиши Enter и Tab, пробелами (при вводе данных недопустимо разделять числа запятыми).

Вывод данных Паскаль:

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

write(b1,b2,…bk) — осуществляет вывод значений переменных b1, b2,…, bk в строку экрана.

writeln(b1,b2,…, bk) - производит как вывод данных на экран, так и переход к началу следующей строки.

Процедура writeln может использоваться без параметров, тогда просто производится пропуск исходной строки и переход к началу следующей. В списке вывода переменные могут иметь нескольких типов: целый, действительный, символьный или булевский. К элементам списка вывода относятся еще выражения и строки. Форма представления значений в поле вывода соответствует типу переменных и выражений:

  • целочисленные величины выводятся как целые десятичные числа,
  • величины действительного типа представляются как действительные десятичные числа с десятичным порядком,
  • величины символьного типа и строки выводятся в виде символов,
  • величины логического типа - в виде true и false (логические константы).

Оператор вывода создает возможность задать ширину поля вывода для каждого элемента списка вывода, которые будут иметь вид: А:К, где А - строка или выражение, К - выражение либо целочисленная константа. Возникают две ситуации при этом:

  1. В случае, когда выводимое значение занимает в поле вывода меньше позиций, чем К, перед ним устанавливаются пробелы.
  2. Когда же значение не помещается в рамках поля К, то этому значению отводится нужное количество позиций.

Элемент списка вывода для величин действительного типа может иметь вид: А:К:М, где А - выражение действительного типа или переменная, К - ширина поля вывода (выражение или константа), М - число цифр дробной части выводимого значения(выражение или константа). В данной ситуации действительные значения будут выведены как десятичное число с фиксированной точкой. Представим пример записи операторов вывода: