- •Глава 1
- •Свойства алгоритма
- •Словесный способ записи алгоритма.
- •Структурно-стилизованный способ записи алгоритма.
- •Программный способ записи алгоритма.
- •Графический способ записи алгоритма.
- •Циклическая структура с постусловием
- •Циклическая структура с предусловием
- •Циклическая структура с параметром
- •Глава 2
- •Символы разделители:
- •Зарезервированные слова
- •Стандартные идентификаторы
- •Стандартные константы
- •Операции div и mod
- •Стандартные функции
- •Правила написания арифметических выражений
- •Возведение в степень
- •Раздел описания меток
- •Раздел описания констант
- •Раздел описания переменных
- •Раздел определения типов данных
- •Перечисляемый тип
- •Интервальный тип
- •Раздел описания процедур и функций
- •Раздел var ?
- •Глава 3
- •Оператор присваивания
- •Оператор безусловного перехода goto
- •Оператор вызова процедуры
- •Пустой оператор
- •Составной оператор
- •Условные операторы
- •Операторы повтора
- •Глава 4
- •Линейная сортировка
- •Метод сортировки Шелла
- •Метод прямого обмена (пузырьковый метод)
- •Глава 5
- •Глава 6
- •Цветовая шкала
- •Стандартные стили заполнения
- •Стиль линии
- •Толщина линии
- •Построение прямоугольников
- •Построение дуг и окружностей
- •Глава 1 3
- •Глава 2 36
- •Глава 3 78
- •Глава 4 130
- •Глава 5 157
- •Глава 6 167
Раздел var ?
раздел const ?
раздел type ?
раздел begin … end ?
раздел program ?
Какие из комментариев неправильны :
{Программа для вычисления}
(* Это тоже комментарий *)
{{ Комментарий в комментарии }}
(* { Другой вариант }*)
{ (* Следующий вариант *) }
(* (* Возможный вариант *) *)
Для чего используется слово uses ?
такого слова нет в языке Паскаль
это пользовательский идентификатор
с его помощью подключают стандартные модули
это стандартная константа
это описание процедуры
В разделе процедур и функций описываются :
только стандартные процедуры
только пользовательские процедуры
и стандартные, и пользовательские
такого раздела в программе не может быть
Наберите и откомпилируйте простейшую программу :
Program MyProg;
begin
Writeln (5*6);
Writeln(‘ Привет ‘);
end.
Каков будет результат ее выполнения ?
Где ошибки (их три) в следующей программе ?
Program Ошибки;
begin
Summa := 6+8;
end;
Где ошибки (их три) в следующей программе ?
Program Ошибки1;
{{ Программа с ошибками }}
begin
var X: integer;
X:= 6+8;
Write (X);
end.
Где ошибка в следующей программе ?
Program Oshibka;
uses ;
{(* Программа с ошибкой *)}
begin
end.
Где ошибка в следующей программе ?
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 Простые операторы