Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен совет для первого приложения 
:(
    Опции темы
sumrok
Дата 30.3.2011, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.10.2009

Репутация: нет
Всего: нет



Доброго времени!
Недавно начал изучать Ruby, пришел к выводу, что нужно все-таки как-то практиковаться, но никак не могу придумать себе задачу по силам. Посоветуйте, что можно написать как первое более или менее серьезное приложение? smile
PM MAIL   Вверх
systemIV
Дата 30.3.2011, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 28.3.2011

Репутация: нет
Всего: -1



Ну вот задачка) Она под Си, но ёё можно более элегантно написать на Руби. Предлагаю тебе средний вариант, так как не знаю твоих знаний.
Код

Заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось до дня рождения.
Примечание. Високосные годы - это те, номер которых делится на 400, а также те, номер которых делится на 4, но не делится на 100.
Ограничения: год от 1920 до 3000, месяц - от 1 до 12, день - от 1 до числа дней в месяце.
Ввод: В первой строке находятся разделённые пробелами день и месяц рождения, во второй - разделённые пробелами текущие день, месяц и год.
Вывод: Вывести число дней, оставшихся до дня рождения.
Примеры

Ввод 1              Ввод 2                Ввод 3
19 04               05 05                  29 02
19 04 2002       19 04 2002        28 02 2001
Вывод 1            Вывод 2              Вывод 3
0                       16                      1096


На самом деле самое интересное в ней, это даже не високосный год, а сделать проверку ввода. Типа если введён месяц февраль и 29 число, а год не високосный, что бы вывела ошибку=)
Я так и не смог это сделать
PM ICQ Skype   Вверх
sumrok
Дата 31.3.2011, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.10.2009

Репутация: нет
Всего: нет



Посидел подумал над задачей и как-то не доходит реализация... Видимо мой опыт ниже среднего smile)
PM MAIL   Вверх
source777
Дата 31.3.2011, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



Не, это слишком скучная задача, для решения надо лишь вспомнить про класс Time... (можно, конечно, и не вспоминать, но в таком случае решение будет практически одинаковым для всех императивных языков программирования)
Если кто-то хочет посложнее, то попробуйте написать проверку введённой даты с помощью как можно более короткого регулярного выражения, хотя это тоже универсальная задача...  smile 


sumrok, для тебя Ruby - первый язык программирования или есть опыт в других?


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
systemIV
Дата 31.3.2011, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 28.3.2011

Репутация: нет
Всего: -1



sumrok, там всё просто. Если не использовать Тime то принцип примерно один у всех языков программирования.
Создаётся массив из 12 ячеек, каждой ячейке соответствует число дней в месяце.
Потом вычесляется номер дня в году для каждой даты. И из даты рождения вычетается дата которая сегодня. Получается количество дней. Если число отрицательное, прибавляешь 365 дней.
Можно немного по другому, если получается отрицательное, то уменьшаешь месяц на 1 и прибавляешь 30 дней.
Все числа образные, там везде проверка на месяц и вся фигня.
+ нужна процедура на високосность, если возвращает 1, то пусть инкриминирует количество дней в феврале. Если 0, то всё остаётся так же.
Если нужен готовый код и программа могу скинуть на почту) Хотел щас открыть и вписать сюда, но почему то 7z архив не читается, даже после установки пакета p7zip

Это сообщение отредактировал(а) systemIV - 31.3.2011, 14:56
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0919 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.