Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Проверьте правильность программы на паскале (http://www.tehnari.ru/f41/t85725/)

димон4ик 25.02.2013 20:11

Проверьте правильность программы на паскале
 
Program lab1;
Var x: real;
begin
write('Введите x=');
read(x);
y:=(((sqr*(cos(x)))/(1+sin(x))))-(sqr(ln)(x/exp(1/3*ln(x-1))));
write(y);
if (y>0) then y:=1;
else (y=0) then y:=0;
else (Y<0)then y:=-1;
end.
Если конечно не трудно.

Vladimir_S 25.02.2013 20:18

Цитата:

Сообщение от димон4ик (Сообщение 871855)
if (y>0) then y:=1;
else (y=0) then y:=0;
else (Y<0)then y:=-1;

Полная ахинея: бессмысленный набор команд.

Dr.Format_C 25.02.2013 20:18

А разве строка вывода не должна быть после присвоения "у" принятого результата.
(если конечно я правильно понял конечную проверку).
на выполнение не запускается?

во блин.. Vladimir_S прав: проверка результата (или как бы её еще помягче назвать) в корне неправильная.
Учи язык, помощь тут будем лишней.
Разрешите откланяться.

димон4ик 25.02.2013 20:51

Цитата:

Сообщение от Vladimir_S (Сообщение 871860)
Полная ахинея: бессмысленный набор команд.

а как тогда сделать чтоб если (y>0) было y:=1;а если (y=0) то y:=0;а если (Y<0)то y:=-1;
помоги плиз

Daniellos 25.02.2013 20:59

Я конечно никудышный кодер, но зачем присваивать "у" нуль, если он итак имеет значение нуль? И вообще, попробуй выразить через case...

димон4ик 25.02.2013 21:10

Цитата:

Сообщение от Daniellos (Сообщение 871893)
Я конечно никудышный кодер, но зачем присваивать "у" нуль, если он итак имеет значение нуль? И вообще, попробуй выразить через case...

задание такое если y получается как я писал то присваивать y значение

Vladimir_S 26.02.2013 12:24

Вложений: 1
Цитата:

Сообщение от димон4ик (Сообщение 871888)
помоги плиз

Вложение 123675 Извините, сударь, но персонально Вам персонально я помогать не буду, поскольку Вы у меня числитесь в моем "черном списке", куда попадают те, кто, выложив просьбу-задание, после этого неделями не появляются на нашем форуме, таким образом ни в грош не ставя время и силы, затрачиваемые нашими программистами на эту т.н. "помощь". Так что как Вы к нам, так и мы к Вам.
http://www.tehnari.ru/f41/t85356/
Могу лишь, присоединяясь к Dr.Format_C, посоветовать учить язык, для начала разобравшись с семантикой условного оператора if..then..else.
Успехов!

AlexZir 26.02.2013 18:59

Код:

Program lab1; {пока верно}
Var x: real; {определили только одну переменную x, хотя в программе используется 2 переменных: x и y}
begin {верно}
write('Введите x='); {верно}
read(x); {верно}
y:=(((sqr*(cos(x)))/(1+sin(x))))-(sqr(ln)(x/exp(1/3*ln(x-1)))); {чушь откровенная, компилятору снесет крышу. Где исходная функция?}
write(y); {верно}
if (y>0) then y:=1; else (y=0) then y:=0; else (Y<0)then y:=-1; {чушь еще откровеннее, чем предыдущая, эта строка окончательно придаст ускорение крыше компилятора}
{непонятно, зачем вычислять что-либо, если результаты вычислений никуда не передаются. Вы бы для приличия хоть на экран результат вывели.}
end.{верно}

Вот весь предварительный анализ вашего листинга, неправильные команды снабжены красным комментарием. Потрудитесь исправить самостоятельно, для чего вам понадобится хотя бы в справочник заглянуть. Рекомендую вам воспользоваться клавишей F1 в окне среды разработки.


Часовой пояс GMT +4, время: 14:28.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.