Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Как сложить два элемента массива
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
shiro888 shiro888 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.05.2010
По умолчанию Как сложить два элемента массива - 23.05.2010, 20:17

Здравствуйте!
у меня возникли небольшие вопросы в написании данной программы..
цель моя - написать самую простую программу которя что то делает..допустим я решил сложить 2 элемента массива..в которм 1 условие выполняется,а во втором выдавала ошибку нарушение границ...и вообще правильна ли моя идея?
Код:
  #include <iostream.h>
#include <stdlib.h>
#include <conio.h>
class array {
int size;
char *p;
public:
array(){p=NULL;}
array(int num);
~array (){if(p)delete[]p;}

char& put(int i);
char get(int i);

};

array::array (int num )
{
        p=new char[num];
        if(!p)
        {       cout<<"oshibka";
        getch();
                exit(1);
        }
        size=num;
}

char & array::put(int i)
{
        if(i<0 || i>=size)
        {
                cout<<"naryshenie graniz";
                getch();
                exit(1);
        }
        return p[i];
}

char array :: get(int i)
{
        if(i<0 || i>=size)
        {
                cout <<"oshibka v narushenii graniz";
                getch();
                exit(1);

        }
        return p[i];
}
int main()
{        int x,y;
        array a(5);
        a.put(4)='1';
        a.put(2)='0';
        cout<<a.get(4)<<a.get(2)<<"\n";

        x=a.put(4)+a.put(2);   // в 1 случае я хотел сложить 2 элемента,чтобы получить в итоге 10,но он выдает коды в ANSII,как сделать           чтобы       он просто выводил в результате 10  ?
 
cout<<"x="<<x<<" ";


        y=a.put(6)+a.put(2); // а здесь нарушение границ,так как нет 6 элемента 
cout<<"y="<<y" ";

        getch();
        return 0;

}
Ответить с цитированием
  (#2 (permalink)) Старый
rotmaister rotmaister вне форума
программист-недосамоучка
 
Сообщений: 94
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
Регистрация: 23.03.2010
Адрес: город Сибай
Arrow 23.05.2010, 21:51

То есть ты хочешь создать класс - так называемый свой массив. Чтобы имел произвольное количество элементов, был более безопасен, так чтоль? Для этого есть вектор(#include <vector>).... Поясни че требуется, например те надо объединить 1 и 0 так, чтоб получилось 10, эт как понимать? Ты сам понимаешь че те надо? Ладно, короч набросал я те функцию для объединения двух чисел в одно, например если передать 5 и 7 то получим 57. Уточни задачу.
Код:
#include <iostream.h>
#include <sstream>
#include <string>
#include <stdlib.h>
#include <conio.h>
-------------------------------
std::string toString(int val)
{
    ostringstream oss;
    oss<< val;
    return oss.str();
}


string exSumm(int fNum,int nNum){
        string str;
        str = toString(fNum) + toString(nNum);

        return str;
};
Ответить с цитированием
  (#3 (permalink)) Старый
shiro888 shiro888 вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.05.2010
По умолчанию 23.05.2010, 22:06

да,я хочу создать класс...но по не внимательности написал неправильно=(..я имел ввиду просто сложить некоторые числа элементов массива..например сложить 2 числа 4 и 2 элемента массива...то есть 1+0=1(а я случайно написал 10) или 1+2=3
Ответить с цитированием
  (#4 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 24.05.2010, 07:02

shiro888
Код:
char & array::put( int i ); // зачем такие сложности?

int x, y; // если хочешь сформировать строку из символов, почему оперируешь с int?

x=a.put(4)+a.put(2); // почему не get и зачем вообще что-то складывать?
y=a.put(6)+a.put(2); // то же самое...?
Ну и кроме того, твой "безопасный" массив допускает обращение к неициализированным элементам.
Код:
array a[5];

int x = a.get(1); // ошибки не будет, а должна быть, ведь мы ничего не заносили...
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка своего элемента control из элемента editControl (Visual Prolog 7.3) Винитарх Prolog 1 23.02.2011 00:24
Найти номер третьего четного элемента массива oossnn@mail Вопросы начинающих программистов 0 11.02.2011 17:59
найти среднее арифмитическое значение элемента массива ирен Вопросы начинающих программистов 0 02.01.2011 22:37
Как сложить два массива двоичных чисел Dj_John Вопросы начинающих программистов 3 01.06.2010 20:30
Как сложить две динамически создаваемые таблицы kettle DHTML, JavaScript, VBScript 6 23.08.2009 16:26
Удаление элемента из массива alyonka89 Delphi 2 17.08.2009 21:03
Удаление элемента с заданным номером и число вхождений заданного элемента imported_Lisa_D Lisp 21 16.04.2009 15:06
Как сложить целое и число вида 1/X scat Lisp 3 24.12.2006 20:16
Событие OnClick для элемента массива типа TImage levi-de C++ Builder 14 14.06.2006 19:28
Сложить поэлементно две строки чисел T-Rex Вопросы начинающих программистов 0 17.05.2004 22:03
Как сложить два больших числа на Prolog Anonymous Prolog 3 05.12.2003 22:15



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов