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

Создать класс - C++

Восстановить пароль Регистрация
 
Cuda
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 21
28.05.2012, 00:03     Создать класс #1
Здравствуйте. Имеется код(исправный) программы для деления многочлена на многочлен. Подскажите пожалуйста как мне создать класс на основе этого кода?
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
#include <stdio.h>
#include <math.h>
void PrintPolynom(float *p, int n)
{
  for(int i=0;i<n;i++)
    printf("%+f x^%d",*(p+i),n-i-1);
  printf("\n");
}
main()
{
int N,M;
printf("vvedite N");//степень многочлена P(x)
scanf("%d",&N);
printf("vvedite M");//степень многочлена Q(x)
scanf("%d",&M);
float P[N];
float Q[M];
float S[N-M+1];
for ( int i = 0; i < N; i ++ )
{
printf("Vvedite P[%d]> ", i );
scanf ("%f", &P[i]);//ввод P[i]
}
for ( int i = 0; i < M; i ++)
{
printf("Vvedite Q[%d]> ", i );
scanf ("%f", &Q[i]); // ввод Q[i]
}
  // выводим многочлены
  printf("P(x):\n");
  PrintPolynom(P,N);
  printf("Q(x):\n");
  PrintPolynom(Q,M);
  // деление
  for(int i=0;i<N-M+1;i++)
  {
    S[i]=P[i]/Q[0];
    for(int j=0;j<M;j++)
      P[i+j]-=S[i]*Q[j];
  }
  // выводим результат
  printf("\nresult:\n");
  PrintPolynom(S,N-M+1);
  // остаток
  printf("ostatok:\n");
  PrintPolynom(P+(N-M+1),M-1);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
28.05.2012, 00:42     Создать класс #2
На С ты не напишешь класс, он процедурный язык.
Cuda
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 21
28.05.2012, 17:49  [ТС]     Создать класс #3
как на с++ нельзя написать класс? что имеешь ввиду?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.05.2012, 18:51     Создать класс #4
Код мало того, что на Си написан, так еще и на С99 (если отталкиваться от того, что код рабочий).
вот это
C
1
2
3
4
5
6
7
8
int N,M;
printf("vvedite N");//степень многочлена P(x)
scanf("%d",&N);
printf("vvedite M");//степень многочлена Q(x)
scanf("%d",&M);
float P[N];
float Q[M];
float S[N-M+1];
придется переписать через new

сделай класс Polynom, добавь методы ввода данных, вывода и перегрузи оператор деления.
Cuda
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 21
28.05.2012, 20:44  [ТС]     Создать класс #5
дело в том что не разбираюсь пока что в классах. потому и спросил

Добавлено через 21 минуту
ну вот переписал через new:
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
#include <stdio.h>
#include <math.h>
void PrintPolynom(float *p, int n)
{
  for(int i=0;i<n;i++)
    printf("%+f x^%d",*(p+i),n-i-1);
  printf("\n");
}
main()
{
int N,M;
float *P;
float *Q;
printf("vvedite N");//степень многочлена P(x)
scanf("%d",&N);
P=new float [N];
printf("vvedite M");//степень многочлена Q(x)
scanf("%d",&M);
Q=new float [M];
float S[N-M+1];
for ( int i = 0; i < N; i ++ )
{
printf("Vvedite P[%d]> ", i );
scanf ("%f", &P[i]);//ввод P[i]
}
for ( int i = 0; i < M; i ++)
{
printf("Vvedite Q[%d]> ", i );
scanf ("%f", &Q[i]); // ввод Q[i]
}
  // выводим многочлены
  printf("P(x):\n");
  PrintPolynom(P,N);
  printf("Q(x):\n");
  PrintPolynom(Q,M);
  // деление
  for(int i=0;i<N-M+1;i++)
  {
    S[i]=P[i]/Q[0];
    for(int j=0;j<M;j++)
      P[i+j]-=S[i]*Q[j];
  }
  // выводим результат
  printf("\nresult:\n");
  PrintPolynom(S,N-M+1);
  // остаток
  printf("ostatok:\n");
  PrintPolynom(P+(N-M+1),M-1);
}
но мне все равно не понятно как код переделать под класс.
Yandex
Объявления
28.05.2012, 20:44     Создать класс
Ответ Создать тему
Опции темы

Текущее время: 00:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru