Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Даны числа x, y, z. Вычислите a,b, если 
:(
    Опции темы
KPEHDEL
  Дата 19.9.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Задание:
Даны числа x, y, z. Вычислите a,b, если
user posted image

user posted image

Пишу так:

Код

  var x,y,z,a,b: real;
 begin
 Readln(x,y,z);
 a:=(cos(2)*(x-(pi/6)))/(0.5+sqrt(sin(y)));
 b:=1+(sqr(z)/(3+(sqr(z)/5)));
 Writeln(a:6:4);
 Writeln(b:6:4);
 readln(a,b);
 end.


Всё работает нормально, но если ввести переменные с минусом например: 12 -7.22 8
То вылетит... А надо чтобы работало именно при вводе этих чисел, как сделать?
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Цитата(KPEHDEL @  19.9.2010,  13:04 Найти цитируемый пост)
Всё работает нормально, но если ввести переменные с минусом например: 12 -7.22 8
То вылетит... А надо чтобы работало именно при вводе этих чисел, как сделать? 

Вы перепутали функции sqr (возведение в квадрат) и sqrt (извлечение квадратного корня). Соответственно, когда y отрицателен, Ваша программа пытается извлечь корень из отрицательного числа - с очевидными последствиями.

PM   Вверх
DarkProg
Дата 19.9.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Цитата(KPEHDEL @  19.9.2010,  13:04 Найти цитируемый пост)
a:=(cos(2)*(x-(pi/6)))/(0.5+sqrt(sin(y)));

Даю намёк на то что одна из функций неверна ;)

P.S. могу поспорить что пытаетесь извлечь корень из отрицательного числа  smile 


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
KPEHDEL
  Дата 19.9.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Исправил, работает но не правильно)))
Вот код:
Код

var a,b,c: integer;
 begin
 Writeln('Введите двухзначное число');
 Readln(a);
 b:=a div 10;
 c:=a mod 10;
 Writeln('Число образованное от перестановки мест');
 Writeln(c,b);
 read(a);
end.




Это сообщение отредактировал(а) KPEHDEL - 19.9.2010, 15:16
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Цитата(KPEHDEL @  19.9.2010,  14:35 Найти цитируемый пост)

При вводе 12 -7.22 8 должна прога выводить  0.8050 5.0506, а выводит совсем другие цифры...

Естественно. Посмотрите сначала на свою формулу для a, а потом на вот это:
Цитата(KPEHDEL @  19.9.2010,  14:35 Найти цитируемый пост)
a:=(cos(2)*(x-(pi/6)))/ ... 




PM   Вверх
KPEHDEL
  Дата 19.9.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Исправил вот так:
Код

var a,b,c: integer;
 begin
 Writeln('Введите двухзначное число');
 Readln(a);
 b:=a div 10;
 c:=a mod 10;
 Writeln('Число образованное от перестановки мест ');
 Writeln(c,b);
 read(a);
end.




Выводит всё равно не те числа. А если точнее, то выводит 1.0000 5.0000

Это сообщение отредактировал(а) KPEHDEL - 19.9.2010, 15:05
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Зачем Вы пытаетесь считать косинус 2, а потом его на что-то умножать?
PM   Вверх
KPEHDEL
  Дата 19.9.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Отредактировал предыдущее сообщение... Посмотрите плз.
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



По-моему, Вы теперь программы целиком перепутали. smile 
PM   Вверх
KPEHDEL
  Дата 19.9.2010, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Совершенно верно перепутал smile осталось полтара часа, чтобы на зачёт скинуть девять программ, вот и прыгаю отодной к другой.

Вот терь нужный код,который исправил:
Код

   var x,y,z,a,b: comp;
 begin
 Readln(x,y,z);
 a:=(2*cos(x-(pi/6)))/(0.5+sqr(sin(y)));
 b:=1+(sqr(z)/(3+(sqr(z)/5)));
 Writeln(a:6:4);
 Writeln(b:6:4);
 read(a,b);
 end.
 

Это сообщение отредактировал(а) KPEHDEL - 19.9.2010, 15:19
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Теперь вроде все верно. Только зачем Вы в конце каждой программы ставите ввод только что вычисленных и выведенных на экран результатов?
PM   Вверх
KPEHDEL
Дата 19.9.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



Чтобы программа после компиляции не закрывалась.

Если всё верно,то почему всё равно выводит не те числа?
PM MAIL WWW ICQ   Вверх
Фантом
Дата 19.9.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Ну, если Вы будете, исправляя одни ошибки, вносить другие, то я за Вами не угонюсь. Зачем нужно было использовать тип comp? Верните real обратно.
PM   Вверх
KPEHDEL
Дата 20.9.2010, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



\спасибо) Как только набиру 50 сообщений обязательно поставлю плюсик в репу. smile 
PM MAIL WWW ICQ   Вверх
KPEHDEL
  Дата 24.9.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 31.3.2010

Репутация: нет
Всего: нет



....

Это сообщение отредактировал(а) KPEHDEL - 25.9.2010, 00:26
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.