Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.03.2014, 12:03   #1
Fresh_Style
 
Регистрация: 25.03.2014
Сообщений: 6
По умолчанию Проблема с циклом

Здравствуйте.
Хотелось бы спросить, в чем может быть проблема. У меня есть определенные функции, с заданными условиями, есть три едита. Один едит предназначен для ввода начального значения х, другой едит для конечного значения х, третий едит для ввода шага, и есть мемо для вывода, ну и кнопка, соответственно!!! Так вот, при выводе почему то не происходит дальнейшее вычисление, то есть один раз посчиталось, дальше не идет. Пробывал через цикл while, аналогично!! ничего не поменялось.
Мой код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
x,z,q:real;
p,e:integer;
begin
try
x:=StrToFloat(edit1.text);
except
on Exception:EconvertError do
begin
ShowMessage (Exception.Message);
Edit1.SetFocus;
Edit2.SetFocus;
exit
end
end;
p:=0;
for e:=1 to 100 do
begin
if x>-4  then
z:=cos(2*x)+9 else
if x<=-4 then
q:=-cos(x)/(x-9);
p:=e+p;
Form1.memo1.Lines.Add(floatToStr(q)+'              |          '+floatToStr(z)) ;
end;
end;

Последний раз редактировалось Fresh_Style; 25.03.2014 в 12:05.
Fresh_Style вне форума
Старый 25.03.2014, 18:19   #2
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Код рабочий, пробуй подобрать другие значение х
Konstantin_ua вне форума
Старый 25.03.2014, 20:00   #3
bav03
 
Регистрация: 14.12.2010
Сообщений: 6
По умолчанию Что "дальше не идет"?

Из Ваших слов "Так вот, при выводе почему то не происходит дальнейшее вычисление, то есть один раз посчиталось, дальше не идет." не понятно, что не идет и куда не идет.
Из любопытства запустил Ваш код в lazarus-е в форме сделанной по умолчанию.
Первое впечатление было, что да, "не идет". При более внимательном рассмотрении оказалось, что все "идет". Т.е. в memo записываются какое-то строки, что сразу не видно, так как по умолчанию в memo не было полосы прокрутки.
Но код все же довольно бессмысленный.
Код:
...
for e:=1 to 100 do
begin
if x>-4  then
z:=cos(2*x)+9 else
if x<=-4 then
q:=-cos(x)/(x-9);
p:=e+p;
Form1.memo1.Lines.Add(floatToStr(q)+'              |          '+floatToStr(z)) ;
end;
...
Видно, что 100 раз вычисляются или не вычисляются одни и те же значения z и q, так как x в цикле не меняется, а вычисляемая на каждом шаге цикла переменная p нигде не используется.
bav03 вне форума
Старый 26.03.2014, 00:44   #4
Fresh_Style
 
Регистрация: 25.03.2014
Сообщений: 6
По умолчанию

bav03, это другой код, только без цикла. Единственное отличие:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
z,q:real;
x,x1:integer;
p,e,w,r:integer;
begin
x:=StrToint(edit1.text);
x1:=StrToint(edit2.text);
w:=StrToint(edit3.text);
begin
r:=0;
p:=x;
e:=x1;
r:=x+w;
end;
if r<>e then
begin
if x>-4  then
z:=cos(2*x)+9 else
if x<=-4 then
q:=-cos(x)/(x-9);
Form1.memo1.Lines.Add(floatToStr(q)+'              |          '+floatToStr(z)) ;
end;
end;
Fresh_Style вне форума
Старый 26.03.2014, 03:12   #5
bav03
 
Регистрация: 14.12.2010
Сообщений: 6
По умолчанию А в чем вопрос?

А в чем вопрос? Что опять не идет? Не понимаю фразы "это другой код, только без цикла. Единственное отличие:".Вижу, что код другой. Опять местами довольно бессмысленный и плохо оформленный.
Код:
...
begin
r:=0;
p:=x;     {зачем нужно p?}
e:=x1;
r:=x+w;
end;
...
Зачем нужно было помещать этот фрагмент в отдельный блок? Дальше следует фрагмент кода, который, на мой взгляд, должен быть оформлен как то так
Код:
...
if r<>e then
  begin
    if x>-4  then
      z:=cos(2*x)+9
    else if x<=-4 then
      q:=-cos(x)/(x-9);
    Form1.memo1.Lines.Add(floatToStr(q)+'              |          '+floatToStr(z)) ;
  end; 
...
И теперь ясно видно, что в зависимости от величины х, вычисляется или z или q, но в memo1 зачем-то записываются оба значения. Вы то сами понимаете, чего хотите от своей программы?
bav03 вне форума
Старый 26.03.2014, 14:11   #6
Fresh_Style
 
Регистрация: 25.03.2014
Сообщений: 6
По умолчанию

F(x)={(cos2x+9,если x>-4)
F(x)=(-cosx/(x-9) если x≤-4))
вот у меня дано две функции. мне нужно чтобы эти две функции считались в цикле, чтобы я мог ввести начальное значение х, конечное значение х, и сам шаг. и в мемо у меня все эти результаты выдавались.
как вы говорите оба значения...


Для этого составить проект для решения уравнений по коэффициентам, вводимым с клавиатуры (вводить начальное и конечное значение Х, и шаг для изменения Х). Предусмотреть реакции на некорректный ввод символов в полях редактирования (например, поставить защиту от ввода букв или второй десятичной точки). При нажатии Enter переносить курсор в следующее поле редактирования (а на завершении ввода выполнять вычисления). Предусмотреть кнопки "расчет", "новые данные" и "выход".
Всем введенным компонентам задать ярлычки с оперативной подсказкой (Hints). При оформлении компонент использовать по возможности различные цвета и шрифты.
На форме должны быть представлены компонент TEdit для ввода Х, TМемо для вывода результатов и две кнопки: вычислить и сохранить.

Последний раз редактировалось Fresh_Style; 26.03.2014 в 14:14.
Fresh_Style вне форума
Старый 26.03.2014, 17:11   #7
bav03
 
Регистрация: 14.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Fresh_Style Посмотреть сообщение
F(x)={(cos2x+9,если x>-4)
F(x)=(-cosx/(x-9) если x≤-4))
вот у меня дано две функции. мне нужно чтобы эти две функции считались в цикле, чтобы я мог ввести начальное значение х, конечное значение х, и сам шаг. и в мемо у меня все эти результаты выдавались.
как вы говорите оба значения...
Это было одним из моих предположений. Вообще-то, по записи у Вас одна функция F(x), задающаяся разными выражениями в зависимости от величины x. И тогда было бы логично ожидать что-то вроде:
Код:
...
    if x>-4  then
      z:=cos(2*x)+9
    else if x<=-4 then
      z:=-cos(x)/(x-9);
    { значение аргумента                                      | значение функции }
    Form1.memo1.Lines.Add(floatToStr(x)+'              |          '+floatToStr(z)) ;
Цитата:
Сообщение от Fresh_Style Посмотреть сообщение
...
Для этого составить проект для решения уравнений по коэффициентам, вводимым с клавиатуры (вводить начальное и конечное значение Х, и шаг для изменения Х). ...
Все слова по отдельности понятны, а общий смысл как-то не очень. Какое уравнение? F(x)=0 ? Решение методом визуального просмотра значений ф-ии при различных значениях аргумента?
Что Вы понимаете под " решением уравнений по коэффициентам, вводимыми с клавиатуры" ? Я даже засомневался, что понимаю слово "коэффициент", хотя почти всю жизнь был уверен, что это числовой множитель при каком-то буквенном выражении(ru.wikipedia.org/wiki/Коэффициент). И уж точно не понимаю, что такое "решение уравнений по коэффициентам". Я понял бы, если бы речь шла о решении уравнения при различных значениях коэффициентов.
Цитата:
Сообщение от Fresh_Style Посмотреть сообщение
. Предусмотреть реакции на некорректный ввод символов в полях редактирования (например, поставить защиту от ввода букв или второй десятичной точки). При нажатии Enter переносить курсор в следующее поле редактирования (а на завершении ввода выполнять вычисления). Предусмотреть кнопки "расчет", "новые данные" и "выход".
Всем введенным компонентам задать ярлычки с оперативной подсказкой (Hints). При оформлении компонент использовать по возможности различные цвета и шрифты.
На форме должны быть представлены компонент TEdit для ввода Х, TМемо для вывода результатов и две кнопки: вычислить и сохранить.
- Это все, вообще, отдельная "песня" или, иногда говорят, "бантики". Можно "оставить на сладкое", а можно начать с них. Судя по Вашим сообщениям у меня остается сильное подозрение, что Вы просто нe видите значений добавляемых в memo. То есть, кроме неумения программировать, незнания Паскаля, возможно, еще и банальное незнание используемого инструмента, так что, может быть, для Вас будет правильным "начать с конца".
bav03 вне форума
Старый 27.03.2014, 04:15   #8
Fresh_Style
 
Регистрация: 25.03.2014
Сообщений: 6
По умолчанию

bav03, да я не вижу значений, да я не силен в программирование, да я не могу высчитать данную функцию, да я не знаю "банальное незнание используемого инструмента", я вообще ничего не знаю, поэтому, bav03, я и обратился сюда в данный раздел, на этот форум, чтобы мне люди помогли, а не как Вы, слушать кучу ваших унижений, да и то какие же Вы на самом деле умный человек, прям аж ум льется с ушей. Если бы Вы были на самом деле такой умный, как себя показываете, вы бы решили данную задачу, и разводили эту ненужную дисскусию, показав всем форумчанам "какой же я хороший, еще одного лузера принизил".
Это задание, которые Вы, "С умной долей головного мозга процетировали, о том что вам не понятна функция", придумал и написал на форум не я, а кафедра на которой я в данный момент прохожу практику. Я не просил Вас мне помогать, можно тему закрывать, спасибо на этом.

Последний раз редактировалось Fresh_Style; 27.03.2014 в 04:18.
Fresh_Style вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с циклом Joose Общие вопросы C/C++ 0 09.03.2013 17:02
Проблема с циклом на СИ. hgfdd Помощь студентам 1 30.09.2012 15:54
C++ проблема с циклом Qile Помощь студентам 3 29.09.2012 03:03
Проблема с циклом for ProESM Общие вопросы Delphi 12 11.05.2011 15:39
Проблема с циклом while asp1k Общие вопросы Delphi 3 17.02.2011 14:29