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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Deirdre
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 14
#1

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

04.06.2009, 22:54. Просмотров 439. Ответов 2
Метки нет (Все метки)

Нужно переписать код, чтобы не было меток))))
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
#include<math.h>
#include<stdio.h>
#include<alloc.h>
#include<conio.h>
#include<stdlib.h>
void main(void)
 
{
clrscr();
textcolor(12);
textbackground(15);
int v,m,n,i,j;
C4:
clrscr();
printf("\n\n\n\n\n ???????????????????????????????????????????????");
printf("\n             ?                          Выберете один из вариантов:                                       ?");
printf("\n             ?                                                                                                                   ?");
printf("\n             ? 1- Войти в программу                                                                              ?");
printf("\n             ?                                                                                                                   ?");
printf("\n             ? 2- Помощь                                                                                                ?");
printf("\n             ?                                                                                                                   ?");
printf("\n             ? 3- Информация об авторе                                                                      ?");
printf("\n             ?                                                                                                                   ?");
printf("\n             ? 4- Выход                                                                                                   ?");
printf("\n             ?                                                                                                                   ?");
printf("\n             ???????????????????????????????????????????????\n");
scanf("%d",&v);
    switch(v)
    C1 :
printf("\n Введите степень делимого A(n):");
scanf("%d",&n);
printf("Введите степень делителя B(n):");
scanf("%d",&m);
if(m>n)
      {
      printf("ERROR!!!: Степень делимого не меньше степени делителя");
      goto C1;
      }
if(m>n)
      {
      printf("ERROR!!!: Степень делимого не меньше степени делителя");
      goto C1;
      }
if((m==0)||(n==0))
      {
      printf("ERROR!!!: Степени n и m не равны нулю");
      goto C1;
      }
double *a,*b,*k;
a=(double*)calloc(n+1,sizeof(double));
      C2:
      for(i=0;i<=n;i++)
      {
      printf("\nВведите A(%d) коэффициент",i);
      scanf("%lf",&a[i]);
 
      if((i==n)&&(fabs(a[i])<=0.0001))
        {
        printf("ERROR!!!: Коэффициент при n-oй степени не равен нулю");
        goto C2;
        }
       else;
      }
 
b=(double*)calloc(n+1,sizeof(double));
      C3:
      for(i=0;i<=m;i++)
     {
     printf("\nВведите B(%d) коэффициент",i);
     scanf("%lf",&b[i]);
 
          if((i==m)&&(fabs(b[m])<=0.0001))
            {
            printf("ERROR!!!: Коэффициент при m-oй степени не равен нулю");
            goto C3;
            }
     }
 
 
k=(double*)calloc(n-m,sizeof(double));
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ЧАСТНОЕ:");
   printf("\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");
   printf("\nОСТАТОК:");
   printf("\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);
       }
int g;
C5:
printf("\nДля возврата в меню нажмите -- 1; для выхода -- 2.");
scanf("%d",&g);
if (g==1)
goto C4;
else if (g==2)
exit(0);
else goto C5;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2009, 22:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно переделать прогу! (C++):

Выручайте! Нужно переделать прогу под двусвязный список.ничего не понимаю) - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; struct Node { int memSize; Node *Next; }; Node *BegList; using namespace...

Как переделать прогу?? - C++
Вот программа на языке си++. как её переделать в си??? там надо вроде cout изменить. помогите!условие: вывести 10 случайных чисел в...

Переделать прогу с паскаля в Вижуал - C++
вот прога на Паскале, надо переделать под вижуал... срочно... http://pascal.sources.ru/cgi-bin/show.cgi?cat=incoming&amp;id=polynom ...

переделать чаровскую прогу по строкам в string - C++
Вот задание проги: Словом в строке считается последовательность букв латинского алфавита, остальные символы являются разделителями между...

Как переделать прогу для работы с файлами - C++
Всем привет) Есть вот такая программа. Она выводит на консоль сообщение - находится ли точка на прямой или нет. Координаты точки -...

даны 2 последовательности в файлах, в двух разных, нужно их обьединить и отсортировать по возрастанию. Но нужно сделать прогу с помошью указателей - C++
вот текст проги которую я сделал, но без указателей. переделайте пожалуйста #include&lt;fstream.h&gt; #include&lt;iostream.h&gt; void main(){ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
05.06.2009, 11:47 #2
меню лучше сделать через константы пересислений, к примеру:
C++
1
enum menu (Enter, Help, Info, Exit)
а для самого тела проги использовал бы цикл:
C++
1
2
3
do{
....
}while(menu!=exit)
сам выбор меню через swich(menu)
а выброс при ошибках или продолжение через break; и continue;
YurA_280784
Заблокирован
05.06.2009, 13:09 #3
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");
}
Миниатюры
Нужно переделать прогу!  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2009, 13:09
Привет! Вот еще темы с ответами:

Можно ли данную прогу переделать в справочную систему компонентов компьютерной техники?!!! - C++
Помогите пожалуйста!!!!!!!!!!!! Можно ли данную прогу(учет книг в библиотеке) переделать в справочную систему компонентов компьютерной...

Нужно подредактировать прогу - C++
В файле myfile.txt содержится информация типа а= 1,0; b = 5; с = 25,2; d = -l2,5. Написать функцию, которая получает строку типа «а + b =...

Нужно написать прогу на С++ - C++
Помогите пожалуйста с написанием проги... Вот условие такое: Написать программу, которая получает случайное целое типа int, выводит его...

Нужно написать прогу(срочно) - C++
Записать в файл последовательного доступа N натуральных чисел: a1, a2, …, an (числа, получить с помощью датчика случайных чисел)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru