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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.05.2009, 01:46   #1
Myau Thai
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 15
Лампочка Задача на C++ (Функции)!!

Сама задачя такова!!
"Создать функцию, которая удаляет из одномерного динамического массива все элементы, равные заданному значению и уменьшает размер массива, соответственно. Проверить работу созданной функции. Создать перегруженную функцию для аналогичного удаления элементов вещественного динамического массива."

Я разбил это на 5 Кейсов всё сделал осталось "которая удаляет из одномерного динамического массива все элементы, равные заданному значению и уменьшает размер массива, соответственно"

И как понять"для аналогичного удаления элементов вещественного динамического массива"??
Немогу доделать функцию для Кейса 3 и 4 застрял
Помогите плизь
Заранее благодарен!

Код:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

void Erase (double*, int); // Удаляет из массива все элементы,равные заданному значению, и уменьшает размер массива
void Erase (char*); // Удаляет элементы вещественного динамического массива

int _tmain(int argc, _TCHAR* argv[])
{
   int v;
   const int n = 5;
   int size_a = 0;
   int size_s = 0;
   char *big_string = new char[size_s];
   double *my_array = new double[size_a];

   char const* pmenu[n] = {
      "1.Vvodim razmer massiva i inicializiruem", 
      "2.Vvodim svojo zna4enie",
      "3.Ydalenie elementov ravnie zadannomu zna4eniju",
      "4.Ydalenie elementov veshestvennogo dinam.massiva", 
      "0. VIXOD"};

   do
   {
      cout << endl;
      for (int i=0; i<n; i++)
         cout << pmenu [i] << endl;
      cout << "\nYour choice: ";
      cin >> v ;
      cin.get();
      if (cin.fail())
      {
         cin.clear();
         while (cin.get()!='\n');
         v = -1;
      }

      switch (v)
      {
      case 1:  // Ввести размер массива и инициализировать
         cout << "\nYou size of array: "; 
         cin >> size_a;
         cin.get();
         if (cin.fail())
         {
            cin.clear();
            while (cin.get()!='\n');
            break;
         };

         srand(unsigned int(time(NULL)));
         delete [] my_array;

         cout << "You array:\n";
         my_array = new double[size_a];
         for(int i=0; i<size_a; i++)
         {
            my_array[i] = int(rand()/32767.*15);
            cout << setw(5) << right << my_array[i];
         };
         break;

      case 2: // Vvesti zan4enie
         cout << "\nYou size of string: "; 
         cin >> size_s;
         cin.get();
         if (cin.fail())
         {
            cin.clear();
            while (cin.get()!='\n');
            break;
         };
         size_s++;

         delete [] big_string;
         big_string = new char[size_s];

         cout << "\nYou string: ";
         cin.get(big_string, size_s);
         while (cin.get()!='\n');
         break;

      case 3: // Ydalenie elementov ravnie zadannomu zna4eniju
         
         Erase(my_array, size_a);
         cout << "You new array:\n";
         for(int i=0; i<size_a; i++)
         {
            cout << setw(5) << right << my_array[i];
         };
         break;

      case 4: // Ydalenie elementov veshestvennogo dinam.massiva
         
         Erase(big_string);
         cout << "\nYou new string: " << big_string;
         break;

      case 0:
         delete [] big_string;
         delete [] my_array;
         break;

      default :
         cout << "\nBad input data!\n";
      }
   } while (v!=0);
   return 0;
}

void Erase(double* arr, int size)
{

HELP!!!

  }

void Erase(char* my_str)
{

HELP!!!  

}

Последний раз редактировалось Myau Thai; 25.05.2009 в 01:48.
Myau Thai вне форума
Старый 25.05.2009, 02:47   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
И как понять"для аналогичного удаления элементов вещественного динамического массива"??
Просто сделайте две функции с одним именем. В одной будете принимать массив целых чисел (например), в другой - вещественных.
Вот вам функция для вещественных. Вторую сделаете по аналогии.

Код:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

void Erase (char**, int&, char); // Удаляет из массива все элементы,равные заданному значению, и уменьшает размер массива
void Erase (double**, int&, double); // Удаляет элементы вещественного динамического массива

int main()
{
   int v;
   const int n = 5;
   int size_a = 0;
   int size_s = 0;
   char *big_string = new char[size_s];
   double *my_array = new double[size_a];
   double my_element;

   char const* pmenu[n] = {
      "1.Vvodim razmer massiva i inicializiruem", 
      "2.Vvodim svojo zna4enie",
      "3.Ydalenie elementov ravnie zadannomu zna4eniju",
      "4.Ydalenie elementov veshestvennogo dinam.massiva", 
      "0. VIXOD"};

   do
   {
      cout << endl;
      for (int i=0; i<n; i++)
         cout << pmenu [i] << endl;
      cout << "\nYour choice: ";
      cin >> v ;
      cin.get();
      if (cin.fail())
      {
         cin.clear();
         while (cin.get()!='\n');
         v = -1;
      }

      switch (v)
      {
      case 1:  // Ввести размер массива и инициализировать
         cout << "\nYou size of array: "; 
         cin >> size_a;
         cin.get();
         if (cin.fail())
         {
            cin.clear();
            while (cin.get()!='\n');
            break;
         };

         srand((unsigned int)(time(NULL)));
         delete [] my_array;

         cout << "You array:\n";
         my_array = new double[size_a];
         for(int i=0; i<size_a; i++)
         {
            my_array[i] = int(rand()/32767.*15);
            cout << setw(5) << right << my_array[i];
         };
         break;

      case 2: // Vvesti zan4enie
         cout << "\nYou size of string: "; 
         cin >> size_s;
         cin.get();
         if (cin.fail())
         {
            cin.clear();
            while (cin.get()!='\n');
            break;
         };
         size_s++;

         delete [] big_string;
         big_string = new char[size_s];

         cout << "\nYou string: ";
         cin.get(big_string, size_s);
         while (cin.get()!='\n');
         break;

      case 3: // Ydalenie elementov ravnie zadannomu zna4eniju
         
         cout<<"Enter element: ";
         cin>>my_element;
         Erase(&my_array, size_a,my_element);
        // cout << "You new array:\n";
         for(int i=0; i<size_a; i++)
         {
            cout << setw(5) << right << my_array[i];
         };
         break;

      case 4: // Ydalenie elementov veshestvennogo dinam.massiva
         
        /* Erase(big_string);
         cout << "\nYou new string: " << big_string;*/
         break;

      case 0:
         delete [] big_string;
         delete [] my_array;
         break;

      default :
         cout << "\nBad input data!\n";
      }
   } while (v!=0);
   return 0;
}

/*void Erase(char **arr, int& size, char my_element)
{

HELP!!!

  }*/

void Erase(double** arr, int& size, double my_element)
{
int newsize=0,i;
double *newarr;
for(i=0; i<size; i++)
 if((*arr)[i]!=my_element) newsize++;
newarr = new double[newsize];
newsize = 0;
for(i=0;i<size; i++)
 if((*arr)[i]!=my_element) newarr[newsize++] = (*arr)[i];
delete[] (*arr);
(*arr) = newarr;
size = newsize;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 25.05.2009, 17:48   #3
Myau Thai
Пользователь
 
Регистрация: 10.03.2009
Сообщений: 15
По умолчанию

Спасибо ..вроде понял
Myau Thai вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на процедуры и функции aiktz Помощь студентам 3 12.04.2009 20:17
задача на функции и процедуры katya36 Помощь студентам 2 17.02.2009 15:24
задача на финансовые функции student08 Microsoft Office Excel 1 17.01.2009 23:35