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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Pokemon1
0 / 0 / 0
Регистрация: 07.10.2012
Сообщений: 6
#1

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

17.10.2012, 00:25. Просмотров 452. Ответов 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;  
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 00:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программа и функция с переменным числом параметров (C++):

Функция с переменным числом параметров, как узнать кличество переданных параметров? - C++
Добрый вечер, можно не использовать int n, а каким то другим способом узнать количество переданных аргументов в функцию и адрес? int suma...

Функция с переменным числом параметров находящая максимальный элемент в списке параметров - C++
Написать функцию с переменным числом параметров:Максимальный из элементов в списке параметров, стоящих на нечетных местах....

Функция с переменным числом параметров - C++
В функцию с переменным числом параметров поступают символы, конец списка - ноль-символ '\ 0'. Найти и вывести символ чаще всего...

В функция с переменным числом параметров. - C++
В функцию с переменным числом параметров поступают слова, конец списка - указатель NULL. Найти и вывести все слова, которые читаются...

Функция с переменным числом параметров - C++
Функция с переменным числом параметров. Задание: Среднее арифметическое с елементов в списке параметров ,которые стоят на парных местах.

Функция с переменным числом параметров - C++
Доброе время суток! Решил навести красивость в функции что бы по мимо возврата хеш суммы она еще и печатала она (а то там базу надо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;  
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2013, 04:45
Привет! Вот еще темы с ответами:

Функция с переменным числом параметров - C++
Задача посчитать сокрытые сумму сокрытых аргументов ф-ции. #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;stdarg.h&gt; using namespace...

Функция с переменным числом параметров - C++
Написать функцию sum с переменным числом параметров, которая находит сумму заданных обыкновенных дробей. Написать вызывающую функцию main,...

Функция с переменным числом параметров - C++
Написать функцию с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . )...

Функция с переменным числом параметров (задание) - C++
Максимальный из элементов в списке параметров, стоящих на четных местах(условие)


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru