С Новым годом! Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.02.2014
Сообщений: 3

Простая задача про високосные года

26.02.2014, 12:48. Показов 3436. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Алоха! Недавно начал изучать руби, и столкнулся с такой ошибкой.


Условие задачи:
Високосные годы. Напишите программу, которая будет спрашивать начальный год и
конечный год, а затем выдавать с помощью puts все високосные годы между ними (и
включая их, если они также високосные). Високосные годы — это годы, нацело
делящиеся на 4 (как 1984 и 2004).

Код:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#coding: utf-8
year1 = ''
year2 = ''
puts 'Введите начальный год:'
year1 = gets.chomp
puts 'Введите конечный год:'
year2 = gets.chomp
puts 'Введенные года с ' +year1+ ' по ' +year2
while year1 != year2
    if year1 % 4 == 0 
    puts year1+ ' год - является високосным'
    else
    puts year1+ ' год - НЕ является високосным'
    end
    year1 = year1 + 1
    end
Я понимаю что он ругается из-за типов, что к string нельзя прибавить число , но я пробывал менять c помощью
.to_i но не помогло. И работает программа не правильно.
Миниатюры
Простая задача про високосные года  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2014, 12:48
Ответы с готовыми решениями:

Задача простая Года n<=100
Дано натуральне число n(n&lt;=100), яке визначає вік людини ( в роках). Дати для цього числа найменування «років», «рік», «роки»: наприклад, 1...

високосные отрицательные года
здравствуйте. у меня стоит задача, проверить образуют ли три введенные числа правильную дату (естественно год может быть отрицательным и...

Депозитный калькулятор - как учитывать високосные года?
Доброго времени суток! Хочу написать программу &quot;Депозитный калькулятор&quot;. Вроде, всё сделал, но вышла проблема с высокосными годами. т.е....

4
2 / 2 / 4
Регистрация: 17.02.2014
Сообщений: 18
26.02.2014, 14:39
Значения переменных year1 и year2 нужно преобразовать в числа. Вы об этом сами написали, но не сделали.
Ruby
1
year1 = gets.chomp.to_i
В остальном ваш код вроде рабочий.


На заметку.
Конструкции вида
Ruby
1
puts 'Введенные года с ' +year1+ ' по ' +year2
можно заменить на
Ruby
1
puts 'Введенные года с #{year1} по #{year2}.
В руби у класса Date есть метод #leap?, который возращает истина или ложь в зависимости от того високосный год или нет. Пример
Ruby
1
2
3
4
require 'date'
 
Date.new(2004)
Date.new(2004).leap? # True
2
0 / 0 / 0
Регистрация: 26.02.2014
Сообщений: 3
26.02.2014, 16:35  [ТС]
Спасибо ! вот что в итоге полулиось:
Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#coding: utf-8
year1 = ''
year2 = ''
puts 'Введите начальный и конечный год:'
year1 = gets.chomp.to_i
year2 = gets.chomp.to_i 
 
puts 'Введенные года с ' + year1.to_s + ' по ' + year2.to_s +
while year1 != year2 + 1
    if year1.to_i % 4 == 0 
    puts year1.to_s + ' год - является високосным'
    else
    puts year1.to_s + ' год - НЕ является високосным'
    end
    year1 = year1.to_i
    year1 = year1 + 1
    end
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
26.02.2014, 20:04
Цитата Сообщение от bboy Посмотреть сообщение
Високосные годы — это годы, нацело
делящиеся на 4 (как 1984 и 2004).
Неправильно, смотри определение в википедии.

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
class Fixnum
  def leap?
    (self % 400 == 0) || (self % 4 == 0 && self % 100 != 0)
  end
end
 
year_start = gets.chomp.to_i
year_end = gets.chomp.to_i
 
year_start.upto(year_end) do |year|
  puts "#{year} is #{year.leap? ? '' : 'not '}a leap year"
end
2
0 / 0 / 0
Регистрация: 26.02.2014
Сообщений: 3
27.02.2014, 17:03  [ТС]
исправил
Ruby
1
if (year1.to_i % 400 == 0) or ((year1.to_i % 4 == 0) and (year1.to_i % 100 != 0))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2014, 17:03
Помогаю со студенческими работами здесь

Указать верное количество дней, приняв во внимание високосные года
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя...

Самая простая задача на свете про сортировку
Супер простая задача на сортировку. Дается N чисел (N ≤ 10^6), которые по абсолютной величине не превосходят 100. Необходимо вернуть...

Задача про праздники года
Дан список праздников года. Он содержит число, месяц, название праздника. Вывести все весенние праздники. Как записать список праздников ?

Задача про вывод машин одного года выпуска
Всем привет, половина задачи решена, вывожу спиоск автомобилей, и теперь необходимо вывести именно те авто которые выпустились в 1995...

Нашел в схожей теме не могу понять в чем ошибка. Кроме того как конкретно сделать что были високосные года?
Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими двумя...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru