Форум языка CPP

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум языка CPP » Код домашнего задания » Инициализация массива треугольниками


Инициализация массива треугольниками

Сообщений 1 страница 2 из 2

1

// Array initialization triangle, up, down, left and right
//

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <time.h>

int FunctionCreatPPointer(int **pP, int iSIZE_I, int iSIZE_J);
int FunctionInitPPointer(int **pP, int iSIZE_I, int iSIZE_J);
void FunctionViewPPointer(int **pP, int iSIZE_I, int iSIZE_J);
int FunctionTriangleLEFT_PPointer(int **pP, int iSIZE_I, int iSIZE_J);
int FunctionTriangleRIGHT_PPointer(int **pP, int iSIZE_I, int iSIZE_J);
int FunctionTriangleTOP_PPointer(int **pP, int iSIZE_I, int iSIZE_J);
int FunctionTriangleBOTTOM_PPointer(int **pP, int iSIZE_I, int iSIZE_J);

int _tmain(int argc, _TCHAR* argv[])
{

const int iSIZE = 11;
int **pArrMatrix = new int*[iSIZE];

FunctionCreatPPointer(pArrMatrix, iSIZE, iSIZE);

FunctionInitPPointer(pArrMatrix, iSIZE, iSIZE);

FunctionViewPPointer(pArrMatrix, iSIZE, iSIZE);

FunctionTriangleBOTTOM_PPointer(pArrMatrix, iSIZE, iSIZE);

FunctionViewPPointer(pArrMatrix, iSIZE, iSIZE);

for(int i = 0; i < iSIZE; ++i)
{
    delete [] pArrMatrix[i];
}

delete [] pArrMatrix;

return 0;
}
//////////////////////////////////////////////////////////////////////////////////
/*
*Function of memory allocation matrix
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionCreatPPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
for(int i = 0; i < iSIZE_I; ++i)
{
    pP[i] = new int[iSIZE_J];
}

return 0;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*The initialization function matrix
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionInitPPointer(int **pP, int iSIZE_I, int iSIZE_J)
{

for(int i = 0; i < iSIZE_I; ++i)
{
    for(int j = 0; j < iSIZE_J; ++j)
    {
    pP[i][j] = 1;
    }
}
return 0;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*Output function matrix
*/
//////////////////////////////////////////////////////////////////////////////////
void FunctionViewPPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
for(int i = 0; i < iSIZE_I; ++i)
{
    for(int j = 0; j < iSIZE_J; ++j)
    {
    std::cout<<pP[i][j];
    }
    std::cout<<std::endl;
}
std::cout<<std::endl;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*The initialization function of the triangle to the left
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionTriangleLEFT_PPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
bool bFlags = true;
int iTriangle = 1;

for(int i = 0; i < iSIZE_I; ++i)
{
    if(iTriangle == iSIZE_I/2+1)
    {
    bFlags = false;
    }
    if(iTriangle < 0)
    {
    return 1;
    }
    for(int j = 0; j < iTriangle; ++j)
    {
    pP[i][j] = 0;
    }
   
   
    if(bFlags)
    {
    ++iTriangle;
    }
    else
    {
    --iTriangle;
    }

}


return 0;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*The initialization function of the triangle to the right
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionTriangleRIGHT_PPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
bool bFlags = true;
int iTriangle = iSIZE_J;

for(int i = 0; i < iSIZE_I; ++i)
{
    if(iTriangle == iSIZE_I/2+1)
    {
    bFlags = false;
    }
   
    for(int j = iSIZE_J-1; j >= iTriangle-1; --j)
    {
    pP[i][j] = 0;
    }
   
   
    if(bFlags)
    {
    --iTriangle;
    }
    else
    {
    ++iTriangle;
    }
   
    if(iTriangle < 0 || iTriangle > iSIZE_J)
    {
    return 1;
    }

}


return 0;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*The initialization function of the triangle at the top
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionTriangleTOP_PPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
bool bFlags = true;
int iTriangleLEFT = 0, iTriangleRIGHT = iSIZE_J;

for(int i = 0; i < iSIZE_I; ++i)
{
    if(iTriangleLEFT == iSIZE_J || iTriangleRIGHT == 0)
    {
    break;
    }
    for(int j = 0; j < iTriangleRIGHT; ++j)
    {
    if(j >= iTriangleLEFT)
    pP[i][j] = 0;
    }
    ++iTriangleLEFT;
    --iTriangleRIGHT;
   
}


return 0;
}

//////////////////////////////////////////////////////////////////////////////////
/*
*The initialization function of the triangle at the bottom
*/
//////////////////////////////////////////////////////////////////////////////////
int FunctionTriangleBOTTOM_PPointer(int **pP, int iSIZE_I, int iSIZE_J)
{
bool bFlags = true;
int iTriangleLEFT = 0, iTriangleRIGHT = iSIZE_J;

for(int i = iSIZE_I-1; i > 0; --i)
{
    if(iTriangleLEFT == iSIZE_J || iTriangleRIGHT == 0)
    {
    break;
    }
    for(int j = 0; j < iTriangleRIGHT; ++j)
    {
    if(j >= iTriangleLEFT)
    pP[i][j] = 0;
    }
    ++iTriangleLEFT;
    --iTriangleRIGHT;
   
}


return 0;
}

0

2


Вы здесь » Форум языка CPP » Код домашнего задания » Инициализация массива треугольниками