Kontrolni zadatak: stringovi (C++)

Kontrolni 6 od 8 · Kontrolni zadaci

Kontrolni iz rada sa tekstom u C++-u (string): čitanje reči i cele linije, prolaz kroz znakove, velika i mala slova, brojanje, poređenje i menjanje znakova. Ova strana je nova – zadaci su u dve grupe, sa rešenjima.

Pre nego što počneš: ponovi lekcije Stringovi u C++-u, Stringovi u jeziku C, a zatim uradi zadatke sa strana Stringovi – primeri.
Kako da vežbaš: izaberi jednu grupu i reši je za 45 minuta, bez gledanja u rešenja i beleške. Tek posle toga uporedi svoje rešenje sa rešenjem probnog kontrolnog.

Šta treba znati za kontrolni

  • razliku između cin >> s (jedna reč) i getline(cin, s) (cela linija)
  • dužinu s.length() i pristup znaku s[i]
  • funkcije iz <cctype>: isupper, islower, isdigit, tolower, toupper
  • da je znak u stvari broj: c - 'a' je redni broj slova, '0' + 5 je znak 5
  • spajanje stringova (+) i pretragu (find)

Kako izgleda kontrolni

  • Trajanje: jedan školski čas (45 minuta).
  • Zadaci: 3 (ponekad 4) zadatka; svaka grupa ima zadatke iste težine, ali sa drugim podacima.
  • Šta se ocenjuje: da li program radi tačno za primer i za granične slučajeve, da li su ulaz i izlaz kao u tekstu i da li je kod pregledan.
Predlog bodovanja (3 zadatka po 10 poena)
Poeni0–1112–1617–2122–2627–30
Ocena12345

Skala je predlog za samostalnu proveru; nastavnik može da je prilagodi.

1. grupa

ZADATAK 011. grupa

Broj samoglasnika

Učitaj jednu rečenicu (može da sadrži razmake) i ispiši koliko u njoj ima samoglasnika (a, e, i, o, u – mala i velika slova).

Primer

Ulaz

Programiranje je zabavno

Izlaz

9
ZADATAK 021. grupa

Rečenica palindrom

Učitaj rečenicu i proveri da li je palindrom kada se zanemare razmaci i razlika između velikih i malih slova. Ispiši DA ili NE.

Primer 1

Ulaz

Ana voli Milovana

Izlaz

DA

Primer 2

Ulaz

Svet programiranja

Izlaz

NE
ZADATAK 031. grupa

Cezarova šifra

Cezarova šifra svako slovo zamenjuje slovom koje je k mesta dalje u abecedi (posle z ide ponovo a). Učitaj k (0 ≤ k ≤ 25) i reč od malih slova engleske abecede i ispiši šifrovanu reč.

Primer

Ulaz

3
zima

Izlaz

clpd

2. grupa

ZADATAK 042. grupa

Broj reči u rečenici

Učitaj rečenicu u kojoj su reči razdvojene jednim ili više razmaka (razmaka može biti i na početku i na kraju) i ispiši broj reči.

Primer

Ulaz

  Danas   je lep dan 

Izlaz

4
ZADATAK 052. grupa

Najduža reč

Učitaj rečenicu i ispiši njenu najdužu reč. Ako ima više reči iste, najveće dužine, ispiši prvu.

Primer

Ulaz

Svet programiranja je zanimljiv

Izlaz

programiranja
ZADATAK 062. grupa

Provera lozinke

Lozinka je jaka ako ima bar 8 znakova, bar jedno veliko slovo, bar jedno malo slovo i bar jednu cifru. Učitaj lozinku (bez razmaka) i ispiši JAKA, ili SLABA i ispod toga sve što nedostaje.

Primer 1

Ulaz

Lozinka123

Izlaz

JAKA

Primer 2

Ulaz

lozinka

Izlaz

SLABA
- prekratka
- nema velikog slova
- nema cifre
Česte greške i saveti
  • Posle cin >> n ostaje kraj reda; ako zatim čitaš getline, prvo pozovi cin.ignore().
  • Poređenje znakova piše se sa jednostrukim navodnicima: s[i] == 'a', a stringova sa dvostrukim: s == "kraj".
  • Da bi menjao znakove u for (char &c : s) petlji, potreban je znak &.
  • Za proveru „bez obzira na velika i mala slova“ sve pretvori u mala slova pre poređenja.

Proveri znanje

Otvori kviz

Mini kviz: stringovi

1. Šta učitava cin >> s ako korisnik unese Dobar dan?




2. Koliko je 'd' - 'a'?




3. Šta vraća s.length() za s = "kod 1"?