- •Алгоритмические языки и программирование
- •Циклический алгоритм
- •История создания языков программирования
- •Структура программы на языке "Паскаль"
- •Переменные и их имена
- •Замечания
- •Команда присваивания
- •Операторы write и writeln. Процедуры вывода информации
- •Операторы read и readln. Процедуры ввода информации
- •Арифметические операции с целыми числами. Переменные целого типа. Вещественный тип
- •Арифметические операции с целыми числами и переменными целого типа в языке Паскаль
- •Операции отношения или сравнения
- •Логические операции
- •Операция целочисленного деления и операция - остаток от деления
- •Расширение диапазона значений целых переменных
- •Расширение диапазона значений вещественных переменных
- •Оператор безусловного перехода goto
- •1: Writeln('Число не содержит цифру 2');
- •Оператор if ... Then ... Else
- •Цикл с предыдущим условием. Оператор while ... Do ...
- •Цикл с последующим условием. Оператор repeat...Until...
- •Различия между циклом - while и циклом – repeat
- •Циклы с параметрами. Операторы for...To...Do... И for...Downto...Do...
- •Оператор Case...Of...
- •Логические операции
- •Массивы
- •Ошибки в программировании. Примеры ошибок в языке Паскаль
- •Выполнение программы. Ключевые кнопки
- •Первые ошибки и их исправление
- •Вызов процедуры из процедуры
- •Работа с файлами. Файловый тип
- •Доступ к файлам
- •Инициация файла
- •Стандартные процедуры и функции для работы с файлами
Оператор Case...Of...
Часто возникает необходимость сделать выбор из любого количества вариантов. Структура оператора выбора в Turbo Pascal следующая:
Case I of
Const1 : S1;
Const2 : S2;
............
ConstN : SN;
else S
end;
В этой записи: I - выражение порядкового типа, значение которого вычисляется; Const1, Const2, ..., ConstN - константы, с которыми сравнивается значение выражения I; S1, S2, ..., SN - операторы, из которых выполняется тот, с соответствующей константой которого совпадает значение выражения I; S - оператор, который выполняется, если значение выражения I не совпадает ни с одной из констант Const1, ..., ConstN.
Ветвь оператора else является необязательной. Если она отсутствует и значение I не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора if перед словом else точку с запятой можно ставить.
Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если это возможно), сопроводив их одним оператором.
Логические операции
Логическая операция |
Значение |
Примеры записи |
Значение примера |
AND |
Логическое "И" |
(x<7) and (x>3) |
x меньше 7 и x больше 3 (3<x<7) |
OR |
Логическое "ИЛИ" |
(y>100) or (y<10) |
y больше 100 или y меньше 10 (y<10, y>100) |
NOT |
Логическое "НЕ" |
not (x=2) |
не x равно 2 |
Правила использования операций AND и OR (Таблица истинности)
a |
b |
a and b |
a or b |
истина |
истина |
истина |
истина |
истина |
ложь |
ложь |
истина |
ложь |
истина |
ложь |
истина |
ложь |
ложь |
ложь |
ложь |
Массивы
Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.
var
<имя массива> : array[n1. . n2] of <тип элементов массива>.
<имя массива> - это идентификатор, удовлетворяющий всем требованиям, предъявляемым к нему;
после этого обязательно записывается служебное (зарезервированное) слово: array;
за ним в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива, тип-диапазон является левой и правой границами изменения индексов массива:
[n1..n2] - тип-диапазон; n1 - левая граница, n2 - правая граница;
для примера [1..30] индексы элементов нумеруются от 1 до 30 (1 - левая граница, 30 - правая), всего элементов в массиве - 30;
далее указывается тип элементов массива.
Элемент массива обозначается как <имя массива>[индекс].
Рассмотрим пример описания массива и ввод его значений пользователем.
program aaa;
var a:array[1..10] of integer;
i:integer;
begin
for i:=1 to 10 do begin
write(‘a[‘,i,’]=’);read(a[i]);
end;
for i:=1 to 10 do writeln(‘a[‘,i,’]=’,a[i]);
end.
Как видно из примера использование циклов напрямую связано с массивами. Лучше всего выбирать цикл с параметрами.
Пример вывода массива на экран.
for i:=1 to 10 do writeln(‘a[‘,i,’]=’,a[i]);
Двумерные массивы отличаются от обычных одномерных тем, что представляют собой не один ряд объектов а несколько рядов одинаковой длины. Такие массивы удобно изображать в виде матрицы
1
2 3 4 5 6
7 8 9 0 1
5 3 9 8 6
2 4 0 7 5
4 3 2 1
В описании двумерных массивов тип-диапазон состоит из двух частей
[n1..n2,m1..m2] – столбцы и строки матрицы.
Элемент двумерного массива обозначается
<имя массива>[индекс1,индекс2]
Рассмотрим пример работы с двумерным массивом.
Пользователь задает массив 3 X 3. Вывести на экран номера и значения элементов массива в виде “a[1,1]=0”.
program aaa;
var a:array[1..3,1..3] of integer;i,j:integer;
begin
for j:=1 to 3 do
for i:=1 to 3 do begin
write(‘a[‘,i,’,’,j,’]=’);read(a[i,j]);
end;
for j:=1 to 3 do
for i:=1 to 3 do begin
writeln(‘a[‘,i,’,’,j,’]=’,a[i,j]);
end;
end.
В следующем примере показано, как использовать циклы, чтобы пользователь мог задать размер массива во время запуска программы и оформить вывод на экран в виде матрицы.
program aaa;
var a:array[1..20,1..20] of integer;i,j,n:integer;
begin
read(n);
for j:=1 to n do
for i:=1 to n do begin
write(‘a[‘,i,’,’,j,’]=’);read(a[i,j]);
end;
for j:=1 to n do begin
for i:=1 to n do write(a[i,j]:3);
writeln;
end;
end.
Лекция №6 Ошибки программирования. Помощь в системе программирования. Ключевые кнопки.