Размер шрифта: A AA Изображения Выключить Включить Цвет сайта Ц Ц Ц Х
Бесплатный конструктор сайтов - uCoz
Пятница, 17.05.2024, 03:40
Приветствую Вас Гость | RSS

Сайт учителя информатики  и ИКТ Шинкаренко Евгения Александровича

Реклама
Оцените сайт
Оцените мой сайт
Всего ответов: 837
Программирование
Какой язык программирования выбрать для подготовки к ЕГЭ
Всего ответов: 804

Решение задачи №2.

Задача №2.
Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y – действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы).
Программист торопился и написал программу неправильно.

Последовательно выполните следующее:
1) Приведите пример таких чисел x, y, при которых программа неправильно решает поставленную задачу.
2) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами,
поэтому можно указать любой правильный способ доработки исходной программы).

ПРОГРАММА
НА ПАСКАЛЕ
ПРОГРАММА
НА БЕЙСИКЕ
ПРОГРАММА
НА СИ
var x,y: real;
begin
readln(x,y);
if x*x+y*y<=1 then
begin
if x<=0 then
write('принадлежит');
if y>=0 then
write('принадлежит')
else
write('не принадлежит')
end
end.
INPUT x, y
IF x*x+y*y<=1 THEN
IF x<=0 THEN
PRINT "принадлежит"
ENDIF
IF y>=0 THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
ENDIF
ENDIF
END
void main(void) {
float x,y;
scanf("%f%f",&x,&y);
if (x*x+y*y<=1)
{
if (x<=0)
printf("принадлежит");
if (y>=0)
printf("принадлежит");
else
printf("не принадлежит");
}
}

Решение задачи №2
1) Пример: x = 0, y = 0 (Любая пара (x, y), для которой выполняется x*x + y*y > 1 или x≤ 0).
2) Возможная доработка (Паскаль):

if (x*x+y*y<=1) and ((x<=0) or (y>=0)) then
write('принадлежит')
else
write('не принадлежит')


Возможны и другие верные способы доработки.
Обратите внимание! В задаче требовалось выполнить три действия: указать пример входных данных, при которых программа работает неверно, и исправить две ошибки:
1. Неправильное использование условного оператора, в результате чего при невыполнении первого условия программа не выдавала ничего (отсутствуют случаи ELSE).
2. Если точка лежит внутри круга ( x*x+y*y ≤ 1) и x ≤ 0, то программа выводит ДВА сообщения: сначала сообщение «принадлежит», а потом одно из двух сообщений в зависимости от выполнения условия y ≥ 0.

Возврат к списку задач

Реклама
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Счетчик яндекс
Яндекс.Метрика