Простейшая программа в Pascal.

компьютеры программирование программы windows pascal

Program Lorem_ipsum;
Uses crt;
Var z, x, d, c, a : real;
Begin
clrscr;
writeln('Enter X:');
readln(x);
writeln('Enter A, D, C:');
readln(a, d, c);
if (x<0) then begin z:=sqr(x)+d; end;
if (0<=x) or (x<=20) then begin z:=exp(ln(a)*x); end;
if (x>20) then begin z:=x+a; end;
writeln(z:2:2);
readln;
End.

Однако вычисляет неправильно...

Примечание:
Напишите программу для вычисления значения Z.
Z=X^2+D при X<0
Z=X^3+C при 0<=X<=20
Z=X+A при X>20

Примечание:
Xabokar (Алексей Карпов), Капитан Очевидность. =)

Примечание:
Все равно X^3+C неправильно считает. Ввожу X=10, C=4, Z=1024, а должно быть 1004.

Примечание:
Блин, я запутался, другие данные я вводил.

Примечание:
Поменял давно. =)

Примечание:
С=6.

Примечание:
И должно быть 1006.
Ответы:
а что должна вычеслять?
Смотря что необходимо вычислить.
Ваша программа вычисляет x^2+d, если икс меньше нуля,
a^x, если x от нуля до 20 включительно,
x+a, если x больше 20.
if (0<=x) or (x<=20) then begin z:=exp(ln(a)*x); end;
разве не AND вместе Or ?
что-то странное вы делаете:
1. вместо if в данном случае логичнее использовать case. ну или хотябы if-else. иначе все три проверки происходят даже если достаточно одной
2.  z:=exp(ln(a)*x);  не очень похоже на Z=X^3+C при 0<=X<=20. может стоит z:=X*X*X+c; ?
3. if (0<=x) or (x<=20) при таком условии, действие будет выполнено независимо от значения x. при x меньше нуля условие x<=20 будет верным и результат всего выражения даст true. аналогично при х больше 20
Плюсую Anrey.Korea.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.