Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
1

Доходит до функции и дальше не идет

28.05.2009, 01:28. Показов 975. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите
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
#include <clx.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
float stepen (int i, float p);
int fact (int i);
//---------------------------------------------------------------------------
 
#pragma argsused
float  a, m, N, p, r, t, T, Rs, Ts, r1;
float ch, zn, p1, p2, Po; // ch-chislitel', zn-znamenatel/, p1=1+p/1!+p^2/2!+...+p^n/n!, p2=p^(n+1)/n!(n-p)
int n, i, sum;
int main(void)
{
        printf ("Vvedite chislo kanalov, no nebol'she 6: ");     // okna kass
                scanf ("%f", &n);
if (n<1&&n>6)
{
printf ("Vy vveli nevernoe chislo!: ");
}
else
{
        printf("Vvedite intensivnost` vxodiaschego potoka: ");
                scanf("%f", &a);
        printf("Vvedite srendee vremya obslyjivaniya odnoj zajavki(v minutah): ");
                scanf("%f", &t);
        m=1/t;
                printf("Intensivnost' potoka obsluzivanija (chel/min): %f\n", m);
        p=a/m;
                printf("Intesivnost` nagryzki: %f\n", p);
        N=p;
                printf("Srednee chislo zanjatyx kassirov: %f\n", N);    // chislo zanjatyx kanalov
 sum=0;
 for (int i=1; i<(n+1); i++)
 {
   sum=sum+(stepen(i,p)/fact(i));
 }
 Po=1.0/(1+sum+(stepen(n+1,p)/(fact(n)*(n-p))));
                printf ("Verojatnost' otsutstvija zajavok v sisteme=%5.4f", Po); // verojatnost', chto vse kassiry svobodny
 r=stepen(n+1,p)/(fact(n-1)*(n-p)*(n-p))*Po;
               printf ("Srednee chislo passagirov v ocheredi: %f\n", r);
        Rs=N+r;
               printf ("Srednee chislo passagirov u kass: %f\n", Rs);    // srednee chislo zajavok v sisteme
        T=r/a;
               printf ("Srednee vremja, kotoroe passagir provodit v ocheredi: %f\n", T);
        Ts=Rs/a;
               printf ("Srednee vremja, kotoroe passagir tratit na priobretenie zhetona: %f\n", Ts);  // srednee vremja zajavki v sisteme
}
        getch();
        return 0;
}
float stepen (int i, float p)
{
float pr=1;
for (int k=0; k<i; k++)
pr=pr*p;
}
 
int fact (int i)
{
int f=1;
for (int k=0; k<i; k++)
f=f*(k+1);
}
Добавлено через 33 секунды
это система массового обслуживания
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2009, 01:28
Ответы с готовыми решениями:

сборка доходит до половины а дальше не идет в qt
сборка доходит до половины а дальше не идет в qt.что делать?

Любая ОС доходит до полосы прокрутки и не идет дальше.
Устанавливаю Любую OS,проблема та же.. Загружается до заставки Windows,и всйо зависает. В чём может...

Win10 ПК загрузка доходит до экрана ввода пароля и выбора пользователя, и экран гаснет, но ПК работает дальше
Здравствуйте, дорогие форумчане. Столкнулся с очень неприятной проблемой на ПК. Для начала...

Не идет дальше логотипа
не запускается винда, т.е. идет до загрузочного логотипа и зависает..случилось это, как я понял,...

17
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
28.05.2009, 04:35 2
Строка 17 измени scanf ("%f", &n); на scanf ("%d", &n);
После 57 строки вставь return pr;
После 64 строки вставь return f;
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 12:26  [ТС] 3
спсб, но ошибка теперь на 37 строке(((
что делать?

Добавлено через 30 секунд
kazak, спсб, но ошибка теперь на 37 строке(((
что делать?
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
28.05.2009, 12:29 4
Поправь так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
float stepen (int i, float p)
{
    float pr = 1;
    for (int k = 0; k < i; k++)
        pr *= p;
    return pr;//забыл
}
 
int fact (int i)
{
    int f = 1;
    for (int k = 0; k < i; k++)
        f *= (k+1);
    return f;//забыл
}
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 12:35  [ТС] 5
подставила, но ничего не изменилось, ругается на 37 строку, и с 30 выдает нули в ответе(((
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.05.2009, 12:39 6
Цитата Сообщение от sunnysunny Посмотреть сообщение
ругается на 37 строку
я бы тоже руглся... во первых, у вас функция степень возвращает вещественное число..а перменная sum - целочисленная
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 12:43  [ТС] 7
и что изменить?? подскажите
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
28.05.2009, 12:45 8
sunnysunny, ты все исправила, что я писал?
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.05.2009, 12:45 9
вот этот код работает у меня более менее корректно... надеюсь, вы в расчетах там не ошиблись.
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
#include <stdio.h>
#include <conio.h>
 
float stepen (int i, float p);
int fact (int i);
 
float  a, m, N, p, r, t, T, Rs, Ts, r1, sum;
float ch, zn, p1, p2, Po; // ch-chislitel', zn-znamenatel/, p1=1+p/1!+p^2/2!+...+p^n/n!, p2=p^(n+1)/n!(n-p)
int n, i;
 
int main(void)
{
   printf ("Vvedite chislo kanalov, no nebol'she 6: ");     // okna kass
   scanf ("%f", &n);
 
   if (n<1&&n>6)
   {
      printf ("Vy vveli nevernoe chislo!: ");
   }
   else
   {
      printf("Vvedite intensivnost` vxodiaschego potoka: ");
         scanf("%f", &a);
      printf("Vvedite srendee vremya obslyjivaniya odnoj zajavki(v minutah): ");
         scanf("%f", &t);
      m=1/t;
      printf("Intensivnost' potoka obsluzivanija (chel/min): %f\n", m);
      p=a/m;
      printf("Intesivnost` nagryzki: %f\n", p);
      N=p;
      printf("Srednee chislo zanjatyx kassirov: %f\n", N);    // chislo zanjatyx kanalov
      sum=0;
 
      for (int i=1; i<(n+1); i++)
         sum+=(stepen(i,p)/fact(i));
 
      Po=1.0/(1+sum+(stepen(n+1,p)/(fact(n)*(n-p))));
      printf ("Verojatnost' otsutstvija zajavok v sisteme=%5.4f", Po); // verojatnost', chto vse kassiry svobodny
      r=stepen(n+1,p)/(fact(n-1)*(n-p)*(n-p))*Po;
      printf ("Srednee chislo passagirov v ocheredi: %f\n", r);
      Rs=N+r;
      printf ("Srednee chislo passagirov u kass: %f\n", Rs);    // srednee chislo zajavok v sisteme
      T=r/a;
      printf ("Srednee vremja, kotoroe passagir provodit v ocheredi: %f\n", T);
      Ts=Rs/a;
      printf ("Srednee vremja, kotoroe passagir tratit na priobretenie zhetona: %f\n", Ts);  // srednee vremja zajavki v sisteme
   }
   getch();
   return 0;
}
 
float stepen (int i, float p)
{
   float pr=1;
   for (int k=0; k<i; k++)
      pr*=p;
   return pr;
}
 
int fact (int i)
{
   int f=1;
   for (int k=1; k<=i; k++)
      f*=k;
   return f;
}
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
28.05.2009, 12:51 10
Monte-Cristo, а этот код точно работает?
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
C++
1
2
3
4
5
6
[U]int n[/U], i;
*
int main(void)
{
* *printf ("Vvedite chislo kanalov, no nebol'she 6: "); * * // okna kass
* *scanf ([U]"%f", &n[/U]);
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 12:53  [ТС] 11
а чего в 64 f*=k??? разве не к+1
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.05.2009, 12:54 12
угу...Visual C++ 2008 компилиуерт...и результаты дробные выдает... но я мельком токо посмотрел... может результаты и некорректные.
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 12:56  [ТС] 13
и высчитывает до 33 строки, а дальше все равно нет

Добавлено через 1 минуту 7 секунд
не нравится эта 37 строка и все(((
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.05.2009, 12:59 14
ну я там цикл изменил.... посмотрите внимательней..так просто читабельней и наглядней...

Добавлено через 1 минуту 57 секунд
sunnysunny, что выписывает? какой у вас компилятор?
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 13:01  [ТС] 15
С++ builder(
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 13:04  [ТС] 16
ну вот посмотрите
Вложения
Тип файла: doc Doc1.doc (128.5 Кб, 16 просмотров)
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
28.05.2009, 13:14 17
C++
1
2
3
4
5
6
7
8
9
10
11
int n, i;// объявление "каналов" как int
 
int main(void)
{
   printf ("Vvedite chislo kanalov, no nebol'she 6: ");     // okna kass
   scanf ("%f", &n);// попытка считать в переменную тип int значение типа float, у меня в билдере эта попытка 
//проваливается и переменная n продолжает содержать всякий мусор(1073741824 у меня)
// далее следует такой код
for (int i=1; i<(n+1); i++)
   sum+=(stepen(i,p)/fact(i));// при попытке вычислить fact(34) происходит переполнение и fact возвращает нуль, 
//что вызывает ошибку
0
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 11
28.05.2009, 13:48  [ТС] 18
вроде пошло))

Добавлено через 1 минуту 8 секунд
for (i=1; i<(n+1); i++)
{
sum+=(stepen(i,p)/fact(i));
}

теперь не могу разобраться с float u int((( запуталась((

Добавлено через 53 секунды
а может кто-нить помочь блок-схему составить???
0
28.05.2009, 13:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2009, 13:48
Помогаю со студенческими работами здесь

Не идет дальше проверка
Суть проверки в том чтобы найти пользователя с таким мылом и таким паролем, он его находит и пишет...

с центра не идет дальше вниз!
Program kursovaya; Uses GraphABC,crt; Var i:integer; Begin HideCursor; Setwindowsize(800,600);...

Дальше Boot logo не идёт
При включении спикер даёт сигнал что всё в порядке и появляется заставка мат. платы. После 10-20...

Дальше логотипа загрузка не идёт
Здравствуйте, у меня проблемы с загрузкой Windows. Вчера комп ни с того ни с сего начал...


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

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