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

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

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

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

Задача №8.
Требовалось написать программу, которая решает уравнение «a|x|=b» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

ПРОГРАММА НА ПАСКАЛЕ
ПРОГРАММА НА БЕЙСИКЕ
ПРОГРАММА НА СИ
var a,b,x: real;
begin
readln(a,b,x);
if a = 0 then
if b = 0 then
write ('любое число')
else
write ('нет решений')
else
if b = 0 then
write('x = 0')
else
write('x =',b/a,' или x =',-b/a);
end.

INPUT a, b, x
IF a = 0 THEN
IF b = 0 THEN
PRINT "любое число"
ELSE
PRINT "нет решений"
ENDIF
ELSE
IF b = 0 THEN
PRINT "x = 0"
ELSE
PRINT "x =",b/a, " или x =",-b/a
END IF
END IF
END

void main(void)
{float a,b,x;
scanf("%f%f%f", &a,&b,&x);
if (a==0)
if (b==0)
printf("любое число");
else
printf ("нет решений");
else
if (b==0)
printf("x = 0");
else
printf("x=%f или x=%f", b/a,-b/a);
}


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

Решение задачи №8.
1) a = 1, b= –1, x =0 (Значение x может быть не указано. Значения a и bмогут быть любыми ненулевыми числами с разными знаками. Также допустим ответ, что программа работает неправильно при любых ненулевых a и b, имеющих разные знаки)
2) Лишняя часть: не нужно вводить x с клавиатуры верно: readln(a,b);
3) Возможная доработка:

readln(a,b);
if a = 0 then
if b = 0 then write('любое число')
else write('нет решений')
else
if b/a > 0 then
write('x=',b/a, ' или x=',-b/a)
else
if b=0 then write('x=0')
else write('нет решений');


Могут быть и другие способы доработки.
При оценке других вариантов доработки программы нужно проверять, что поставленная цель достигается.

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

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