Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
1

Преобразование значения переменной (long) через функцию в значения структуры

09.12.2012, 00:55. Показов 752. Ответов 6
Метки нет (Все метки)

Я недавно начал заниматься С++ и программированием в целом.
Вот у меня такая проблема.

В этой программе не работает часть, когда вводишь кол-во секунд, а с помощью функции time secs_to_time(long ss) оно должно преобразовать секунды в структуру TIME с соответствующими значениями d2.hours, d2.minutes, d2.seconds

В Процедуре time secs_to_time(long ss) выдает 3 ошибки (мол не хватает точек с запятой), но не могу понять где ошибка... Везде где надо стоят.... В чем ошибка ?


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
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
////////////////////
struct time
{
int hours;
int minutes;
int seconds;
};
 
long time_to_secs(time);
time secs_to_time(long);
 
////////////////////    
int main()
{
    time d1;
    char ch;
    long seconds;
            cout<<"Vvedite vremya v formate H:MM:SS\n";
            cin>>d1.hours>>ch>>d1.minutes>>ch>>d1.seconds;
        time_to_secs(d1);
            cout<<"\nVvedite kolvo secund: "<<endl;
            cin>>seconds;
        secs_to_time(seconds);
    system("pause");
    return 0;
};
 
 
////////////////////
long time_to_secs(time dd)
{
    long temp;
    temp=3600*dd.hours+60*dd.minutes+dd.seconds;
    cout<<temp<<endl;
    return 0;
};
 
////////////////////
///////////////////     В этой функции ошибки
 
time secs_to_time(long ss)
{
    time d2;
    while (ss>=3600)
    {
    ss:=ss-3600;
    d2.hours++;
    };
    while (ss>=60)
    {
    ss:=ss-60;
    d2.minutes++;
    };
 
    d2.seconds:=ss;
    cout<<d2.hours<<" chasov"<<d2.minutes<<" minut"<<d2.seconds<<" secund";
    return d2;
};
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2012, 00:55
Ответы с готовыми решениями:

Как ловить изменение значения переменной и вызывать функцию через connect?
Есть переменная QString page = &quot;index&quot;; Как ловить изменение переменной и при изменении её...

Ошибка присвоения переменной типа long значения 600851475143
Нужно присвоить переменной zn значение 600851475143, но пишет, что вышел из диапазона. Хотя,...

Написать функцию для перевода переменной типа long в символьную строку в шестнадцатиричном представлении ( ltoah( long num, char s[]) ) и тестирующую
Написать функцию для перевода переменной типа long в символьную строку в шестнадцатиричном...

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в...

6
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
09.12.2012, 00:58 2
Цитата Сообщение от soa432 Посмотреть сообщение
ss:=ss-3600;
Вы же не на делфи пишете?
0
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
09.12.2012, 01:00  [ТС] 3
Пишу в Visual Studio 6.0
0
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
09.12.2012, 01:56 4
C++
1
2
3
4
5
6
7
8
9
10
void sec_to_time(long ss)
{
    long sec, minute, hour;
 
    sec = ss % 60;
    minute = (ss / 60) % 60;
    hour = ss / 60 / 60;
 
    std::cout << hour << ':' << minute << ':' << sec << '\n';
}
Добавлено через 1 минуту
вообще-то time определена в ctime как функция.
0
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
09.12.2012, 02:06  [ТС] 5
Нашел сам ошибку, но все равно спасибо тем, кто отозвался)
Вот исправленный код программы
Когда создается структура, ее переменные (Long) принимали значения -87+++++++ это первая ошибка.
Нужно было обнулить значения d2.hours,d2.minutes,d2.seconds
И к тому же перепутал синтаксис с Паскалем... Использовал знак присвоить ":=" вместо "="


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
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
////////////////////
struct time
{
int hours;
int minutes;
int seconds;
};
 
long time_to_secs(time);
time secs_to_time(long);
 
////////////////////
 
int main()
{
    time d1;
    char ch;
    long seconds;
            cout<<"Vvedite vremya v formate H:MM:SS\n";
            cin>>d1.hours>>ch>>d1.minutes>>ch>>d1.seconds;
        time_to_secs(d1);
            cout<<"\nVvedite kolvo secund: "<<endl;
            cin>>seconds;
        secs_to_time(seconds);
    system("pause");
    return 0;
};
 
 
////////////////////
long time_to_secs(time dd)
{
    long temp;
    temp=3600*dd.hours+60*dd.minutes+dd.seconds;
    cout<<temp<<endl;
    return 0;
};
 
////////////////////
 
time secs_to_time(long ss)
{
    time d2;
    d2.hours=0;
    d2.minutes=0;
    d2.seconds=0;
    while (ss>=3600)
    {
        ss=ss-3600;
        d2.hours++;
    };
    while (ss>=60)
    {
        ss=ss-60;
        d2.minutes++;
    };
    d2.seconds=ss;
    cout<<d2.hours<<":"<<d2.minutes<<":"<<d2.seconds<<endl;
    return d2;
};
0
256 / 46 / 4
Регистрация: 24.11.2012
Сообщений: 466
09.12.2012, 02:14 6
soa432, все таки взгляни на предложенный вариант. Получше будет. Еще ознакомься с Сишкой, в частности ctime.
0
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 18
09.12.2012, 14:08  [ТС] 7
Я ознакомился, просто по условию задачи, надо тип данных Long (В которых вводится кол-во секунд), перевести с помощью функции в структурные данные. (d.hours,d.minutes,d.seconds)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2012, 14:08

Передача значения из поля структуры в функцию
Здравствуйте, у меня возникла проблема - у меня есть структура: struct game { char...

Передача значения переменной в функцию
У меня возникла проблема с передачей значения в функцию. В общем код: ...

Передача значения переменной в функцию
Написал функцию, но она не отрабатывается check_file_backup(){ if ] then echo...

Просвоение значения переданной переменной в функцию
Не знаю даже как это называется, потому опишу абстрактно вкратце: Есть некая функция, которая...


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

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

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