КАТЕГОРИИ: Архитектура-(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 и OR (Таблица истинности)
Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.
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]);
Двумерные массивы отличаются от обычных одномерных тем, что представляют собой не один ряд объектов а несколько рядов одинаковой длины. Такие массивы удобно изображать в виде матрицы
В описании двумерных массивов тип-диапазон состоит из двух частей [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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |