С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
1

Метод принимающий четыре елемента

16.04.2015, 17:55. Показов 1334. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать метод funCall который будет принимать четыре аргумента
1. указатель на двухмерную таблицу переменных типа int в которой будут пары чисел.
2. переменную типа int которая равна количеству чисел в двухмерной таблице.
3. указатель на таблицу указателей к функциям которые нужно будет выполнить.
4. переменную типа Int описывающую колчество указателей к функциям.

Целью функции должен быть вызов функций из задания 1 с аргументами из таблиц.


Оригинал
Utwórz funkcję funCall, która przyjmie cztery argumenty:
• wskaźnik na dwuwymiarową tablicę zmiennych typu int, przechowującą pary
liczb;
• zmienną typu int, określającą ilość liczb w tablicy dwuwymiarowej;
• wskaźnik na tablicę wskaźników do funkcji, określającą jakie działania należy
wykonać;
• zmienną typu int, określającą ilość wskaźników do funkcji.
Celem tej funkcji jest wywołanie wszystkich funkcji z zadania I, z argumentami dostarczonymi
w tablicy liczb.

Никак не могу разобраться с этим заданием(
Три уже написал а это не понимаю(

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
#include <iostream>
#include <cstdio>
#include <functional>
#include <iostream>
using namespace std;
 
//3
void funCall(int* el[][], int il, int *func[], int ilwsk ){
 
}
//z1
int mul(int x, int y){
 
    return x*y;
}
int dif(int x, int y){
 
    return x / y;
}
int sum(int x, int y){
 
    return x + y;
}
int sub(int x, int y){
 
    return x - y;
}
 
 
int main() {
    int x, y;
    x = 5;
    y = 2;
    int(*funPtr1)(int, int) = mul;
    int(*funPtr2)(int, int) = sum;
    //z2
    int(*tabFunPtr[4]) (int x, int y);
    tabFunPtr[0] = mul;
    tabFunPtr[1] = dif;
    tabFunPtr[2] = sum;
    tabFunPtr[3] = sub;
    //z4
    auto lamMul = [&](int x, int y) -> int{
        return x*y;
    };
    auto lamDif = [&](int x, int y) -> int{
        return x / y;
    };
    auto lamSum = [&](int x, int y) -> int{
        return x + y;
    };
    auto lamSub = [&](int x, int y) -> int{
        return x - y;
    };
    
 
 
 
 
 
 
    cout << mul(x, y) << endl;
    cout << dif(x, y) << endl;
    cout << sum(x, y) << endl;
    cout << sub(x, y) << endl;
    cout << "------------z1------------" << endl;
    cout << funPtr1(x, y) << endl;
    cout << funPtr2(x, y) << endl;
    cout << "-------------z2---------" << endl;
    for (int i = 0; i<4; i++){
        cout << (*tabFunPtr[i])(x, y) << endl;
    }
    cout << "------------------------z4--------" << endl;
    cout << lamMul(x, y) << endl;
    cout << lamDif(x, y) << endl;
    cout << lamSum(x, y) << endl;
    cout << lamSub(x, y) << endl;
    cout << "----------------------------z5------" << endl;
 
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2015, 17:55
Ответы с готовыми решениями:

Метод, принимающий массив объектов
#include &lt;iostream&gt; using namespace std; class A { private: int a; public: //int a; A()

Поиск максимального елемента массива , используя метод деления пополам
Найти максимальный элемент в массиве a1, ..., an, используя метод деления пополам max (a1, ..., an)...

Четыре угла экрана имеют четыре зеленых квадрата. Когда вы нажмете ENTER, квадраты станут синими
Как написать код??? С++ Четыре угла экрана имеют четыре зеленых квадрата. Когда вы нажмете...

Метод принимающий делегат
Написать статический метод, возвращающий количество элементов одномерного массива целых чисел....

7
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 18:13 2
Лучший ответ Сообщение было отмечено Vaderkos как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
void funCall(int el[][2], int il, int(*func[])(int, int), int ilwsk)
{
    for(int i = 0; i < ilwsk; ++i)
    {
        for(int j = 0; j < il; ++j)
        {
            func[i](el[j][0], el[j][1]);
        }
    }
}
Добавлено через 5 минут
поправил
1
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
16.04.2015, 18:36  [ТС] 3
А можете обьяснить как этим воспользоваться я немного не понимаю(проблемы с указателями)
C++
1
2
3
4
5
6
7
8
9
10
void funCall(int el[2][2], int il, int(*func[])(int, int), int ilwsk)
{
    for (int i = 0; i < il; i++)
    {
        for (int j = 0; j < ilwsk; j++)
        {
            func[i](el[0][j], el[1][j]);
        }
    }
}
Я попытался так но не работает

C++
1
2
3
4
5
        int* elementy[2][2];
    *elementy[2][2] = {{ 1, 2 }, { 3, 4 }};
    int ilel = 4;
    int ilwsk = 4;
        cout << funCall(elementy[2][2], ilel, &tabFunPtr[4], ilwsk);] << endl;
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 18:47 4
Лучший ответ Сообщение было отмечено Vaderkos как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int elementy[5][2] = {
                            { 1, 2 },
                            { 3, 4 },
                            { 5, 6 },
                            { 7, 8 },
                            { 9, 10 }
                         };
    int ilel = 5;
    int ilwsk = 4;
    int(*tabFunPtr[4]) (int x, int y);
    tabFunPtr[0] = mul;
    tabFunPtr[1] = dif;
    tabFunPtr[2] = sum;
    tabFunPtr[3] = sub;
    funCall(elementy, ilel, tabFunPtr, ilwsk);
1
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
16.04.2015, 18:59  [ТС] 5
Правда вы перепутали i и j в циклах метода но большое спасибо за помощь
C++
1
2
3
4
5
6
7
8
9
10
void funCall(int el[5][2], int il, int(*func[])(int, int), int ilwsk)
{
    for (int i = 0; i < il; i++)
    {
        for (int j = 0; j < ilwsk; j++)
        {
            cout << func[j](el[0][i], el[1][i]) << endl;
        }
    }
}
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 19:09 6
да нет. я ничего не путал) просто у вас для каждой пары значений прогоняются все функции. у меня для каждой функции - все значения. в общем, дело вкуса и порядка вычислений)
1
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
16.04.2015, 19:10  [ТС] 7
Сам же напутал но вот помоему исправил
C++
1
2
3
4
5
6
7
8
9
10
11
12
void funCall(int el[5][2], int il, int(*func[])(int, int), int ilwsk)
{
 
    for (int i = 0; i < il; i++)
    {
        for (int j = 0; j < ilwsk; j++)
        {
            cout << func[j](el[i][0], el[i][1]) << endl;
        }
    }
    
}
Добавлено через 43 секунды
Просто ваш изначальный вариант выдает Exception
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
16.04.2015, 19:17 8
Цитата Сообщение от Vaderkos Посмотреть сообщение
Просто ваш изначальный вариант выдает Exception
ну вот и я так же напутал в этом посте, но потом исправил. видимо вы не увидели.
1
16.04.2015, 19:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2015, 19:17
Помогаю со студенческими работами здесь

Возможно ли описать метод, принимающий переменную не заданного типа
Возможно ли описать метод, принимающий переменную неизвестного типа, точнее ее тип будет зависеть...

Создать метод, принимающий номер дня и возвращающий его название
В классе «Robot»создать метод «weekDay» который принимает аргумент (номер дня) и возвращает его...

MockMvc ошибка при запуске теста на метод принимающий RedirectAttributes
Есть такой метод контроллера: @RequestMapping(value = &quot;/updateVacancy&quot;, method=RequestMethod.GET...

Вызвать метод принимающий неизвестное количество переменных в Run-Time
Ну собственно сабж. Хотелось бы реализовать данную фишку, а вот как - это уже интересный вопрос....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru