Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
1

Модуль: что такое и с чем его едят?

08.11.2015, 17:30. Просмотров 499. Ответов 16
Метки нет (Все метки)

есть задание:
Створити власний модуль, що включає в себе підпрограми рішення задачі № 14.
что есть модуль, как он создается и как подключается?
предполагаю, что это обыкновенный .cpp-файл,- я прав? в таком случае нужно будет просто перенести решение задачи №14 в т.н. модуль и заинклюдить его в основной файл?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2015, 17:30
Ответы с готовыми решениями:

Что такое This и с чем его едят
Доброго дня/ночи Вот пытаюсь выкурить мануалы по теме "this". Прочитал надцать...

что такое Qt, и с чем его едят?
Здравствуйте, я бы хотел узнать что такое Qt, и как на нем программировать, я...

Что такое istream и с чем его едят?
здравствуйте. у меня такой вопрос , делаем лабы с перечислениями и структурами...

Что такое assoc и с чем его едят?
Объясните, пожаалуйста)

Что такое Класс, и с чем его едят?
собственно это я бы и хотел знать. попытался воспринять самостоятельно - не...

16
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 17:37 2
Цитата Сообщение от Anhk Посмотреть сообщение
що включає в себе підпрограми рішення задачі № 14.
Где задача №14?

Цитата Сообщение от Anhk Посмотреть сообщение
что есть модуль, как он создается и как подключается?
Хрен знает. Насколько мне известно, нету в C++ такого термина "модуль". Хотят ввести подключение модулей с помощью import, но пока такого нету.
Возможно, имелось ввиду создать заголовочный файл (header) - это которые с расширением .h обычно, и там объявить прототипы функций, а реализацию функциий затолкать в файл с исходниками (source file) - это который с расширением .cpp
0
Bespridelschic
Eternal junior
262 / 231 / 110
Регистрация: 31.07.2013
Сообщений: 1,008
Завершенные тесты: 10
08.11.2015, 17:41 3
А может под словом модуль подразумевалось использование функций?
0
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 17:45  [ТС] 4
задача №14 уже решена и лежит в соседнем проекте, там совсем лоускилл - простенькая задача с функцией и одномерным массивом.

Використовуючи підпрограми, побудувати масив у з елементами уk = fi+15(k), k=I, 2, ..., 12, i - номер варіанта. Виконати для цього масиву пошук даних, узятий з умови задачі 8.
насчет твоего варианта: таки да, он более правдоподобен.
кстати, в заголовочных файлах ведь указаны какие-то различные константы, предопределенные "моменты" и т.п. (конкретно что там - понятия не имею), но зачем там нужны прототипы функций? я не особо-то и понял, зачем они вообще нужны (прототипы)

Добавлено через 1 минуту
к посту ниже: вряд ли. ведь модуль должен включать подпрограммы (функции), а его и нужно создать.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 17:48 5
Цитата Сообщение от Anhk Посмотреть сообщение
зачем они вообще нужны (прототипы)
Они нужны компилятору, чтобы он знал:
  1. тип возвращаемого из функции значения
  2. количество аргументов
  3. тип аргументов
0
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 17:49  [ТС] 6
а сама инициализация функции разве этого не говорит ему?
0
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 17:50 7
В качестве прототипа можно использовать непосредственно определение (реализацию) функций. Но вот clang, например, варнинги кидает, типа "ой-ой, а прототипа-то нету, чувак!".
0
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
08.11.2015, 17:51 8
Модуль это class
0
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 17:51 9
Цитата Сообщение от Anhk Посмотреть сообщение
инициализация функции
Что за новый зверь? Инициализацию переменных - знаю. Об инициализации функций впервые слышу. Может ты имел ввиду реализацию функции (function implementation)?

Добавлено через 27 секунд
Цитата Сообщение от ninja2 Посмотреть сообщение
Модуль это class
Откуда дровишки?
0
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 17:53  [ТС] 10
инициализация == определение, разве нет?
aka
C++
1
2
3
void function anything(int argument-1, int agrument-2){
cout << argument-1 << endl;
}
здесь есть и само тело функции, её аргументы, названия и всё-всё. функция определена. инициализирована.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 17:53 11
Цитата Сообщение от Anhk Посмотреть сообщение
инициализация == определение, разве нет?
Нет. В случае функций реализация (implementation) == определение (definition).
1
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 17:56  [ТС] 12
понял, буду знать.
но всё равно мне не ясно, в чем такая необходимость использовать эти прототипы? разве не проще реализовать функцию и всё, не нужны никакие прототипы?
0
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 18:00 13
Anhk, нет такого понятия "инициализация функции". Есть объявление функции (function declaration). Есть определение функции (function definition), она же реализация функции (function implementation). Есть вызов функции (function call).

Добавлено через 2 минуты
Цитата Сообщение от Anhk Посмотреть сообщение
в чем такая необходимость использовать эти прототипы?
Удобно разделить функции на прототипы и реализацию, когда таких функций много. То же и с классами. Удобнее написать в заголовочнике интерфейс класса, а реализацию класса засунуть в cpp-файл.
0
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 18:02  [ТС] 14
если есть прототип, то обязательно должна быть и реализация функции?
з.ы. объявление функции == прототип?
если мой предыдущий код == реализация
0
Croessmah
++Ͻ
14776 / 8452 / 1605
Регистрация: 27.09.2012
Сообщений: 20,800
Записей в блоге: 2
Завершенные тесты: 1
08.11.2015, 18:02 15
Цитата Сообщение от Anhk Посмотреть сообщение
разве не проще реализовать функцию и всё, не нужны никакие прототипы?
попробуй, реализуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void foo(int x)
{
    if (x<0)
        return ;
    bar(--x) ;
}
 
void bar(int x)
{
    foo(x) ;
}
 
 
int main()
{
    foo(3) ;
}
Добавлено через 23 секунды
Цитата Сообщение от Anhk Посмотреть сообщение
если есть прототип, то обязательно должна быть и реализация функции?
нет.
1
sourcerer
Модератор
Эксперт CЭксперт С++
4873 / 2059 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
08.11.2015, 18:06 16
Anhk, смотри:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
// объявление функции cube():
int cube(int num); // прототип функции
 
int main ()
{
    std::cout << cube(4);
 
    return 0;
}
 
// определение (реализация) функции:
int cube(int num)
{
    return num * num * num;
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
// объявление функции cube():
// в качестве прототипа тут выступает определение (реализация)
// функции cube(), поэтому отдельно писать прототип не надо:
int cube(int num)
{
    return num * num * num;
}
 
int main ()
{
    std::cout << cube(4);
 
    return 0;
}
0
Anhk
1 / 1 / 0
Регистрация: 08.11.2015
Сообщений: 29
08.11.2015, 18:10  [ТС] 17
не компилится, полагаю из-за области видимости. прототип решает эти проблемы? :о
Цитата Сообщение от Croessmah Посмотреть сообщение
попробуй, реализуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void foo(int x)
{
* * if (x<0)
* * * * return ;
* * bar(--x) ;
}
void bar(int x)
{
* * foo(x) ;
}
int main()
{
* * foo(3) ;
}
т.е. прототипы имеют глобальную область видимости?
0
08.11.2015, 18:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2015, 18:10

Объясните что такое массив объединений и с чем его едят
Написать программу удаления заданного числового значения из массива...

Класс-контейнер? Что это такое и с чем его «едят»?
Вечер добрый, столкнулся со следующей проблемой, в общем, есть задание: ...

Нюансы использования оператора запятая или что такое UB и с чем его едят
Почему студия и ideone выдают разные значения для a и b? в студии выходит a...


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

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

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