Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Зацикливание программы при использовании оператора goto / 7 сообщений из 7, страница 1 из 1
05.05.2015, 10:40
    #38951502
Artyom88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
a:
for (int z=1;z<NN;z++)
{
	alfa[z]=F/(1+F*(2-alfa[z-1]));
	beta[z]=(teta[z]+F*beta[z-1])/(1+F*(2-alfa[z-1]));
	nn=StrToFloat(Form1->LabeledEdit14->Text);
	gamma=1-alfa[nn-1]-beta[nn-1];
}
// Вычисление уточненного значения F1:
F1=(gamma*F+K0+(1-teta[nn]))/G;
if (abs(1-F/F1)<0.001)
{
	if (F>250)
	{
		return;}
	else {
		goto b;
	}}
else {
	F=F1;
	goto a;
}
//Обратная прогонка:
b:
teta[nn]=1;
for (int x=nn-1;x==0;x--)
{
	teta[x]=alfa[x]*teta[x+1]+beta[x];
}
timex2=timex1+F*(pow(dy,2))/a;
delta1=delta1-dy;
q2=alam*(teta[1]-teta[0])*(T1-T2)/dy;
goto a;


Модератор: Отформатировано
...
Рейтинг: 0 / 0
05.05.2015, 10:44
    #38951508
Artyom88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
проблема в зацикливании проги, если условие N1 не выполняется, то F=F1 и пошел на метку А. Если выполняется то переходим ко второму условию, при котором если оно выполняется то заканчиваем расчет, а если нет то идем на метку B и после перерасчета идем на метку А.
...
Рейтинг: 0 / 0
05.05.2015, 10:54
    #38951521
wst
wst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
Могу ошибаться, но выложенному примеру вида "метка: что-то; goto метка" и положено зацикливаться, так что все работает как надо.
...
Рейтинг: 0 / 0
05.05.2015, 11:07
    #38951533
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
Artyom88,

тут нет каких то ошибок в программе, ошибка в алгоритме, ну так и отлаживай.
А поскольку от лажи вание -- это процесс устранения лажи из программы, то первая
лажа, которую надо отсюда убрать--это goto. Оформи программу с нормальными циклами, и уже будет легче -- ты поймешь, каковы условия выхода из цикла и каковы переменные цикла.
...
Рейтинг: 0 / 0
05.05.2015, 11:09
    #38951535
RWolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
Artyom88for (int x=nn-1;x==0;x--)
Подозреваю, что имелось в виду for (int x=nn-1; x>=0; x--)
...
Рейтинг: 0 / 0
05.05.2015, 11:26
    #38951550
Artyom88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
MasterZiv,

Вы были правы ошибка в алгоритме. не хватает строчки nn=nn-1 в конце))
...
Рейтинг: 0 / 0
05.05.2015, 11:48
    #38951590
Artyom88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зацикливание программы при использовании оператора goto
RWolf,

Спасибо полезное замечание!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Зацикливание программы при использовании оператора goto / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]