Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции ИВАНОВ Книга Паскаль.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
1.93 Mб
Скачать

Раздел var ?

раздел const ?

раздел type ?

раздел begin … end ?

раздел program ?

  1. Какие из комментариев неправильны :

{Программа для вычисления}

(* Это тоже комментарий *)

{{ Комментарий в комментарии }}

(* { Другой вариант }*)

{ (* Следующий вариант *) }

(* (* Возможный вариант *) *)

  1. Для чего используется слово uses ?

  1. такого слова нет в языке Паскаль

  2. это пользовательский идентификатор

  3. с его помощью подключают стандартные модули

  4. это стандартная константа

  5. это описание процедуры

  1. В разделе процедур и функций описываются :

    1. только стандартные процедуры

    2. только пользовательские процедуры

    3. и стандартные, и пользовательские

    4. такого раздела в программе не может быть

  1. Наберите и откомпилируйте простейшую программу :

Program MyProg;

begin

Writeln (5*6);

Writeln(‘ Привет ‘);

end.

Каков будет результат ее выполнения ?

  1. Где ошибки (их три) в следующей программе ?

Program Ошибки;

begin

Summa := 6+8;

end;

  1. Где ошибки (их три) в следующей программе ?

Program Ошибки1;

{{ Программа с ошибками }}

begin

var X: integer;

X:= 6+8;

Write (X);

end.

  1. Где ошибка в следующей программе ?

Program Oshibka;

uses ;

{(* Программа с ошибкой *)}

begin

end.

  1. Где ошибка в следующей программе ?

Program Summa;

var X, Y, Сумма : integer;

begin

Writeln(‘ Введите Х ‘);

Readln (X);

Writeln(‘ Введите Y ‘);

Readln (Y);

Сумма:=Х+Y;

Writeln(Сумма);

end.

Глава 3

Операторы языка ПАСКАЛЬ

3.1 ВВОД-ВЫВОД ДАННЫХ

Часто первыми действиями, выполняемыми программой, являются действия по вводу и выводу данных.

В вод данных – передача информации от внешнего носителя в оперативную память для обработки.

Основные устройства ввода - клавиатура и дисковый файл. Программа получает входные данные из файла Input и помещает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, файлу Output – экран терминала.

Для ввода и вывода данных в языке Паскаль предусмотрены следующие процедуры ввода-вывода: Read, Readln, Write, Writeln. Часто эти процедуры называют операторами.

3.1.1 Процедура чтения Read

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

Формат:

Read (а1, а2, а3, …,аn) ;

Readln;

Readln (а1, а2, а3, …,аn) ;

где а1, а2, а3, …,аn – переменные допустимых типов данных integer, real, char, string.

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

Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если элемент ввода типа integer, а набирается с клавиатуры значение типа char – возникает ошибка ввода-вывода.

Пример:

Var x : integer;

y : real;

z : boolean;

.....

Read (x, y, z) ;

С клавиатуры можно ввести

32 -1.8 true

Типовые ошибки при вводе:

3.2 -1.8 true {В качестве х введено действительное значение}

х = 32 {В качестве х введено символьное значение}

32 -1,8 true {В качестве у введено символьное значение}

В случае несоответствия типа введенных данных типу переменной, значение которой вводится с клавиатуры, программа завершает работу и на экране выводится сообщение об ошибке ввода-вывода. Если программа запущена из среды Turbo Pascal – Error 106 Invalid numeric format (Неверный числовой формат).

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

Например,

Read (x, y);

Read (z);

С клавиатуры можно ввести данные через пробел на одной строке

32 -1.8 true

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

Например,

Readln(x, y);

Read(z);

С клавиатуры ввели данные через пробел на одной строке

32 -1.8 true {Значение переменной z считываться не будет}

Инструкция Readln при вводе с клавиатуры предпочтительней Read, т.к. полностью освобождает буфер клавиатуры – рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Инструкция Read оставляет в буфере клавиатуры код клавиши Enter, которой завершает процесс.

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

3.1.2 Процедура записи Write

В ывод данных – передача информации после обработки из оперативной памяти на внешнее устройство (экран, принтер, файл на диске).

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

Формат:

Write (а1, а2, а3, …,аn) ;

Writeln;

Writeln (а1, а2, а3, …,аn) ;

где а1, а2, а3, …,аn – выражение типа integer, byte, real, char, boolean.

Инструкции Write и Writeln предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров – произвольное. Данные выводятся на экран.

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

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

ФОРМАТ ВЫВОДА

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

Write(y1:n:m, y2:n:m, …);

Writeln(y1:n:m, y2:n:m, …);

где y1, y2,… - выражение, переменная или константа;

n – определяет общую ширину поля вывода;

m – определяет место под дробную часть.

Если заданное n мало, при выводе ширина поля будет увеличена, если мало m – то производится округление.

Кроме того, в операторах вывода можно задавать количество пробелов. Для этого необходимо записать оператор вывода в виде:

Write (‘ ‘ : q);

где q — константа целого типа, указывающая число пробелов.

Примеры:

  • x - целое число

х – выводится десятичное представление величины х, начиная с позиции расположения курсора

Значение x

Выражение

Результат

123

Write(x)

123

896

Write(x,x)

896896

х : n – выводится десятичное представление величины х в крайние правые позиции поля шириной n

Значение x

Выражение

Результат

123

Write(x:5)

_ _ 123

4

Write(x*х:7)

_ _ _ _ _16

  • R вещественное число

R – в поле шириной 16 символов выводится десятичное представление величины R в формате с плавающей точкой:

± #.# # # # # # # # # # E ± # #

Значение R

Выражение

Результат

123.432

Write(R)

_ 1.2343200000Е+02

-0.25

Write(R)

- 2.5000000000Е-01

200

Write(R/2)

_ 1.0000000000Е+02

R : n – в крайние правые позиции поля шириной n символов выводится десятичное представление величины R в формате с плавающей точкой (минимальная длина поля вывода 8 символов для отрицательного значения и 7 символов для положительного значения R, после десятичной точки выводится по крайней мере одна цифра):

Значение R

Выражение

Результат

123.432

Write(R:12)

1.234320Е+02

-0.25

Write(R:9)

-2.50Е-01

R : n: m – в крайние правые позиции поля шириной n символов выводится десятичное представление величины R в формате с фиксированной точкой, после десятичной точки выводится m цифр, представляющих дробную часть. Если m=0, ни десятичная точка, ни дробная часть не выводятся.

Значение R

Выражение

Результат

123.432

Write(R:8:4)

123.4320

-0.25

Write(R:7:1)

_ _ _- 0.3

200

Write(R:3:0)

200

  • Ch – выражение символьного типа

Ch – начиная с ткущей позиции курсора выводится значение Ch

Значение Ch

Выражение

Результат

‘123’

Write(Ch)

123

‘No’

Write(Ch)

No

‘?!’

Write(Ch, Ch)

?!?!

Ch : n – в крайние правые позиции поля шириной n символов выводится значение Ch

Значение Ch

Выражение

Результат

‘123’

Write(Ch:5)

_ _ 123

‘?!’

Write(Ch:3, Ch:5)

_ ?! _ _ _?!

  • S – выражение строкового типа

S – начиная с позиции расположения курсора выводится значение S

Значение S

Выражение

Результат

‘DAY NEDELY’

Write(S)

DAY NEDELY

‘No’

Write(S, S)

NoNo

S : n – в крайние правые позиции поля шириной n символов выводится значение S

Значение S

Выражение

Результат

‘DAY NEDELY’’

Write(S:12)

_ _DAY NEDELY

‘No’

Write(S:3, S:5)

_No _ _ _ No

  • В – выражение логического типа

В – начиная с текущей позиции курсора значение В выводится True или False

Значение В

Выражение

Результат

True

Write(В)

True

False

Write(В, not В)

FalseTrue

В : n – в крайние правые позиции поля шириной n символов выводится результат True или False булевского выражения В

Значение В

Выражение

Результат

True

Write(В:5)

_ True

False

Write(В:6, not В:5)

_ False_ True

Пример программы с использованием Write:

Var A: integer;

B, C, D: real;

begin

А:=2; В:=5.8;

Write(A:3,’ ’:2); Writeln(B:4:2);

C:=A+B;

D:=A*B;

Writeln;

Writeln(‘Сумма ‘, ‘ C=‘, C:3:1);

Writeln(‘Произведение ‘, ‘ D=‘, D);

end.

Результат выполнения:

_ _ 2_ _5.80

Сумма C=5.8

Произведение D=1.1600000000Е+01

3.2 ОПЕРАТОРЫ

Основная часть программы на языке Паскаль представляет собой последовательность операторов, разделенных точкой с запятой.

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

Операторы языка Паскаль можно разделить на простые и структурные.

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

  • оператор присваивания

  • оператор безусловного перехода

  • оператор вызова процедуры

  • пустой оператор

Структурные (сложные) – представляют собой конструкции, содержащие простые операторы.

3.2.1 Простые операторы