Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЕлизавета Рупневская
1 Решение С1 Золотарева Е.В.
3 Требовалось написать программу, которая вводит с клавиатуры натуральное число N, не превышающее 10 9, и выводит сумму чётных цифр в десятичной записи этого числа или 0, если чётных цифр нет. Программист торопился и написал программу неправильно. Вот она: var N: longint; s: integer; begin readln(N);(1) s := 0;(2) while N > 1 do begin(3) if N mod 2 = 0 then begin(4) s := N mod 10;(5) end;(6) N := N div 10;(7) end;(8) write(s);(9) end. Последовательно выполните следующее. 1. Напишите, что выведет эта программа при вводе числа Приведите пример числа, при вводе которого программа выдаст верный ответ. 3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
4 С1 var x: real; begin readln(x); if x>=-3 then if x<=9 then if x>1 then write('не принадлежит') else write('принадлежит') end. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» Если программа ничего не выводит, напишите «» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «Да» или «Нет». Х>=-3 Х<=9 Х>1 ДА НЕ принадлежит принадлежит НЕТ
5 Обл Усл 1 (x>=-3) Усл 2 (x<=9) Усл 3 (x>1) Программа выдает Область обрабатывается верно АНет---нет ВДа Нет ПринадлежДа С Не принадл Да D Не принадл Нет EДа Нет-- Х>=-3 Х<=9 Х>1 ДА Не принадл принадл НЕТ
6 С1 var x: real; begin readln(x); if x>=-3 then if x<=9 then if x>1 then write('не принадлежит') else write('принадлежит') end. If (x=>-3) and (x =5) and (x<=9) then write (принадлежит) else write (не принадлежит);
7 var x,y: real; begin readln(x,y); if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит') end. У>=Х У>=0 У<=2- x*x ДА Принадлеж ит Не принадлежит НЕТ
8 Обл аст ь y>= x? y>=0 ? y<=2- x*x? вывод верно ? Aда нет не принадлда B нет–– C ––– D ––– Eда принадлда F нет–– G ––– У>=Х У>=0 У<=2- x*x ДА НЕТ
9 var x,y: real; begin readln(x,y); if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит') end. (y =x) or (y>=0))
10 Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (х, у - действительные числа) и определяется принадлежность этой точки заданной закрашенной области (включая границы). Ученик написал такую программу: var x, y: real; begin readln(x,у); if у >= x*x-6 then begin if x*x + у* у <=16 then write('принадлежит') end else if x >= 0 then write('принадлежит') else write('не принадлежит') end. При проверке работы программа выполнялась по шагам для некоторых контрольных значений х и у, при этом был заполнен протокол тестирования. В результате неаккуратного обращения протокол был испорчен, частично сохранились только четыре строки:
11 Область Условие 1 (y >= x*x-6) Условие 2 (x*x+y*y <= 16) Условие 3 (x >= 0) Вывод Верно да принадлежит нет не принадлежит да – Последовательно выполните следующее. Восстановите уцелевшие строки протокола, заполнив все клетки таблицы. Там, где содержание восстанавливается неоднозначно, запишите любое возможное значение. Например, если для нескольких областей получается одинаковая строка таблицы, укажите в графе « Область » любую из этих областей. Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)
12 Область Условие 1 (y >= x*x-6) Условие 2 (x*x+y*y <= 16) Условие 3 (x >= 0) Вывод Верно да принадлежит нет не принадлежит да – У>=x*x-6 x 2 +y 2 <16 X>=0 НЕТДА НЕТ
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.