Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Нужно переделать прогу! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ рекурсивная матрица http://www.cyberforum.ru/cpp-beginners/thread38375.html
помогите пожалуйста составить код такого задания: Пусть А1, А2... последовательность квадратных матриц из нулей и единиц. такая, что порядок матрицы Аi равен 3^n. A1= 1 0 1 0 1 0 1 0 1 ...
C++ решение системы линейных уравнений методом Грама - Шмидта Может быть у кого то есть такое? Или кто знает литературу где описана эта задача на С++ http://www.cyberforum.ru/cpp-beginners/thread38366.html
C++ Дерево Хаффмана
Всем доброго времени суток! Очень прошу мне помочь! Мне нужно написать программу на delphi, которая строит дерево Хаффмана. Может быть, кто-то писал аналагичные программы. Пожалуйста, помогите....
C++ Похоже на постраничный вывод.
Мне нужно написать функцию, чтобы если содержимое файла содержит больше строк, чем экран, выдавать те, что влазят строчки, и по нажатию любой клавиши - еще серию на весь экран? Как это возможно? ...
C++ Реализация двусвзного списка на основе односвязного списка http://www.cyberforum.ru/cpp-beginners/thread38346.html
очень прошу вашей помощи, поскольку сама не могу это сделать, точнее плохо представляю как это можно реализовать... предмет структуры и алгоритмы обработки данных....необходимо написать класс...
C++ Кто может помочь с изучением С++ люди кто может помочь с освоением языка в icq 437551173 подробнее

Показать сообщение отдельно
YurA_280784
Заблокирован
05.06.2009, 13:09
Deirdre ,не метки, а без использывания оператора безусловного перехода, кто ж так пишет - метки, долго думал что ж ты хочешь))))

Вот что вышло (правда у меня VC 6.0 а не борланд поэтому alloc.h не подключается, я вкинул windows.h, ну и естественно убрал чистку экрана clrscr и цвет области, ну дело не в этом, код ниже...А Deirdre, AltPeople никаких циклов для менюхи не надо, очень просто всё организовать используя рекурсию самой функции main() а команді меню забивать в отдельніе функции, очень просто и очень удобно, вот

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
    
void p1();
void p2();
void p3();
bool vvod_koef(int n, double *massiv, char * name);
 
 
void main(void)
{
    int v = -1;
    printf("\t\tMENU:");
    printf("\nChoose one variant: ");
    printf("\n1- Enter to program");
    printf("\n2- Help");
    printf("\n3- Autor's info");
    printf("\n4- Exit");
    printf("\r\n");
    scanf("%d",&v);
    switch(v)
    {
        case 1:p1();break;
        case 2:p2();break;
        case 3:p3();break;
        default :break;
    }
    printf("\r\n\n1 - Make new calculations\r\n");
    scanf("%d",&v);
    if(v == 1)
        main();
}
 
bool vvod_koef(int n, double *massiv, char * name)
{
    bool RetVal = true;
    int v = -1;
    printf("Vvod koefficientov %s :\r\n",name);
    for(int i = 0;i <= n; i++)
    {
        printf("%s(%d) = ",name,i);
        scanf("%lf",&massiv[i]);
        if((i==n) && (fabs(massiv[i])<=0.0001))
        {
            printf("ERROR!!!: Koefficient pri %d-oi stepeni dolzhen bit' neravni nulu\r\n",i);
            printf("1 - povtorit' vvod %s(%d)",name,i);
            scanf("%d",&v);
            if(v == 1)
                i--;
            else
            {
                RetVal = false;
                break;
            }
        }
    }
    if(!RetVal)
            printf("Oshibka vvoda koefficientov %s",name);
    return RetVal;
}
 
void p1()
{
    int m, n, i ,j;
    printf("Vvedite stepen' delimogo  A(n):\t");
    scanf("%d",&n);
    printf("Vvedite stepen' delitelya B(n):\t");
    scanf("%d",&m);
 
    if(m>n)
    {
        printf("ERROR!!!: Stepen' delimogo ne men'she stepeni delitelya");
        return;//Покидаем тело функции в случае ошибки
    }
    if((m==0)||(n==0))
    {
        printf("ERROR!!!: Stepen' n i m dolzhni bit' neravni nulu");
        return;//Покидаем тело функции в случае ошибки
    }
    double * a = (double *)calloc( n + 1,sizeof(double));
    double * b = (double *)calloc( n + 1,sizeof(double));
    double * k=  (double *)calloc( n - m,sizeof(double));
    if(vvod_koef(n, a, "A"))
    if(vvod_koef(m, b, "B"))
    {
        for ( j=0; j <=(n-m); j++)
        {
            k[j] = a[n-j]/b[m];
            for( i = 0; i <=n; i++)
            {
                if( i >= (n-(m+j)))
                    a[i] = (a[i]-(b[i+j-(n-m)]*k[j]));
            }
        }
        printf("\n\nCHASTNOE:\n");
        for (i=0;i<=(n-m);i++)
        {
            if(i==(n-m))
                printf("(%g)",k[i]);
            else 
                if(n-(m+i)==1)
                    printf("(%g)X + ",k[i]);
                else
                    printf("(%g)X^%d + ",k[i],n-(m+i));
        }
        printf("\n\nOSTATOK:\n");
        for ( i = n ;i >= 0;i--)
        {
            if(i==0)
                printf("(%g)",a[i]);
            else 
                if (a[i]==0)
                    printf(" ");
                else 
                    if(n-(m+i)==1)
                        printf("(%g)X + ",a[i]);
                    else
                        printf("(%g)X^%d + ",a[i],i);
        }
    }
//  free((void *)a);
//  free((void *)b);
//  free((void *)k);
}
 
void p2()
{
    printf("Spravka poka otsytstvyet\r\n");
}
 
void p3()
{
    printf("Info ob avtore poka otsytstvyet\r\n");
}
0
Миниатюры
Нужно переделать прогу!  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru