суббота, 11 августа 2012 г.

ex11.rb

Зед говорит, что сейчас самое время ускорить шаги. Мы много печатали, должны были постоянно набирать простые штуки, но эти простые штуки достаточно нудные. Сейчас мы будем вводить полученные данные в программы. Здесь есть небольшие хитрости, потому что мы должны будем научиться двум вещам, казалось бы бессмысленным, но вам надо будет довериться мне и все равно их понять. Они обретут смысл в следующих упражнениях.
Как действует программа:
1. Берет какой-либо ввод от пользователя.
2. Изменяет его.
3. Выводит что-либо на экран, чтобы показать как оно изменилось.

До этого мы только печатали, но мы не могли взять или изменить какой-либо ввод данных с клавиатуры. Мы даже не знали что означает "ввод". Посему, вместо того, чтобы говорить об этом,  лучше начнем делать это. Следующее упражнение, которое мы сделаем, хорошо это объяснит.

Заметочко: Мы используем print вместо puts to do the prompting. print не добавляет новую строчку автоматически. Таким образом ваш ответ может быть на той же линии, что и вопрос.  puts , наоборот добавляет автоматически новую линию.

Прога:


print "How old are you? "
age = gets.chomp()
print "How tall are you? "
height = gets.chomp()
print "How much do you weigh? "
weight = gets.chomp()

puts "So, you're #{age} years old, #{height} tall and #{weight} heavy."


WYSS:


How old are you? 35
How tall are you? 6'2"
How much do you weigh?  180lbs
So, you're 35 old, 6'2" tall and 180lbs heavy.


1. Метод .gets - get string. Метод gets считывает строки, которые пользователь вводит с клавиатуры.
.Chomp (грызть, чавкать) - убирает все символы Enter, которые "болтаются" в конце строки.
Т.е., грубо говоря, чтобы не перескакивало само на новую строку. Он также может быть применен к любой переменной. См. ниже.
(Вот коммента Зеда: It has a newline from when you hit enter after typing 12. It's not really connected to printing, but you have the right idea that chomp removes the newline at the end.) Т.е. .chomp, в общем-то, не связан с выводом. Он просто убирает этот Enter, когда мы вводим значение. Ну, нам же шоб его ввести, надо нажать Enter. Этот .chomp как бы нивелирует его))

2. Угу, можно их юзать отдельно друг от друга. Например, вот так:

puts "Hello, What is your name?"
name = gets
name = chomp()
puts "Oh, #{name}, what a wonderful name!"

3. Вот мой пример)

puts "What is your aim?"
aim = gets.chomp()
puts "What is your nearest future profession?"
prof = gets.chomp()
puts "Are you shure you can do this?"
shure = gets.chomp()

puts "So, your aim is to learn #{aim}, your nearest future profession is #{prof} and \"#{shure}\" is a good answer! You'll achieve your goal)))"

Вывод:

Из этого упражнения мы узнали, как получать данные от пользователя с помощью метода .gets и использовать в программе. Ну, и выводить на экран.
В помощь методу .gets - метод .chomp. Он помогает "скушать" тот Enter, который нужен, чтобы ввести данные с клавы. Ну, и соответственно убирает новую строку.
Он также может быть использован отдельно от .gets. Сначала взять ввод с клавы, а потом с помощью .chomp убрать лишний Enter.

Комментариев нет:

Отправить комментарий