Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Оператор цикла с параметрами





Счетный оператор цикла FOR имеет структуру:

FOR i:=a TO b DO <оператор>;

FOR, TO, DO – зарезервированные слова (для, до, выполнить);

i – переменная цикла типа INTEGER; (счётчик циклов)

a – начальное значение счётчика циклов (тип INTEGER);

b – конечное значение счётчика циклов (тип INTEGER);

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

Шаг изменения параметра цикла равен единице.

Алгоритм выполнения оператора цикла с параметрами при выполнении оператора FOR:

1. счётчику циклов присваивается начальное значение i:=a;

2. проверяется условие i > b (счётчик циклов больше конечного значения);

3. если условие i > b выполняется, то на пункт 7, иначе на пункт 4

4. выполняется тело цикла;

5. счётчик увеличивается на единицу: i:=i + 1;

6. переход на 2;

7. при выполнении условия i > b цикл заканчивается.

Пример: Найти сумму значений переменной цикла.

Решение: Фрагмент программы с оператором цикла запишется в виде:

For i:= 1 to 10 do s:=s+i;

Writeln(‘s=’, s);

Счётный оператор цикл FOR может иметь такую структуру:

FOR i: = b DOWNTO a DO <оператор>;

Замена зарезервированного слова TO на DOWNTO означает, что шаг наращивания переменной цикла равен (-1).

Пример: Найти сумму значений переменной цикла.

Фрагмент программы с оператором цикла запишется в виде:

For i:=10 downto 1 do s:=s+i;

Writeln(‘s=’, s);

{Результат получится тот же, что и в примере с циклом For..to…do}.

При работе с оператором FOR следует соблюдать ряд правил:

1. Нельзя войти в цикл, минуя оператор FOR.

2. Нельзя изменять параметры цикла (a, b) внутри цикла.

3. Параметры цикла и переменная цикла должны быть целыми.

4. Шаг цикла может быть единица или минус единица.

5. Естественное окончание цикла осуществляется при условии i > b при шаге=1.

6. Из цикла можно выйти до естественного окончания цикла по условию.

Оператор цикла WHILE с предусловием

Структура оператора имеет вид:

WHILE <условие> DO <оператор>;

WHILE, DO – зарезервированные слова (WHILE –пока; DO – выполнить);

<условие> – выражение логического типа;

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

Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу.

Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с предусловием.

Решение: Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

while i<=10 do

Begin

s:=s+i;

i:=i+1;

End;

Writeln(‘s=’, s);

В примере рассматривается составной оператор цикла, тело цикла заключено в операторные скобки.

Оператор цикла REPEAT…UNTIL с постусловием

Структура оператора имеет вид:

REPEAT <тело_цикла> UNTIL <условие>;

REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

<тело_цикла> – произвольная последовательность операторов Турбо Паскаля; <условие> – выражение логического типа.

Операторы, входящие в <тело_цикла>, выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.

Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с постусловием.

Решение: Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

repeat

s:=s+i;

i:=i+1;

Until i>10;

Writeln(‘s=’,s);

В пример цикл выполняется пока переменная i £ 10, при i >10 цикл закончится.

Пример: Написать программу циклического алгоритма рис.11.

В цикле вычислить значение функции z= x* y при условии, что одна из переменных - x меняется в каждом цикле, а другая переменная- у не меняется и может быть любым целым числом.

Решение: Программа алгоритма цикла со счётчиком имеет вид:

PROGRAM PR5;

Var

x, y, z, i, n:integer;

begin

{циклический алгоритм}

writeln (‘ввести x, y, количество циклов-n’);

readln (x, y, n);

for i:=1 to n do {оператор цикла с параметрами}

begin

z:=x*y;

Writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z);

x:=x+1;

End; {конец оператора цикла с параметрами}

End.

Если неизвестно количество циклов, то следует выбрать любой из двух операторов цикла: с предусловием или с постусловием.

Пример: Пока y>x вычислить у=у-x,, если y=30, x=4. Вывести на экран количество циклов и значения переменной y в цикле. Алгоритм этой задачи представлен в виде блок-схемы рис.12.

Решение: Программа алгоритма цикла с предусловием имеет вид:

PROGRAM PR6;

Var

i, x, y: integer;

begin

{циклический алгоритм}

x:=4; y:=30; i:=0;

{оператор цикла с предусловием}

while y>x do

begin

y: = y – x;

i:=i+1;

readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);

end; {конец оператора}

end.

В примере используется оператор цикла с предусловием, который работает при условии y>x. Условие проверяется при входе в цикл.

Пример: Составитьпрограмму для алгоритма, представленного на рисунке 13, используя оператор цикла с постусловием. Цикл выполняется при условии y>x, но в конце оператора проверяется условие выхода из цикла (y<=x).

Решение: Программа алгоритма цикла с постусловием имеет вид:

PROGRAM PR7;

Var

i, x, y: integer;

begin

{циклический алгоритм}

x:=4; y:=30; i:=0;

{оператор цикла с постусловием}

repeat

y: = y – x;

i:=i+1;

readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y);

until y<=x; {конец оператора}

end.

Программирование. Массивы

Понятие и описание массивов

Массивом называются последовательность однотипных объектов, обозначаемая одним именем.

Массив характеризуется размером и размерностью. Размер массива - это количество элементов в нём. Размерность - это количество индексов в скобках.

Массив состоит из элементов. Чтобы выделить один из элементов массива, надо указать имя массива и номер элемента в нем. Номер элемента называется индексом, индекс указывается в квадратных скобах и может быть числом, переменной, выражением. Имя массива образуется по правилам образования имен переменных.

Пример: А [20], B [5,3].

Если для выделения элемента нужен 1 индекс, массив называется одномерным, два – двумерным и т.д.

Массивы относятся к структурированным типам данных. В программе массив можно описать двумя способами:

1) непосредственно в разделе описаний переменных:

Var

имя_массива: array [1..N] of тип_элементов;

где, N – максимальное возможное количество элементов массива.

Пример:

var

a, b: array [1..10] of real;

d, y: array [1..5,1..5] of integer;

2) объявлением типа – массива (удобно, когда требуется несколько одинаковых массивов).

Пример:

type

mas= array [1..10] of real;

var

c,d:mas; { два массива типа mas}

Элементы массива могут быть любого типа, а индексы могут быть любого порядкового типа (например, типа int, char, …). Но обычно используется тип – диапазон: 1..10, N..M.

Число элементов массива и его границы фиксируются при его описании и не могут быть изменены в процессе выполнения программы. Границы диапазона [N..M} могут быть заданы константами в разделе описания констант.

В ряде задач требуется ввести массив в виде константы, в котором записывается табличные значения. (Например, кривая намагничивания стали или начальное распределение температуры рассматриваемого объекта). Элементы такого массива-константы не могут быть изменены.

Пример:

program PR8;

const

y: array [1..5] of integer=(7,1,5,3,9);

var

k: integer;

begin

for k:=1 to 5 do

writeln (y[k]);

end.

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

Ввод и вывод массивов осуществляется поэлементно. Часто это делают с помощью циклов (обычно используется цикл FOR)

Пример: Ввести с клавиатуры значения элементов одномерного массива вещественного типа состоящего из 10 элементов. Вывести элементы массива на экран.

Решение:

program PR9;

var

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

k: integer;

begin

for k:=1 to 10 do

readln (A[k]);

for k:=1 to 10 do

writeln (A[k]);

end.

Двумерные массивы (матрицы) можно вводить по строкам или по столбцам.

Пример: Пусть требуется ввести массив А (3;4):

а а а а

а а а а

а а а а

Решение:

а) ввод и вывод по строкам:

program PR10;

var

a:array [1.. 3, 1.. 4] of integer;

i; j:integer;

begin

for i:=1 то 3

for j:=1 то 4

readln (a[i, j]);

for i:=1 то 3

for j:=1 то 4

writeln (a[i, j]);

end.

б) ввод по столбцам:

begin

for i:=1 то 4

for j:=1 то 3

readln (а[j, i]); {изменен порядок индексов}

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

Операции с массивом производятся только с отдельными элементами массива. С элементами массива можно делать все операции, которые разрешены для базового типа массива. Если массив числовой, то математические, если символьный или строковый, то, соответственно, операции с символьными или строковыми переменными.

Пример: Написать программу вычисления произведения положительных элементов одномерного массива целых чисел.

Решение:

program Pr11;

var

a: array [1..100] of integer;

p, n, i: integer;

begin

p: =1;

writeln ('введите размер массива n<=100');

readln (n);

writeln ('ввод элементов массива');

for i:=1 to n do

begin

writeln(‘ввести a[ ‘, i, ‘]= ‘]);

readln (a[i]);

end;

for i:=1 to n do

if a[i]>0 then p:= p * a[ i ];

writeln ('Произведение =', p);

readln;

end.

Двумерные массивы

Пример: Написать программу вычисления произведения положительных элементов второй строки двумерного массива целых чисел.

Решение:

program Pr12;

var

a:array [1.. 10, 1.. 10] of integer;

p, i, j, n, m: integer;

begin

writeln(‘ Введите n<=10, m<=10 ’);

readln (n,m);

writeln(‘ Введите элементы массива по строкам ’);

for i:=1 to n do

for j:=1 to m do

readln(a[i, j]);

p:=1;

for j:=1 to m do

if a[2, j]>0 then p:= p * a[2, j];

writeln(‘ Произведение элементов p=’, p);

readln;

end.

 







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.