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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2009, 21:28   #1
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
Вопрос Помогите доделать прогу на с++

Здесь нужно сделать еще одну функцию для формировки массива (form_mas) и также добавить пункт в меню Form_Mas...
Код:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int print_mas(int n, int* mas)
{
for(int i=0;i<n;i++) cout<<mas[i]<<" ";
cout << endl;
}

int del_mas(int n, int* mas)
{
int p;
    cout << "Enter number of element:";
    cin >> p;
p--;
for(;p<n;p++) mas[p]=mas[p+1];

cout << "Result:";
for(int i=0;i<n-1;i++)
  {
   cout<<mas[i]<<" ";
  }
cout<< endl;
}

int main()
{
    int n;
	cout<<"N:";cin>>n;

int *mas;
mas = new int[100];
srand(time(NULL));
for(int i=0;i<n;i++) mas[i]=rand()%100-50;
cout << endl;

	int k;
	do
{
cout<<"1. Print mas\n";
cout<<"2. Del Mas\n";
cout<<"3. Exit\n";
cin>>k;
switch (k)
  {
   case 1: print_mas(n,mas); break;
   case 2: del_mas(n,mas);break;
  }
}
while (k!=3);
	
    system("Pause");
	return 0;
}
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 20.04.2009, 21:40   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну как-нибудь так:
Код:
#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int print_mas(int n, int* mas)
{
for(int i=0;i<n;i++) cout<<mas[i]<<" ";
cout << endl;
}
//========================
int del_mas(int n, int* mas)
{
int p;
    cout << "Enter number of element:";
    cin >> p;
p--;
for(;p<n;p++) mas[p]=mas[p+1];

cout << "Result:";
for(int i=0;i<n-1;i++)
  {
   cout<<mas[i]<<" ";
  }
cout<< endl;
}

int *form_mas(int n)
{
 int *mas = new int[100];
 for(int i=0;i<n;i++) mas[i]=rand()%100-50;
 return mas;
}
//================
int main()
{
    int n;
	cout<<"N:";cin>>n;

int *mas;
srand(time(NULL));
int k;
	do
{
cout<<"1. Print mas\n";
cout<<"2. Del Mas\n";
cout<<"3. Form mas\n";
cout<<"0. Exit\n";
cin>>k;
switch (k)
  {
   case 1: print_mas(n,mas); break;
   case 2: del_mas(n,mas);break;
   case 3: mas = form_mas(n); break;
  }
}
while (k!=0);

    system("Pause");
	return 0;
}
Хотя лично мне ваш код ну очень не нравится. Начиная с формирования и заканчивая удалением элемента (которое удалением, по сути, не является).
Но это так, мысли.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 20.04.2009, 22:30   #3
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

А не могли бы вы помочь и с этой задачкой с динамическим масивом:
Вводим размеры матрицы(m,n), создается матрица из рандомных чисел, потом нужно чтобы программа добавляла строку после каждой четной строки. Эту программу также нужно с менюшкой сделать... У меня есть набросок но он просто ужасный =) у меня всегда были проблемы с двумерными массивами((
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 20.04.2009, 22:36   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
У меня есть набросок но он просто ужасный =)
И все же лучше его покажите. Посмотрим, что вы там наваяли. )
Цитата:
нужно чтобы программа добавляла строку после каждой четной строки
Какую строку?
И еще вопрос, навеянный вашим исходником: массив действительно должен быть динамическим (то есть при добавлении строк его размер будет увеличиваться), или как у вас - массив из сотни элементов?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 20.04.2009, 22:44   #5
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Но здеся есть одно но... Я не так прочитала условие и сделала вывод что нужно чтобы программка сумировала строки после каждой четной строки и еще самое хуже я сделала все это дело без функций =(. Короче смотрите
Код:
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;

int main()
{
srand(time(NULL));
int **matr,i,j,m,n,k,r=0;
cout<<"Vvedite kolichestvo strok: ";
cin>>m;
cout<<"Vvedite kolichestvo stolpcov: ";
cin>>n;
matr = new int*[m];
for(i=0;i<m;i++)
 {
  matr[i] = new int[n];
  for(j=0;j<n;j++)
   {
    matr[i][j] = rand()%100;
    cout.width(4);
    cout<<matr[i][j];
   }
  cout<<endl;
 }
cout<<endl;

for(int count=2,h=1;h<m;h++,count++)
{
if(count%2!=0) for(int g=0;g<n;g++) r+=matr[h][g];
}
cout << "Result:" << r;

getch();
return 0;
}
Если помогла нажмите на весы

Последний раз редактировалось Olya90; 20.04.2009 в 22:46.
Olya90 вне форума Ответить с цитированием
Старый 20.04.2009, 22:49   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
потом нужно чтобы программа добавляла строку после каждой четной строки.
Цитата:
нужно чтобы программка сумировала строки после каждой четной строки
Я до сих пор не понимаю, что должна делать программа.
Вот есть матрица:
Код:
1 2 3 4
5 6 7 8
1 2 5 7
4 5 7 8
ее размерность - 4. Какой она должна стать после работы программы?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 20.04.2009, 22:56   #7
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Как я поняла вот такой:
1 2 3 4
5 6 7 8
6 7 8 6 //вставленная строка(рандомная)
1 2 5 7
4 5 7 8
4 6 0 8 //опять же вставленная строка(рандомная)

Должна вставлятся одна новая строка с рандомніми ел-ми после каждой четной строки
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Старый 20.04.2009, 23:50   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вот так, вроде:
Код:
#include <cstdlib>
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;

int** matr_create(int n)
{
 int **M = new int*[n];
 int i,j;
 for(i=0;i<n;i++)
  {
   M[i] = new int[n];
   for(j=0;j<n;j++)
    M[i][j] = rand()%100;
  }
 return M;
}
//------------
void matr_print(int m, int n, int **M)
{
 int i,j;
 cout<<endl;
 for(i=0;i<m;i++)
  {
   for(j=0;j<n;j++)
    {
     cout.width(4);
     cout<<M[i][j];
    }
   cout<<endl;
  }
 cout<<endl;
}
//---------------
int **matr_new(int n, int **M, int &nr)
{
 int i,j,k,**tmp,l;
 nr = n + (int)(n/2);
 tmp = new int*[nr];
 for(i=0;i<nr;i++)
  tmp[i] = new int[n];

 for(k=0,i=0,l=0;i<nr;i++)
  {
   if(k==2)
    {
     k=-1;
     for(j=0;j<n;j++)
      tmp[i][j] = rand()%100;
    }
   else
    {
     for(j=0;j<n;j++)
      tmp[i][j] = M[l][j];
     l++;
    }
    k++;
  }
for(i=0;i<n;i++)
 delete[] M[i];
delete[] M;
return tmp;
}
//================
int main()
{
 int N,newr;
 int **matr;
 srand(time(NULL));
 cout<<"Enter N: ";
 cin>>N;

 matr = matr_create(N);
 matr_print(N,N,matr);
 matr = matr_new(N,matr,newr);
 matr_print(newr,N,matr);

 for(int i=0;i<newr;i++)
  delete[] matr[i];
 delete[] matr;
 getch();
	return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.04.2009, 00:14   #9
Olya90
Форумчанин
 
Аватар для Olya90
 
Регистрация: 16.03.2009
Сообщений: 125
По умолчанию

Sazary спасибо !! Ща буду изучать ))
Если помогла нажмите на весы
Olya90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доделать прогу LaMeRvDelphi Мультимедиа в Delphi 0 20.04.2009 20:38
Помогите доделать простую прогу на с++ Olya90 Помощь студентам 2 20.04.2009 18:33
Помогите доделать прогу Deis Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 22:24