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

Не могу доделать программу(здчу) VC++ - C++

Восстановить пароль Регистрация
 
AnyPinoy
0 / 0 / 0
Регистрация: 18.01.2011
Сообщений: 8
18.01.2011, 16:41     Не могу доделать программу(здчу) VC++ #1
Вообщем вот мой код, задача должна работать как на картинке, но что-то у меня не удается, помогите плиз, поставте на путь истинный =)
Вложение 59054


CMyClass.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef CMYCLASS_H
#define CMYCLASS_H
 
class CMyClass{
private:
    double *arr;
    int size;
public:
    CMyClass(int);
    ~CMyClass(void);
    CMyClass(const CMyClass&ob);
    int get_size()const;
    int get_element(int);
    int set_element(int,int);
    friend void Print(CMyClass obj);
    
 
 
};
#endif
CMyClass.cpp

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
#include"CMyClass.h"
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
using namespace std;
CMyClass::CMyClass(int size)
{
    this->size = size;
    if(size <= 0) { cout<<"Razmer massiva zadan neverno!!!!!\n";exit(1);}
    this->arr = new double[this->size];
    if(!arr){cout<<"Nexvatka pam9ti!!!!\n"; exit(1);}
    for(int i=0;i<size;i++) arr[i]=0.0;
}
CMyClass::~CMyClass(void)
{
    delete []arr;
}
CMyClass::CMyClass(const CMyClass &ob)
{
    size = ob.size;
    arr = new double[size];
    if(!arr){cout<<"Nexvatka pam9ti!!!!\n"; exit(1);}
    for(int i=0;i<size;i++)
        arr[i] = ob.arr[i];
}
int CMyClass::get_size() const {return size;}
int CMyClass::get_element(int i)
{
    if(i<size && i>=0) return arr[i];
    else
    {
        cout<<"\nVixod za ramki massiva!\n";
        return 0;
    }
}
int CMyClass::set_element(int i,int x)
{
if(i<size && i>=0) return 0;
    else
    {
    arr[i]=x;
    return 1;
    }       
}
void Print(CMyClass obj)
{
    for(int i=0; i < obj.size; i++)
    cout<<obj.arr[i]<<'\t';
    cout<<endl;
}
MAIN

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include"CMyClass.h"
#include<iostream>
#include<iomanip>
#include<stdlib.h>
#include<conio.h>
using namespace std;
void main(void)
{
    int N;
    double x;
    cout<<"Vvedite razmer massiva\n"; cin>>N;
    CMyClass obj(N);
    for(int i = 0; i < N; i++){
        cout<<"["<<i<<"]=";cin>>x;
        obj.set_element(i,x);
    }
    Print(obj);
    cout<<"arr[8]="<<obj.get_element(8)<<endl;
    cout<<"arr[2]="<<obj.get_element(2)<<endl;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2011, 16:41     Не могу доделать программу(здчу) VC++
Посмотрите здесь:

C++ Доделать программу
C++ Доделать программу.
C++ не могу доделать.
C++ не могу доделать задачу
Не могу доделать C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.01.2011, 17:08     Не могу доделать программу(здчу) VC++ #2
что именно не получается?
AnyPinoy
0 / 0 / 0
Регистрация: 18.01.2011
Сообщений: 8
19.01.2011, 01:10  [ТС]     Не могу доделать программу(здчу) VC++ #3
вообщем я написал задачу, ввожу массив, он должен с помощью глобальной ф-ции Print у меня вывести его, место этого оно выводит все 0)
потом у меня идет в мэйне ввод 8 и 2 элемента через гэт) 8ой элемент должен обнулить т.к выход за рамки, а 2ой элемент должен вывести что и был в массиве, а у меня выводит также 0)
сколько не думаю немогу понять почему оно выводит нули!

Добавлено через 1 час 23 минуты
помогите ктонибудь плиз =)

Добавлено через 6 часов 30 минут
Помогите пожалуйста) кто может
Josefina
 Аватар для Josefina
10 / 10 / 1
Регистрация: 27.09.2010
Сообщений: 32
19.01.2011, 09:02     Не могу доделать программу(здчу) VC++ #4
Ошибка в условии метода set_element(int,int) класса MyClass

У тебя написано:
C++
1
2
3
4
5
6
7
8
9
int CMyClass::set_element(int i,int x)
{
if(i<size && i>=0) return 0;
        else
        {
        arr[i]=x;
        return 1;
        }               
}
проанализируй условие внимательно, в массив никогда не заполнится с таким условием.

а нужно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int CMyClass::set_element(int i,int x)
{
    if(i<size && i>=0) 
    {
         arr[i]=x;
         return 1;
    }
    else
    {
    return 0;
    }               
}
AnyPinoy
0 / 0 / 0
Регистрация: 18.01.2011
Сообщений: 8
21.01.2011, 16:03  [ТС]     Не могу доделать программу(здчу) VC++ #5
огромное спасибо) разобрался в ней) и нашел ошибочку в конструкторе)
Yandex
Объявления
21.01.2011, 16:03     Не могу доделать программу(здчу) VC++
Ответ Создать тему
Опции темы

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