Консультация № 146431
08.10.2008, 11:34
0.00 руб.
08.10.2008, 13:37
0 1 1
Уважаемые здравствуйте!
Почему определение ф-ии идет в конце?
Код:
 #include <iostream>
#include <math.h>
using namespace std;
//Объявление рекурсивной ф-и
double f(double,double);
int main()
{
double x=2.76
,y
,i=15;

y=f(i,x);
y+=45;
cout<<"\nAnswer: "<<y<<endl;
return 0;
}
//Определение ф-ии
double f(double i,double x)
{
if (i==0)
return 0;
else
return (f(i-1,x)+sin(i*x));
}


И еще, что делают delete [] R; и delete p; в этом коде?
Код:
 //ЗАДАЧА 7
/*
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

int main()
{
//Объявление, заполнение и вывод первого массива
const int m=5;
const int n=6;
int V[m][n];

for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
V[i][j]=rand()%20-5;
cout<<V[i][j]<<'\t';
}
cout<<endl;
}

//Количество отрицательных элементов нечетных строк
int count=0;

//Подсчет count
for(int i=0;i<m;i+=2)
for(int j=0;j<n;j++)
if (V[i][j]<0) count++;

cout<<"\n\nCount: "<<count<<"\n\n";

//Массив R
int* R=new int[count];
//Указатель на первый элемент массива R
int* p=R;

//Заполнение массива R
for(int i=0;i<m;i+=2){
for(int j=0;j<n;j++){
if (V[i][j]<0) {
*p=V[i][j];
p++;
}
}
}

//Вывод массива R на экран
for(int i=0;i<count;i++)
cout<<R[i]<<'\t';

delete [] R;
delete p;

return 0;
}

смотрел без них, тоже все работает.


Приложение:
Уважаемый realbustard, здравствуйте!
А почему определение ф-ии идет в конце?(вопрос 146373)

И еще, помнишь в 7 задаче про массивы (вопрос 146289), что делают delete [] R; и delete p;
смотрел без них, тоже все работает.

Обсуждение

Неизвестный
08.10.2008, 12:46
общий
это ответ
Здравствуйте, Shah-ilya!
Где определять ф-ю, в конце или в начале не имеет значения. Если функций используется много и все определены в одном файле, то лучше сначала их объявить перед ф-ей
main() , чтоб было нагляднее, какие ф-ии используются. А принципиальной разницы нет. Просто показал, что можно еще и так.

К сожалению я пока не могу оставлять комментарии в минифорумах вопроса. Поэтому отвечу здесь.
Оператор delete используется для освобождения памяти.
Например, операция delete [] R , освобождает память, выделенную для массива, delete p удаляет указатель. Эта память возвращается в так называемую "кучу" , откуда мы ее и позаимствовали. Освобожденная память может использоваться снова.
Если не производить этих действий, то происходит "утечка памяти". И в большом проекте, ресурсы компьютера могут исчерпаться.
Форма ответа