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

помогите найти ошибку - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
gematogenka
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 29
20.01.2012, 18:05     помогите найти ошибку #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
#pragma argsused
#include <conio.h>
#include <iostream.h>
#include <math.h>
const float con[3][3]={{1,1,2},{3,4,5},{6,7,8}};
class matrix
{
        private:
         float** a;
         int m,n;
        public:
        matrix (float**a1, int m1=3, int n1=3)
        {
         a=a1;
         m=m1;
         n=n1;
        }
int summ()
{
  float sum=0;
     for(int i=0; i<m; i++)
        {for (int j=0; j<n; j++)
          {
            if ((a[i][j])%2!=0)
            else sum+=a[i][j];
          }
}
return sum;
}
 
int main(int argc, char* argv[])
{
matrix mas;
getch();
return 0;
}
выводит ошибки:
[C++ Error] Unit1.cpp(29): E2060 Illegal use of floating point в 25 строчке
[C++ Error] Unit1.cpp(30): E2054 Misplaced else в 26 строчке
[C++ Error] Unit1.cpp(38): E2285 Could not find a match for 'matrix::matrix()'
[C++ Error] Unit1.cpp(46): E2040 Declaration terminated incorrectly в 38 строчке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 18:05     помогите найти ошибку
Посмотрите здесь:

помогите найти ошибку C++
C++ помогите найти ошибку
Помогите найти ошибку C++
Помогите найти ошибку C++
C++ Помогите найти ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
20.01.2012, 18:10     помогите найти ошибку #2
Цитата Сообщение от gematogenka Посмотреть сообщение
((a[i][j])%2!=0)
Хотите узнать, чётное ли вещественное число? Не так быстро...

Цитата Сообщение от gematogenka Посмотреть сообщение
Misplaced else в 26 строчке
Ваш код:
если (что-то) то иначе
Цитата Сообщение от gematogenka Посмотреть сообщение
Could not find a match for 'matrix::matrix()'
У вас не описан конструктор без параметров
gematogenka
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 29
20.01.2012, 18:51  [ТС]     помогите найти ошибку #3
как это исправить?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
20.01.2012, 18:58     помогите найти ошибку #4
1) Ответьте мне как определить является ли вещественное число четным, и я вам напишу код.
2) Убрать else. Это исправит синтаксическую ошибку, но я не стал вникать чего вы хотите.
3) Описать конструктор без параметров
gematogenka
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 29
20.01.2012, 20:16  [ТС]     помогите найти ошибку #5
1)проверить как оно делится на 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
#pragma argsused
#include <conio.h>
#include <iostream.h>
#include <math.h>
const float con[3][3]={{1,1,2},{3,4,5},{6,7,8}};
class matrix
{
        private:
         float** a;
         int m,n;
        public:
        matrix ( )
 
int summ()
{
  float sum=0;
     for(int i=0; i<m; i++)
        {for (int j=0; j<n; j++)
 
           if (a[i][j]%2=0)
           sum+=a[i][j];
             cout<<sum;
        }
return sum;
}
 
int main(int argc, char* argv[])
{
matrix mas;
getch();
return 0;
}
теперь выдает Declaration terminated incorrectly в int summ() и после всей проги
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 20:22     помогите найти ошибку #6
Цитата Сообщение от gematogenka Посмотреть сообщение
1)проверить как оно делится на 2
если без остатка-четное
иначе-нечет
Ага. Разделите 1. на 2. И получите 0.5. Как видите, остатка нет. Значит 1 - четное. Значит все вещественные числа - четные. Шикарно, да?

Может вы хотели сказать целая часть вещественного числа?

Добавлено через 2 минуты
Цитата Сообщение от gematogenka Посмотреть сообщение
вот исправила все
Неа.
После конструктора нет ;
После класса нет };
И для вещественных чисел не работает %
gematogenka
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 29
20.01.2012, 20:28  [ТС]     помогите найти ошибку #7
Цитата Сообщение от soon Посмотреть сообщение
Ага. Разделите 1. на 2. И получите 0.5. Как видите, остатка нет. Значит 1 - четное. Значит все вещественные числа - четные. Шикарно, да?

Может вы хотели сказать целая часть вещественного числа?

Добавлено через 2 минуты

Неа.
После конструктора нет ;
После класса нет };
И для вещественных чисел не работает %
ох черт
точно.
а как тогда быть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 20:37     помогите найти ошибку
Еще ссылки по теме:

Помогите найти ошибку C++
C++ Помогите найти ошибку: По двум сторонам и углу найти все остальное

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 20:37     помогите найти ошибку #8
Я вижу 3 варианта.
1) Забить и сделать с int
2) Сделать с вещественным типом и сказать, что там все четные, т.к. делятся без остатка.
3) Выделять целую часть.
Yandex
Объявления
20.01.2012, 20:37     помогите найти ошибку
Ответ Создать тему
Опции темы

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