Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Алгоритмические языки.doc
Скачиваний:
84
Добавлен:
14.02.2015
Размер:
814.08 Кб
Скачать

Оператор 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 Ошибки программирования. Помощь в системе программирования. Ключевые кнопки.