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

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

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

Определить формат последовательности параметров функции и написать к ней вызов с фактическими параметрами - C++

22.06.2010, 16:02. Просмотров 306. Ответов 0
Метки нет (Все метки)

Пример оформления тестового задания.

Определите формат последовательности параметров функции и напишите ее вызов с фактическими параметрами – константами.

C++
1
2
3
4
5
6
7
8
//----------------------------------------------------92-08.cpp
double F(int a1,...)                                  // Первый параметр - счетчик цикла
{ int i,n;
double s,*q=(double*)(&a1+1);                 // Указатель на второй и последующие
for (s=0, n=a1; n!=0; n--)             // параметры - типа double*
s += *q++;                                // Сумма параметров, начиная
return s;}                                               // со второго
void main() { printf("%lf\n",F(3,1.5,2.5,3.5)); }
Указатель q типа double* ссылается на второй параметр функции (первый из переменного списка) - &a1+1 – указатель на область памяти, «следующую за…». Первый параметр используется в качестве счетчика повторений цикла, цикл суммирует значения, последовательно извлекаемые из-под указателя q. Результат – функция суммирует вещественные переменные из списка, предваренного целым счетчиком.

Сами функции:
C++
1
2
3
4
5
6
//--------------------------------------------------------6
char *F6(char *p,...)
{ char **q; int i,n;
for (i=0, n=0, q = &p; q[i] !=NULL; i++)
     if (strlen(q[i]) > strlen(q[n])) n=i;
return q[n]; }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//--------------------------------------------------------8
union xx { int *pi; long *pl; double *pd; };
double F8(int p,...)
{ union xx ptr;
double dd=0;
for (ptr.pi = &p; *ptr.pi != 0; )
           {
        switch(*ptr.pi++) {
 case 1: dd+= *ptr.pi++; break;
 case 2: dd+= *ptr.pl++; break;
 case 3: dd+= *ptr.pd++; break;
        }}
return dd;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2010, 16:02     Определить формат последовательности параметров функции и написать к ней вызов с фактическими параметрами
Посмотрите здесь:

Программа осуществляющая вызов функции несколько раз с различными параметрами - C++
Даны действительные числа s,t. Получить g(1.2s)+g(2s-1,st), где g(a,b)=\frac{{a}^{2}+{b}^{2}-4*a*b}{{a}^{2}+5*a*b+3*{b}^{2}+4*a-b} ...

Вызов функции с неопределенным количеством параметров - C++
Делаю некоторую работу для университета на с++ и windows forms. Есть функция с неопределенным количеством параметров, но использование...

Написать перегружаемые функции умножения разного количества параметров - C++
Помогите пожалуйста с задачей ничего не понимаю: Написать перегружаемые функции умножения разного количества параметров: 2,3,4. При...

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

Как определить вызов функции API - C++
Доброго времени суток. Есть маленький кейлоггер, который постоянно вызывает функцию API - GetAsyncKeyState. Как в абсолютно другой...

Асинхронный вызов метода с параметрами - C++
Здравствуйте, возможно ли в c++ вызвать метод с параметрами и не дожидаясь его завершения продолжать выполнять код? Например. ...

Удаленный вызов программы с параметрами - C++
Необходимо вызывать программу удаленно с параметрами в рамках локальной сети, обе программы с пишу на С++, какое оптимальное решение может...

Преобразовать вызов метода класса с параметром в функцию с двумя параметрами - C++
Можно ли при помощи адаптеров преобразовать выражение типа x->Func(y) в выражение Func(x,y)? Нужно для использования в list.sort()....

Функции:Написать рекурсивную процедуру для ввода с клавиатуры последовательности - C++
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чисел и вывода ее на экран в обратном порядке (окончание...

Вызов telnet и передача параметров - C++
Возникли некоторые трудности. Каким образом можно запустить стандартный клиент telnet.exe и передать ему параметры (ip/port) для...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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