1.3. Переменные: тип, имя, значение
Лабораторная работа № 4. Шаг 2. Задача 1
Лабораторная работа № 4. Шаг 2. Задача 2
Лабораторная работа № 4. Шаг 3. Тест
Шаг 3. Тест
1. (Из материалов ГИА.) Требовалось написать программу, в которой нужно было проверить, лежит ли число x на числовой оси между числами a и b («между» понимается в строгом смысле, т. е. случай x = a или x = b недопустим). Числа x, a, b являются натуральными, и известно, что a отлично от b (но неизвестно: a > b или b > a). Входная информация вводится с клавиатуры, а на выходе должно быть сообщение вида «x между a и b» (если это действительно так), в противном случае никакой выходной информации не выдается.
Программист торопился и написал программу неправильно:
var a, b, x: integer;
p: integer;
begin
readln(a, b, x);
if (a>x) and (x>b) then
writeln ('x между a, b');
end.
Последовательно выполните три задания.
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу. _________
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому укажите любой способ доработки исходной программы.)
Доработанная программа:
3) Укажите, как можно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций and и or.
Доработанная программа без логических операций:
2. (Из материалов ГИА.) Требовалось написать программу, при выполнении которой с клавиатуры считывается координата точки на прямой (x – действительное число) и определяется принадлежность этой точки одному из выделенных отрезков В или D (включая границы):
Программист торопился и написал программу неправильно:
begin
readln(x);
if x>=-3 then
if x<=9 then
if x>1 then
write('Не принадлежит')
else
write('Принадлежит')
end.
Последовательно выполните два задания:
1) Заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D и E). Границы (точки –3, 1, 5 и 9) принадлежат заштрихованным областям (B и D соответственно).
В столбцах условий укажите «Да», если условие выполняется; «Нет», если условие не выполняется; «—» (прочерк), если условие не будет проверяться; «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области.
В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, введите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.».
В последнем столбце укажите «Да» или «Нет».
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
Доработанная программа:
3. (Из материалов ГИА.) Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы):
Программист торопился и написал программу неправильно:
var x, y: real;
begin
readln(x, y);
if x*x+y*y>=4 then
if x>=–2 then
if y<=–x then
write('Принадлежит')
else
write('Не принадлежит')
end.
Последовательно выполните два задания:
1) Приведите пример таких чисел x, y, при которых программа неверно решает поставленную задачу. _________
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому укажите любой способ доработки исходной программы.)
Доработанная программа:
Логические операции в языках программирования удобно использовать для:
__________________________
___________________________
___________________________
___________________________
___________________________
В каких случаях, по вашему мнению, удобнее обойтись без логических операций?
__________________________
___________________________
___________________________
___________________________
___________________________