|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
10.02.2009, 16:52 | #1 |
Пользователь
Регистрация: 02.02.2009
Сообщений: 34
|
Проверьте задачу
Составить программу для вычисления значения выражения с использованием оператора For.
Program Task_4; var y,i,h: Real; y:=1;i:=-12; h:=0.1; while i<=0 do begin y:=y*((i*i*i*i-pi)*(sin(5)/cos(5))); i:=i+0.1; end; write('y=',y:0:5); readln; end. Пишет ошибка. error 4: duplicate identifier (y) |
10.02.2009, 17:03 | #2 |
Форумчанин
Регистрация: 16.11.2008
Сообщений: 192
|
А где у вас первый begin?
|
10.02.2009, 17:08 | #3 | ||
Участник клуба
Регистрация: 29.07.2008
Сообщений: 1,091
|
Цитата:
Цитата:
Кто бы ты ни был - не думай о себе слишком (с)
|
||
10.02.2009, 17:31 | #4 |
Пользователь
Регистрация: 02.02.2009
Сообщений: 34
|
все равно не работает error 205: Floating point overflow
эту строчку показывает y:=y*((i*i*i*i-pi)*(sin(5)/cos(5))); |
10.02.2009, 17:36 | #5 |
Пользователь
Регистрация: 02.02.2009
Сообщений: 34
|
А с for это так да
Program Task_4; var y,i,h: Real; begin y:=1;i:=-12; h:=0.1; for i<=0 do y:=y*((i*i*i*i-pi)*(sin(5)/cos(5))); i:=i+0.1; end; write('y=',y:0:5); readln; end. |
10.02.2009, 17:38 | #6 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
потому что у вас "y" выходит за диапозон точности типа real, для "y" надо использовать тип extended, предварительно написав перед программой директиву подключения математического сопроцессора {$N+} - ваш "y" даже тип double не поддерживает с его двойной точностью , поэтому только тип extended
|
10.02.2009, 17:45 | #7 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
c for у вас не получится, потому что приращение счетчика i идет не целое ( не на 1, а for работает только с целочисленными значениями в языке паскаль ), а приращение идет дробное на 0.1 - да и думаю что вот тут
Код:
Код:
вот исправленная ваша программа Код:
Последний раз редактировалось capta1n; 10.02.2009 в 17:47. |
10.02.2009, 18:31 | #8 |
Пользователь
Регистрация: 02.02.2009
Сообщений: 34
|
Cпасибо! Но нужно делать с for!, а будет правильно!
Program Task_4; var P,i,: Real; begin P:=1 for i:=-12 to 0 do P:=P*((i*i*i*i-pi)*(sin(5)/cos(5))); end; write('y=',y:0:5); readln; end. |
10.02.2009, 18:33 | #9 | ||
Участник клуба
Регистрация: 29.07.2008
Сообщений: 1,091
|
Цитата:
И, как уже сказали, изменение i идет только целочисленно... Ну и наконец: Код:
Код:
Цитата:
Кто бы ты ни был - не думай о себе слишком (с)
Последний раз редактировалось DM_bite; 10.02.2009 в 18:46. |
||
10.02.2009, 20:27 | #10 |
Пользователь
Регистрация: 02.02.2009
Сообщений: 34
|
Не могу понять почему теперь ошибку выдает
Program Task_4; var P,i: Integer; begin P:=1 for i:=-12 to 0 do // error 85:';' expected P:=P*((i*i*i*i-pi)*(sin(5)/cos(5))); write('y=',y:0:5); readln; end. Последний раз редактировалось Dialon; 10.02.2009 в 20:29. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверьте задачу на стоки! | Dremgor | Помощь студентам | 1 | 29.12.2008 21:45 |
Проверьте выражение | fosto | Помощь студентам | 2 | 15.12.2008 22:58 |
Проверьте плиз задачу | rainbow | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 04.12.2008 12:51 |
Проверьте пожалуйста.. | NSvirus | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 24.11.2008 01:39 |
Проверьте | ReM | Общие вопросы Delphi | 1 | 12.11.2008 17:32 |