Jump to content

Search the Community

Showing results for tags 'první kolo'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

Found 1 result

  1. Cíl scriptu Cílem je implementovat funkce dle prototypů a popisu v zadání. Jedná se o funkce pro práci s řetězcem a o funkce pro nenáročné výpočty a úkony. Co ovlivní hodnocení Hodnocení bude záležet na níže uvedených faktorech (od nejdůležitějšího). 1. Přeložitelnost a chybovost (chyby, pády a varování kompilátoru, chyby při běhu [klikněte pro příklad]); 2. Správná implementace (dodržení zadání) a funkčnost; 3. Ošetření neočekávaných vstupů a hodnot; 4. Přehlednost kódu. Co hodnocení neovlivní V prvním kole nebude rozhodovat optimalizace kódu. Co je zakázáno Níže uvedené funkce a způsoby programování jsou zakázány a za jejich použití bude značná ztráta bodů. 1. Všechny funkce z knihovny string.inc (strlen, strcmp, strval apod.); 2. Klíčové slovo stock u definic funkcí; 3. Jakékoliv jiné knihovny (includy), které nejsou součástí a_samp.inc; 4. Jakékoliv pluginy. Datum a způsob odevzdání Hotové scripty zasílejte mně pomocí soukromé zprávy. Název scriptu bude ve tvaru vas_nick_na_foru.pwn. Scripty mi můžete zasílat do 22. 1. 2017. Zadání 1. Implementujte následující funkce pro práci s řetězci a) StringCompare forward StringCompare(const str1[], const str2[], bool:ignorecase=false, length=-1); Účel a implemenační detaily: Porovnat řetězce str1 a str2. Parametr ignorecase s hodnotou true nebude rozlišovat velká a malá písmena. Parametrem length lze určit, kolik znaků od začátku se bude porovnávat. Má-li zápornou hodnotu (výchozí je -1), budou se porovnávat celé řetězce. Návratová hodnota: 0 – řetězce jsou totožné; 1 – řetězec str1 je delší; -1 – řetězec str2 je delší; 69 – řetězce jsou stejně dlouhé, ale nejsou totožné. Příklad použití: new res; res = StringCompare("Ahoj", "Ahoj"); //res bude mít hodnotu 0 res = StringCompare("Ahoj", "ahoj svete!", true, 4); //res bude mít hodnotu 0 res = StringCompare("Ahoj", "ahoj"); //res bude mít hodnotu 69 res = StringCompare("Ahoj svete!", "Ahoj"); //res bude mít hodnotu 1 res = StringCompare("Ahoj", "Ahoj svete!"); //res bude mít hodnotu -1 . StringToValue forward StringToValue(const str[]); Účel: Převést řetězec str na celé číslo (kladná i záporná čísla). Návratová hodnota: Převedené číslo. 0 v případě, že byl řetězec prázdný nebo obsahoval i jiné znaky než číslice a mínus na začátku – ošetřte! Příklad použití: new res; res = StringToValue("0123"); //res bude mít hodnotu 123 res = StringToValue("-1445"); //res bude mít hodnotu -1445 res = StringToValue("4a8 58"); //res bude mít hodnotu 0 . c) StringConcat forward StringConcat(dest[], const src[], length = sizeof src, maxlen = sizeof dest); Účel a implementační detaily: Spojit řetězce dest a src a nový řetězec uložit do řetězce dest. Parametrem length lze určit, kolik znaků z řetězce src se má spojit s řetězcem dest. Velikost řetězce dest je uložena v parametru maxlen. Návratová hodnota: 1 – funkce se provedla úspěšně; 0 – nastala chyba (záporný parametr length apod. – ošetřte!). Příklad použití: new res[20+1] = "Ahoj, "; StringConcat(res, "svete!"); //res bude mít hodnotu "Ahoj, svete!" res = "Ahoj, "; StringConcat(res, "svete!", 2); //res bude mít hodnotu "Ahoj, sv" . d) StringTransliterate forward StringTransliterate(dest[]); Účel: Nahradit všechna diakritická znaménka (česká i slovenská) v řetězci dest vhodnými písmeny. Návratová hodnota: Žádná. Příklad použití: new res[] = "Příliš žluťoučký kůň úpěl ďábelské ódy."; StringTransliterate(res); //res bude mít hodnotu "Prilis zlutoucky kun upel dabelske ody." . e) StringAnalyze forward StringAnalyze(const dest[], const sequence[], &numcount, &letcount, &specount, &seqcount); Účel: Zjistit, kolikrát se v řetězci dest vyskytuje posloupnost znaků sequence, a tento počet uložit do parametru seqcount (rozlišují se velká a malá písmena). Zjistit, kolik obsahuje řetězec dest číslic, a tento počet uložit do parametru numcount. Zjistit, kolik obsahuje řetězec dest písmen, a tento počet uložit do parametru letcount (nerozlišují se velká a malá písmena). Zjistit, kolik obsahuje řetězec dest nealfanumerických znaků (znaky, které nejsou písmena ani číslice včetně mezer), a tento počet uložit do parametru specount. Návratová hodnota: Žádná. Příklad použití: new res[] = "ahahaha, 85,! mehehe, muhaha, AHAHAHA"; new num, let, spec, seq; StringAnalyze(res, "ha", num, let, spec, seq); //num bude mít hodnotu 2, let hodnotu 26, spec hodnotu 9 a seq hodnotu 5 . f) DecodeMorse (BONUS – nepovinné) forward DecodeMorse(const morsecode[]); Účel a implementační detaily: Do parametru morsecode se udává řetězec v morseovce, který je potřeba rozkódovat a vypsat do terminálu (funkce printf). Jednotlivá písmena se oddělují mezerou, slova lomítkem. Počítejte s tím, že zadaná morseovka bude vždy korektní, to znamená, že není třeba nic ošetřovat. Návratová hodnota: Délka dekódovaného řetězce. Příklad použití: DecodeMorse(".... . .-.. .-.. ---/.-- --- .-. .-.. -.."); //do terminálu se vypíše "Hello world" a návratová hodnota bude 11 . 2. Implementujte následující funkce pro nenáročné výpočty a úkony a) HexToDec forward HexToDec(strhex[]); Účel: Převést číslo šestnáctkové soustavy ve formě řetězce strhex na číslo desítkové soustavy. Návratová hodnota: Převedené číslo. -1 v případě, že je řetězec strhex prázdný nebo obsahuje jiné znaky než 0-9, A-F či a-f – ošetřte! Příklad použití: new str[] = "FF", hex; hex = HexToDec(str); //hex bude mít hodnotu 255 . BinToDec forward BinToDec(strbin[]); Účel: Převést číslo dvojkové soustavy ve formě řetězce strbin na číslo desítkové soustavy. Návratová hodnota: Převedené číslo. -1 v případě, že je řetězec strbin prázdný nebo obsahuje jiné znaky než 0 a 1 – ošetřte! Příklad použití: new str[] = "11111111", bin; bin = BinToDec(str); //bin bude mít hodnotu 255 . c) RandomEx forward RandomEx(min, max, excepts[], size = sizeof excepts); Účel a implementační detaily: Vygenerovat náhodné kladné číslo v rozsahu od min do max. Vygenerované číslo se nesmí shodovat s žádným číslem z pole excepts (velikost pole je uložena v parametru size). Návratová hodnota: Vygenerované náhodné kladné číslo. -1 v případě neúspěchu (min je větší než max, číslo není kladné apod. – ošetřte!). Příklad použití: new arr[] = {1, 2, 3}, randNum; randNum = RandomEx(1, 4, arr); //randNum bude mít hodnotu 4, protože čísla 1, 2, 3 jsou v poli arr randNum = RandomEx(1, 10, arr); //randNum bude mít hodnotu z rozsahu od 4 do 10 (1, 2, 3 opět nevyhovují) . d) FileRead forward FileRead(fpath[], arr[6]); Účel a implementační detaily: Přečíst 3 údaje ze souboru s cestou fpath, převést je na číslo pomocí funkce StringToValue a uložit je do pole arr na indexy 0, 1 a 2. Uložit 3 náhodně vygenerovaná čísla (funkce RandomEx) s rozsahem od 1 do 10 na indexy 3, 4 a 5. Tato čísla se nesmí shodovat s čísly na indexech 0, 1 a 2! Návratová hodnota: 1 – funkce se provedla úspěšně; 0 – nastala chyba (soubor se neotevřel správně, cesta k souboru neexistuje apod. – ošetřte!). Příklad použití: new arr[6]; FileRead("neco.txt", arr); . e) GetMinMax forward GetMinMax(arr[], &min, &max, size = sizeof arr); Účel: Zjistit minimální a maximální hodnotu z pole arr a indexy pole s minimální a maximální hodnotou uložit do parametrů min a max. Velikost pole arr je uložena v parametru size. Návratová hodnota: Žádná. Příklad použití: new arr[6] = {4, 5, 2, 6, 8, 7}, minVal, maxVal; GetMinMax(arr, minVal, maxVal); //minVal bude mít hodnotu 2 a maxVal hodnotu 4 . Soubor k funkci FileRead je k dispozici v přílohách (jak pro Windows, tak pro Linux – rozdílné odřádkování). file_windows.txt file_linux.txt
×
×
  • Create New...