Vektori i mape – primeri

Strana 11 od 11 · Osnovni primeri

Zadaci na ovoj veb strani su odabrani da biste provežbali lekcije vektori u c++ i mape u c++.

Takođe su izdvojeni delovi težih zadataka koji da bi se rešili na najoptimalniji način zahtevaju upotrebu istih.

Teži zadaci su uglavnom zadaci sa pripreme za takmičenje:

Zadaci

Pre nego što počneš: pročitaj lekcije Vector (dinamički niz), Mape u C++.
Kako da vežbaš: prvo pokušaj sam/a da rešiš zadatak (makar na papiru), zatim otvori uputstvo, a rešenje tek na kraju. Rešenja su najčešće u jeziku C ili C++; ako učiš Javu ili Python, prepiši ideju u svoj jezik.
ZADATAK 01

Ispisivanje mape

Dati su podaci o platama radnika:
Petar Petrovic 55000 din
Steva Đurđev 100000 din
Milica Trajkovski 97000din

Kreirati mapu na osnovu ovih podataka o platama koja sadrži parove ključ-vrednost, tako da imena radnika budu ključ. Ispisati sve podatke na ekranu.

ZADATAK 02

Natprosečne ocene

Učitati broj učenika, a zatim imena učenika kao i njihove prosečne ocene i smestiti ih u mapu podataka tako da imena učenika budu ključevi. Na izlazu ispisti tabelarno imena učenika u jednoj i njihov prosek u drugoj samo za one učenike čiji je prosek veći od proseka cele grupe.

Primer:
Ulaz
4
Pera Perić 4.45
Mika Mikić 2.89
Sara Matić 4.89
Nikola Terzić 3.90

Izlaz:
Pera Perić 4.45
Sara Matić 4.89

ZADATAK 03

Ponuda patika

Patikarnica na stanju ima n različitih modela patika opisanih svojim imenom i cenom. Učitati n, a zatim učitati modele i cene patika u mapu podataka.
Ispisati nazive patika i cene od najskupljih ka najeftinijim. Ako je više patika sa istom cenom sortirati ih po leksikografskom redosledu.

Primer 1:
Broj modela patika: 3
Unesite model patike i cenu:
Nike 5000
Unesite model patike i cenu:
Adidas 4500
Unesite model patike i cenu:
Puma 4000

Izlaz:
Nike 5000
Adidas 4500
Puma 4000

Primer 2:
Broj modela patika: 4
Unesite model patike i cenu:
Converse 3000
Unesite model patike i cenu:
Vans 3500
Unesite model patike i cenu:
NewBalance 3200
Unesite model patike i cenu:
Reebok 3400

Izlaz:

ZADATAK 04

Najveći dnevni pazar (fiskalni računi)

TEKST ZADATKA:
Poznati su svi fiskalni računi koje je izdala jedna prodavnica. Sa svakog računa se može pročitati datum kada je taj račun izdat i iznos koji je naplaćen.
Napiši program koji određuje maksimalan dnevni pazar za tu prodavnicu.
Primer 1:

Ulaz:
Unesite broj fiskalnih racuna: 3
Unesite datum i iznos racuna 1 (format: DD.MM.GGGG): 01.05.2024 1500
Unesite datum i iznos racuna 2 (format: DD.MM.GGGG): 01.05.2024 2000
Unesite datum i iznos racuna 3 (format: DD.MM.GGGG): 02.05.2024 1800

Izlaz:
Maksimalan dnevni pazar: 3500 dinara, datum: 01.05.2024

Primer 2:

Ulaz:
Unesite broj fiskalnih racuna: 4
Unesite datum i iznos racuna 1 (format: DD.MM.GGGG): 03.05.2024 1200
Unesite datum i iznos racuna 2 (format: DD.MM.GGGG): 03.05.2024 1700
Unesite datum i iznos racuna 3 (format: DD.MM.GGGG): 04.05.2024 2200
Unesite datum i iznos racuna 4 (format: DD.MM.GGGG): 05.05.2024 2500

Izlaz:
Maksimalan dnevni pazar: 2500 dinara, datum: 05.05.2024

Česte greške i saveti
  • v.size() je neoznačen broj: v.size() - 1 za prazan vektor nije −1, već ogroman broj.
  • m[kljuc] dodaje ključ ako ne postoji; samo za proveru koristi m.count(kljuc) ili m.find(kljuc).
  • Elementi map su uvek uređeni po ključu; za sortiranje po vrednosti prepiši ih u vector<pair<...>>.

Proveri znanje

Otvori kviz

Mini kviz: vektori i mape

1. Kojom naredbom dodaješ element na kraj vektora?




2. U kom redosledu map<string,int> čuva elemente?