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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Baadboy
5 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 24
#1

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

18.04.2012, 12:57. Просмотров 1089. Ответов 5
Метки нет (Все метки)

Пожалуйста помогите!!!
Написать программу для вычисления произведения ненулевых элементов, расположенные на четных строках массива А(4,4), В(4,4), используя протип функции!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 12:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прототип функции (C++):

Прототип функции - C++
Как правильно: void mul(int x, int y); int main() { } void mul(int x, int y) {

прототип функции - C++
сделал стандуртную программу нахождения max в массиве с помощью фунцкции... а как переделать программу чтобы перед главной фунцией,...

Прототип функции - C++
Скажите,какой смысл описывать протип функции, тоесть первую строчку функции, прописывать ещё раз вверху, перед функцией main(). Что это...

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

Прототип функции - C++
Записать прототип функции, которая осуществляет перевод десятичного числа в двоичную систему. #include <stdio.h> #include <conio.h> ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
HighPredator
5534 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
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;
}
1
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]);
Это нисколько не влияет на суть, но считается правильным.
1
Nick Alte
Эксперт С++
1638 / 1010 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 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);
1
Baadboy
5 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 24
24.04.2012, 19:46  [ТС] #5
что то не идет у меня(
0
HighPredator
5534 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
25.04.2012, 10:41 #6
Цитата Сообщение от Baadboy Посмотреть сообщение
что то не идет у меня(
Что именно?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2012, 10:41
Привет! Вот еще темы с ответами:

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

Прототип функции - C++
Здравствуйте я хотел спросить об прототипе функции ,а в общем для чего она нужна и как ее обозначать. Книга С.Прата Лекции и Упражнения.

Прототип функции - C++
Здравствуйте) Написать программу упорядочивания элементов массивов А(50), В(50), С(50) по возрастанию, используя прототип функции. ...

прототип функции - C++
Использовать прототип функции То есть заголовок перед функцией main, а описание функции в теле функции main немогу с аргументами...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.04.2012, 10:41
Ответ Создать тему
Опции темы

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