
Другие языки программирования и технологии
Проверить программу на Паскаль
Большая просьба: проверить правильность написания программы по блок-схеме с прикрепленной фотографии. Буду очень благодарна!


Неправильно. ввода нет
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
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 уже посчитана, а выводить её может оказаться и вовсе не нужным - прям прочувствуйте эту разницу.
Успехов!
(надеюсь, без неполадок непроверенное обойдется, но если что - пишите).
а лишь потом
Иначе переменным х, у попросту не из чего будет рассчитываться, вернее, насколько помню, в Паскале объявленная переменная по умолчанию =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 уже посчитана, а выводить её может оказаться и вовсе не нужным - прям прочувствуйте эту разницу.
Успехов!
(надеюсь, без неполадок непроверенное обойдется, но если что - пишите).
а лишь потом
Вячеслав Трубников
сами формулы не проверяю - только наличие открывающих-закрывающих скобок - так что этот момент за вами
Похожие вопросы
- проверьте программу в паскале, что не так?
- Проверьте программу на паскале.
- Программа на паскале! Помогите(бесплатно)
- Нужно написать программы в Паскале! Массивы! Срочно! Помогите!
- Нужно написать программу на паскале
- Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
- Программа в Паскале
- Помогите составить программу на паскале!
- Время работы программы в Паскаль
- Объясните как работает программа в паскаль!!!