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

Операторы цикла могут быть вложены один в другой:

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

Изменять значение переменной (т.е. присваивать ей какие-либо значения) в теле цикла нельзя.

Общая форма записи оператора цикла FOR

a)FORимя переменной:= начальное значениеTOконечное значениеDO

BEGIN

Тело цикла;

END;

б) FORимя переменной:= конечное значениеDOWNTOначальное значениеDO

BEGIN

Тело цикла;

END;

For i:=0 to 5 do оператор;

For i:=5 downto 1 do оператор;

Если в цикле необходимо выполнить не один оператор, а несколько, то применяют beginend

For i:=0 to 5 do begin

Оператор1;

Оператор2;

End;

  1. Вычислить значение функции y=x+2; для х от 1 до 10.

Var

X,y:integer;

begin

For x:=1 to 10 do begin

Y:=x+2;

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

End;

End.

  1. Найти сумму всех двузначных чисел.

Var

X,S:integer;

Begin

S:=0;

For x:=10 to 99 do S:=s+x;

Writeln(‘x=’,x,’s=’,s)

End

  1. Найти сумму всех двузначных чисел кратных 3.

Var

X,S:integer;

Begin

S:=0;

For x:=10 to 99 do If x mod 3=0 then S:=s+x;

Writeln(‘x=’,x,’s=’,s)

End.

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

Var

X,S,D:integer;

Begin

S:=0;

Write(‘введите число D’);

Read(d);

For x:=10 to 99 do If x >d then S:=s+x;

Writeln(‘x=’,x,’s=’,s)

End

  1. Вывести таблицу стоимости от 1 до 10 булочек, если одна булочка стоит 1,35 руб.

Var

X:integer;

D,S:real;

Begin

d:=1,35;

For x:=1 to 10 do begin

S:=d*x;

Writeln(‘x=’,x,’s=’,s)

End;

End.

Отличие цикла for от while и repeat.

FOR

WHILE, REPEAT

1.Тип переменных:

integer,char

Любые

2. Шаг = 1 или -1

Любой

3. Количество повторений цикла может быть только строго определено.

Неизвестно

Массивы

Одномерные массивы

1йСпособ описания массива.

VAR имя массива: ARRAY [нач. знач. интервала .. конеч.знач. интер.] OF базовый тип;

Пример:

VAR A: ARRAY[1..10] OF INTEGER;

2йСпособ описания массива.

TYPE имя типа=ARRAY [нач. знач. интервала .. конеч.знач. интер.] OF базовый тип;

VAR имя массива: имя типа;

Пример:

TYPE MAS=ARRAY[1..10] OF REAL;

VAR A: MAS;

Ввод и вывод одномерного массива.

FOR I:=1 TO 10 DO

BEGIN

WRITE ('A[ ', I, ' ]=');

READLN (A[ I ]);

END;

Заполнение одномерного массива случайными числами:

BEGIN RANDOMIZE; {инициализация счетчика случайных чисел}

FOR I:=1 TO 10 DOA[ I ]:= RANDOM (10); {целые числа}

END.

Вывод элементов одномерного массива.

FOR I:=1 TO 10 DO WRITE (A[ I ], ' ');

Типовые алгоритмы обработки массивов.

Нахождение минимального (максимального) элемента массива.

MIN:= A[ 1 ]; {MAX:=A[ 1 ]}

FOR I:=2 TO 5 DO

IF MIN > A[ I ] {MAX < A[ I ]} THEN MIN:= A[ I ]; {MAX:= A[ I ]}

Массив – это упорядоченный набор однотипных элементов.

I,J

1

2

3

4

5

1

6

0

5

9

4

2

8

9

1

0

3

3

3

6

2

9

4

  1. В разделе описания переменных двумерный массив описывается следующим образом:

Var

A, Mas: array [1..3,1..5] of integer;

  1. Заполнить массив можно различными способами:

А) с клавиатуры

for i:=1 to 5 do

for J:=1 to 5 do read(a[i,j]);

B) случайными числами из интервала [a,b]. Например, числами от 10 до 39.

Randomize;

For i:=1 to 5 do

for J:=1 to 5 do a[i,j]:=random (30)+10;

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

For i:=1 to 5 do

for J:=1 to 5 do a[i,j]:=2*sqrt(i*j);

  1. Вывод элементов массива на экран.

For i:=1 to 5 do begin

for J:=1 to 5 do write(a[i,j]:2);

writeln;

end;

Дан массив размерностью nxm., заполненный случайными числами из интервала от –5 до 25. Найти количество элементов массива больших 20. Найти сумму элементов меньших 10.

Var

I,n,k,s:integer;

A: array [1..100,1..100] of integer;

Begin

Writeln(‘введи размерность массива’);readln(n,m);

Randomize;

For i:=1 to n do

for J:=1 to m do a[i,j]:=random (30)-5;

For i:=1 to n do begin

for J:=1 to m do write(a[i,j]:2);

writeln;

end;

S:=0;k:=0;

For i:=1 to n do

For j:=1 to m do begin

If a[i,j]<10 then s:=s+a[i];

If a[i,j]>20 then k:=k+1;

End;

Writeln(‘сумма =’,s:2)

Writeln(‘количество =’,k:2)

End.

Найти минимальный (максимальный) элемент двумерного массива.

MIN:= A[ 1, 1 ]; {MAX:=A[ 1, 1 ]} STR:=1; STL:=1;

FOR I:=1 TO N DO

FOR J:=1 TO M DO IF MIN > A[ I, J ] {MAX < A[ I, J ]} THEN

BEGIN

MIN:= A[ I, J ]; STR:=I; STL:=J;

{MAX:= A[ I, J ]; STR:=I; STL:=J}

Вычислить сумму элементов главной диагонали квадратной матрицы.

SUM:=0;

FOR I:=1 TO N DO SUM:= SUM + A[ I, J ];

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]