Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поступление на высшее / ИТ / Razdel_04_Informatsionnye_tekhnologii_Karpuk_2018.pptx
Скачиваний:
21
Добавлен:
04.01.2020
Размер:
462.52 Кб
Скачать

60.1. Итерационный цикл с постусловием. Формат записи оператора Repeat.

В итерационном цикле с постусловием Repeat условие продолжения цикла проверяется после каждого выполнения тела цикла.

Формат записи оператора Repeat: Repeat <тело_цикла >; Until <условие>;

Оператор Repeat сначала выполняет тело цикла, а затем проверяет результат логического условия. Если результат False, то производится возврат к очередному выполнению операторов тела цикла. Если результат True, то производится завершение цикла. Даже если тело цикла содержит более одного оператора, операторные скобки не требуются. В теле цикла обязательно должны изменяться параметры условия.

21

60.2. Итерационный цикл с постусловием. Примеры использования оператора Repeat.

Найти минимальное число, которое больше 200 и кратно 17. Var n: integer;

Begin n := 200; Repeat n := n + 1; Until (n mod 17 = 0);

Writeln(‘Искомое число равно ', n); End.

Вычислить значения функции y=sin(x) для x от 10 до 100 градусов с шагом 10 градусов.

Var x, y: real; Begin

x :=10; Repeat

y := sin(x*pi /180);

Writeln(‘Для x = ', x:3:0, ‘ функция y = ‘, y:6:3); x := x + 10;

Until

x > 100; 22 End.

61.1. Арифметический оператор цикла. Формат записи оператора For.

Арифметический оператор цикла используется, когда число повторений цикла известно или вычислено и записано в переменную. Форматы записи оператора For:

For <счетчик> := <начальное_значение> To <конечное_значение> Do <тело_цикла>;

For <счетчик> := <начальное_значение> Downto <конечное_значение> Do <тело_цикла>;

Счетчик – это переменная целого, символьного или логического типа. Начальные и конечные значения могут быть представлены значениями, константами и выражениями, возвращающими типы данных, совместимые с типом данных счетчика. Если между начальным и конечным выражением указано To, то на каждом шаге цикла значение счетчика будет увеличиваться на 1, поэтому для выполнения тела цикла хотя бы 1 раз начальное значение должно быть не больше конечного. Если указано Downto, то значение счетчика будет уменьшаться на 1, поэтому для выполнения тела цикла хотя бы 1 раз начальное значение должно быть не меньше конечного. Если тело цикла содержит более одного оператора, то оно заключается в операторные скобки. Переменную счетчика нельзя изменять в теле цикла. 23

61.2. Арифметический оператор цикла. Примеры использования оператора For.

Найти сумму первых n чисел натурального ряда: s := 0; For i := 1 To n Do s := s + i;

Найти сумму четных чисел от 1 до 100:

s := 0; For i := 1 To 100 Do If (i mod 2) = 0 s := s + i; {но лучше написать} s := 0; For i := 1 To 50 Do s := s + 2*i;

Найти сумму нечетных чисел от 1 до 100:

s := 0; For i := 1 To 100 Do If (i mod 2) <> 0 s := s + i; {но лучше написать} s := 0; For i := 1 To 50 Do s := s + (2*i – 1);

Найти произведение первых n чисел натурального ряда: p := 1; For i := 1 To n Do p := p*i;

Вычислить значения функции y=sin(x) для x от 10 до 100 градусов с шагом 10 градусов.

For i := 1 To 10 Do

Begin y := sin(10*i*pi /180);

Writeln(‘Для x = ', x:3:0, ‘ функция y = ‘, y:6:3);

End;

24

 

62.1. Структурированный тип данных – массив. Размерность массива.

Массив – это обозначаемая одним именем последовательность

однотипных элементов. Место каждого элемента в этой последовательности определяется его индексом. Массив может быть

одномерным и многомерным. Чтобы задать массив, используется зарезервированное слово Array, после которого следует указать тип индекса (индексов) компонент (в квадратных скобках) и далее после слова Of - тип самих компонент:

<имя_массива> = Array[<диапазон_индексов>] Of <тип_компонент>; Индексы задаются целыми или вещественными числами, могут быть отрицательными. Примеры:

var

Arr = Array[1..3] Of Real; {массив из 3 вещественных чисел}

Matrix = Array[1..3, 1..2] Of Integer; {двумерный массив целых чисел, состоящий из 3 строк и 2 столбцов} Доступ к компонентам массива осуществляется указанием имени

массива, за которым в квадратных скобках помещается значение индекса (индексов) компоненты. Каждый индекс компоненты может быть задан выражением соответствующего типа, например:25

Arr[2], Matrix[3, 2], Matrix[X, Y + 1]

62.2. Способы ввода и вывода

элементов

массива.

 

1. Значения элементов, которые не изменяются при работе программы (констант), можно задавать в разделе описаний. Например, массив из 8

простых чисел может быть задан так:

const A: Array[1..8] of integer = (2, 3, 5, 7, 11, 13, 17, 19);

2.Для присвоения значения элементу массива в программе указывают имя массива и индекс этого элемента, например A[4]:=7; Для работы с несколькими элементами используют циклы. В тех случаях, когда заранее известно количество элементов, используют цикл For.

3.Для ввода значений с клавиатуры используют стандартные процедуры Read и Readln. При использовании процедуры Read(A[i]) в строке ввода можно набрать значения нескольких или всех элементов массива, разделяя их пробелами. При использовании процедуры

Readln(A[i]) значения вводят по одному и после каждого нажимают Enter. 4. Для вывода используют процедуры Write и Writeln. Процедура Write

выводит элементы массива в строку. Выводимые значения необходимо отделять пробелами или иными символами (например, запятой, точкой с запятой), иначе все они будут напечатаны слитно. Для вывода значений элементов в столбец используют процедуру Writeln. 26

62.3. Пример ввода элементов массива.

62.4. Поиск элементов с заданными свойствами. Преобразование элементов массива.

Над элементами массива можно выполнять операции, допустимые для переменных соответствующего типа. Элементам типа integer

можно присваивать результат выполнения операций +, –, *, div, mod (участвовать в качестве операндов они могут и в операции / ). Для элементов типа real возможны операции +, –, *, /.

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

Пример. Заменить все четные значения элементов массива квадратами их номеров: If A[i] mod 2 = 0 Then A[i]:= sqr(i);

При обработке информации постоянно приходится сталкиваться с задачами поиска данных. Цель поиска заключается в нахождении значений, индексов и количества элементов массива, удовлетворяющих заданным условиям. В качестве простых условий поиска чаще всего используется сравнение значений элементов массива X[i] с заданным числом B (например, равенство X[i]=B или неравенства X[i]<B или

X[i]>=B).

28

62.5. Пример программы поиска элемента массива.

В массиве хранится рост 12 учащихся Составить программу, которая определяет, есть ли в группе хотя бы один учащийся ростом 172 см, и выводит его номер по списку.

Program Primer;

Const h: Array[1..12] Of integer = (160, 154, 170, 160, 172, 181, 170, 175, 152, 157, 155, 168);

Var i, k: integer; Begin

k:=0; {Начальное значение k}

For i:=1 to 12 Do {Просмотр массива} If h[i] = 172 Then k:=i;

If k>0 Then Writeln('Номер учащегося по списку = ', k) {Вывод} Else Writeln('Учащегося с таким ростом нет');

End.

29

62.6. Пример программы поиска максимального элемента массива.

Составить программу, которая формирует массив из 7 случайных целых чисел от 0 до 50 и осуществляет поиск максимального элемента.

Program Primer;

Var A: Array[1..7] Of integer; max, k, i: integer; Begin

For i:=1 to 7 Do A[i] := random(51); {Формирование массива} max:=A[1]; k:=1; {Начальные значения max и k}

For i:=2 To 7 Do {Просмотр массива}

if A[i]>max then {Условие поиска максимума} Begin

max:=A[i]; k:=i; {Присвоение значений max и k} End;

Writeln('Максимальный элемент A[', k, '] = ', max); {Вывод максимума}

For i:=1 To 7 Do Write(a[i]:4); {Вывод всех чисел}

 

End.

30