0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 12
1

Виснет do-while

28.04.2015, 15:20. Показов 1261. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, может кто-то знает, в чем проблема, при обработке цикла for, все нормально, а вот когда пытаюсь через do-while. ввожу значения, нажимаю на кнопку запуска и программа попросту зависает. Дайте совет или укажите на ошибку. Спасибо.
C++
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 #include <stdio.h>
 #include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int st1;
int st2;
int st3;
float pr;
float rez;
float rez1;
 
float rz;
float rz1;
 
float r1;
float rq1;
 
int pz;
 
float r = (float)rand() / RAND_MAX;
st1 =StrToInt(Edit1->Text);
st2=StrToInt (Edit2->Text);
st3=StrToInt (Edit3->Text);
pr=StrToFloat (Edit4->Text);
    randomize();
    r=random(100);
//random-----------------------------------------------------------------
r1=r/100;
//Procent pasaguriv------------------------------------------------------
        rez1=((st1+st2+st3)*pr)/70;
//Kil`kist` pasaguriv za rozpodilom Puassona-----------------------------
 int t=0; int z=0; rz1=0;
 do
 {
rz1=-(1/rez1)*(log(r1));
z++;
t+=rz1; }
while (t<=25);
 
//Kilkist` vagoniv za k-stuy pasaguriv-----------------------------------
        rq1=z/90;
//Perevirka kil`kosti poizdiv-------------------------------------------
rz=rq1;
 
Memo1->Lines->Add("random=" +FloatToStr(r1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rez1=" +FloatToStr(rez1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rz1=" +FloatToStr(rz1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rq1=" +FloatToStr(rq1));
Memo1->Lines->Add("---------------------------------------------------");
if(rz<=12){
Memo1->Lines->Add("Potriben 1 pot9g!!!");}
else{
pz= rz/12;
 Memo1->Lines->Add("Potribno pot9giv=" +IntToStr(pz));
 
 }
Memo1->Lines->Add("---------------------------------------------------"); 
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2015, 15:20
Ответы с готовыми решениями:

Виснет программа при компиляции, степовер не работает, так же виснет
Виснет программа при компиляции, степовер не работает, так же виснет. Программа - простейший...

Виснет ПК
Здравствуйте, вот уже пол месяца мучаюсь с проблемой пк, грешу на жесткий диск вот смотрите когда...

Виснет 1С
Доброго времени суток, добрые люди. Работаю сисадмином на заводе, с некоторых времен существует...

Виснет пк
у моего друга виснет пк. Когда он чето там делает иногда белая завеса появляется - тоисть белий...

3
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
28.04.2015, 15:25 2
Ну видимо из-за некорректного условия в условии цикла:
C++
1
while (t<=25);
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.04.2015, 16:10 3
Лучший ответ Сообщение было отмечено SleiS как решение

Решение

SleiS, пробуй щас
C++
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int st1;
int st2;
int st3;
float pr;
float rez;
long double rez1;
 
float rz;
long double rz1;
 
float r1;
float rq1;
 
int pz;
 
float r = (float)rand() / RAND_MAX;
st1 =StrToInt(Edit1->Text);
st2=StrToInt (Edit2->Text);
st3=StrToInt (Edit3->Text);
pr=StrToFloat(Edit4->Text);
randomize();
r=random(100);
//random-----------------------------------------------------------------
r1=r/100;
//Procent pasaguriv------------------------------------------------------
        rez1=((st1+st2+st3)*pr)/70;
//Kil`kist` pasaguriv za rozpodilom Puassona-----------------------------
 double t=0; int z=0; rz1=0;
do
 {
  rz1=-(1/rez1)*(log(r1));
  z++;
  t+=rz1;
  Application->ProcessMessages();
  //ShowMessage("rz1: " + FloatToStr(rz1) + ", t: " + FloatToStr(t)+ ", rez1: "  + FloatToStr(rez1));
}
while (t<=25);
 
//Kilkist` vagoniv za k-stuy pasaguriv-----------------------------------
        rq1=z/90;
//Perevirka kil`kosti poizdiv-------------------------------------------
rz=rq1;
 
Memo1->Lines->Add("random=" +FloatToStr(r1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rez1=" +FloatToStr(rez1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rz1=" +FloatToStr(rz1));
Memo1->Lines->Add("---------------------------------------------------");
Memo1->Lines->Add("rq1=" +FloatToStr(rq1));
Memo1->Lines->Add("---------------------------------------------------");
if(rz<=12){
Memo1->Lines->Add("Potriben 1 pot9g!!!");}
else{
pz= rz/12;
 Memo1->Lines->Add("Potribno pot9giv=" +IntToStr(pz));
 
 }
Memo1->Lines->Add("---------------------------------------------------");
}
//---------------------------------------------------------------------------
1
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 12
28.04.2015, 16:34  [ТС] 4
спасибо, заработало +1
0
28.04.2015, 16:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2015, 16:34
Помогаю со студенческими работами здесь

Виснет ОС!
Здравствуйте,я столкнулся с проблемой:когда я включаю свой ПК(вхожу в винду) у меня в начале ОС...

Виснет ПК
Зависат комп. Рандомно, обычно с промежутками в час и до нескольких дней. Не важно с нагрузкой или...

Виснет сервер в 10:42...
На серваке стоит операционка WIN SERVER 2008 R2. Проблема в том, что этот сервер зависает 2 дня...

Виснет комп
У меня такая же проблема и винда тоже такая же....

Виснет комп
Люди такая проблема тупит процессор компьютера, что делать не знаю. Чистел реестр через Adwanced...

Виснет компьютер
Добрый Вечер! Виснет компьютер, с задержкой открываются браузеры, проверьте пожалуйста логи


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru