Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Решения в паскале

Автор: 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
Но площадь совсем не такая!!! Что не так???? sad.gif

Автор: 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'ом работает неплохо smile.gif

Автор: Виктор 9.11.2009, 14:18

Цитата(граф Монте-Кристо @ 9.11.2009, 14:07) *

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

Если переменная rad:=integer тогда и с double'ом прокатывает,а по дрглму ни как:)

Автор: граф Монте-Кристо 9.11.2009, 14:27

У меня по-всякому работает smile.gif

Автор: Виктор 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

Спасибо всем за пояснение, сделал как сказал Виктор и всё получилось!!!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)