Другие языки программирования и технологии

Проверить программу на Паскаль

Большая просьба: проверить правильность написания программы по блок-схеме с прикрепленной фотографии. Буду очень благодарна!
Aman Babayev
Aman Babayev
273
Неправильно. ввода нет
ПБ
Паша Беккер
76 230
Лучший ответ
Aman Babayev Почему нет? read(x); и read(y) есть
Я думаю IF y=1 THEN write('нет решений') else a:=...; IF sin(x)+cos(y)=0 THEN write('нет решений') else b:=...; И read х, у нужно написать выше вычислений a,b
Юрий Куприенко
Юрий Куприенко
83 844
read х, у нужно написать выше вычислений a,b - 100%-но!
Иначе переменным х, у попросту не из чего будет рассчитываться, вернее, насколько помню, в Паскале объявленная переменная по умолчанию =0, т. е. в таком случае получается х=0; у=0, от них высчитываются а и b, а потом (когда уже поезд ушел), вводятся х и у.
Для удобочитаемости лучше использовать ReadLn, WriteLn (на новой строке будет выводиться).
===

Program Lab_5;
var a,b,x,y:real;

begin
readln(x);
readln(y);
a:=power(a,-power(x,2)+1)+sin(power(x,2)+4)/(y-1);
b:=sqrt(x-2)+(2*power(x,2)-6*x-1)/(sin(x)+cos(y));
IF (y=1) THEN write('нет решений');
ELSE
begin // начало внутри Else (y=1)
IF (x<2) THEN write('нет решений');
else
Begin начало внутри Else (x<2)
IF (sin(x)+cos(y)=0) THEN write('нет решений');
ELSE
begin
IF (a>b) THEN U=b; ELSE U=a; // Внимание! U= задаем либо =a, либо =b - и пока что ничего не выводим!
end;
End; конец Else (x<2)
end; // конец Else (y=1)

writeln('U=',U:5:2); // Теперь выводим окончательный результат U

end.
===
Паскалем лет 15 уже не пользовался, проверить не на чем, но должно работать.
Комментарии со знаками "//" необходимо удалить (в Паскале др. синтаксис - не помню уже какой).
Лишние "скобки" и begin-end'ы добавлены для однозначной читабельности - эта привычка обозначения начала и конца сохранилась с детства - и весьма неплоха, когда условия в реальной практике бывают еще на порядок длиннее.
X>=2 умышленно заменен на противоположный X<2 для упрощения текста программы - ведь в вещественных числах это одно и то же.
Обращаю внимание, что сначала в соответствии со схемой переменную U требуется только высчитать (=а или =b), а лишь только после этого вывести на экран! В чем разница? - Запросто! В реальной задаче может оказаться так, что U - всего лишь промежуточная переменная и текст программы понадобится дополнить - тут U уже посчитана, а выводить её может оказаться и вовсе не нужным - прям прочувствуйте эту разницу.
Успехов!
(надеюсь, без неполадок непроверенное обойдется, но если что - пишите).
а лишь потом
Вячеслав Трубников сами формулы не проверяю - только наличие открывающих-закрывающих скобок - так что этот момент за вами