Помогите, пожалуйста, с элементарным вопросом
Программа не работает. Объясните пожалуйста почему. Как задать y, чтобы все заработало? Необходимо решение именно в таком алгоритме.
var i:Integer; x:Real; y:array [1..1000] of Real; begin for i:=1 to 720 do x:=i*3.14/180; y:=sin(x); if y[i-1]<0 and y[i]>0 then x:=(x[i-1]+x[i])/2; writeln(x); end. |
Иными словами у меня есть цикл по i. x - функция от i, y - функция от х. Как прописать условия, чтобы я потом мог указывать y[i], y[i-1] и т.д.
|
Я вижу у Вас объявление массива Y, но обращение к элементам массива Х. Разберитесь в своих переменных )))
|
Цитата:
|
Вы не о том говорите.
У вас описан массив Y, а в выражении с индексом стоит X. Второе: Элемент с индексом стоит вне оператора цикла, соответственно индекс у него не изменяется. Поскольку не использованы операторные скобки, то в цикл входит единственная строка. |
Упс... Тяпница, извините...
|
Вопрос решил. Подсказали ввести Function название(i:Integer):Real
К счастью помогло) |
Неисчислимы диалекты языков...
|
Владимир, если у вас будет свободное время, будьте любезны дать знать. Есть нетривиальная задачка, но чувствуется мне ваш опыт поможет решить ее очень элегантным простым способом)
|
Я не Владимир :)
У нас специалистом по программированию действительно является Владимир Игоревич aka Vladimir_S, а я так, немножко балуюсь. Но если что, пишите. |
Часовой пояс GMT +4, время: 21:51. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.