
- •Министерство общего и профессионального образования Российской Федерации Уральский государственный технический университет Основы программирования на языке Паскаль
- •Структура программы на паскале
- •Типы данных
- •Правила программирования арифметических операций
- •Арифметические функции
- •Операции отношения (сравнения)
- •Логические операции
- •Приоритет операций
- •Операторы турбо-паскаля ввод и вывод данных
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы повторений (циклов) счетный цикл
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Использование массивов
- •Процедуры и функции
- •Описание и использование функций
- •Описание и использование процедур
- •Взаимодействие подпрограмм
- •Стандартные модули
- •Использование модуля crt
- •Практический пример. Программа "меню"
- •Использование модуля graph
- •Установка цветов
- •Изображение точек и линий
- •Практический пример. Построение графика функции
- •Работа с текстом
- •Практический пример. Построение спирали
- •Программирование с использованием нестандандартных типов данных перечисляемый тип
- •Множества
- •Основы программирования на языке Паскаль
Операторы повторений (циклов) счетный цикл
Если количество повторений цикла точно известно заранее, то используются операторы вида
FOR <параметр цикла>:=<нач.знач.> TO <кон.знач.> DO <оператор>;
FOR <параметр цикла>:=<нач.знач.> DOWNTO <кон.знач.> DO <оператор>;
где <параметр цикла> - счетчик - переменная целого типа;
<нач.знач.>,<кон.знач.> - ее начальное и конечное значение;
<оператор> - произвольный оператор Паскаля.
Оператор FOR работает также, как и аналогичный оператор языка Quick Basic. Отличие же состоит в том, что шаг изменения счетчика может быть равен только +1 в первом случае или -1 - во втором.
Следующая программа подсчитывает сумму S всех целых чисел от 1 до произвольного N, вводимого с клавиатуры:
Program No5;
Var
i, N, S : integer;
BEGIN
write('N='); readln(N);
S:=0;
FOR i:=1 TO N DO S:=S+i;
writeln('Сумма = ',S);
END.
Оператор цикла с предусловием
Формат этого оператора
WHILE <условие> DO <оператор>;
где <оператор> - произвольный оператор Паскаля, выполняемый до тех пор пока <условие> является истинным. Следующая программа выполняет ту же операцию, что и приведенная выше.
Program No6;
Var
i, N, S : integer;
BEGIN
write('N='); readln(N);
S:=0; i:=1;
WHILE i<=N DO
begin S:=S+i; i:=i+1; end;
writeln('Сумма = ',S);
END.
Оператор цикла с постусловием
Формат этого оператора
REPEAT <тело цикла> UNTIL <условие>;
где <тело цикла> - произвольные операторы Паскаля, выполняемые до тех пор пока <условие> не выполняется. В качестве примера рассмотрим все ту же задачу о подсчете суммы целых чисел.
Program No7;
Var
i, N, S : integer;
BEGIN
write('N='); readln(N);
S:=0; i:=1;
REPEAT
S:=S+i;
i:=i+1;
UNTIL i>N;
writeln('Сумма = ',S);
END.
Использование массивов
МАССИВ - это несколько элементов, имеющих одно имя и принадлежащих к одному типу данных. Элементы массивов имеют индексы, которые указывают в КВАДРАТНЫХ скобках за именем массива. По правилам Паскаля все массивы предварительно должны быть описаны. Это можно сделать несколькими способами. Очень часто используется следующее описание:
<имя массива>:ARRAY[<диапазон>] OF <тип>;
где ARRAY OF - зарезервированные слова;
<диапазон> - нижняя и верхняя граница изменения индекса, разделяемые двумя точками;
<тип> - тип данных;
Пример:
VAR
a: array [1..10] of real;
b: array [0..50] of char;
c: array [-3..4] of boolean;
d: array [1..3,1..3] of integer;
Здесь приведено описание одномерных массивов a, b и с различных типов и двумерного массива d. Нижнюю и/или верхнюю границы можно задать с помощью констант. Например:
CONST nmax=50;
VAR a: array[1..nmax] of real;
Если элементы массива являются константами, то значения его элементов можно задать сразу при его описании:
Const
Day: array[0..6] of string[11]=
('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
Возможен и еще один способ описания массивов, который удобен при определении нескольких однотипных массивов. При этом используется так называемое описание ТИПА, о котором мы еще будем говорить подробнее. Сейчас же ограничимся лишь примером:
TYPE
massiv = array[1..3] of integer;
VAR
a,b,c: massiv;
В данном случае мы сначала определили нестандартный тип данных massiv как одномерный массив целых переменных, а далее объявили три переменные a,b и c, как принадлежащие к этому типу данных. Таким образом, мы фактически определили три массива: a[1..3], b[1..3], c[1..3].
Правила использования массивов проиллюстрируем простым примером. Составим программу заполнения массива случайными числами. При этом мы будем использовать встроенную функцию Паскаля RANDOM(maх). Эта функция возвращает случайное целое число, заключенное в диапазоне от 0 до max -1.
Program No8;
Const N=100;
Nmax=101;
Var
m: array[1..N] of integer;
i: integer;
BEGIN
for i:=1 to N do
begin
m[i]:=random(Nmax);
writeln(m[i])
end;
END.