Автор: smile51 7.11.2009, 19:23
Помогите найти ошибку в задаче!!! Паскль изучаю всего лишь день и самостоятельно, так что прошу не грузить меня заумными словами!!
Задача: Радиус окружности равен 800. Вычеслить длину и площадь окружности. Результаты печатать с 5 знаками после десятичной точки.
Вот мой пример решения задачи:
var Rad: integer;
s,l: real;
begin
Rad:=800;
L:=2*Pi*Rad;
S:=Pi*sqr(Rad);
writeln(L :20:5);
writeln(S :20:5)
end.
Ответ выдаваемый паскалем
5026.54825
-48254.86316
Но площадь совсем не такая!!! Что не так????
Автор: smile51 8.11.2009, 17:50
Она что такая сложная что ни кто не знает?????
Автор: граф Монте-Кристо 9.11.2009, 8:52
Ну,видимо,Вы вышли за пределы использования типа,вот он и выдал Вам чепуху.Попробуйте объявить переменную s типа double.
Автор: Виктор 9.11.2009, 9:13
НУ в принципе ты написал все правильно,за исключением,того,что радиус нужно было объявлять не интеджер,а реалои,и тогда все нормально:)
Цитата(граф Монте-Кристо @ 9.11.2009, 8:52)

Ну,видимо,Вы вышли за пределы использования типа,вот он и выдал Вам чепуху.Попробуйте объявить переменную s типа double.
объявлять переменную s типом double нельзя будет 116 ошибка:)
Автор: граф Монте-Кристо 9.11.2009, 14:07
Цитата(Виктор @ 9.11.2009, 12:13)

НУ в принципе ты написал все правильно,за исключением,того,что радиус нужно было объявлять не интеджер,а реалои,и тогда все нормально:)
объявлять переменную s типом double нельзя будет 116 ошибка:)
Даа,была вначале мыслишка,но потом что-то забыл про неё.
А у меня s и с double'ом работает неплохо
Автор: Виктор 9.11.2009, 14:18
Цитата(граф Монте-Кристо @ 9.11.2009, 14:07)

Даа,была вначале мыслишка,но потом что-то забыл про неё.
А у меня s и с double'ом работает неплохо

Если переменная rad:=integer тогда и с double'ом прокатывает,а по дрглму ни как:)
Автор: граф Монте-Кристо 9.11.2009, 14:27
У меня по-всякому работает
Автор: Виктор 9.11.2009, 14:41
Цитата(Виктор @ 9.11.2009, 14:18)

Если переменная rad:=integer тогда и с double'ом прокатывает,а по дрглму ни как:)
странно, а не должен бы,да и вообще зачем 3 переменных делать разного тип?,хотя это скорее всего может моя версия паскаля на что-то ругается вот текст ошибки:"must be in 8087 mode to compile"
это при s double'ом? аж самому стало интересно почему?
Автор: smile51 10.11.2009, 17:38
Спасибо всем за пояснение, сделал как сказал Виктор и всё получилось!!!