Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите с функциями в с++

82K
20 ноября 2012 года
__VT_
12 / / 03.10.2012
Народ помогите пожалуйста!!!
мне нужно мой код программы сделать в функции:) точнее что бы она работала через функции) я уже голову сломал:( не получаеться:(
вот код программы
#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;
}

спасибо зарание за помощь))
414
20 ноября 2012 года
CassandraDied
763 / / 24.05.2012
Код:
#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();
}
Не благодари.
82K
21 ноября 2012 года
__VT_
12 / / 03.10.2012
вы просто всю программу записали под одну функцию)) мне нужно все программу разбить на функции))
392
22 ноября 2012 года
cronya
421 / / 03.01.2009
Код:
#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;
        }
    }
}
82K
23 ноября 2012 года
__VT_
12 / / 03.10.2012
спасибо большое:):) выручили:) теперь хоть чуть чуть понил про функции:) точнее как они пишутся:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог