- •Тема I Основные понятия языка pascal 7.0
- •1.1. Алфавит и структура программы
- •Алфавит
- •Структура программы
- •I, j : integer;
- •1.2. Структура данных
- •Простые типы данных
- •Структурированные типы данных
- •Указатели
- •Процедурные типы
- •Объекты
- •Преобразование типов данных
- •1.3. Операторы языка
- •Простые операторы
- •Структурированные операторы
- •1.4. Процедуры ввода-вывода
- •Var I, j : integer;
- •Практические задания
- •Тема 2 Производящие функции и ряды
- •Var n, I: integer;
- •Var I, n, f : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j, r, m : integer;
- •Var I, n, f, j : integer;
- •Var I, n, sum : integer;
- •Var I, n, m, к : integer;
- •If flag then
- •Var I, n, m, k, nod : integer;
- •Var I, n, m, k, nod, nok : integer;
- •Var n, r, m : integer;
- •Var n, r, м, к, I : integer;
- •If f then writeln('число', n, ' he палиндром')
- •Var X, y, z:real; I, n : integer;
- •Var X, y, z : real;
- •Var X,y. Z, е : real;
- •I: integer;
- •Var X, y, z, e : real;
- •I: integer;
- •Var X, y, z : real;
- •Практические задания
- •Тема 3 Обработка числовых последовательностей
- •Var n, X, sum, I: integer;
- •Var n, X, к, I: integer;
- •Var n, X, max, I: integer;
- •Var n, X, max, I: integer;
- •Var X, min1, min2 : integer;
- •Var old, new : real;
- •If f then
- •Var old, new : real; к : integer;
- •Var old, new, f : real;
- •Var old, new : real;
- •If f then
- •Var old, new : real;
- •If f then
- •Var poroda : string;
- •I, к, n : integer;
- •Var pol : string;
- •I, к, n : integer;
- •Практические задания
- •Тема 4 Символьные переменные и строки
- •Var I: char;
- •Var I: char;
- •Var I, l : char;
- •Var str: string;
- •If not(str[I] in m) then write(str[I])
- •Var str : string;
- •If not(str[I] in m) then write(str[I]);
- •Var str : string;
- •If (str[I] - '!') then write(V)
- •Var str : string;
- •Var str : string;
- •Тема 5 Обработка строк
- •Var str, wrd : string;
- •I, l : integer;
- •Var s1, str : string;
- •I: integer;
- •Var s1, str: string;
- •Var s1: string;
- •Var s1 : string;
- •Var s1 : string;
- •X : char;
- •Var s1 : string;
- •Var м, к, I, j : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, к : integer;
- •Var I, l : integer;
- •1234567890 Ааааааа .
- •Var I, l : integer;
- •If f then writeln('палиндром')
- •1234567890 Ааааааа .
- •Практические задания
- •Тема 6 Одномерные массивы
- •Var mas : array[1..M] of integer;
- •I, max, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, n : integer;
- •Var mas : array[1..M] of integer;
- •I, k, new, n : integer;
- •Var mas : array[1..M] of integer;
- •I, j, k, new, n : integer;
- •Var mas : array[1..M] of real;
- •I, n : integer;
- •Var mas : array[1..M) of real;
- •I: integer;
- •Var mas, num2, num5 : array[1..M] of integer;
- •Практические задания
- •Тема 2 Двумерные массивы
- •Var a : array[1..T, 1..S] of integer;
- •Var а : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of integer;
- •Var a : array[1..T, 1..S] of char;
- •Var a : array[1..T, 1..T] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Var а, в : array[1..N, 1..N] of integer;
- •Практические задания
- •Тема 8 Работа с файлами
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var f1, f2 : text;
- •X : char;
- •International
- •Var Fl : text;
- •X: char;
- •International
- •Var f1 : text;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •I: integer;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Var f1 : file of char;
- •X : char;
- •International
- •Тема 9 Процедуры и функции
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var n, m : integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var s : string;
- •Var I: integer;
- •Var I, j : integer;
- •Var I, j : integer;
- •Var n : longint;
- •Var s : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в, d, к, X, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Var I : integer;
- •Var n : longint;
- •Var s : integer;
- •Var а, в, X, d, y : integer;
- •Var а, в : integer;
- •Var к: integer;
- •Практические задания
- •Тема 10 Работа с текстом. Модуль crt
- •Var I: char;
- •Var I:integer;
- •Var X, I: integer;
- •Var I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Var X, y, I: integer;
- •Практические задания
- •Тема 11 Графика. Модуль Graph
- •Initgraph(driver, mode,' ');
- •Var driver, mode : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode,
- •X, y : integer;
- •Var driver, mode, X, y : integer ;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y : integer;
- •Var driver, mode, X, y, I: integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t : integer;
- •Var driver, mode, X, y, I, t, y0 : integer ;
- •Var driver, mode, X, y, I, t, xo : integer;
- •Var driver, mode, X, y, r : integer;
- •Var driver, mode, X, y, x1, y1, r : integer;
- •Var driver, mode, X, y, r, I: integer ;
- •Var driver, mode, X, y, r, rx, ry, lx, ly, I, size : integer;
- •Var driver, mode, X, y, r : integer;
- •Практические задания
- •Тема I 3 Разные задачи
- •Var f1:file of nn;
- •I:integer;
- •Var I:integer;
- •Var I, min,max:integer;
- •Var I,j:integer;
- •Var I,j:integer;
- •In_metr;
- •I,n:integer;
- •Var I:integer;
- •If I in s1 then
- •Приложение Зарезервированные слова borland pascal 7.0
- •Литература
- •Оглавление
- •1.1. Алфавит и структура программы
- •Тема 13 разные задачи
Var а, в, d, к, X, y : integer;
BEGIN
WRITELN('BBEДИTE ДВА НАТУРАЛЬНЫХ ЧИСЛА');
READLN(A, В);
К := 0;
IF A>B THEN
BEGIN
X:=B;
Y:=A
END
ELSE
BEGIN
Y := B;
X:=A
END;
REPEAT
K:= K+Y DIV X;
D.= Y MOD X;
Y:= X;
X:= D;
UNTIL D = 0;
WRITELN('ИCKOMOE ЧИСЛО КВАДРАТОВ : ', К)
END.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем описание функций MIN и МАХ;
- вводим два натуральных числа А и В;
- присваиваем начальные значения вспомогательным переменным;
- организуем цикл, в котором сторона У уменьшается каждый раз до величины X, а само X становится равным Y MOD X;
- цикл работает до тех пор, пока У не станет кратным X;
- завершаем работу программы.
Переменные:
в основной программе;
А, В - два натуральных числа (глобальные переменные);
D, X, Y - вспомогательные переменные;
К - количество отрезаемых квадратов.
З адача 9.9 Дан прямоугольный бильярдный стол со сторонами А и В, где А, В - натуральные числа (бильярд Льюиса Кэрролла -рис. 9.2). Из угловой лузы вылетает шар под углом 45 градусов к боковым стенкам, ударяется о борт, отскакивает, ударяется еще раз и т. д., пока не вылетит через одну из угловых луз. Рассчитать количество отрезков в ломаной траектории шара. Считать угол падения равным углу отражения.
Рис. 9.2. Бильярд Льюиса Кэрролла
Данная задача решается с помощью стандартных функций вы деления целой части от деления Y на X Y DIV X и выделения ос татка Y MOD X.
При прохождении шаром прямоугольного стола и отражении его от боковых сторон происходит увеличение числа отрезков траектории на два, а обратный путь вычисляется как Y := A – X+Y MOD X, где Y - обратный путь для шара, А - длинная сторона стола, X - короткая сторона стола.
PROGRAM PG9_9;
Var а, в : integer;
FUNCTION BILL(Y, X : INTEGER): INTEGER;
Var к: integer;
BEGIN
К:=0;
WHILE Y MOD X <> 0 DO
BEGIN
К := K+Y DIV X+2;
Y := A-X+Y MOD X;
END;
BILL := K+Y DIV X
END;
BEGIN
REPEAT
WRITE('BBEДИTE ДВА НАТУРАЛЬНЫХ ЧИСЛА А>В');
READLN(A, В);
UNTIL A> = B;
WRITELN('КОЛИЧЕCTBO ОТРЕЗКОВ В ТРАЕКТОРИИ :', BILL(A, В))
END.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем описание функции BILL;
- вводим два натуральных числа А и В;
- вызываем функцию BILL для определения количества отрежов;
- завершаем работу программы.
Переменные:
в функции BILL:
X, Y - два натуральных числа (формальные параметры);
К - вспомогательная переменная (локальная переменная);
А - длинная сторона стола (глобальная переменная);
в основной программе:
А, В - два натуральных числа (глобальные переменные).
Описание функций и процедур может строиться с помощью рекурсии, т. е. обращения их к самим себе. При каждом новом обращении к подпрограмме значения используемых параметров заносятся в стек, причем параметры предыдущих обращений также сохраняются.
Формально рекурсию для функции F(X) можно описать следующим образом:
IF X = <начальное значение> THEN
F := <начальное значение функции>
ELSE
F := W(F);
где конструкция F := <начальное значение функции> называется глубиной рекурсии, a F := W (F) определяет способ обращения функции в точке Хп к своим значениям для меньших значений аргумента Хп - 1, Хп - 2 и т. д.
Классическим примером простейшей рекурсии (линейной) может служить функция вычисления факториала натурального числа N FACT(N).
IF N = 0 THEN
FACT := 1
ELSE
FACT := N * FACT(N - 1);
Например, при N = 4 к функции FACT происходит обращение 5 раз (для N = 4, N = 3, N = 2, N = 1, N = 0), каждое из которых, кроме последнего, заносится в стек. При 5-м обращении вычисляется FACT(O) = 1, и затем последовательно, извлекая обращения из стека, вычисляются
FACT(1) = 1* FACT(O) = 1,
FACT(2) = 2*FACT(1) = 2,
FACT(3) = 3* FACT(2) = 6,
FACT(4) = 4*FACT(3) = 12.
Рассмотрим несколько примеров построения рекурсии. При использовании рекурсий следует помнить, что размеры стека не бесконечны и переполнение его возникает довольно быстро.
Задача 9.10 Вычислить I-е число Фибоначчи.
Известно, что каждое последующее число Фибоначчи равняется сумме двух предыдущих:
F i := F i-1 + F i-2 ; а нулевое число равно нулю, первое - единице.
Данная задача относится к каскадным рекурсиям, когда для вычисления одного значения требуется несколько вызовов для разных предыдущих значений.
PROGRAM PG9J0;