Тест по теме «Линейный алгоритм»
1.Определите значение целочисленной переменной а после выполнения фрагмента алгоритма. а:=247; b:=(a div 100)*10+9; a:=(10*b-a) mod 10; Примечание. Операции div и mod вычисляют результат деления нацело первого аргумента на второй и остаток от деления соответственно. а) 3; б) 454; в) 2; г) 4.
2.Служебное слово var в программе на языке Паскаль фиксирует начало раздела программы, содержащего: а)описание переменных; б)описание меток; в)описание констант; г)описание сложных типов данных.
3. Переменная у вещественного типа, а n целого типа. Выберите корректное использование оператора присваивания. а) у:=n+1; б) n:=у-1; в) n:=4.0; г) y:=trunk(y).
4. Укажите значения для переменных х и у после выполнения операторов х:=2; у:=5; х:=у; у:=х. а) 2, 2; б) 5, 2; в) 5, 5; г) 2, 5;
5. Какую задачу решает данная программа? Program primer; Vаr а, b, с: integer; Begin Writeln('введите двузначное число'); Readln(a); b:=a div l0; c:=a mod l0; Write (c*10+b); End. а)находит сумму цифр числа; б)вычисляет целую часть и остаток от деления числа на 10; в)меняет цифры числа местами; г)находит цифры числа, а на экран выводит само число.
Ответы: 1 а; 2а; За; 4в; 5в.
При решении задач часто возникают ситуации, когда на вопрос «что дальше делать» мы даем ответ в зависимости от выполнения некоторого условия, например находим решение линейного уравнения ах = b, если коэффициент а не нулевой. В таких случаях используется конструкция ветвления, реализуемая в Паскале условным оператором.
В отличие от линейных алгоритмов, в которых команды выполняются одна за другой, конструкция ветвления включает в себя проверку условия. В качестве условия такого оператора используется значение логического выражения. Существуют два вида условного оператора:
IF В THEN S1 - если выражение В - TRUE (истина), то выполняется выражение, стоящее после THEN.
IF В THEN S1 ELSE S2 - если выражение В - TRUE (истина), то выполняется выражение, стоящее после THEN, иначе, после ELSE.
В выражение булевского типа; SI, S2 отдельные операторы или операторы, сгруппированные при помощи операторных скобок BEGIN END. Перед Else после End «;» не ставится.
S1 и S2, в свою очередь, тоже могут быть условными операторами. При этом каждому ELSE соответствует предыдущий THEN.
Практическая работа
Задание 1. Среди предложенных выражений выберите логические. 1.(х=3) оr (х4) 2.2*х+5 3.х mod 2 =0 4.х div 3 5.х+у=10 6.х+у 7.(х+у>5) or (х-у>5) 8.(х>3) and (х
Задание 2. Вычислите: 1.t and (р mod 3=0) при t = true, р = ; 2.(x*y0) and (у>х) при х = 2, у = 1; 3.(x*y0) or (у>х) при х = 2, у = 1; 4.f or (not(b)) при f = false, b = true.
Задание 3. Составьте условие для условного оператора в программе, которая выводит на экран приветствие в зависимости от времени суток. Пусть утро с 8 до 12 ч, день с 12 до 17 ч, вечер с 17 до 23 ч, ночь все остальное время. Program primer; Var x:real; Begin Writeln (Который час?'); Read(x); If__________then writeln('Дoбpoe утро!'); If__________then writeln('Добрый день!'); If__________then writeln('Добрый вечер!'); If__________then writeln('Доброй ночи!') else writeln ('введенное число выходит за рамки интервала [0,24]'); End.
(х>=8) and (х=12) and (x=17) and (х0) and (х
Задание 4. Какие значения примут переменные х и у в результате выполнения следующих фрагментов? а) Read (a,b); х:=0; у:=0; if a=b then x:=a+b; y:=a*b;
Ответ: при a=2, b=3, x=____, y=_____; при a=5, b=5, x=_____, y=____. б) Read(a,b); x:=0; y:=0; if a=b then begin x:=a+b; y:=a*b; end;
Ответ: при a=2, b=3, x=_____, y= _____; при a=5, b=5, x=______, y=___________. в) Read(a,b); x:=0; y:=0; if a=b then x:=a+b; else x:=ab; y:=a*b;
Ответ: при a=2, b=3, x=_____, y=_____; при a=5, b=5, x=_______, y=_________. г) Read(a,b); x:=0; y:=0; if a=b then x:=a+b else begin x:=ab; y:=a*b; end;
Ответ: при a=2, b=3, x=________, y=______; при a=5, b=5, x=______________, y=______. д) Read(a,b); x:=0; y:=0; if a=b then begin x:=a+b; y:=2*a*b; end else begin x:=ab; y:=a*b; end;
Ответ: при a=2, b=3, x=, y=; при a=5, b=5, x=, y=.
Задание 5. Составьте программу, заменяющую меньшее из двух данных чисел на среднее арифметическое этих чисел, а большее из двух данных чисел на среднее геометрическое этих чисел.
Ответы: 1,3,5,7,8. a)True; б) false; в) true; г) false. (х>=8) and (х =12) and (x =17) and (х 0) and (х
Домашнее задание
Составить алгоритм нахождения меньшего из двух значений. Определить, является ли данное число четным или нечетным. Ответы: Program dzl; Var a, b, min: integer; Begin Writeln('ввeдитe два числа'); Readln(a,b); if a>b then min:=b else min:=a; Write('наименьшее число', min); End.