Форум программистов, компьютерный форум CyberForum.ru

программа и функция с переменным числом параметров - C++

Восстановить пароль Регистрация
 
Pokemon1
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 6
17.10.2012, 00:25     программа и функция с переменным числом параметров #1
Реализовать функцию с переменным числом параметров. Параметрами являются символы, которые определяют, какие функции должны быть выполнены. Функции необходимо вызвать, используя указатели на них. Реализовать функцию с переменным числом параметров. Параметрами являются символы, которые определяют, какие функции должны быть выполнены. Функции необходимо вызвать, используя указатели на них.
Помогите пожалуйста ее скомпилировать...Есть ошибки но не знаю как исправить...Кое-что надо поменять...Теоретически нормально же?
Идея программы...
Ввести 5 чисел.Есть набор параметров.Есть функции для действий,что указаны в параметрах. Дальше вывести результат после выполнение функций.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdarg.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main( )
{
void   tumbl (char *s, int k,. . .);
tumbl ("\t ** suma proizvideniya max elementov ** \n" ,3, 's', 'u' , 'm') ;
tumbl("\t ** suma max elementov** \n" , 2, 'm', 's' ) ;
tumbl("\t** suma proizvideniya**\n", 2, 's' , 'u');
tumbl ("\t**suma**\n",1, 's');
tumbl ("\t** proizvideniya**\n", 1, 'u' ) ;
tumbl {"\t**nayti max element **\n", 1, 'm') ;
 }
 ;
void tumbl (char *s, int k, . . .) 
{
int (*fn ) (int, . . .); 
int fl     (int n, . . .); 
int f2    (int n, . . .); 
int f3    (int n, . . .); 
int i, x1, x2, x3, x4, x5, rez; 
va_list p;     
char r; 
do       
{
va_start (p, k);
cout << s << endl << " Vvedite 5 chisel"; 
cin >> xl >> x2 >> x3 >> x4 >> x5;
for(i=0; i<k; i++)
{
 
switch (r = va_arg(p, int))
{
case 's': fn = f1; 
break;
case 'n': fn=f2; 
break;
case 'm': fn = f3; 
break;  
rez = fn(5, xl, x2, x3, x4, x5); 
switch (r)
{
 
case's'; cout << "suma = " << rez << endl; 
break; 
case 'u': cout << "proizvideniye  = "<<rez << endl; 
break; 
case 'm': cout << "max element = " << rez << endl; 
break;
    }
} va_end(p) ;
cout <<  ("Povtorit? (y/n)"); 
r=getch();
} 
while (r = ='y');  
}         
 
int f1(int n, . . .)        /*nahodit Sumu*/
{ 
int i, k, mx;  
va_list p; 
 mx = 0;    
va_start(p, n); 
for (i=0; i<n; i++) mx += va_arg(p, int); 
va_end(p); 
return mx;  
} 
int f2(int n, . . .)        /*nahodit proizvideniye */
{ 
int i, k, mx;  
va_list p;   
mx=l; 
va_start(p, n); 
for (i= 0; i<n; i++)
mx*=va_arg(p, int); 
va_end(p); 
return mx;
}
int f3(int n, . . .)     /*nahodit max element */
{ int i, k, mx; va_list p;  mx=-32768; 
va_start(p, n) ; 
for (i = 0; i<n; i++) 
if((k=va_arg(p, int))>mx)      mx=k;   
va_end(p);    
return mx;  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 00:25     программа и функция с переменным числом параметров
Посмотрите здесь:

C++ Функция с переменным числом параметров
В функция с переменным числом параметров. C++
C++ функция с переменным числом параметров
C++ функция с переменным числом параметров
Функция с переменным числом параметров C++
Функция с переменным числом параметров C++
Функция с переменным числом параметров C++
C++ Функция nok с переменным числом параметров

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tofvis
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 6
26.01.2013, 04:45     программа и функция с переменным числом параметров #2
Скорей всего вопрос не актуален но я сам учусь и вот скомпелировал вашу програму.
в гугле советую на эту тему искать на английском c++ function parameter ellipsis

Вот собственно код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdarg.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
 
void   tumbl (char *s, int k,...);
int (*fn ) (int, ...); 
int f1     (int , ...); 
int f2    (int , ...); 
int f3    (int , ...); 
//int i, x1, x2, x3, x4, x5, rez; 
 
int main( )
{
    
char buf[70] = {"\t ** suma proizvideniya max elementov ** \n"};
while(1)
{
 
tumbl (buf ,3, 's', 'u' , 'm') ;
// если снять коментарии все компилируется
//tumbl("\t ** suma max elementov** \n" , 2, 'm', 's' ) ;
//tumbl("\t** suma proizvideniya**\n", 2, 's' , 'u');
//tumbl ("\t**suma**\n",1, 's');
//tumbl ("\t** proizvideniya**\n", 1, 'u' ) ;
//tumbl ("\t**nayti max element **\n", 1, 'm') ;
}
}
 
void tumbl (char *s, int k, ...) 
{
 
 
int i, x1, x2, x3, x4, x5, rez; 
va_list p;     
char r; 
do       
{
va_start (p, k);
cout << s << endl << " Vvedite 5 chisel"; 
cout << endl;
cin >> x1 >> x2 >> x3 >> x4 >> x5;
cout << "Vedi s = nahodit Sumu, n = nahodit proizvideniye, m = nahodit max element ";
cout << endl;
for(i=0; i<k; i++)
{
 r = _getch();
switch (r = va_arg(p, int))
{
case 115: fn = f1; 
rez = fn(5, x1, x2, x3, x4, x5); 
cout << "suma = " << rez << endl; 
break;
case 110: fn = f2; 
rez = fn(5, x1, x2, x3, x4, x5); 
 cout << "proizvideniye  = "<<rez << endl; 
break;
case 109: fn = f3; 
rez = fn(5, x1, x2, x3, x4, x5); 
 cout << "max element = " << rez << endl;
break;  
 
}
 va_end(p) ;
cout <<  ("Povtorit? (y/n)"); 
r = getch();
}
}while (r == 'y');  
        
}
 
 
 
int f1(int n, ...)        /*nahodit Sumu*/
{ 
int i, k, mx;  
va_list p; 
 mx = 0;    
va_start(p, n); 
for (i=0; i<n; i++) mx += va_arg(p, int); 
va_end(p); 
return mx;  
} 
 
int f2(int n, ...)        /*nahodit proizvideniye */
{ 
int i, k, mx;  
va_list p;   
mx=1; 
va_start(p, n); 
for (i= 0; i<n; i++)
mx*=va_arg(p, int); 
va_end(p); 
return mx;
}
 
int f3(int n, ...)     /*nahodit max element */
{ int i, k, mx; va_list p;  mx=-32768; 
va_start(p, n) ; 
for (i = 0; i<n; i++) 
if((k=va_arg(p, int))>mx)      mx=k;   
va_end(p);    
return mx;  
}
Yandex
Объявления
26.01.2013, 04:45     программа и функция с переменным числом параметров
Ответ Создать тему
Опции темы

Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru