В связи с участившимися случаями спама, у вновь зарегистрированных пользователей отключена возможность создания сообщений на форуме. Возможность писать сообщения будет включаться администратором вручную — через некоторое время после регистрации пользователя. Для включения этой функции быстрее, пишите личное сообщение администратору сайта (в сообщении напишите кратко о себе и с какой целью регистрировались на сайте).
Обратите внимание: пользователям, нарушающим п.2.1 возможность писать сообщения включаться не будет!
Просим отнестись с пониманием: это вынужденная мера.
Засада, что компилятор у Делиаса именно досовский.
Вот это да!
Ну зачем такие мучения? Срочно его в музей! Или вытереть!
Можно же современными пользоваться. Майкрософтовский Visual C++ тот же, его торрентом скачать можно.
MinGW в связке с Dev-C++, этот еще и бесплатен. Я им пользуюсь. Вот ссыль на его скачивание (http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe) Там уже все есть для работы и размер совсем небольшой.
TOR писал(а):
Результат сообщил Делиас, у него тоже не получилось. Ибо взяли int (тупо цифры в разрядную сетку не влезали). После исправления на long, вроде все заработало.
Да нет, не в инте-лонге конкретно там дело, говорю же у меня и инт нормально работает.
Очевидно, что у вас в коде просто перепутаны оператор % и функция floor().
Например вот: 48137 % 3600 = 1337 это остаток от деления 48137 на 3600, а вот floor(48137 / 3600) действительно равно 13, это целочисленная часть получившейся дроби.
Можно ведь просто засунуть в компилятор и проверить.
TOR писал(а):
А floor разве не для дробных чисел?
После деления получается как раз дробное число, floor просто выводит целочисленную часть этого числа. _________________ "Кто к нам с мечом придет, тот от меча и погибнет!" Александр Невский
я пока не разбирался ещё, но отмечу что у меня Visual C++ 2008 просто программа компилируется под коммандную консоль, если я правильно понимаю
В таком случае все в порядке. А консоль или GUI роли не играет особой - приложение 32-битное будет, там, кажется, кроме как win32, других приложений и не предусмотрено(хотя может еще 64бит, но не 16 никак). А для них тип int имеет размер 32бита - четыре миллиарда диапазон значений.
Цитата:
аналогично, хз как у Тора так получается.
Нерабочий тот код.
Вон я переписал свой первоначальный код (который тоже все же рабочий не смотря на инт), можно смело использовать, второй вариант теперь еще быстрее работает.
Вот вся программа для перевода секунд в часы-минуты-секунды. В ней оба варианта кода и пресловутый int. Нужно просто скопировать в новый файл исходника си++ в ВизуалеСи++ и откомпилить:
Код:
#include <math.h>
#include <iostream>
using namespace std ;
int main() {
int allsec, allmin, second, minute, hour;
allsec=0;
//Ввод секунд
cout << "Input seconds: " ;
cin>>allsec;
//Первый вариант
second = allsec % 60 ; //остаток от деления - секунды текущего времени
allmin = floor(allsec / 60) ; //все минуты
minute = allmin % 60 ; //остаток от деления - минуты текущего времени
hour = floor(allmin / 60) ; // часы
Вот вся программа для перевода секунд в часы-минуты-секунды.
спасибо конечно, но я смотреть не буду пока сам не напишу, а потом и сравню
вот блин, тема была блок-схема, а тут взяли и все задачки за меня порешали))
нельзя так, иначе я С++ не выучу)) _________________
спасибо конечно, но я смотреть не буду пока сам не напишу, а потом и сравню
Да это просто перевод секунд, демонстрация работы тех вариантов кода, которые я уже постил - четыре строчки полезных, не больше. Там в программе будильника ведь еще очень много чего помимо расчета показаний времени для вывода.
delias писал(а):
вот блин, тема была блок-схема, а тут взяли и все задачки за меня порешали))
нельзя так, иначе я С++ не выучу))
Это всего одна задачка, если бы не запутали меня с интом и все такое, я бы и не писал такую программку. Но, повторюсь - в ней ну совсем ничего нет особенного, 4 строчки перевода секунд в часы-минуты - вот и все, что касается будильника.
И это в принципе нормальный путь изучения языка - по исходникам, да с комментариями, плюс справочник, учебник. _________________ "Кто к нам с мечом придет, тот от меча и погибнет!" Александр Невский
нееее, у тебя 5 лет образования, у меня 3 недели. да ещё и другие задания пока что делаю. как сделаю вернусь к будильнику))
хотя ты можешь сделать в консоли и выложить .ехе а мы посморим результат ;)
Мдя, признаю ошибку, ибо символ % означал остаток от деления. А мне нужна была целая часть. По сему код выглядит так:
Код:
#include <math.h>
#include <iostream.h>
int main()
{
long allsec;
int H,M,S;
allsec=0;
//Ввод секунд
cout << "Input seconds: " ;
cin>>allsec;
H = allsec / 3600;
M = (allsec - (long)H*3600) / 60;
S = allsec - (long)H*3600 - M*60;
cout << H << ":" << M << ":" << S <<endl<<endl;
return 0;
}
Звыняйте, на работе скачал только Turbo C 3.0. Проверял тоже на нем.
Сегодня дома вечером может заставлю себя сделать виндовый будильник. ЕХЕ выложу ))
Для такого расчета файл #include <math.h> не нужен - я его только для floor вводил. _________________ "Кто к нам с мечом придет, тот от меча и погибнет!" Александр Невский
Та да, да и стиль написания как на С, а не на "крестах". Посмотрите на стиль Max_K, у него правильнее, расширение .h - осталось для библиотек С, в С++ от расширения отказались, так что вы можете подключить не те библиотеки. Да и
Код:
using namespace std ;
не забывать лучше, для простецкой проги не важно, но если уж учиться, то лучше сразу учиться по правилам.
Тогда давайте ещё доклепаемся, что в эпоху винды эти проги написаны консольным приложением.
З.Ы. По поводу math.h согласен, но на работе как-то я не С занимаюсь, по-этому времени было в обрез. Главное код рабочий.
В эпоху винды, я сижу и работаю не в винде, а зачастую в консоли.
Мне в свое время это расширение поимело мозги, решил изучающему человеку помочь не наступать на эти грабли. Смысл топика не напишите за меня прогу с рабочим кодом, а помочь в изучении С++. Думаю мои замечания для delias'a лишними не будут.
Часовой пояс: GMT + 2 На страницу Пред.1, 2, 3След.
Страница 2 из 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах