Автор неизвестен - Лекции по языку Ruby
Название: | Лекции по языку Ruby | |
Автор: | Автор неизвестен | |
Жанр: | Самиздат, сетевая литература, Учебники и самоучители по компьютеру, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Ruby | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2005 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Лекции по языку Ruby"
Аннотация к этой книге отсутствует.
Читаем онлайн "Лекции по языку Ruby". [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (9) »
... arNew.size
4
arNew[i] = arNew[i]∗2
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
end
return arNew
end
a = [1, 2, 3, 4]
puts "До вызова функции"
pa
puts "Вызвали функцию"
p dont_modify(a)
puts "Исходный массив не изменился!"
pa
До вызова функции
[1, 2, 3, 4]
Вызвали функцию
[2, 4, 6, 8]
Исходный массив не изменился!
[1, 2, 3, 4]
5
Глава 1
Комплексные числа в языке
программирования Ruby
§ 1.
Реализация на базе массива из двух элементов
Создание комплексного числа
Как известно, любому комплексному числу z = x +yi соответствует
точка плоскости с координатами (x, y). Поэтому для задания комплекс
ного числа следует указать два действительных числа x и y. Самым
простым способом хранения этих двух чисел в одном объекте является
хранение их в массиве из двух элементов z = [x, y], например,
z1 = [1, 1]
z2 = [0, -3]
Недостатком такого представления является отсутстствие провер
ки на количество элементов массива и соответствие типа каждого из
элементов массива одному из числовых типов (Integer, Float). Предпо
лагается, что пользователь программы сам контролирует корректность
ввода данных и их использования.
Печать комплексного числа
Одной из самых распространенных операций для любого типа дан
ных является их представление в виде строки, которое используется
при их печати. Поэтому первой функцией, которую мы реализуем бу
дет функция comp_str для заданного комплексного числа z = [a, b]
возвращающая строку a+bi (без пробелов и знака умножения), напри
1
2
Глава 1. Комплексные числа в языке программирования Ruby
мер, для числа, заданного массивом [1, 2] будет возвращена строка
"1+2i" , а для числа [0, -3] — "0-3i".
def comp_str(z)
"#{z[0]}+#{z[1]}i"
end
puts comp_str(z1)
1+1i
На первый взгляд функция работает правильно, однако, если мы по
пробуем применить её к числу z2, то получим не тот результат, который
ожидали:
puts comp_str(z2)
0+-3i
Изменим функцию так, чтобы знак мнимой части отображался коррект
но:
def comp_str(z)
"#{z[0]}"+(z[1] < 0 ? ’-’ : ’+’)+"#{z[1].abs}i"
end
puts comp_str(z1)
puts comp_str(z2)
1+1i
0-3i
Сложение комплексных чисел
Определим функцию plus, возвращающую сумму двух комплексных
чисел:
def plus(z, w)
[z[0]+w[0], z[1]+w[1]]
end
z3 = plus(z1, z2)
puts comp_str(z3)
1-2i
§ 1. Реализация на базе массива из двух элементов
3
Умножение комплексных чисел
Функция mult предназначена для вычисления произведения двух
комплексных чисел:
def mult(z, w)
[z[0]*w[0] - z[1]*w[1], z[0]*w[1] + z[1]*w[0]]
end
z4 = mult(z1, z2)
puts comp_str(z4)
3-3i
Вычисление модуля комплексного числа
Так как в нашей программе используется функция с именем abs,
то нам придется дать функции для определения модуля комплексного
числа какое-нибудь другое имя. Пусть эта функция называется dist,
т. к. модуль комплексного числа z = x + yi есть расстояние от точки с
координатами (x, y) до начала координат.
def dist(z)
Math.sqrt(z[0]**2+z[1]**2)
end
puts dist(z1)
1.4142135623731
Упражнения
1. Измените функцию comp_str так, чтобы нулевые действительная
или мнимая части числа не отображались, например для z = [0, -2]
результат работы функции должен равняться "-2i".
2. Измените функцию comp_str так, чтобы равный 1 или −1 коеффи
циент мнимой части не печатался, например, для z = [2, -1] функция
должна возвратить значение "2-i".
3. Напишите функцию вычитания двух чисел minus.
4. Напишите функцию conjugate, находящую сопряженное число.
5. Напишите функцию divide, определяющую частное двух комплекс
ных чисел.
Глава 1
Объектно-ориентированное
программирование
§ 1.
ООП — результат эволюции методологий
программирования
Потребность в ООП связана со стремительным усложнением раз
рабатываемых программ и, как следствие, их недостаточной надежно
стью. Объектно-ориентированный подход позволяет программисту пи
сать более надежный код, избавленный от многих ошибок, которые
могут проявиться в коде, разработанном в процедурном стиле.
Другим немаловажным качеством ООП является возможность мно
гократного использования кода. Реализованные однажды библиотеки
классов программист может использовать в различных программах,
что обеспечивает повышение производительности труда программиста
и увеличивает надежность готового программного продукта.
Практически все современные языки программирования, независи
мо от принадлежности к тому или иному стилю (директивному или де
кларативному), поддерживают концепцию --">
4
arNew[i] = arNew[i]∗2
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
end
return arNew
end
a = [1, 2, 3, 4]
puts "До вызова функции"
pa
puts "Вызвали функцию"
p dont_modify(a)
puts "Исходный массив не изменился!"
pa
До вызова функции
[1, 2, 3, 4]
Вызвали функцию
[2, 4, 6, 8]
Исходный массив не изменился!
[1, 2, 3, 4]
5
Глава 1
Комплексные числа в языке
программирования Ruby
§ 1.
Реализация на базе массива из двух элементов
Создание комплексного числа
Как известно, любому комплексному числу z = x +yi соответствует
точка плоскости с координатами (x, y). Поэтому для задания комплекс
ного числа следует указать два действительных числа x и y. Самым
простым способом хранения этих двух чисел в одном объекте является
хранение их в массиве из двух элементов z = [x, y], например,
z1 = [1, 1]
z2 = [0, -3]
Недостатком такого представления является отсутстствие провер
ки на количество элементов массива и соответствие типа каждого из
элементов массива одному из числовых типов (Integer, Float). Предпо
лагается, что пользователь программы сам контролирует корректность
ввода данных и их использования.
Печать комплексного числа
Одной из самых распространенных операций для любого типа дан
ных является их представление в виде строки, которое используется
при их печати. Поэтому первой функцией, которую мы реализуем бу
дет функция comp_str для заданного комплексного числа z = [a, b]
возвращающая строку a+bi (без пробелов и знака умножения), напри
1
2
Глава 1. Комплексные числа в языке программирования Ruby
мер, для числа, заданного массивом [1, 2] будет возвращена строка
"1+2i" , а для числа [0, -3] — "0-3i".
def comp_str(z)
"#{z[0]}+#{z[1]}i"
end
puts comp_str(z1)
1+1i
На первый взгляд функция работает правильно, однако, если мы по
пробуем применить её к числу z2, то получим не тот результат, который
ожидали:
puts comp_str(z2)
0+-3i
Изменим функцию так, чтобы знак мнимой части отображался коррект
но:
def comp_str(z)
"#{z[0]}"+(z[1] < 0 ? ’-’ : ’+’)+"#{z[1].abs}i"
end
puts comp_str(z1)
puts comp_str(z2)
1+1i
0-3i
Сложение комплексных чисел
Определим функцию plus, возвращающую сумму двух комплексных
чисел:
def plus(z, w)
[z[0]+w[0], z[1]+w[1]]
end
z3 = plus(z1, z2)
puts comp_str(z3)
1-2i
§ 1. Реализация на базе массива из двух элементов
3
Умножение комплексных чисел
Функция mult предназначена для вычисления произведения двух
комплексных чисел:
def mult(z, w)
[z[0]*w[0] - z[1]*w[1], z[0]*w[1] + z[1]*w[0]]
end
z4 = mult(z1, z2)
puts comp_str(z4)
3-3i
Вычисление модуля комплексного числа
Так как в нашей программе используется функция с именем abs,
то нам придется дать функции для определения модуля комплексного
числа какое-нибудь другое имя. Пусть эта функция называется dist,
т. к. модуль комплексного числа z = x + yi есть расстояние от точки с
координатами (x, y) до начала координат.
def dist(z)
Math.sqrt(z[0]**2+z[1]**2)
end
puts dist(z1)
1.4142135623731
Упражнения
1. Измените функцию comp_str так, чтобы нулевые действительная
или мнимая части числа не отображались, например для z = [0, -2]
результат работы функции должен равняться "-2i".
2. Измените функцию comp_str так, чтобы равный 1 или −1 коеффи
циент мнимой части не печатался, например, для z = [2, -1] функция
должна возвратить значение "2-i".
3. Напишите функцию вычитания двух чисел minus.
4. Напишите функцию conjugate, находящую сопряженное число.
5. Напишите функцию divide, определяющую частное двух комплекс
ных чисел.
Глава 1
Объектно-ориентированное
программирование
§ 1.
ООП — результат эволюции методологий
программирования
Потребность в ООП связана со стремительным усложнением раз
рабатываемых программ и, как следствие, их недостаточной надежно
стью. Объектно-ориентированный подход позволяет программисту пи
сать более надежный код, избавленный от многих ошибок, которые
могут проявиться в коде, разработанном в процедурном стиле.
Другим немаловажным качеством ООП является возможность мно
гократного использования кода. Реализованные однажды библиотеки
классов программист может использовать в различных программах,
что обеспечивает повышение производительности труда программиста
и увеличивает надежность готового программного продукта.
Практически все современные языки программирования, независи
мо от принадлежности к тому или иному стилю (директивному или де
кларативному), поддерживают концепцию --">
- 1
- 2
- 3
- 4
- . . .
- последняя (9) »
Книги схожие с «Лекции по языку Ruby» по жанру, серии, автору или названию:
Другие книги автора « Автор неизвестен»:
Автор неизвестен - Андрей всех мудрей Жанр: Сказки для детей Серия: Белорусская сказка |