- •Паскаль.
- •Интегрированная среда программирования (ис).
- •Основные особенности ис Паскаля:
- •I. Печать целых чисел.
- •II. Печать дробных чисел.
- •Промежуточная переменная.
- •Порядок выполнения оператора присваивания.
- •Случайные числа.
- •(По вариантам)
- •(По вариантам).
- •Порядок выполнения цикла Repeat
- •Особенности цикла Repeat
- •Порядок выполнения цикла While.
- •Особенности цикла While.
- •Вопросы
Порядок выполнения цикла While.
Проверяется условие: если оно истинно, то выполняются операторы тела цикла. Если ложно, то происходит выход из цикла.
Особенности цикла While.
Число проходов цикла заранее неизвестно, минимальное количество – 0.
Выход из цикла, если условие ложно.
Условие может быть простым или сложным.
Тело цикла состоит из одного оператора. Если по логике решения задачи нужно в цикле выполнить несколько операторов, то они заключаются в операторные скобки.
В теле цикла обязательно должно содержаться изменение переменной, проверяемой в условии,
ЗАДАЧА Ввести с клавиатуры несколько дробных чисел, признак окончания ввода – число 1000. Найти и напечатать целую часть каждого числа.
Решение.
Program Trunc_While;
Const End_While =1000;
Var chislo: real;
Tr: integer;
Begin
Write (‘Введи число ’);
Readln (chislo); {в переменную chislo вводится с клавиатуры значение}
While chislo <> End_While do
begin
Writeln (‘Целая часть = ’, Trunc (chislo));
Write (‘Введи число ’);
Readln (chislo)
End;
Readln
End.
САМОСТОЯТЕЛЬНО Изменить программу так, чтобы она находила:
а) дробную часть чисел;
б) произведение чисел, меньших 22;
в) сумму чисел, которые попадают в промежуток [10, 50].
Д/З Изменить программу так, чтобы она находила среднее арифметическое введенных чисел.
Урок №20. ЧИСЛА ФИБОНАЧЧИ
Рассмотрим последовательность чисел: 1, 1, 2, 3, 5, 8, … В этом ряду каждое новое число – это сумма двух предыдущих, а первое и второе равны 1. Последовательность, составленная таким образом, называется рядом Фибоначчи, а каждое из чисел – числом Фибоначчи.
Составим цикл для нахождения N-ого числа этой последовательности:
x0 := 1;
x1 := 1;
k := 3
While k <= n do
Begin
x := x0 + x1;
x0 := x1;
x1 := x;
k := k + 1
end;
Writeln (n, ‘-ое число Фибоначчи = ‘, x);
САМОСТОЯТЕЛЬНО.
Найти номер первого числа Фибоначчи, большего 100.
Найти количество первых чисел Фибоначчи, для которого сумма больше 100.
Найти произведение первых К чисел Фибоначчи для К, введённого с клавиатуры.
Д/З Сколько чисел Фибоначчи потребуется для нахождения произведения, большего 1000?
Урок 21. Алгоритм Евклида.
Алгоритм Евклида служит для нахождения НОД двух чисел. Основная идея алгоритма: если х>у и r - остаток от деления х на у, то НОД(х,у) = НОД(у,r). Это равенство можно продолжать до тех пор, пока остаток не станет равен 0.
На Паскале этот алгоритм можно записать без использования переменной r:
While (х>0) and (у>0) do
if х>у then х:=х mod y
else y:=y mod х;
nod:=х+у;
Так как на определенном этапе выполнения цикла остаток от деления станет равен 0, то при выходе из цикла одна из переменных (либо х, либо у) получит значение 0, а в другой переменной будет НОД.
САМОСТОЯТЕЛЬНО:
1) Найти НОД (х,у)
2) Найти НОД (х,у,z)
3) Найти НОК (х,у) = х*у / НОД (х,у) Комментарий: перед циклом следует
запомнить значения х и у в других переменных, потому что после выхода из
цикла переменные х и у будут испорчены.
Д/З. Определить, являются ли числа х и у, введенные с клавиатуры, взаимно
простыми. (Взаимно простыми называются числа, у которых НОД = 1).
Урок №22 ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ.
Оператор цикла применяется в тех случаях, когда по условию задачи надо многократно выполнять одинаковые действия, причем число повторений известно заранее. Общий вид оператора цикла:
For <параметр> := <начальное значение> to <конечное значение> do <операторы тела цикла>;
Параметр цикла - это имя переменной дискретного типа, управляющей количеством повторений (считает, сколько раз будут выполнены операторы тела цикла). Параметр цикла пробегает все значения от начального до конечного, каждый раз автоматически увеличиваясь на один шаг.
Начальное и конечное значение могут быть числами, переменными или выражениями. Они вычисляются только однажды при входе в цикл, эти значения запоминаются и не изменяются.
ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАТОРА FOR.
1. Вычисляются начальное и конечное значение.
2. Параметру цикла присваивается начальное значение, если оно не больше конечного.
3. Выполняются операторы цикла.
4. Значение параметра цикла увеличивается на один шаг.
5. Проверяется условие: если значение параметра цикла не больше конечного, то происходит переход к п.3, иначе - конец цикла и продолжение программы.
ПРАВИЛА ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА ЦИКЛА.
1. Запрещается вход в цикл, минуя оператор FOR, то eсть передача извне управления на операторы тела цикла недопустима.
2. В операторе FOR можно задавать и отрицательный шаг, тогда общий вид оператора цикла будет таким:
For <параметр> := <начальное значение> downto <конечное значение> do <операторы тела цикла>;
3. Переопределение значения параметра цикла в теле цикла разрешено, но этим следует пользоваться осторожно, т. к. это может привести к ошибкам.
ЗАДАЧА Ввести с клавиатуры a и b. Найти сумму целых чисел, принадлежащих отрезку [a, b].
Решение
Program Summa_for;
Var Summa, x, a, b: integer; х-число между а и b
begin
Write ('Введи a и b ');
Readl (a, b);
Summa := 0;
For x:=a to b do begin
Write ('Введи число ');
Readln (x);
Summa := Summa + x end;
Writeln ('сумма=', Summa);
Readln end.
САМОСТОЯТЕЛЬНО:
1. Ввести с клавиатуры 7 чисел, найти их произведение.
Д/З Задать случайным образом 12 чисел. Найти их среднее арифметическое.
Урок №23 РЕШЕНИЕ ЗАДАЧ.
1. Задать случайным образом 10 чисел от 22 до 135. Напечатать те из них, которые больше 100.
2. Задать с клавиатуры А и N. Напечатать значение А в степени N.
3. Задать с клавиатуры N. Напечатать значение N! = 1*2*3*4*...*N.
4. Напечатать большие русские буквы в строчку через 2 пробела.
5. Напечатать маленькие русские буквы в 2 строчки: от "я" до "р", от "п" до
"а".
6. Ввести с клавиатуры 5 значений для Х. Вычислить и напечатать для каждого из них значение Y по правилу:
а) б)
3*X, если X<=-9 X/10, если X<=-5
Y = X-8, если -9<X<9 Y = X*10, если -9<X<9
3*X, если X>=9 X/10, если X>=9
Д/З Напечатать маленькие английские буквы в столбик от "z" до "а".
Урок №24 ОДНОМЕРНЫЕ МАССИВЫ.
Важнейшим средством организации и обработки данных в программах являются массивы.
Массивы - это фиксированное количество упорядоченных однотипных переменных, обозначенных одним и тем же именем, например: A, T. Отдельные переменные в массиве называются элементами. Они располагаются в памяти ЭВМ в определенном порядке. Место каждого элемента массива определяется его номером (индексом), по которому можно обратиться к значению переменной: A[1], D[4], Ms[6], Tt[3]. Индексом массива может быть не толькo число, но и переменная, и числовое или буквенное выражение дискретного типа.
В качестве примера можно привести следующие виды массивов:
а) массив - список учеников вашего класса: индексом служит порядковый номер, элементы массива - фамилии учеников;
б) оценки по информатике каждого ученика - массив, в котором индексом служат порядковые номера уроков, а элементы массива - оценки.
Массивы характеризуются типом переменных, размерностью и размером. Тип элементов - арифметический или символьный. Размерность массива - число индексов, определяющих один элемент массива. Если индекс один, то массив - одномерный. Размер - это количество элементов в массиве.
При работе с массивами нужно придерживаться следующей схемы:
1) объявление массива;
2) задание начальных значений элементам массива;
3) работа с элементами массива;
4) печать результатов.
Рассмотрим подробнее каждый шаг.
1. ОБЪЯВЛЕНИЕ. Каждый массив, используемый в программе, должен быть заранее объявлен. Пример:
Const n=5;
Var а: array [1..n] of real; - массив a из 5 дробных чисел.
Const n=12;
Var c: array [1..n] of char; - массив c из 12 символов.
2. ЗАДАНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ. Для присваивания значений элементам массива очень удобно использовать цикл. Пусть объявлен массив В, состоящий из 5 элементов типа integer. Тогда значения могут быть заданы 2 способами:
а) с клавиатуры: For K:=1 to 5 do begin
Write ('Введи число ');
Readln (B[k]) end;
б) с помощью генератора случайных чисел:
For K:=1 to 5 do begin
B[k] := Random (x1 - x0) + x0;
Write ('B[', k, ']=', B[k]) end;
3. РАБОТА С ЭЛЕМЕНТАМИ МАССИВА. В основной части программы решается поставленная задача. Все элементы массива перебираются в цикле, где происходит их сравнение, или изменение, или поиск большего ( меньшего ) элемента, или вычисление суммы, или другие заданные операции.
4. ПЕЧАТЬ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ - заключительная часть программы. Если требовалось изменить элементы массива, то нужно напечатать их новые значения. Элементы одномерного массива можно распечатать в строчку или в столбик. Это делается в цикле. Рассмотрим вывод значений на примере массива В из 5 элементов:
а) в столбик - б) в строчку -
For K:=1 to 5 do For K:=1 to 5 do
Writeln ('B[', k, ']=', B[k]); Write (B[k]:6);
ЗАМЕЧАНИЕ. Если элементы массива задаются не с клавиатуры, то желательно распечатать их значения, прежде чем начать работать с ними. Для этого в цикле, где они задаются ( см. п. 1 ), надо вставить оператор печати.
САМОСТОЯТЕЛЬНО: Задать случайным образом 9 элементов массива - целые числа
- и напечатать их в строчку.
Д/З: Выучить конспект.
