Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 14:12   #1
MjRed
 
Регистрация: 05.12.2008
Сообщений: 8
По умолчанию Разберите код программы и напишите что там не так!!!

Задача 1. Создать 2 объекта разработанною класса Класс - динамический вектор (одномерный массив). В результате выполнения программы в первом объекте должны содержаться все четные, а во втором все нечетные числа исходных векторов. Содержимое объектов (их векторов) до и после обмена вывести на экран.

Я тут что то намудрил помогите исправить!!!
Код:
Код:
#include <iostream.h>

class Mas
{
	int n;
	int size;
	int *num;
public:
	Mas()			//****конструктор
	{			//****по
		num=NULL;	//****умолчанию
		size=0;		
	}
	Mas(int n);//конструктор с пареметром
	void zapis(int *mas, int n);
	void print();//вывод масива
	int* chet();//возвращает четный массив
	int* nechet();//возвращает не четный массив
	void vvod();//создание массива
	void osvob();//освобождение массива
	
	~Mas()
	{
		delete [] num;
	}
};

//****************освобождение ммамассива************************ 
void Mas::osvob()
{
	delete [] num;
}

// *****************перегруженный конструктор с параметрами*****************
void Mas::zapis(int *mas, int n)
{
	size=n;
	num=new int[size];
	if (!num)
	{
		cout<<"/nOut of memory!";
	}
	for(int i=0; i<size; i++)
	{
		*(num+i)=*(mas+i);
	}
}

// *****************88вывод массива**************************
void Mas::print()
{
		for(int i=0;i<size;i++)
			cout<<*(num+i)<<endl;
}

// ************************тут помещаем четные числа в первый объект, а нечетные во второй**************************
void swap_masiv(Mas A, Mas B)
{
	int j;
	int *buff1=A.chet();
	int *buff2=B.chet();

	int *buff_chet= new int[(*buff1+*buff2)];
	
	for(int i=0;i<*buff1;i++)
	{
		*(buff_chet+i)=*(buff1+(i+1));
	}
	for(i=*buff1, j=0; i<(*buff1+*buff2); j++,i++)
	{
		*(buff_chet+i)=*(buff2+(j+1));
	}

	int *buff3=A.nechet();
	int *buff4=B.nechet();

	int *buff_nechet=new int[(*buff3+*buff4)];
	for(i=0;i<*buff3;i++)
	{
		*(buff_nechet+i)=*(buff3+(i+1));
	}
	for(i=*buff3,j=0;i<(*buff3+*buff4);i++,j++)
	{
		*(buff_nechet+i)=*(buff4+(j+1));
	}

	/************************************Посмотри отсюда***************************************/
	/**********************************До этого места все отлично******************************/
	A.osvob();
	B.osvob();
	A.zapis(buff_chet, (*buff1+*buff2));
	B.zapis(buff_nechet, (*buff3+*buff4));
}

//*******************************  четные числа объекта собираем в массив***************************
int *Mas::chet()
{
	int count=0;
	for(int i=0; i<size;i++)
	{
		if(*(num+i)%2==0)
		{
			count++;
		}
	}
	int *buff= new int [count+1];
	*buff=count;
	for(i=1;i<(count+1);i++)
	{
		for(int j=0; j<size; j++)
		{
			if(*(num+j)%2==0)
			{
				*(buff+i)=*(num+j);
			}
		}
	}
	return buff;
}

//****************************** нечетные объекта собираем в массив*******************************
int *Mas::nechet()
{
	int count=0;
	for(int i=0; i<size;i++)
	{
		if(*(num+i)%2!=0)
		{
			count++;
		}
	}
	int *buff= new int [count+1];
	*buff=count;
	for(i=1;i<(count+1);i++)
	{
		for(int j=0; j<size; j++)
		{
			if(*(num+j)%2!=0)
			{
				*(buff+i)=*(num+j);
			}
		}
	}
	return buff;
}

//**********************создание массива*************************
void Mas::vvod()
{
		for(int i=0;i<size;i++)
			*(num+i)=i;
}

//****************************** конструктор с параметрами**************************
Mas::Mas(int n)

{ 
  size=n;
  
  num=new int[size];
  
  if(!num) 

  { 
	  cout<<"\nOut of memory!";
  }
}

void main()
{
	int dim;
	cout<<"Vvedite razmernost'  massiva : ";
    cin>>dim;
	Mas A(dim),B(dim);
	A.vvod();
	B.vvod();
	A.print();
	B.print();
	swap_masiv(A,B);
	A.print();
	B.print();
}

Модератор: слишком много переносов строки. И используйте тег CODE
Программист все преврашяет в объекты

Последний раз редактировалось MaTBeu; 05.12.2008 в 22:30.
MjRed вне форума Ответить с цитированием
Старый 05.12.2008, 22:29   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Говорите, что не так. Просто так разбираться в вашем коде никто не будет. И учитесь оформлять посты. А то получите нарушение.

ПыСы: код писали не вы. Это видно сразу. Ну да это не имеет значения. Обьясните суть вопроса и что именно не получается, а то закрою вашу тему.

Последний раз редактировалось MaTBeu; 06.12.2008 в 01:20.
MaTBeu вне форума Ответить с цитированием
Старый 07.12.2008, 23:51   #3
mixryta
Заблокирован
 
Регистрация: 07.12.2008
Сообщений: 0
По умолчанию

<script>alert("jjh");</script>
mixryta вне форума Ответить с цитированием
Старый 08.12.2008, 09:17   #4
MjRed
 
Регистрация: 05.12.2008
Сообщений: 8
По умолчанию

А не получается вот что:

1. Все работает до того момента когда я в дополнительные массивы(т.е. buff_chet и buff_nehet) собираю четные и нечетные числа!

2. Потом мне надо эти числа записать в мои уже созданные объекты.(т.е. в А все четные,а в В все нечетные).

Я освободил память и пытаюсь их(чет. нечет.) туда записать но у меня это не получается!!!

И с чего вы взяли что это не мой код???
Программист все преврашяет в объекты

Последний раз редактировалось MjRed; 08.12.2008 в 09:26.
MjRed вне форума Ответить с цитированием
Старый 08.12.2008, 09:27   #5
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

MjRed, вы хоть смотрели в какой раздел постили тему?
Если нет - посмотрите, если да - 3000руб и будет вам счастье...
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите пожалуйста за что отвечает каждая строчка Saaashka Помощь студентам 1 02.07.2008 08:34
напишите программы nyncuk Помощь студентам 0 03.06.2008 23:04
КАК поместить ИКОНКУ программы в правый нижний угол панели(там где пуск)??? micaell Общие вопросы Delphi 5 21.02.2007 19:58