- •Информационные
- •Раздел 4
- •48. Алгоритм. Типы алгоритмов: линейный, разветвляющийся, циклический.
- •49. Способы записи алгоритма: словесный, блок- схема, программа.
- •50. Составление алгоритмов. Основные алгоритмические конструкции.
- •51.1. Программа. Общая структура программы
- •51.2. Программа. Общая структура программы на языке Pascal.
- •52.1. Типы данных в языке Pascal.
- •52.2. Типы данных в языке Pascal.
- •53.1. Основные операции языка Pascal.
- •53.2. Основные операции языка Pascal. Приоритет операций.
- •54.1. Стандартные арифметические функции и выражения.
- •54.2. Стандартные арифметические функции и выражения.
- •55. Процедуры ввода и вывода данных.
- •56. Основные операторы (присваивания, условный, выбора, цикла, перехода).
- •57.Организация ветвлений в программе. Формы записи оператора If.
- •58.1. Оператор выбора. Формы записи оператора Case … Of.
- •58.2. Оператор выбора.
- •59.1.Итерационный цикл с предусловием. Формат записи оператора While.
- •59.2. Итерационный цикл с предусловием. Примеры использования оператора While.
- •60.1. Итерационный цикл с постусловием. Формат записи оператора Repeat.
- •60.2. Итерационный цикл с постусловием. Примеры использования оператора Repeat.
- •61.1. Арифметический оператор цикла. Формат записи оператора For.
- •61.2. Арифметический оператор цикла. Примеры использования оператора For.
- •62.1. Структурированный тип данных – массив. Размерность массива.
- •62.2. Способы ввода и вывода
- •62.3. Пример ввода элементов массива.
- •62.4. Поиск элементов с заданными свойствами. Преобразование элементов массива.
- •62.5. Пример программы поиска элемента массива.
- •62.6. Пример программы поиска максимального элемента массива.
- •63. Типы элементов массива.
- •64. Символьный тип данных в языке Pascal.
- •65.Описание символьных переменных. Функции,
- •66. Строковый тип данных в языке Pascal. Максимальная длина строковой переменной.
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 |
|