Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Массивы




Логические операции

Оператор Case...of...

Циклы с параметрами. Операторы for...to...do... и for...downto...do...

 

Иногда заранее известно, сколько раз должен выполняться цикл. Для задач такого типа в языке Паскаль имеются операторы циклов с параметрами.

Формат записи таких операторов следующий:

for <пар.цикла>:= <нач.знач> to <кон.знач.> do <оператор>.

Здесь for, to, do - зарезервированные слова (для, до, выполнить);

<пар. цикла> - параметр цикла - переменная типа integer (точнее, любого порядкового типа);

<нач. знач.> - начальное значение - число или выражение того же типа;

<кон. знач.> - конечное значение - число или выражение того же типа;

<оператор> - произвольный оператор Паскаля.

Если операторов несколько, тогда, как и в операторе while... do..., используются операторные скобки: begin... end.

Например, возможны такие записи оператора цикла:

for i:= a to b do s1;

for j:= a to b do begin s1; s2;..., sn end; или

for k:= p to m do

begin

s1;

s2;

...

sn

end;

 

Здесь s1, s2, s3,... sn - операторы цикла.

При выполнении оператора for вначале вычисляется выражение <нач.знач.> и осуществляется присваивание его значения переменной цикла

<пар.цикла>:= <нач. знач.>.

После этого циклически повторяются:

1) проверка условия <пар.цикла> <кон. знач.>; если условие не выполнено, оператор for завершает работу;

2) выполнение оператора <оператор> или операторов s1; s2; s3;... sn;

3) переменная цикла <пар. цикла> увеличивается на единицу.

Надо сразу заметить, что задать шаг цикла, отличный от 1 в этом операторе, нельзя.

Существует другая форма оператора цикла for:

for <пар.цик.>:= <нач. зн.> downto <кон. зн.> do <оператор>.

Замена зарезервированного слова to на downto означает, что шаг параметра цикла равен (-1).

Изменение значения параметра идет от большего значения к меньшему, т. е. <нач. знач.> <кон. знач.>.

 

Графическое изображение циклов for будет таким:

 

 

Здесь: p - переменная цикла; n - ее начальное значение; k - ее конечное значение. Тело цикла составляет оператор или несколько операторов: s1; s2;... sn;, которые нарисованы в прямоугольнике.

 

 

Часто возникает необходимость сделать выбор из любого количества вариантов. Структура оператора выбора в 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.

 





Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 428; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.