Text
V následujícím výpisu se nachází příklady textu tak, jak ho zapisujeme v programovacím jazyce Ruby.
'Ahoj.' '5 je moje oblíbené číslo... jaké je vaše?' 'Snoopy řekl #%^?&*@! a pak sletěl ze stolu.' ' ' ''
Je vidět, že se text uvozuje pomocí jednoduchých uvozovek a přitom je prakticky jedno, co je jimi ohraničeno. Text může obsahovat jedno slovo, celou větu, čísla, mezery i speciální symboly. Poslední text bychom mohli označit pojmem prázdný text nebo lépe prázdný textový řetězec.
Symbol jednoduché uvozovky najdete na klávesnici vlevo vedle klávesy [Enter]. Na její napsání je třeba přepnout klávesnici na angličtinu, nebo použít pravou klávesu Alt někdy označovanou též symbolem Alt Gr.
Nyní se dostáváme k programu typu "Hello world!" ("Ahoj světě!"), kterým začíná většina odborných knih uvádějících člověka do světa programování. No a protože jsme už patříme mezi ty zkušenější programátory, tak si ho rovnou trochu vylepšíme:
puts 'Ahoj světě!' puts '' puts 'Měj se.'
zobrazí očekávané:
Ahoj světě! Měj se.
Pro výpis textu se tedy používá známý příkaz puts, za kterým následuje vlastní text.
Pro výpis prázdného řádku můžete použít nejen výše zmiňovaný příkaz puts '', ale i příkaz puts samotný. Je tedy jedno zda za puts následuje prázdný řetězec nebo "nic", v obou případech se na výstup vypíše prázdný řádek.
Aritmetika s řetězci
I když to může působit poněkud záhadným dojmem a možná si teď někdo ťuká i na čelo, v této části budeme text sčítat a násobit. Podívejme se na další příklad:
text2.rb
puts 'Sklenku vína' + 'si dám moc rád.'
vypíše
Sklenku vínasi dám moc rád.
V programu text2.rb jsme spojili dva texty dohromady. Aby byla věta správně, je potřeba přidat mezeru. To provedete jedním z následujících způsobů:
puts 'Sklenku vína ' + 'si dám moc rád.' puts 'Sklenku vína' + ' si dám moc rád.'
Sklenku vína si dám moc rád. Sklenku vína si dám moc rád.
Je vidět, že je jedno zda mezeru přidáte na konec prvního řetězce, nebo na začátek druhého řetězce. Rozhodnutí závisí na vás a vašich zvyklostech.
Aby toho nebylo málo, text je možné také násobit.
text4.rb
puts 'Popis cesty je následující:' puts 'doleva ' * 5 + 'doprava ' * 2
vypíše
Popis cesty je následující: doleva doleva doleva doleva doleva doprava doprava
Vynásobením textového řetězce se provede jeho zopakování.
Text vs. číslo
Jaké jsou tedy odlišnosti mezi textem a číslem? Pro vysvětlení se podívejme na tento příklad:
text5.rb
puts 12 + 12 puts '12' + '12' puts '12 + 12' puts puts 2 * 5 puts '2' * 5 puts '2 * 5'
24 1212 12 + 12 10 22222 2 * 5
Pozor, text a číslo nelze libovolně kombinovat. Alespoň ne v tom smyslu, že s textem nelze počítat a naopak číslo se nechová jako text.
V rozporu s předchozí poznámkou zkusme přesto číslo a text zkombinovat.
text6.rb
puts '12' + 12
Po spuštění programu se vám zobrazí následující chybové hlášení jazyka Ruby:
text6.rb:1:in `+': can't convert Fixnum into String (TypeError) from text6.rb:1
Česky řečeno, nemohu převést číslo na text a program skončí chybou …
Konečně, ne všechny znaky je možno napsat tak jednoduše, jak se může zdát. Pokud bychom např. chtěli zdůraznit veledůležitou informaci o tom, že je nutno zadat uživatelské 'jméno' a 'heslo', musíme to zapsat takto:
text7.rb
puts 'Zadejte prosím své uživatelské \'jméno\' a \'heslo\':'
Zadejte prosím své uživatelské 'jméno' a 'heslo':
Symbol jedné uvozovky (') hraje v jazyku Ruby speciální význam a tak je k nim potřeba také přistupovat. Před tyto speciální symboly se umísťuje symbol lomítka (\) a tím se jejich význam potlačí.
Příklady 2
- Napište text: Jmenuji se 'Igor Hnízdo'.
- Napište s využitím opakování části textu binární číslo: 1 1111 1111 1111 0000 0001. Nejprve to zkuste s naznačenými mezerami a pak i bez mezer.
- Napište následující výstup programu:
------------------------- | Robot 'Karel' říká | -------------------------
A co dál? V příštím díle si povíme něco o proměnných a přiřazení.