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

Переделать процедуру в функцию - C++

Восстановить пароль Регистрация
 
ozimandius
2 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 29
14.03.2013, 21:44     Переделать процедуру в функцию #1
Доброго времени суток! Выполнил условие программы, но оформлена она должна быть в виде функции, но я никак не могу вернуть результат для последующего использования.Объясните пожалуйста как вернуть его,чтоб можно было использовать это значение в теле функции main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int vremia(int a,int b, int c)
{int aa,bb,T=0;
if(a==24){a=0;}
if(b==60){a=a+1;b=0;}
if(c==60){b=b+1;c=0;}
    if(a<0 || b<0 || c<0 || a>24 || b>60 || c>60){cout<<"!!!!!!!!!!!";}
if(a>=0&& a<=12){aa=a*3600;bb=b*60;T=aa+bb+c;}
if(a>12 && a<=23){a=a-12;aa=a*3600;bb=b*60;T=aa+bb+c;}
cout<<"Со времени, когда часы последний раз показали “12” прошло "<<T<<" секунд\n";
return(T);//вроде это и отличает функцию от процедуры, но значение не возвращается
}
 
int main ()
{   system("chcp 1251>null");
    int c,m,s;
    std::cout<<"Введите время: \n ->>";
    std::cin>>c>>m>>s;
    vremia(c,m,s);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FarStar
Заблокирован
14.03.2013, 21:51     Переделать процедуру в функцию #2
Что ты хочешь? Вернуть Т? Тогда убери скобки return(T), тоесть return T; Но тыж всё равно его потом не используешь vremia(c,m,s);
Да, и прототип сверху напиши int vremia(int a,int b, int c);
ozimandius
2 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 29
14.03.2013, 23:01  [ТС]     Переделать процедуру в функцию #3
А как сделать так чтоб можно было его использовать в дальнейшем?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
float srednee(float a,float b,float c)
{ float min=a;
    if (b<min){min=b;}else{if(c<min){min=c;}}
    return min;
}
 
int main ()
{   system("chcp 1251>null");
    float j,k,t;
    std::cout<<"Введите 3 числа для сравнения: \n ->>";
    std::cin>>j>>k>>t;
    srednee(j,k,t);
    std::cout<<"Наименьшее из трёх чисел: "<<min<<"\n";// вот так например, как сделать переменную мин доступной??
}
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
14.03.2013, 23:05     Переделать процедуру в функцию #4
Тогда убери скобки return(T), тоесть return T;
Скобки убирать не нужно.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
15.03.2013, 00:21     Переделать процедуру в функцию #5
Цитата Сообщение от ozimandius Посмотреть сообщение
А как сделать так чтоб можно было его использовать в дальнейшем?
Вот простой код с функцией которая возращает значение -
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int Number (int a,int b){
    
    return a+b;
 
}
 
int main(int argc, char *argv[])
{
    int Chislo = 0 ;
    
Chislo = Number (5,3);
 
cout<<"Chislo = "<<Chislo<<"\n";    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
ozimandius
2 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 29
15.03.2013, 00:42  [ТС]     Переделать процедуру в функцию #6
То есть отдельно возвращаемое значение использовать в другой функции не получится но можно использовать функцию целиком?
C++
1
cout<<"Chislo = "<<Chislo<<"\n";
И будет выведено значение возвращаемое функцией?
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
15.03.2013, 09:27     Переделать процедуру в функцию #7
ozimandius, и в другой функции значение данной функции тоже можно использовать.

Добавлено через 1 минуту
а вообще лучше тебе почитать про функции.как,что и с чем их едят.
ozimandius
2 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 29
16.03.2013, 21:53  [ТС]     Переделать процедуру в функцию #8
Спасибо, разобрался с возвратом значений.
Можете помочь разобраться, почему в данной функции возникает ошибка?
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
#include <iostream>
#include <time.h>
int orilires(){
srand(time(NULL));
    int moneta =rand()%2;
    return moneta;
    }
int storaz(){
    srand(time(NULL));
int i,m=0;
    int res[100];
for(i=0,i<100,i++)//Вот тут показывает ошибку : необходима точка с запятой, но ведь там никаких ";" не нужно, 
//может это глюк visual studio??
{
    res[i]= rand()%2;
    if(res[i]== 0){m=m+1;}
}
return m;
}
int main ()
{   system("chcp 1251>null");
std::cout<<"Подбрасываем монетку...\nРезультат броска -->> ";
int i= orilires();
if(i == 1){std::cout<<"Выпала решка"<<"\n";}else{std::cout<<"Выпал орёл"<<"\n";}
 
std::cout<<"Подбрасываем монетку 100 раз...\nВ результате броска -->> \n Решка выпала  "<<storaz(); std::cout<<"\nОрёл выпал "<<100-storaz();std::cout <<" раз\n";
}
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.03.2013, 22:51     Переделать процедуру в функцию #9
Потому что вам надо внимательнее читать спецификацию синтаксиса for. Там именно точки с запятой, а не запятые.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2013, 23:20     Переделать процедуру в функцию
Еще ссылки по теме:

Как переделать через функцию?( C++
Переделать функцию с помощью шаблонов C++
C++ Переделать кусок программы в функцию

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

Или воспользуйтесь поиском по форуму:
ozimandius
2 / 0 / 0
Регистрация: 14.02.2013
Сообщений: 29
16.03.2013, 23:20  [ТС]     Переделать процедуру в функцию #10
О! спасибо огромное, что-то я совсем затупил...
Yandex
Объявления
16.03.2013, 23:20     Переделать процедуру в функцию
Ответ Создать тему
Опции темы

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