|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.04.2013, 09:57 | #1 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Функции
Создайте void-функцию с именем round(), которая округляет значение своего аргумента типа double до ближайшего целого значения. Пусть round() использует параметр-ссылку и возвращает округленный результат через этот параметр. Продемонстрируйте вызов round() в программе. Для решения этой задачи вам понадобится функция modf() из стандартной библиотеки. Она имеет такой прототип:
double modf(double num, double *i); Функция modf() разлагает num на целую и дробную части. Она воз-вращает дробную часть и помещает целую часть в переменную, на которую указывает i. Функция требует заголовок <cmath>. Код:
Последний раз редактировалось Diana528; 12.04.2013 в 10:25. |
12.04.2013, 10:49 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Ответьте себе на несколько вопросов:
1) Где у вас прописана функция round? 2) Где у вас вызывается фунцкия round? 3) В чем разница между void round(double &num); и double modf(double num, double *i); 4) Зачем прописываете прототип modf? 5) Зачем делаете include <cmath> Последний раз редактировалось waleri; 12.04.2013 в 10:51. |
12.04.2013, 10:54 | #3 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
в смысле где прописана?
Функция modf() разлагает num на целую и дробную части. Она воз-вращает дробную часть и помещает целую часть в переменную, на которую указывает i. Функция требует заголовок <cmath>, т.к. это математическое действие Код:
Последний раз редактировалось Stilet; 12.04.2013 в 19:11. |
12.04.2013, 11:55 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
12.04.2013, 11:57 | #5 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Код:
Последний раз редактировалось Diana528; 12.04.2013 в 12:17. |
12.04.2013, 12:18 | #6 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
1) В C++ нельзя объявлять функции внутри других функций, такое объявление нелегально и будет некорректно интерпретировано компилятором. 2) Заголовок, описание функции ( void round(double num); ) - это просто "обещание" компилятору, что где-то там, потом, такая функция ему встретится - чтобы он не удивлялся, увидев её вызов. Определение функции должно находиться отдельно, в глобальной области видимости и его синтаксис не требует точки с запятой после сигнатуры функции: Код:
4) Далее, для такой функции нелегально использование Код:
5) Код:
|
|
12.04.2013, 12:25 | #7 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Код:
D:\Ìîè äîêóìåíòû\main.cpp In function `void round(double)': 10 D:\Ìîè äîêóìåíòû\main.cpp new declaration `void round(double)' |
12.04.2013, 12:40 | #8 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Компилятор говорит, что он уже знает одну round(double) и вторая ему не нужна. В стандарте такой функции нет. Что у Вас за компилятор?
В качестве средства борьбы, можете переименовать функцию в MyRound. |
12.04.2013, 17:40 | #9 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 639
|
Зачем в этом коде modf?
Чо вы хотели сказать этой строчкой Код:
ICQ: 677936656 Gmail: ekEmbed@gmail.com
|
12.04.2013, 17:59 | #10 |
Форумчанин
Регистрация: 25.09.2012
Сообщений: 182
|
А разве в cmath.h нету rand? Помоему есть, и её действие заключается в том, что она округляет до целого (возвращает double).
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование подпрограммы-функции: Вычислить значение функции (Турбо паскаль) | RealUnited | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 05.12.2012 20:34 |
Построение графика функции, мигание(затухание) шарика в минимумах функции | kas1m_rus | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 27.05.2012 20:28 |
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets | dmitrii6120 | Помощь студентам | 6 | 14.11.2011 20:10 |
Мини бэйсик:объявление функции, вызов функции , возврат. | AL_LORD | Помощь студентам | 2 | 14.10.2010 17:48 |
Программа на СИ++, используя функции работы с файлами и функции <string.h> | Аня Popova | Фриланс | 9 | 13.09.2010 15:52 |