Найдите ошибку пожалуйста Program percentage; uses crt; var a,b,c,d:real; begin...

0 голосов
75 просмотров

Найдите ошибку пожалуйста
Program percentage;
uses crt;
var a,b,c,d:real;
begin
writeln('Здравствуйте, вас приветствует программа для нахождения процентов в заданиях ОГЭ.Искомую переменную обозначтье (0).');
write('Введите переменную a-');
read(a);
write('Введите переменную b-');
read(b);
write('Введите переменную c-');
read(c);
write('Введите переменную d-');
read(d);
writeln;
if a=0 then
begin
a:=c*b/d;
writeln(' Ответ:',a);
end;
if b=0 then
begin
b:=a*d/c;
writeln(' Ответ:',b);
end;
if c=0 then;
begin
c:=a*d/b;
writeln(' Ответ:',c);
end;
if d=0 then
begin
d:=c*b/a;
writeln(' Ответ:',d);
end;
writeln('Спасибо за использование программы!!!');
end.


Информатика (15 баллов) | 75 просмотров
0

Ошибку какого рода?

0

при проверке он выводит два ответа

0

а должен один

0

Вы алгоритм расчета бы написали, а то откуда следует, что Вы правильно ветвления написали?

0

можно пожалуйста по понятьнее а то я начинающий програмист

Дан 1 ответ
0 голосов
Правильный ответ

Program percentage;
uses Crt;
var
  a,b,c,d:real;
begin
  ClrScr;
  Writeln('Здравствуйте!');
  Writeln('Вас приветствует программа для нахождения процентов в заданиях ОГЭ');
  Writeln('Искомую переменную обозначьте нулем');
  Write('Введите через пробел значения a,b,c,d: ');
  Read(a,b,c,d);
  if a=0 then begin a:=c*b/d; Writeln('Ответ: ',a) end;
  if b=0 then begin b:=a*d/c; Writeln('Ответ: ',b) end;
  if c=0 then begin c:=a*d/b; Writeln('Ответ: ',c) end;
  if d=0 then begin d:=c*b/a; Writeln('Ответ: ',d) end;
  Writeln('Спасибо за использование программы!!!');
  ReadKey
end.

Программа будет выводить несколько значений, если задать при вводе несколько нулей. Если так не должно быть, уточните алгоритм.

(142k баллов)