понедельник, 25 августа 2008 г.

глава 8 упражнение 1

Создайте функцию, которая, если задан один аргумент, а именно адрес строки, выводит эту строку один раз. Однако если задан второй аргумент типа int, не равный нулю, то эта функция выводит строку столько раз, сколько было осуществлено вызовов этой функции к моменту ее данного вызова. (Обратите внимание на тот факт, что количество выводимых строк не равно значению второго аргумента, оно равно числу вызовов функции к моменту последнего вызова.) Согласен, это не слишком полезная функция, но практика заставит вас применить некоторые из методов, рассмотренных в данной главе. Воспользуйтесь этой функцией в простой программе, которая способна показать, как эта функция работает.




#include <iostream.h>
#include <stdlib.h>

void func (const char * stroka);
void func (const char * stroka, int k);
int i = 0;
const int arsize = 6;

void main ()
{
char loo[arsize] = "Hello";
func (loo); // 1
func (loo); // 2
func (loo); // 3
func (loo, 5);
system("PAUSE");
}
void func (const char * stroka)
{
cout << stroka << endl;
i++;
}
void func (const char * stroka, int k)
{
if (k != 0)
{
cout << "funkcija budet vyzvana " << i << " raza" << endl;
for (int n = 0; n < i; n++)
cout << n+1 << ": " << stroka << endl;
}
else
cout << "funkcija v zhope " << endl;
}

Комментариев нет: