┌loha Φ. 6


Nßzev ·lohy: SedmiΦka °et∞zc∙
Datum: 10.11.1997
Obtφ₧nost: S
P°edpoklßdanΘ znalosti: cykly, podmφn∞nΘ p°φkazy, typ string, readkey, succ


Zadßnφ
Krom∞ prßce s Φφsly musφ programßtor um∞t pracovat i se znaky a souborz °et∞zc∙. Ve velkΘm mno₧stvφ p°φpad∙ zjφstφte, ₧e prßce se znaky je obdobnß prßci s Φφsly a prßce s °et∞zci znak∙ obdobnß prßci s polem. Zde vßm nabφzφm 7 ·loh, zachycujφcφ zßkladnφ operace s °et∞zci.

DφlΦφ zadßnφ

  1. NapiÜte jednoduch² program, kter² vypφÜe na obrazovku anglickou abecedu velk²ch pφsmen. K °eÜenφ pou₧ijte cykl∙:
  2. Vytvo°te program, kter² vyzve u₧ivatele, aby zadal v∞tu a on vypφÜe poΦet slov ve v∞t∞.
  3. ╪eÜte program pro vyhodnocenφ v∞ty. U₧ivatel zadß v∞tu a program vypφÜe poΦet velk²ch pφsmen, mal²ch pφsmen a Φφslic.
  4. Vytvo°te program, kter² bude simulovat zadßvßnφ hesla, a to tak, ₧e program vyzve u₧ivatele, aby zadal heslo, a mφsto znak∙ se budou na obrazovku vypisovat hv∞zdiΦky
  5. NapiÜte program, kter² vyzve u₧ivatele, aby zadal posloupnost jmen a program pak vypsal prvni jmeno v abecednim poradi a posledni jmeno v abecede.
  6. Z klßvesnice je zadßvßna °ada pφsmen velkΘ abecedy ukonΦenß znakem "*". VypiÜte tato pφsmena na obrazovku podle abecedy tak, aby se opakujφcφ pφsmena tiskla pouze jednou.
  7. Na vstupu poΦφtaΦe je °ada °et∞zc∙ o maximßlnφ dΘlce 28 znak∙. Poslednφ °et∞zec je "*". P°episujte tyto °et∞zce na obrazovku tak, ₧e velkß pφsmena nahradφ mal²mi. (Nap°.: AhoJ.Lide - ahoj.lide)
Nßstin °eÜenφ
  1. cyklus pro vypsßnφ abecedy by mohl b²t:
    for I:='A' to 'Z' do write(I:2,' ');
    nebo
    I:='A'';
    while I<='Z' do
    begin
    write(I:2,' '); I:=succ(I);
    end;
  2. hlavnφ Φßst programu bude spoΦφvat ve zjiÜt∞nφ poΦtu mezer. potom odeΦteme jedniΦku a dostaneme poΦet slov.
    pocet:=0;
    for I:=1 to Length(s) do
    if s[I]=' ' then inc(pocet);
    dec(pocet); writeln(pocet);
  3. bude se prochßzet znak po znaku v °et∞zci a v₧dy se porovnß, do kterΘ kategorie znak∙ pat°φ.
    mala:=0;
    velka:=0;
    cisla:=0;
    for I:=1 to Length(S) do
    case s[I] of
    'A'..'Z': inc(velka);
    'a'..'z': inc(mala);
    '0'..'9': inc(cisla);
    end;

    writeln(velka:2, mala:2, cisla:2);
  4. funkce pro Φtenφ stisku klßvesy a vrßcenφ jejφ znakovΘ reprezentace je readkey kterß je dostupnß v jednotce Crt. hlavnφ Φßst programu pak bude vypadat takto:
    znak:=readkey;
    heslo:='';
    while znak<>#13 do
    begin
    heslo:=heslo+znak;
    write('*');
    znak:=readkey;
    end;
  5. Postup hledßnφ extrΘmu (maxima, minima) z∙stßvß stejn² jako u celoΦφseln²ch ·daj∙. Zadßvßnφ bude ukonΦeno znakem "*". Hlavnφ program pak bude vypadat takto: (p°edpoklßdßme zadßvßnφ mal²ch pφsmen)
    program Jmena;
    var prvni, posledni, cteny: string;
    begin
    prvni:='zzz';
    posledni:='';
    readln(cteny);
    while cteny[1]<>'*' do
    begin
    if Cteny<prvni then prvni:=cteny;
    if cteny>posledni then posledni:=cteny;
    end;

    writeln(' Prvni v abecede je: ',prvni,' a posledni ',posledni);
    end;
  • Tytu p°φklady jsou na ov∞°enφ, zda-li jste dob°e pochopili problematiku prßce s °et∞zci. Tyto ·lohy nejsou t∞₧kΘ, pro jejich °eÜenφ m∙₧ete vyu₧φt cykly, podmφn∞nΘ p°φkazy a pop°. pou₧itφ pole. V ·loze Φ.7 vßm p°ijdou vhod funkce ord,chr




    [Archφv] [Zm∞na k≤dovßnφ]