Скачать бесплатно » Общение, обсуждения » Общие » Общение
Как скачать? | ЧаВо(FAQ) | Регистрация

Подскажите по pascal'ю

Общаемся на любые темы

Подскажите по pascal'ю

Сообщение Devil » 20 ноя 2008, 00:13

Кто знает pascal, подскажите плиз,как "передбачити у програмi виведення повiдомлення на екран для випадку коли задача немаэ рiшення"
Точнее какое условие нужно ввести для оператора if?

Вот сам пример:
Код: Выделить всё
program pr_1_14;
var x,y,a,b,z:real;
begin
cls;
write('a=');
read(a);
write('b=');
read(b);
x:=SQR(a+b);
y:=SQR(a-b);
z:=(x*sin(30)+y*cos(60))/SQRT(x*y)+ln(120);
if ????????? then write('decisions do not exist')
else write('z=',z:7:3);
end.
Devil
Аватара пользователя
Rusanovka-Net

Сообщение Ziben » 20 ноя 2008, 00:33

Сори, я уже слишком давно учил математику, возможно что-то забыл... а в этой формуле может не быть решения?
Самурай без меча подобен самураю с мечом, но только без меча.
Ziben
Аватара пользователя
UA-IX

Сообщение Devil » 20 ноя 2008, 00:36

Если ввести одинаковые числа (a=b) - будет выдавать ошибку (Ошибка: вещественное деление на 0)
Проверено опытным путём :)
Devil
Аватара пользователя
Rusanovka-Net

Сообщение Ziben » 20 ноя 2008, 00:44

да, старый стал, деления на ноль не предусмотрел.... тогда твой алгорит в корне не верен: тебе нужно не ПОТОМ проверять существует или нет решение, а сначала проверить нет ли деления на ноль, а потом уже делить (если таки нет нуля) и выводить результат.... ща попробую вспомнить паскаль и написать пару строк... если что - напишу на ПХП или перле - переведешь :)
Самурай без меча подобен самураю с мечом, но только без меча.
Ziben
Аватара пользователя
UA-IX

Сообщение Ziben » 20 ноя 2008, 00:47

Кусок кода:

Код: Выделить всё
z:=(x*sin(30)+y*cos(60))/SQRT(x*y)+ln(120);
if ????????? then write('decisions do not exist')
else write('z=',z:7:3);


меняем на
Код: Выделить всё
if SQRT(x*y) = 0 then write('decisions do not exist') else z:=(x*sin(30)+y*cos(60))/SQRT(x*y)+ln(120); write('z=',z:7:3);


сори, я уже не помню синтаксис паскаля - больше десяти лет не писал на нем... но суть где-то такая.
Самурай без меча подобен самураю с мечом, но только без меча.
Ziben
Аватара пользователя
UA-IX

Сообщение Devil » 20 ноя 2008, 00:48

Оу, спасибо большое ;)
Devil
Аватара пользователя
Rusanovka-Net

Сообщение Devil » 20 ноя 2008, 00:51

Правда теперь выдаёт ответ:
Код: Выделить всё
a=6
b=6
decisions do not existz=  0.000

может надо что-то типа stop?
Devil
Аватара пользователя
Rusanovka-Net

Сообщение Ziben » 20 ноя 2008, 00:58

ну ясно дело.... но я бы не стоп искал

я напишу на ПХП, а ты по аналогии пробуй в паскале

if (условие) {действие1; действие 2;} else {действие3; действие 4;}

тогда у тебя не будет той ерунды, что получилась
Самурай без меча подобен самураю с мечом, но только без меча.
Ziben
Аватара пользователя
UA-IX

Сообщение Ziben » 20 ноя 2008, 00:59

вспомнил!

begin
....
end

Код: Выделить всё
if SQRT(x*y) = 0 then write('decisions do not exist')
   else
      begin
         z:=(x*sin(30)+y*cos(60))/SQRT(x*y)+ln(120);
         write('z=',z:7:3);
      end;


где-то так
Самурай без меча подобен самураю с мечом, но только без меча.
Ziben
Аватара пользователя
UA-IX

Сообщение Devil » 20 ноя 2008, 01:07

Большое тебе спасибо!
Devil
Аватара пользователя
Rusanovka-Net

След.

Вернуться в Общение



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron