Какие операции можно применять к переменным целого типа?
Можно ли применять операцию деления (/) к переменным целого типа? Почему?
Что получится в результате выполнения операторов:
Write('AB':3); Writeln(5*2:3);
Writeln(5:6,8:5); Writeln('КОНЕЦ');
Writeln('РЕЗУЛЬТАТ',5*3,3).
Что такое If, Then, Else?
Как выглядит полный условный оператор? Как он работает?
Как выглядит неполный условный оператор? Как он работает?
Записать на языке Паскаль следующие выражения:
если число является четным, то вывести ''ДА'', иначе вывести ''НЕТ''
если число делится на 5, то вывести целую часть от деления.
Записать на языке Паскаль следующую формулу:
x = { -5, если x<-5, x, если -5<=x<=0, 2x, если 0<=x<3, 6, если x>=3
Возможно ли сделать это без вложенных операторов условия? Почему?
Цикл с параметром (разбор на примере)
Примечание: К уроку надо подготовить таблицу с конструкцией оператора цикла с параметром.
Оператор цикла с параметром применяют тогда, когда известно число повторений одного и того же действия.
Начальное и конечное значение параметра цикла могут быть представлены константами, переменными или арифметическими выражениями.
Рассмотрим, как выполняется оператор цикла с параметром вида For <параметр>:=A To B Do <тело цикла>. Сначала вычисляются значения выражений A и B. Если A<=B, то <параметр> последовательно принимает значения, равные A, A+1,..., B-1, B, и для каждого из этих значений выполняется <тело цикла>. Если A>B, то <тело цикла> не будет выполнен ни разу и выполнение цикла с параметром сразу же закончится.
Оператор цикла с параметром For <параметр>:=A DownTo B Do <тело цикла> выполняется аналогичным образом, но значение <параметра> изменяется с шагом, равным -1.
Если <тело цикла> состоит из несколько операторов, то операторы тела цикла заключаются в операторные скобки Begin-End.
Пример
Составить программу вычисления значения выражения y = ((...(202 - 192)2 - 182)2 -...- 12)2.
Решение
В данном случае целесообразно организовать цикл с параметром, изменяющимся от 20 до 1, то есть шаг изменения параметра равен -1.
Обозначим: y - очередное значение квадрата числа; n - параметр цикла.
Учитывая это, составим программу:
Program Example_5; Var y, n: Integer; Begin y:=sqr(20); For n:19 Downto 1 Do y:=sqr(y-sqr(n)); Writeln('Значение выражения равно'); Writeln(y); End.
Пример
Из чисел от 10 до 99 вывести те, сумма цифр которых равна n(0<n<=18).
Вопросы для обсуждения
Каким действием можно выделить последнюю цифру числа?
Каким действием можно выделить первую цифру числа?
Обозначим: k- это просматриваемое число; p1 - это первая цифра числа k; p2 - это вторая цифра числа k; s - это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма p1 и p2 будет равна s.
Program Exampl_6; Var k,n,p1,p2,s : Integer; Begin Writeln('введите целое число '); Readln(n); {вводим целое число} For k:=10 To 99 Do {для(For) К от 10 до(To) 99 делать(Do)} Begin p1:=k Div 10; {выделяем первую цифру} p2:=k Mod 10; {выделяем вторую цифру} s:=p1+p2; {находим сумму цифр} If s=n Then Writeln(k); {если сумма равна n, то выводим K} End; Readln; End.
Пример
Найти все двузначные числа, в которых есть цифра N или само число делится на N.
Решение
Если двузначное число соответствует условию задачи, то для него выполняется хотя бы одно из трех условий: первая цифра равна n (p1 = n), или вторая цифра равна n (p2 = n), или само число делится на n (k mod n = 0).