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

Прототип функции - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Baadboy
 Аватар для Baadboy
5 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 24
18.04.2012, 12:57     Прототип функции #1
Пожалуйста помогите!!!
Написать программу для вычисления произведения ненулевых элементов, расположенные на четных строках массива А(4,4), В(4,4), используя протип функции!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 12:57     Прототип функции
Посмотрите здесь:

C++ Прототип функции
C++ прототип функции
Прототип функции C++
C++ Прототип функции С++
Прототип функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
21.04.2012, 18:50     Прототип функции #2
Смотрите, ваша функция должна считать произведение элементов матриц 4х4. Отсюда два вывода:
1) надо возвращать значение того же типа, что и элементы матрицы. пусть для простоты матрицы состоят из целых чисел.
2) формальный параметр функции - матрица 4х4.
Прототип функции, говоря простым языком, это та же функция, только без тела. Но она обязательно должна быть где-то реализована.
Пример прототипа:
C++
1
int Function(int t);
Пример реализованной функции:
C++
1
2
3
4
int Function(int t)
{
  return t+1;
}
Таким образом, прототип в вашем случае может выглядеть так:
C++
1
int GetProduct(int Arr[4][4]);
Теперь по условию: четная - значит кратная 2. То есть остаток от деления равен нулю. Оператор получения остатка от деления %.
Определить ненулевой элемент можно просто сравнив с нулем. Стало быть реализация вашей функции будет выглядеть наподобие этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int GetProduct(int Arr[4][4])
{
    int i,j;
    int p=1;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            if((i%2==0)&&(Arr[i][j]!=0)) p=p*Arr[i][j];
        }
    }
    return p;
}
Пример программы.
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
#include<iostream>
 
using namespace std;
 
//прототип функции
int GetProduct(int Arr[4][4]);
 
//реализация функции
int GetProduct(int Arr[4][4])
{
    int i,j;//переменные цикла
    int p=1;//переменная для хранения произведения
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            if((i%2==0)&&(Arr[i][j]!=0)) p=p*Arr[i][j];
        }
    }
    return p;
}
 
int main()
{
    int A[4][4];//матрица A
    int B[4][4];//матрица B
    //ввод матрицы A
    cout<<"Enter matrix A"<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++) 
        {
            cout<<"Enter A["<<i<<";"<<j<<"]=";
            cin>>A[i][j];
        }
    }
    //ввод матрицы B
    cout<<"Enter matrix B"<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++) 
        {
            cout<<"Enter B["<<i<<";"<<j<<"]=";
            cin>>B[i][j];
        }
    }
    cout<<"Product of matrix A: "<<GetProduct(A)<<endl;//вычисление и вывод для А
    cout<<"Product of matrix B: "<<GetProduct(B)<<endl;//выичсление и вывод для B
    getchar();
    return 0;
}
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
21.04.2012, 19:13     Прототип функции #3
Цитата Сообщение от HighPredator Посмотреть сообщение
Смотрите, ваша функция должна считать произведение элементов матриц 4х4. Отсюда два вывода:
1) надо возвращать значение того же типа, что и элементы матрицы. пусть для простоты матрицы состоят из целых чисел.
2) формальный параметр функции - матрица 4х4.
Прототип функции, говоря простым языком, это та же функция, только без тела. Но она обязательно должна быть где-то реализована.
Пример прототипа:
C++
1
int Function(int t);
Пример реализованной функции:
C++
1
2
3
4
int Function(int t)
{
  return t+1;
}
Таким образом, прототип в вашем случае может выглядеть так:
C++
1
int GetProduct(int Arr[4][4]);
Теперь по условию: четная - значит кратная 2. То есть остаток от деления равен нулю. Оператор получения остатка от деления %.
Определить ненулевой элемент можно просто сравнив с нулем. Стало быть реализация вашей функции будет выглядеть наподобие этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int GetProduct(int Arr[4][4])
{
    int i,j;
    int p=1;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            if((i%2==0)&&(Arr[i][j]!=0)) p=p*Arr[i][j];
        }
    }
    return p;
}
Пример программы.
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
#include<iostream>
 
using namespace std;
 
//прототип функции
int GetProduct(int Arr[4][4]);
 
//реализация функции
int GetProduct(int Arr[4][4])
{
    int i,j;//переменные цикла
    int p=1;//переменная для хранения произведения
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            if((i%2==0)&&(Arr[i][j]!=0)) p=p*Arr[i][j];
        }
    }
    return p;
}
 
int main()
{
    int A[4][4];//матрица A
    int B[4][4];//матрица B
    //ввод матрицы A
    cout<<"Enter matrix A"<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++) 
        {
            cout<<"Enter A["<<i<<";"<<j<<"]=";
            cin>>A[i][j];
        }
    }
    //ввод матрицы B
    cout<<"Enter matrix B"<<endl;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++) 
        {
            cout<<"Enter B["<<i<<";"<<j<<"]=";
            cin>>B[i][j];
        }
    }
    cout<<"Product of matrix A: "<<GetProduct(A)<<endl;//вычисление и вывод для А
    cout<<"Product of matrix B: "<<GetProduct(B)<<endl;//выичсление и вывод для B
    getchar();
    return 0;
}
Хорошим стилем программирования считается не писать имена переменных в прототипах, т. е. правильнее прототип было бы написать просто:
C++
1
int GetProduct(int[4][4]);
Это нисколько не влияет на суть, но считается правильным.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
21.04.2012, 19:41     Прототип функции #4
Цитата Сообщение от bz_ Посмотреть сообщение
Хорошим стилем программирования считается не писать имена переменных в прототипах
Не соглашусь - очень часто имена параметров в прототипе функции несут важную информацию об их смысле. Так, объявление
C
1
int try_connect(int, int);
говорит нам заметно меньше, чем
C
1
int try_connect(int attempts, int wait_seconds);
Baadboy
 Аватар для Baadboy
5 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 24
24.04.2012, 19:46  [ТС]     Прототип функции #5
что то не идет у меня(
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
25.04.2012, 10:41     Прототип функции #6
Цитата Сообщение от Baadboy Посмотреть сообщение
что то не идет у меня(
Что именно?
Yandex
Объявления
25.04.2012, 10:41     Прототип функции
Ответ Создать тему
Опции темы

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