помогите с функциями в с++
мне нужно мой код программы сделать в функции:) точнее что бы она работала через функции) я уже голову сломал:( не получаеться:(
вот код программы
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"");
int **a;
int **b;
int i=0,j=0,d=0,e=0,g=0,h=0,flag=0;
int menu=0;
while (true){
cout<<"Введите размерность массива"<<endl;
cout<<"Введите колличечтво строк:"<<endl;
while (!(cin>>i))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (i>0)
{break;}
else cout<<" не верно указано значение строк, введите занова"<<endl;
}
while (true){
cout<<"\nВведите колличество столбцов:"<<endl;
while (!(cin>>j))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (j>0)
{break;}
else cout<<"не вернно указано значение столбцов, введите занова"<<endl;
}
b=new int*;
for(d=0; d<i; d++)
b[d]=new int[j];
a=new int*[j];
for(d=0; d<j; d++)
a[d]=new int;
while (menu!=6)
{
cout<<" Меню:\n1.автоматическое заполнение массива\n2.Заполнить массив вручную\n3.обработка данных\n4.вывод результата на экран.\n5.очистить экран\n6.Выход"<<endl;
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
b[d][e]=rand()%100+1;
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
cout<<b[d][e]<<" ";
cout<<endl;
}
break;
case 2:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
cout<<"Введите элемент "<<d+1<<" строки и "<<e+1<<"столбца"<<endl;
while (!(cin>>b[d][e]))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
}
}
break;
case 3:
if (flag==1)
{
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
{
a[d][e]=b[e][d];
}
}
}
break;
case 4:
if (flag==1)
{
cout<<endl;
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
cout<<a[d][e]<<" ";
cout<<endl;
}
}
else
{
cout<<"нет значений массива"<<endl;
fflush(stdin);
break;
}
break;
case 5:
system("cls");
break;
}
}
return 0;
}
спасибо зарание за помощь))
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int UberFunction()
{
int **a;
int **b;
int i=0,j=0,d=0,e=0,g=0,h=0,flag=0;
int menu=0;
while (true){
cout<<"Введите размерность массива"<<endl;
cout<<"Введите колличечтво строк:"<<endl;
while (!(cin>>i))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (i>0)
{break;}
else cout<<" не верно указано значение строк, введите занова"<<endl;
}
while (true){
cout<<"\nВведите колличество столбцов:"<<endl;
while (!(cin>>j))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (j>0)
{break;}
else cout<<"не вернно указано значение столбцов, введите занова"<<endl;
}
b=new int*;
for(d=0; d<i; d++)
b[d]=new int[j];
a=new int*[j];
for(d=0; d<j; d++)
a[d]=new int;
while (menu!=6)
{
cout<<" Меню:\n1.автоматическое заполнение массива\n2.Заполнить массив вручную\n3.обработка данных\n4.вывод результата на экран.\n5.очистить экран\n6.Выход"<<endl;
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
b[d][e]=rand()%100+1;
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
cout<<b[d][e]<<" ";
cout<<endl;
}
break;
case 2:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
cout<<"Введите элемент "<<d+1<<" строки и "<<e+1<<"столбца"<<endl;
while (!(cin>>b[d][e]))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
}
}
break;
case 3:
if (flag==1)
{
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
{
a[d][e]=b[e][d];
}
}
}
break;
case 4:
if (flag==1)
{
cout<<endl;
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
cout<<a[d][e]<<" ";
cout<<endl;
}
}
else
{
cout<<"нет значений массива"<<endl;
fflush(stdin);
break;
}
break;
case 5:
system("cls");
break;
}
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"");
return UberFunction();
}
#include <iostream>
using namespace std;
int UberFunction()
{
int **a;
int **b;
int i=0,j=0,d=0,e=0,g=0,h=0,flag=0;
int menu=0;
while (true){
cout<<"Введите размерность массива"<<endl;
cout<<"Введите колличечтво строк:"<<endl;
while (!(cin>>i))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (i>0)
{break;}
else cout<<" не верно указано значение строк, введите занова"<<endl;
}
while (true){
cout<<"\nВведите колличество столбцов:"<<endl;
while (!(cin>>j))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (j>0)
{break;}
else cout<<"не вернно указано значение столбцов, введите занова"<<endl;
}
b=new int*;
for(d=0; d<i; d++)
b[d]=new int[j];
a=new int*[j];
for(d=0; d<j; d++)
a[d]=new int;
while (menu!=6)
{
cout<<" Меню:\n1.автоматическое заполнение массива\n2.Заполнить массив вручную\n3.обработка данных\n4.вывод результата на экран.\n5.очистить экран\n6.Выход"<<endl;
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
b[d][e]=rand()%100+1;
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
cout<<b[d][e]<<" ";
cout<<endl;
}
break;
case 2:
flag=1;
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
cout<<"Введите элемент "<<d+1<<" строки и "<<e+1<<"столбца"<<endl;
while (!(cin>>b[d][e]))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
}
}
for (d=0;d<i;d++)
{
for (e=0;e<j;e++)
{
}
}
break;
case 3:
if (flag==1)
{
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
{
a[d][e]=b[e][d];
}
}
}
break;
case 4:
if (flag==1)
{
cout<<endl;
for (d=0;d<j;d++)
{
for (e=0;e<i;e++)
cout<<a[d][e]<<" ";
cout<<endl;
}
}
else
{
cout<<"нет значений массива"<<endl;
fflush(stdin);
break;
}
break;
case 5:
system("cls");
break;
}
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"");
return UberFunction();
}
вы просто всю программу записали под одну функцию)) мне нужно все программу разбить на функции))
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
void Menu(int** a, int** b, int i, int j);
int* SetParam();
int** AllocMemoryArr1(int i, int j);
int** AllocMemoryArr2(int i, int j);
void AutoArray(int** b, int i, int j);
void ManualArray(int** b, int i, int j);
void Calculate(int**a, int** b, int i, int j);
void Out(int** a, int flag, int i, int j);
void FreeMemory(int** a, int** b, int i, int j);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int **a, **b;
int *Param = SetParam();
int i = Param[0], j = Param[1];
b = AllocMemoryArr1(i,j);
a = AllocMemoryArr2(i,j);
Menu(a,b,i,j);
FreeMemory(a,b,i,j);
return 0;
}
void FreeMemory(int** a, int** b, int i, int j)
{
for(int d=0; d<j; d++)
{
delete []a[d];
}
delete []a;
for(int d=0; d<i; d++)
{
delete []b[d];
}
delete []b;
}
int** AllocMemoryArr1(int i, int j)
{
int **arr=new int*[i];
for(int d=0; d<i; d++)
arr[d]=new int[j];
return arr;
}
int** AllocMemoryArr2(int i, int j)
{
int **arr=new int*[j];
for(int d=0; d<j; d++)
arr[d]=new int[i];
return arr;
}
int* SetParam()
{
int* arr = new int[2];
int i = 0, j = 0;
while (true)
{
cout<<"Введите размерность массива"<<endl;
cout<<"Введите колличечтво строк:"<<endl;
while (!(cin>>i))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (i>0)
{
arr[0] = i;
break;
}
else cout<<" не верно указано значение строк, введите занова"<<endl;
}
while (true)
{
cout<<"\nВведите колличество столбцов:"<<endl;
while (!(cin>>j))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (j>0)
{
arr[1] = j;
break;
}
else cout<<"не вернно указано значение столбцов, введите занова"<<endl;
}
return arr;
}
void AutoArray(int** b, int i, int j)
{
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
b[d][e]=rand()%100+1;
}
}
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
cout<<b[d][e]<<" ";
}
cout<<endl;
}
}
void ManualArray(int** b, int i, int j)
{
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
cout<<"Введите элемент "<<d+1<<" строки и "<<e+1<<"столбца"<<endl;
while (!(cin>>b[d][e]))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
}
}
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
}
}
}
void Calculate(int**a, int** b, int i, int j)
{
for (int d=0;d<j;d++)
{
for (int e=0;e<i;e++)
{
a[d][e]=b[e][d];
}
}
}
void Out(int** a, int flag, int i, int j)
{
if (flag==1)
{
cout<<endl;
for (int d=0;d<j;d++)
{
for (int e=0;e<i;e++)
{
cout<<a[d][e]<<" ";
}
cout<<endl;
}
}
else
{
cout<<"нет значений массива"<<endl;
fflush(stdin);
}
}
void Menu(int** a, int** b, int i, int j)
{
int menu = 0, flag = 0;
while (menu!=6)
{
cout<<" Меню:\n1.автоматическое заполнение массива\n2.Заполнить массив вручную\n3.обработка данных\n4.вывод результата на экран.\n5.очистить экран\n6.Выход"<<endl;
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;
AutoArray(b,i,j);
break;
case 2:
flag=1;
ManualArray(b,i,j);
break;
case 3:
if (flag==1)
{
Calculate(a,b,i,j);
}
break;
case 4:
Out(a,flag,i,j);
break;
case 5:
system("cls");
break;
}
}
}
#include <iostream>
using namespace std;
void Menu(int** a, int** b, int i, int j);
int* SetParam();
int** AllocMemoryArr1(int i, int j);
int** AllocMemoryArr2(int i, int j);
void AutoArray(int** b, int i, int j);
void ManualArray(int** b, int i, int j);
void Calculate(int**a, int** b, int i, int j);
void Out(int** a, int flag, int i, int j);
void FreeMemory(int** a, int** b, int i, int j);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
int **a, **b;
int *Param = SetParam();
int i = Param[0], j = Param[1];
b = AllocMemoryArr1(i,j);
a = AllocMemoryArr2(i,j);
Menu(a,b,i,j);
FreeMemory(a,b,i,j);
return 0;
}
void FreeMemory(int** a, int** b, int i, int j)
{
for(int d=0; d<j; d++)
{
delete []a[d];
}
delete []a;
for(int d=0; d<i; d++)
{
delete []b[d];
}
delete []b;
}
int** AllocMemoryArr1(int i, int j)
{
int **arr=new int*[i];
for(int d=0; d<i; d++)
arr[d]=new int[j];
return arr;
}
int** AllocMemoryArr2(int i, int j)
{
int **arr=new int*[j];
for(int d=0; d<j; d++)
arr[d]=new int[i];
return arr;
}
int* SetParam()
{
int* arr = new int[2];
int i = 0, j = 0;
while (true)
{
cout<<"Введите размерность массива"<<endl;
cout<<"Введите колличечтво строк:"<<endl;
while (!(cin>>i))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (i>0)
{
arr[0] = i;
break;
}
else cout<<" не верно указано значение строк, введите занова"<<endl;
}
while (true)
{
cout<<"\nВведите колличество столбцов:"<<endl;
while (!(cin>>j))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
if (j>0)
{
arr[1] = j;
break;
}
else cout<<"не вернно указано значение столбцов, введите занова"<<endl;
}
return arr;
}
void AutoArray(int** b, int i, int j)
{
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
b[d][e]=rand()%100+1;
}
}
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
cout<<b[d][e]<<" ";
}
cout<<endl;
}
}
void ManualArray(int** b, int i, int j)
{
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
cout<<"Введите элемент "<<d+1<<" строки и "<<e+1<<"столбца"<<endl;
while (!(cin>>b[d][e]))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно, введите заново:"<<endl;
}
}
}
for (int d=0;d<i;d++)
{
for (int e=0;e<j;e++)
{
}
}
}
void Calculate(int**a, int** b, int i, int j)
{
for (int d=0;d<j;d++)
{
for (int e=0;e<i;e++)
{
a[d][e]=b[e][d];
}
}
}
void Out(int** a, int flag, int i, int j)
{
if (flag==1)
{
cout<<endl;
for (int d=0;d<j;d++)
{
for (int e=0;e<i;e++)
{
cout<<a[d][e]<<" ";
}
cout<<endl;
}
}
else
{
cout<<"нет значений массива"<<endl;
fflush(stdin);
}
}
void Menu(int** a, int** b, int i, int j)
{
int menu = 0, flag = 0;
while (menu!=6)
{
cout<<" Меню:\n1.автоматическое заполнение массива\n2.Заполнить массив вручную\n3.обработка данных\n4.вывод результата на экран.\n5.очистить экран\n6.Выход"<<endl;
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;
AutoArray(b,i,j);
break;
case 2:
flag=1;
ManualArray(b,i,j);
break;
case 3:
if (flag==1)
{
Calculate(a,b,i,j);
}
break;
case 4:
Out(a,flag,i,j);
break;
case 5:
system("cls");
break;
}
}
}
спасибо большое:):) выручили:) теперь хоть чуть чуть понил про функции:) точнее как они пишутся:)