§ 38. Программирование диалога с компьютером.

Выполните тест: Оператор ввода, вывода и присваивания.5 больше 85%
4 от 75% до 85%,
3 от 50% до 75% 

Просмотреть презентацию и текст учебника и ответить на вопросы в тетради:

Презентации:
1) 38dialog.swf

Вопросы:

1) Записать в тетрадь программу NANNY.
2) Просмотрите презентацию до конца.
3) Запустите wineC\soft9kl\PascalAlgo\PascalAlgo.exe
        Наберите программу NANNY.
4) Проверьте правильность работы  данной  программы.
         Приведите пример исходных данных для проверки правильности работы программы.

Практическое задание №38

Тема: Ветвления на Паскале.
Программирование диалога с компьютером

Задание: решите задания из любого уровня сложности и наберите баллы при решении.

Критерии оценки:     8-10 баллов оценка 3,
                                        11-15 баллов оценка 4,
                                        16-25 баллов оценка 5

1 уровень сложности (1 б.)

1. Дано  целое число А. Если значение А > 0, то необходимо увеличить его  на единицу. Написать программу для решения этой задачи. Программа должна иметь дружественный интерфейс
Протестировать программу для A=5, A=-4, A=0.

Пример решения:
Program p38na3_1;
var
   a :integer;
Begin
  write('Введите переменную A=');
  read(a);
  if a >0 then a:=a+1;
  writeln('A = ',a);
end.

2. Дано целое число А. Если значение А < 0, то необходимо удвоить его. Написать программу для решения этой задачи. Программа должна иметь дружественный интерфейс.
Протестировать программу для A=6, A=-10, A=0.

Пример решения:(замените ??? нужными символами)
Program p38na3_2;
var
   a :integer;
Begin
  write('Введите переменную A=');
  read(a);
  if ??? then a:=???;
  writeln('A = ',a);
end.

3. Дано целое число А. Если значение А <> 0, то необходимо уменьшить его на 4. Написать программу для решения этой задачи. Программа должна иметь дружественный интерфейс.
Протестировать программу для A=2, A=-1, A=0.

4. Дано целое число А. Если значение А > 0, то необходимо увеличить его  на единицу, иначе уменьшить на 1. Написать программу для решения этой задачи. Программа должна иметь дружественный интерфейс.
Протестировать программу для A=3, A=0, A=-12.

5. Дано целое число А. Если значение А = 0, то необходимо увеличить его  на 3, иначе присвоить А значение равное 0. Написать программу для решения этой задачи. Программа должна иметь дружественный интерфейс.
Протестировать программу для A=0, A=-1, A=8.

6.  Даны два действительных числа X и Y. Если X>Y, то вычислить произведение этих чисел, иначе их сумму. Программа должна иметь дружественный интерфейс.
Протестировать программу на трёх различных тестах X>Y, X=Y и X<Y.

2 уровень сложности  (3 б.)

1. Даны два действительных числа X и Y, не равные друг другу. Заменить меньшее из этих чисел половиной их суммы, а большее – их удвоенным произведением. Программа должна иметь дружественный интерфейс.

2. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 1)  и «Не принадлежит» в противном случае.
Программа должна иметь дружественный интерфейс.
Протестировать программу для точек:
(1.5,2), (0,0), (-1.5, 1),  (1,-1.2), (-2,-1).

39pic.jpg Рис.1 

Пример решение:
Program p38na4_2;
var
   x,y :real;
Begin
  write('Введите X:');read(x);
  write('Введите Y:');read(y);
  if (x>0) and (y>0) then
  write('Принадлежит')
  else write('Не принадлежит');
end.

3. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 2)  и «Не принадлежит» в противном случае. Программа должна иметь дружественный интерфейс.
Протестировать программу для точек (2.5, 2), (1,1), (0,0), (1,0), (2,-1).

39pic1.jpgРис.2

4. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 3)  и «Не принадлежит» в противном случае. Программа должна иметь дружественный интерфейс.
Протестировать программу для точек (0,0.8), (0,0), (-1.5,1), (1,1.5),(-2,-1).

39pic2.jpgРис.3

5. Составить на Паскале программу определения минимума из трёх чисел без использования логических операций. Программа должна иметь дружественный интерфейс (ввод данных осуществляться в режиме диалога).
Протестировать программу на следующих исходных данных:
а) 2    5    1
б) 0   -2    8
в) -4   5    10

6. Разработать программу для подсчета количества отрицательных чисел среди целых чисел a, b, c. Программа должна иметь дружественный интерфейс. 
Протестировать программу для всех возможных случаев (когда количество отрицательных чисел равно 0, 1, 2 и 3).

3 уровень сложности (6 б.)

1. Составить на Паскале программу, которая по введённому номеру месяца выводит название времени года. При написании программы использовать логические операции. При неверном вводе месяца должно выдаваться сообщение об ошибке ввода и программа должна прекращать свою работу. Программа должна иметь дружественный интерфейс.
Протестировать программу на всех целых числах от 0 до 13.

2. Треугольник задан длинами сторон А, В, С. Написать программу, определяющую, существует ли данный треугольник. Для решения этой задачи использовать сложные логические условия. Программа должна иметь дружественный интерфейс.
Протестировать программу для следующих исходных данных:
а) A=3, B=4, C=5
б) A=1, B=1, C=1
в) A=0, B=4, C=5
г) A=-3, B=6, C=5
д) A=2, B=1, C=8

3. Разработать программу для отыскания  max(min(a,b), min(c,d)),  не используя сложные логические условия и вложенные ветвления. Числа a,b,c,d - целые. Программа должна иметь дружественный интерфейс.
Протестировать программу для следующих исходных данных:
а) a=4 b=5 c=6 d=9
б) a=2 b=1 c=6 d=9
в) a=2 b=1 c=8 d=4
г) a=12 b=1 c=6 d=9

4. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 4)  и «Не принадлежит» в противном случае. Программа должна иметь дружественный интерфейс.
Протестировать программу для точек
(0,0), (1,0), (1.5,1), (-1,1.5), (-2,-1), (2,-1), (1,-1), (-1,1).

39pic3.jpg   Рис. 4

5. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 5)  и «Не принадлежит» в противном случае. Программа должна иметь дружественный интерфейс.
Протестировать программу для точек
(0,0), (1.5,1), (2,1), (1,-1), (-0.5,-0.2), (-2,-1),  (-1,-2), (-1,1), (-3, 1).

39pic4.jpg  Рис.5

6. Точка А задана координатами X,Y. Написать программу, которая выводит слово «Принадлежит», если точка принадлежит  заштрихованной области (см. рисунок 6)  и «Не принадлежит» в противном случае. Программа должна иметь дружественный интерфейс.
Протестировать программу для точек:
(0,0), (2,2), (0.5,0.5), (0.5,-1.5), (-0.5,0.5), (-2,-1), (-1,-2), (-1,1), (2, 0).

39pic5.jpg Рис.6

Домашнее задание:
прочитать §38 ответить на вопросы