Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

For i in 1 . 6

Puts i

End

 

Приклад. Розглянемо кілька варіантів програми, що обчислює факторіал введеного числа.

Використання оператора while

 

print "Введіть ціле позитивне число:"

str = gets.chop! # Ввели рядок

num = str.to_i # перетворили в число

if num> 0

i = 1

fact = 1

while i <= num

fact * = i

i + = 1

End

puts "Факторіал числа # {num} дорівнює # {fact}"

Else

puts "Ви ввели непозитивно число"

End

Використання оператора for

print "Введіть ціле позитивне число:"

num = gets.to_i # рядок відразу перетворили в число

if num> 0

fact = 1

For i in 1.. num

fact * = i

End

puts "Факторіал числа # {num} дорівнює # {fact}"

Else

puts "Ви ввели непозитивно число"

End

 

Використання функції для визначення факторіала

 

Def fact (n)

f = 1

1.step (n, 1) {| k | f * = k}

Return f

End

print "Введіть ціле позитивне число:"

if (num = gets.to_i)> 0

print "# {num}! = # {fact (num)} \ n"

Else

puts "Факторіал числа # {num} не визначений \ n"

End

 

В останньому прикладі ми оформили обчислення факторіала у вигляді функції і використовували ітератор step, який забезпечив зміну змінної k з кроком 1.

Приклад. Наведена нижче програма запитує ціле позитивне число і визначає кількість цифр у ньому (зверніть увагу на множинне присвоювання).

print "Введіть ціле позитивне число:"

a, k = gets.to_i, 0

while a> 0

a / = 10; k + = 1 # відкинули останню цифру

End

print "Кількість цифр у введеному числі одно # {k}. \ n"

 

Приклад. Нехай потрібно ввести з клавіатури масив чисел і надрукувати суму всіх елементів. Наведемо кілька рішень цього завдання.

1. Спочатку введемо кількість елементів масиву, а потім заповнимо його елементами, одним за іншим. Зверніть увагу, що перший елемент масиву має індекс 0, а останній - на одиницю менший, ніж розмірність масиву.

 

print "Введіть число елементів масиву:"

sn = gets.chop!; n = sn.to_i

b = Array.new (n) # створили масив з n елементів

s = 0 # обнулили суму

for i in 0.. n – 1

print "Введіть # {i +1}-й елемент масиву:"

b [i] = gets.chop!. to_f; s = s + b [i]

End

print "Сума всіх елементів масиву дорівнює", s, "\ n"

 

2. У цій версії програми всі числа вводяться відразу у вигляді одного рядка, в якій числа відокремлюється один від одного пробілом (наприклад, 23 -34.67 100.5).

Вбудований метод split розділяє рядок на елементи масиву, аргументом цього методу є роздільник (якщо роздільником є пробіл, то можна викликати цей метод без аргументу). Таким чином, якщо б ми домовилися розділяти числа, наприклад, крапкою з комою, то виклик методу виглядав би так: a.split(';').

Для визначення довжини масиву ми застосували метод length (можна замінити на еквівалентний йому метод size).

 

puts "Введіть масив чисел (розділяючи їх пробілами):"

a = gets.chop!

b = a.split # розбили рядок на окремі числа

s = 0

for i in 0.. b.length – 1

s + = b [i]. to_f

End

puts "Сума всіх елементів масиву дорівнює # {s}"

 

В Ruby є чотири конструкції, що задаються ключовими словами break, redo, next і retry, які змінюють звичайний порядок виконання циклів. Їх дія описано в наступній таблиці.

break Негайно припиняє виконання циклу; управління передається на затвердження, розташоване відразу за циклом
redo Повторює тіло циклу з початку, не перераховуючи умова виконання циклу (не переходячи до наступного елементу в разі ітератора)
next Пропускає частина тіла циклу, наступну за ним, і переходить до наступної ітерації
retry Починає виконання циклу з самого початку

Розглянемо на прикладі ітератора for дію зазначених конструкцій.

 

 

for i in 1.. 5 print i break if i == 3 print "*" end Результат: 1 * 2 * 3
for i in 1.. 5 print i redo if i == 3 print "*" end Результат: 1 * 2 * 33333... виконання циклу не припиняється
for i in 1.. 5 print i next if i == 3 print "*" end Результат: 1 * 2 * 34 * 5 *
for i in 1.. 5 print i retry if i == 3 print "*" end Результат: 1 * 2 * 31 * 2 * 31 * 2 *... виконання циклу не припиняється

Приклад. Наступна програма починає повторення циклу спочатку, якщо при введенні вказати символ y.

 


Дата добавления: 2015-08-09; просмотров: 82 | Нарушение авторских прав


Читайте в этой же книге: Оператор GROUP ВУ | Итоговые функции | Def howBig (i) | Puts howBig(7); puts howBig(15) |
<== предыдущая страница | следующая страница ==>
When 100 .. 999| Системы сбора и подготовки нефти и конденсата

mybiblioteka.su - 2015-2024 год. (0.008 сек.)