Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика.doc
Скачиваний:
33
Добавлен:
22.05.2015
Размер:
310.27 Кб
Скачать

32. Операторы цикла с условием: синтаксис операторов, работа операторов, правила применения

Цикл с предварительным условием

До начала цикла проверяется условие и если оно истинно, то выполняется тело цикла. Если ложно – то осуществляется выход из цикла. Цикл с предварительным условием выполняется неизвестное количество раз. Количество повторений зависит от условия и такой цикл может быть не выполнен ни разу. Условие - условие продолжения цикла

Зарезервированным словом для начала цикла с предварительным условием, которым может быть операционное отношение или логическая переменная. Истина – true, ложно – fall.

Правила применения цикла с предварительным условием:

1) В теле цикла должны быть операторы, влияющие на условие

2) условие должно быть составлено так , чтобы оно могло быть выполнено

3) нельзя входить в тело цикла помимо заголовка

4) цикл может быть закончен и по другому условию (break)

5) необходимо выполнить чистку цикла

Пример. Задача: составить программу, которая выводит таблицу функции y=x2, количество строк с заданным интервалом аргумента.

Program C1;

USES Crt;

Var

i:integer;

x,y:real;

x1,x2,dx:real;

Begin

clr Scr;

writeln (`Введите x1,x2, dx);

readln(x1,x2, dx);

x:=x1;

while x<x2 do

begin

y:=x*x;

writeln (x:10:2,y:10:2);

x:=x+dx;

end;

readkey;

End.

Цикл с последующим условием

Вцикле с последующим условием сначала выполняются операторы тела цикла, затем проверяется условие, если оно не выполнено то цикл повторяется. Вся структура – это одно целое и реализуется одним оператором. Условие – условие выхода из цикла.

Зарезервированное слово, которым начинается цикл с последующим условием – repeat. Операторы тела цикла выполняются без begin и end. until – (пока не) - зарезервированное слово, после которого записывается условие выхода из цикла. Правила применения данного оператора сходны правилам применения оператора цикла с предварительным условием.

Пример. Условия задачи те же.

Program C2;

USES Crt;

Var

x,y:real;

x1,x2,dx:real;

Begin

clr Scr;

writeln (`Введите x1,x2, dx);

readln(x1,x2, dx);

x:=x1;

repeat

y:=x*x;

writeln (x:10:2,y:10:2);

x:=x+dx;

until x>x2;

writeln (`Нажмите любую клавишу`);

readkey;

End.

В теле цикла могут быть любые операторы Turbo Pascal, в том числе и операторы цикла. При этом получается конструкция вложенных циклов. Вложенных циклов может быть до 9.

Правила вложенных циклов

1) внутренний цикл должен быть полностью во внешнем цикле

2) Внешними и внутренними циклами могут быть любые циклы

3) вход в каждый цикл по-прежнему осуществляется через заголовок

4) при составлении программ нужно помнить, что выход из внешнего цикла происходит только после выхода из внутреннего

5)выход из любого цикла можно осуществить след образом:

if <дополн. условие> than break

Внешние циклы работают по своим условиям.

Стандартными задачами с применением циклов являются задачи на накопление суммы в цикле, накопления произведения в цикле.

33. Одномерные и двумерные массивы: описание типа и объявление переменной. Ввод и вывод массивов. Операции с индексированными переменными

Массив применяется для задач с большим набором данных.

Массив – структура данных, которым присвоено общее имя, с определённым количеством элементом, пронумерованных спец образом. Массив – регулярный тип данных.

Характеристики массивов:

1) имя

2) индексы, тип индексов

3) размерность

4) размер массива

5) тип компонентов массива

В программе с массивами выполняется несколько действий: описание структуры, объявление переменных.

1) описание структуры

Эта часть не будет работать пока не будет объявлена переменная данного типа

Существует два способа объявления массива: классический, который применяется если массивы нужно передавать в процедуры и функции, и явный (на рисунке). Классический: М1:mas; .

2) объявление переменных:

Var

M1:mas;

M3:array[1..40] of real;

M4:mass;

В программе действия с массивами выполняются только с элементами массива в разделе операторов. Каждый элемент имеет своё имя М1[3] – обращение к элементу массива.

М1[5]:=25 - присваивание

y:=M1[5] - копирование

readln(M1[6])

writeln(M1[5]:10:2) – вывод на экран

Если массивы объявлены одним типом (структурой), то допустимо копирование массива: М2:=М1

При использовании массива в блоке операторов, необязательно использовать весь размер массива.

Правила применения массивов

1) индексы массивов – это как правило целые числа или символы (англ)

2) нижняя граница индексов должна быть меньше верхней границы индексов

3) в разделе операторов в качестве индексов можно применять константы, переменные (того же типа, что и индексы), выражение

4) индексы в разделе операторов не должны выходить за диапазон, объявленный в описании.

Ввод массивов

Массивы являются регулярным типом данных и ввод осущетвляется как правило в циклах (счётных).

Пример1 (одномерный массив) Написать фрагмент программы ввода в оперативную память массива целых чисел.

Var

A:array[1..50] of integer;

i,N:integer;

Begin

………………..;

writeln (`введите количество элементов`);

readln (N);

for i:=1 to N do

begin

writeln (`Введите элемент 1`, i);

readln (A[i]);

end;

……………..;

End.

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

Пример2 (двумерный массив)

Var

B:array[1..20,1..30] of real;

i,j,M,N:integer;

Begin

………………..;

writeln (`введите количество строк и столбцов`);

readln (N, М);

for i:=1 to N do

for j:=1 to M do

begin

writeln (`Введите эл`, i,j);

readln (B[i,j]);

end;

……………..;

End.

Вывод массивов:

А) одномерных. При этом решаются задачи обращения ко всем элементам массива для вывода, расположения массива в строку, сделать так, чтобы все элементы не сливались (введение числового формата)

Пример 3(одномерные массивы)

Var

A:array[1..20] of real;

i, N:integer;

Begin

……………..;

for i:=1 to N do write (A[i],`…`);

Б) двумерных.

Задачи: обращение к элементам (или имени) массива, вывод массива в виде матрицы с ровными колонками ( с помощью вложенных циклов), переход с одной строки на другую. Ровные колонки обеспечиваются заданием числового формата, превышающим количество цифр в элементах массива

Пример 4 (двумерный массив)

Var

B:array[1..20,1..30] of integer;

i,j,M,N:integer;

Begin

……………..;

for i:=1 to N do

begin

for j:=1 to M write (B[i,j]:8);

writeln;

end;

Операции с массивами:

1) копирование элементов массивов

Если массивы объявлены одной структурой:

А:=В;

Если массивы имеют разную структуру:

for i:=1 to N do А[i]:=B[i];

2) перестановка элементов массива:

B:=A[4];

A[4]:=A[6];

A[6]:=B;

3) поиск номера максимального и минимального элемента в массиве:

Назначается максимальный элемент (Max:=A[1];), затем через if ставится условие (A[i]>Max), выводится номер элемента.

4) транспонирование матрицы

A[i,j]:=B[j,i];

5) создание массивов из случайных элементов

Случайные (целые) числа можно получить с помощью функции random (N) 0≤N<1, 0≤i<N. Случайные числа можно получать и в цикле:

for i:=1 to N do

begin

randomize;

for j:=1 to M do A[i,j]:=random(100);

end;