Programování C#
Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
Adresa školky | Kostelní 134, 411 08 Štětí | ||
IČ | 46773509 | ||
Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
Označení vzdělávacího materiálu | VY_32_INOVACE_23_PRG_458 | ||
Název tématické oblasti (sady) | Programování | ||
Název materiálu | Práce s textem | ||
Anotace | Komplexnější cvičení na program shrnující všechny dosavadní znalosti. Prezentuje klasický vývojový diagram, na němž demonstruje rozfázování programu na dílčí části. Dále popisuje způsob implementace programu. | ||
Autor | Ivan Pomykacz | Jazyk | čeština |
Očekávaný výstup | Provádí základní analýzu programu. Čte vývojový diagram. Implementuje postupně program dle vývojového diagramu. | ||
Klíčová slova | implementace, vývojový diagram, analýza, metody string, logické operátory | ||
Druh výukového zdroje | Pracovní list | Věková skupina žáků | 15+ |
Typ interakce | aktivita | Ročník | 1. |
Speciální vzdělávací potřeby | žádné | ||
Zhotoveno, (datum/období) | 13.11.2013 | Celková velikost |
Obsah
Pig Latin translator
Pig Latin je jazyková hra pro anglický jazyk. Používá se pro pobavení i pro zachování "soukromí" mezi mluvčími. Princip hry spočívá v úpravě slov přidáním atypických přípon nebo přesunutím první souhlásky na konec původního slova.
Naším úkolem bude vytvořit překladač z angličtiny do Pig Latin.
Pravidla
-
Začíná-li slovo samohláskou, připojíme na konec slova
way
. -
Začíná-li slovo souhláskou, pak první písmeno přesuneme na konec slova a přidáme
ay
.
Implementace
U takto rozsáhlejšího programu je potřeba si jednotlivé části rozfázovat a realizovat postupně.
Vstup
Začněme kódem, který umožní uživateli napsat slovo, které pak budeme překládat.
string slovo; slovo = Console.ReadLine();
Následně provedeme test, zda-li zadané slovo není prázdný řetězec.
if (slovo != "") { Console.WriteLine(slovo); //... } else { Console.WriteLine("Chyba! Prázdný řetězec."); }
Úpravy
Nyní potřebujeme znaky ve slovo
převést na malá písmena a oříznout o případné bílé znaky.
Vytvořme proto novou proměnnou, do které změny uložíme.
upravene_slovo = slovo.Trim().ToLower();
Počáteční písmeno
Pak budeme potřebovat z upraveného slova vytáhnout počáteční písmeno, abychom mohli zjistit, zda-li je to samohláska.
Bude nezbytné deklarovat novou proměnnou char prvni;
.
prvni = upravene_slovo[0];
Detekce samohlásky
Pro detekci samohlásky použijeme podmínku, která zjistí, zda-li první písmeno slova je jedno ze samohlásek (a,e,i,o,u).
A protože nám stačí, aby ze všech možností (a,e,i,o,u) vyhověla alespoň jedna, použijeme logický součet ||
.
if (prvni == 'a' || prvni == 'e' || prvni == 'i' || prvni == 'o' || prvni == 'u') { // jde o samohlásku } else { // je to souhláska }
Pozor! Porovnáváme char
, proto musíme použít jednoduché uvozovky.
Překlad
Pokud počáteční písmeno není samohláskou, pak stačí na konec slova připojit text "way".
nove_slovo = upravene_slovo + "way";
Ano, v kódu je použitá nová proměnná nove_slovo
, která ještě nebyla deklarována.
V opačném případě, je-li první písmeno slova souhláska, musíme ji přesunout na konec slova.
Je možné k tomu využít metodu Substring()
objektu string
.
Substring()
totiž dokáže z řetězce vykopírovat určitou jeho podmnožinu.
Podíváme-li se na parametry metody, pak zjistíme, že má jeden povinný parametr a druhý volitelný.
Povinný parametr je počáteční index, tedy číslo, od kolikátého znaku se má začít kopírovat nový řetězec (počítáno od nuly).
Volitelný parametr je délka, tj. kolik znaků se má kopírovat. Nevyplníme-li tento parametr, použije se zbývající délka původního řetězce.
nove_slovo = upravene_slovo.Substring(1) + prvni + "ay";