Тест по теме «Линейный алгоритм»
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; BeginWriteln('введите двузначное число');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. Среди предложенных выражений выберите логические. (х=3) оr (х<>4)2*х+5х mod 2 =0х div 3х+у=10х+у(х+у>5) or (х-у>5)(х>3) and (х<=10)
Задание 2. Вычислите: t and (р mod 3=0) при t = true, р = 101010;(x*y<>0) and (у>х) при х = 2, у = 1;(x*y<>0) or (у>х) при х = 2, у = 1;f or (not(b)) при f = false, b = true.
Задание 3. Составьте условие для условного оператора в программе, которая выводит на экран приветствие в зависимости от времени суток. Пусть утро с 8 до 12 ч, день с 12 до 17 ч, вечер с 17 до 23 ч, ночь — все остальное время.Program primer;Var x:real;BeginWriteln (‘Который час?'); Read(x);If__________then writeln('Дoбpoe утро!');If__________then writeln('Добрый день!');If__________then writeln('Добрый вечер!');If__________then writeln('Доброй ночи!') else writeln ('введенное число выходит за рамки интервала [0,24]');End.
(х>=8) and (х<12); (х>=12) and (x<17);(х>=17) and (х<24);(х>0) and (х<8).
Задание 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:=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 x:=a+b else 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 begin x:=a+b; y:=2*a*b; end else begin x:=a—b; 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); (х>=12) and (x<17); (х>=17) and (х<24); (х>0) and (х<8).а) (0,6), (10,25); б) (0,0), (10,25); в) (-1,6), (10,25); г) (-1,6), (10,0);д) (-1,6), (10, 50).
Домашнее задание
Составить алгоритм нахождения меньшего из двух значений.Определить, является ли данное число четным или нечетным. Ответы:Program dzl;Var a, b, min: integer;BeginWriteln('ввeдитe два числа'); Readln(a,b);if a>b then min:=b else min:=a; Write('наименьшее число', min); End.