- •Содержание
- •Алгоритм. Блок-схема. Элементы блок-схемы
- •Циклы
- •Массивы. Работа с массивами
- •Сортировка данных
- •Матрица. Работа с матрицами
- •Язык программирования Turbo Pascal
- •Алфавит языка Turbo Pascal
- •Вещественные типы данных
- •Логический тип данных
- •Символьный тип данных
- •Массивы в ТР
- •Cтроки в ТР
- •Оператор присваивания в ТР
- •Целочисленные типы данных
- •Условный оператор
- •Составной и пустой оператор
- •Оператор выбора
- •Оператор перехода и метка
- •Циклы в ТР
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла repeat
- •Подпрограммы в ТР
- •Локальность имен в ТР
- •Формальные и фактические параметры
- •Рекурсия. Рекурсивные функции
- •Модули в ТР
- •Стандартные модули в ТР
- •Использование модуля GRAPH
- •Файлы в ТР
- •Общие принципы работы с файлами в ОС
- •Элементы объектно-ориентированного программирования
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Список литературы
Задача-пример. Введя 2 переменные, произвести обмен их значений.
var a,b,c:integer; begin
Readln(a,b);
c:=a;
a:=b;
b:=c;
Writeln(a,b)
end.
Попутно ознакомимся с операторами ввода/вывода данных: Write/Writeln – вывод данных (результатов) на экран Read/Readln – ввод данных с клавиатуры
Условный оператор
Формат записи: if <условие> then <оператор1> [else <оператор2>];
Алгоритм. Если(if) <условие> истинно, то(then) исполнить <оператор1>; иначе(else) исполнить <оператор2>.
Замечание. Квадратные скобки в формате записи означают, что оператор, заключенный в эти скобки, может отсутствовать (рис. 4).
1) |
2) |
Рис. 4
16
Задача-пример. Найти самое большое из двух введенных чисел:
1) var a,b:integer; |
2) var a,b:integer; |
begin |
begin |
Readln(a,b); |
Readln(a,b); |
if a>b then writeln(a) |
if a<b then a=b; |
else writeln(b) |
Writeln(a) |
end. |
end. |
Составной и пустой оператор
Составной оператор состоит из нескольких простых (и/или опять же составных) операторов и заключается между ключевыми словами begin и end. Знак “;” служит для разделения операторов друг от друга:
Избыточные “;” считаются пустыми операторами, так как можно без них обойтись. Зарезервированные слова сами по себе являются разделителями.
Пример.
1) a:=5; b:=3; |
2) a:=5; b:=3; |
if a<b then begin |
if a<b then |
c:=a; a:=b; b:=c |
c:=a; a:=b; b:=c |
end; |
|
17
Оператор выбора
Формат записи: Case <выражение> of <значение(я)1>:<оператор1>; <значение(я)2>:<оператор2>; <значение(я)3>:<оператор3>;
. . . . . . . . . . . . .
<значение(я)N>:<операторN> [else
<оператор>] end;
Задача-пример. Введя возраст человека, выдать его социальный статус.
var Age:byte; begin
Readln(Age);
Case Age of
0..6 : writeln(‘Ребенок’); 7..18: writeln(‘Школьник’);
19..29: writeln(‘Молодой человек’);
30..55: writeln(‘Человек в трудоспособном возрасте’); else
writeln(‘Пенсионер’);
end;
end.
Оператор перехода и метка
Формат записи: GOTO <метка>;
<Метка> должна быть предварительно объявлена в разделе описаний с помощью ключевого слова label.
18
Пример.
var x,y:word; label finish;
beginx:=y-y;
if x>0 then x:=5
else goto finish; x:=2*x;
finish: writeln(x) end.
Вопрос. Какой результат будет выведен на экран?
Циклы в ТР
Циклы в ТР можно организовать как с помощью оператора перехода goto и условных операторов if...then...else, так и с помощью разли ч- ных специальных операторов цикла.
Задача-пример. Найти сумму первых 100 чисел S = 1+2+3+...+100.
Program Summa; var i,S:word; label Next;
begin S:=0; i:=1;
Next: S:=S+i;
i:=i+1;
if i<=100 then goto Next;
writeln(S)
end;
Оператор цикла for
Формат записи. for <начальное значение> to <конечное значение> do <оператор>;
Для нашего примера код может выглядеть так (см. иллюстрацию на блок-схеме):
19
