MyTetra Share
Делитесь знаниями!
Двумерный динамический массив через foo
Время создания: 20.01.2017 15:53
Раздел: Computer - Programming - C++ - Lessons

/*

http://cppstudio.com/post/1321/


Найти Y, если Y = X1 + X2 + … + Xn,

X = Z^3 - B + A^2 / tg^2?.

Количество X вводятся пользователем программы.

Для каждого X значения Z, B, А, ? разные (вводятся пользователем программы).

*/

-------===MAIN.CPP===-------


#include <cstdlib>

#include <stdio.h>

#include "myfunc.cpp"


#define VARIA 4 //for Z, B, A and Betta

#define EQUATION ((ptrArray[i][0] * 3) - ptrArray[i][1] + ((ptrArray[i][2] * ptrArray[i][2]) / (ptrArray[i][3] * ptrArray[i][3])))


int main()

{

int amount = 0; //количество Х-ов

float y = 0; //конечный результат

float** ptrArray = NULL; //указатель на указатель для двумерного массива


printf("Enter number of X: ");

scanf("%i", &amount);


ptrArray = new float* [amount]; //массив указателей размером amount

//

createArr(amount, ptrArray);

/* вместо createArr()

//Создаем отедльные массивы для каждого указателя в массиве

for(int i=0; i<amount; ++i)

{

ptrArray[i] = new float [VARIA];

}

*/

//записываем значения Z,B,A,Betta для каждого Х:

for(int i=0; i<amount; ++i)

{

printf("Enter Z, B, A and Betta for X%d:\n", i+1);

for(int j=0; j<VARIA; ++j)

{

getValue(j, &ptrArray[i][j]);

/* вместо getValue()

j == 0 ? printf("Z = ") :

j == 1 ? printf("B = ") :

j == 2 ? printf("A = ") :

printf("Betta = ");

scanf("%f", &ptrArray[i][j]);

*/

}

printf("\n");

}


for(int i=0; i<amount; ++i)

{

y += EQUATION;

printf("%.2f\n", y);

}


printf("Y = %.2f\n", y);


//удаляем двумерный массив через цикл:

deleteArr(amount, ptrArray);

/* вместо deleteArr()

for(int i=0; i<amount; ++i)

{

delete [] ptrArray[i];

}

*/

getchar();

getchar();

return 0;

}


-------===MYFUNC.H===-------


#ifndef MYFUNC_H

#define MYFUNC_H


void getValue(const int count, float* const arr);

void createArr(const int count, float* ptr[]);

void deleteArr(const int count, float* ptr[]);


#endif


-------===MYFUNC.CPP===-------


#include <stdio.h.>

#include "myfunc.h"


#define VARIA 4


void getValue(const int count, float* const arr)

{

count == 0 ? printf("Z = ") :

count == 1 ? printf("B = ") :

count == 2 ? printf("A = ") :

printf("Betta = ");

scanf("%f", arr);

}


void createArr(const int count, float* ptr[])

{

for(int i=0; i<count; ++i)

{

ptr[i] = new float [VARIA];

}

}


void deleteArr(const int count, float* ptr[])

{

for(int i=0; i<count; ++i)

{

delete [] ptr[i];

}

}

 
MyTetra Share v.0.53
Яндекс индекс цитирования