IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> помогите с плавающмим точками
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


извиняюсь..если тему уже затрагивали...написал прогу... самую простейшую.. для вычисления всех сторон треугольника., периметра и площади..
а он мне пишет что неправильные операции над числами с плав. точкой произвожу.что делать??

program h09809;
uses crt;

var
aa,bb,alpha_:real;

function triangle(var a,b,alpha:real):real;
var
polyper,perimetr,c,beta,gamma:real;
begin
c:=sqr(a)+sqr(b)-2*a*b*cos(alpha);
beta:=(b*sin(alpha)/a)/sqrt(1-sqr(b*sin(alpha)/a));
gamma:=180-alpha-beta;
writeln('Storoni treugolnika ravni: ',a:2:2,' ',b:2:2,' ',c:2:2);
writeln('Gradusnaya mera yglov treygolnika: alpha=',alpha:2:2,' beta=',beta:2:2,' gamma=',gamma:2:2);
perimetr:=a+b+c;
writeln('Perimetr raven ',perimetr:2:2);
polyper:=(a+b+c)/2;
polyper:=sqrt(polyper*(polyper-a)*(polyper-b)*(polyper-c));
writeln('Ploshad treygolnika ravna ',polyper:2:2);
end;

begin
clrscr;
writeln('Vvedite pervyiy storony treygolnika');
readln(aa);
writeln('Vvedite vtoryiy storony treygolnika');
readln(bb);
writeln('Vvedite ygol mejdy nimi');
readln(alpha_);
triangle(aa,bb,alpha_);
readln;
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Под корнем точно положительное число?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


ну по идее да... а ...вы думаете, это потому что он допускает выделение корня из отрицательног числа??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Я не знаю, поэтому и спрашиваю... Вроде больше ничего к подобно ошибке не может привести... Попробуй перед вычислением корня результат подкоренного выражения распечатать - тогда увидишь, из-за этого или нет... Или скажи, на каких данных у тебя программа вылетает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


А отладчиком пройдись....там отрицательное!

Добавлено через 3 мин.
Может попробуешь abs?

Сообщение отредактировано: Артемий -


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


ой нет, с синусом всё в порядке, извиняюсь smile.gif

Сообщение отредактировано: Tan -


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


Цитата(volvo @ 3.05.2007 18:55) *

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


да я пробовал на многих.. и .собвственно на всех и вылетает...
щас попробовал с модулем сделать..вроде все работает.. спасибо всем!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


а с модулем если ввести 4 2 90 выдёт 8 ?


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
ой нет, с синусом всё в порядке, извиняюсь
Нет, не все... Синус (и косинус, кстати, тоже) вычисляется от аргумента в радианах, а вводится пользователем в градусах... Надо переводить градусы в радианы...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


я сначала так же подумал, просто потом вывел Sin (pi * 30 / 180), забыл округлить и получил ответ 5 + мантисса, это меня смутило,
Sin(30*pi/180) :0:2
- вот где собака зарыта.


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Константин

Репутация: -  1  +


то есть... при вводе надо каждый угол умножать на pi и делить 180??

а при выводе.. соответсвенно..наоборот??

Сообщение отредактировано: priboltik -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Ну по идеи когда работаешь с синусами и косинусами то да,нужно переводить в радианы..(1 градус приблизительно 0,017 радиан)


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.11.2020 2:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name