Dodatni zadaci – podaci i tipovi podataka (C, C++, Java)

Zbirka 1 od 5 · Dodatni primeri sa rešenjima
Pre nego što počneš: lekcije Podaci u jeziku C, Operatori u jeziku C; lakši zadaci iz ove oblasti su na strani Podaci – osnovni primeri.
Kako da vežbaš: reši zadatak sam/a, pokreni program na primeru iz teksta, pa tek onda otvori rešenje i uporedi ideje.

ZBIRKA ZADATAKA · OSNOVE PROGRAMIRANJA

Na ovoj stranici nalazi se 12 zadataka za vežbanje tipova podataka, aritmetičkih operatora, celobrojnog deljenja, ostatka pri deljenju, izdvajanja cifara, računanja po formulama i pretvaranja jedinica. Primeri pokrivaju površinu pravougaonika, rad i vreme, kretanje tela, brojeve, rastojanje i vreme.

Najviše ćeš naučiti ako prvo samostalno pokušaš da rešiš zadatak. Pažljivo pročitaj šta se unosi i šta se traži, izračunaj primer na papiru, napiši algoritam, a tek zatim otvori rešenje. Linkovi vode ka postojećim stranicama sa rešenjima, a poslednja dva zadatka imaju i video-objašnjenja.

Za dodatnu vežbu pogledaj i primere za samostalno rešavanje iz oblasti podataka i primere grananja u programu.

ZADATAK 01

Ramovi za slike: površina i pretvaranje jedinica

Površina Pretvaranje jedinica

Postavka zadatka

Na stolu se nalaze pravougaoni ramovi različitih dimenzija. Napiši program koji na osnovu širine i visine rama izračunava površinu u kvadratnim milimetrima, a zatim je pretvara u kvadratne centimetre.

Ulaz

Dva cela broja X i Y — širina i visina rama, izražene u milimetrima.

Izlaz

Površina rama u mm², a zatim površina u cm², prikazana na dve decimale.

Primer

Ulaz

456 785

Izlaz

357960 3579.60
Objašnjenje primera

Površina je 456 * 785 = 357960 mm². Pretvaranjem u cm² dobijamo 357960 / 100 = 3579,60 cm².

Zadatak Ramovi za slike – površina pravougaonika

Ideja za rešavanje

Površina pravougaonika je X * Y. Pošto je 1 cm = 10 mm, važi 1 cm² = 100 mm², pa površinu u mm² treba podeliti sa 100.

Rešenje i dodatno objašnjenje

ZADATAK 02

Grupa radnika: obrnuta proporcionalnost

Formule Proporcionalnost

Postavka zadatka

n radnika završi posao za s sati. Pretpostavimo da svi radnici rade istom brzinom. Napiši program koji određuje koliko će sati biti potrebno da se isti posao završi ako se priključi još m radnika.

Ulaz

U tri reda unose se prirodan broj n, realan broj s i prirodan broj m.

Izlaz

Vreme potrebno za završetak posla, zaokruženo na dve decimale.

Primer

Ulaz

1
3
1

Izlaz

1.50
Objašnjenje primera

Ukupno je potrebno 1 * 3 = 3 radnička sata. Kada rade dva radnika, vreme je 3 / 2 = 1,5 sati.

Zadatak Grupa radnika – odnos broja radnika i vremena

Ideja za rešavanje

Ukupan obim posla iznosi n * s radničkih sati. Kada posao obavlja n + m radnika, potrebno vreme je (n * s) / (n + m). Ovo važi pod pretpostavkom da svi radnici imaju jednaku produktivnost.

Rešenje i dodatno objašnjenje

ZADATAK 03

Kretanje tela: brzina i pređeni put

Kretanje Formule

Postavka zadatka

Telo počinje da se kreće iz mirovanja i kreće se stalnim ubrzanjem a. Napiši program koji računa brzinu tela i pređeni put posle vremena t.

Ulaz

U dva reda unose se ubrzanje a u m/s² i vreme t u sekundama.

Izlaz

Brzina u m/s i pređeni put u metrima, u formatu prikazanom u primeru.

Primer

Ulaz

2
20

Izlaz

v=40m/s
s=400m
Objašnjenje primera

Brzina je v = 2 * 20 = 40 m/s, a put s = 2 * 20² / 2 = 400 m.

Zadatak Kretanje tela – ubrzanje, brzina i pređeni put

Ideja za rešavanje

Pošto telo kreće iz mirovanja, brzina je v = a * t, a pređeni put je s = a * t² / 2. Ubrzanje se izražava u m/s², vreme u sekundama, brzina u m/s, a put u metrima.

Rešenje i dodatno objašnjenje

ZADATAK 04

Razmena cifara: jedinice i stotine

Cifre broja Celobrojno deljenje

Postavka zadatka

Napiši program koji u datom prirodnom broju razmenjuje cifru jedinica i cifru stotina. Ako broj ima manje od tri cifre, nedostajuće cifre smatraju se nulama.

Ulaz

Jedan prirodan broj.

Izlaz

Broj dobijen nakon razmene cifre jedinica i cifre stotina.

Primer

Ulaz

2349

Izlaz

2943
Objašnjenje primera

Kod broja 2349 cifra stotina je 3, a cifra jedinica 9. Posle zamene dobijamo 2943.

Zadatak Razmena cifara – zamena cifre jedinica i stotina

Ideja za rešavanje

Cifra jedinica je n % 10, a cifra stotina je (n / 100) % 10 pri celobrojnom deljenju. Izdvoji i cifre na ostalim mestima, pa sastavi novi broj tako da se zamene samo cifre jedinica i stotina.

Rešenje i dodatno objašnjenje

ZADATAK 05

Sredina intervala: izbor bliže kućice

Aritmetika Sredina intervala

Postavka zadatka

U jednoj ulici kuće su označene celim brojevima. Ana živi u kući broj a, a Boris u kući broj b. Viktor živi na kućnom broju koji je najbliži sredini između njihovih kuća. Ako je sredina tačno između dva cela kućna broja, bira se onaj koji je bliži Ani.

Ulaz

Dva cela broja a i b, oba u opsegu od 0 do 2·10⁹, koja se razlikuju za najmanje 2.

Izlaz

Kućni broj na kome živi Viktor.

Primer 1

Ulaz

432457
562321

Izlaz

497389
Objašnjenje primera

Sredina između 432457 i 562321 je 497389.

Primer 2

Ulaz

2
9

Izlaz

5
Objašnjenje primera

Sredina je (2 + 9) / 2 = 5,5. Broj 5 je bliži Ani, koja živi u kući broj 2.

Primer 3

Ulaz

2000000000
1999999998

Izlaz

1999999999
Objašnjenje primera

Sredina između brojeva 2000000000 i 1999999998 je 1999999999.

Zadatak Sredina intervala – kućni brojevi i izbor sredine

Ideja za rešavanje

Sredina se računa kao (a + b) / 2. Vodi računa o tipu podatka jer zbir može biti velik. Kada je sredina između dva cela broja, pravilo zadatka zahteva da se izabere broj bliži Ani.

Rešenje i dodatno objašnjenje

ZADATAK 06

Operacije po modulu: poslednje tri cifre

Modulo Ostatak pri deljenju

Postavka zadatka

Napiši program koji određuje poslednje tri cifre zbira i poslednje tri cifre proizvoda četiri uneta cela broja. Ako rezultat ima vodeće nule, one ne moraju da se ispisuju.

Ulaz

Četiri cela broja, svaki u posebnom redu, iz opsega od 1 do 999.

Izlaz

U prvom redu poslednje tri cifre zbira, a u drugom redu poslednje tri cifre proizvoda.

Primer

Ulaz

999
999
999
999

Izlaz

996
1
Objašnjenje primera

Zbir je 3996, pa je ostatak pri deljenju sa 1000 jednak 996. Pošto je svaki faktor 999, važi 999 ≡ -1 (mod 1000), a (-1)^4 ≡ 1.

Zadatak Operacije po modulu – poslednje tri cifre zbira i proizvoda

Ideja za rešavanje

Operator ostatka pri deljenju % omogućava izdvajanje poslednje tri cifre pomoću broj % 1000. Da bi se izbegao prevelik međurezultat proizvoda, računaj ostatak po modulu 1000 posle svakog množenja.

Rešenje i dodatno objašnjenje

ZADATAK 07

Rastojanje tačaka u koordinatnoj ravni

Geometrija Realni brojevi

Postavka zadatka

Napiši program koji izračunava rastojanje između dve tačke zadate svojim koordinatama.

Ulaz

Četiri realna broja, svaki u posebnom redu. Prva dva predstavljaju koordinate tačke A = (Ax, Ay), a druga dva koordinate tačke B = (Bx, By).

Izlaz

Rastojanje između tačaka A i B, zaokruženo na pet decimala.

Primer

Ulaz

0
0
1
1

Izlaz

1.41421
Objašnjenje primera

Razlika koordinata po obe ose iznosi 1, pa je rastojanje √(1² + 1²) = √2 ≈ 1,41421.

Zadatak Rastojanje tačaka – formula za rastojanje u ravni

Ideja za rešavanje

Rastojanje se računa pomoću Pitagorine teoreme: d = sqrt((Bx - Ax)² + (By - Ay)²). U jeziku C funkcija sqrt nalazi se u zaglavlju math.h; u C++ se koristi <cmath>.

Rešenje i dodatno objašnjenje

ZADATAK 08

Proizvod cifara trocifrenog broja

Cifre broja Celobrojno deljenje

Postavka zadatka

Unesi trocifren ceo broj i odredi proizvod njegovih cifara.

Ulaz

Jedan trocifren ceo broj.

Izlaz

Proizvod cifre stotina, cifre desetica i cifre jedinica.

Primer

Ulaz

234

Izlaz

24
Objašnjenje primera

Cifre broja 234 su 2, 3 i 4. Njihov proizvod je 2 * 3 * 4 = 24.

Zadatak Proizvod cifara trocifrenog broja

Ideja za rešavanje

Cifra jedinica je n % 10, cifra desetica je (n / 10) % 10, a cifra stotina je n / 100 kada se koristi celobrojno deljenje. Pomnoži dobijene tri cifre.

Rešenje i dodatno objašnjenje

ZADATAK 09

Pretvaranje ugla iz decimalnih stepeni u stepene i minute

Pretvaranje jedinica Uglovi

Postavka zadatka

Dat je ugao izražen u stepenima, sa dve decimale. Napiši program koji ugao prikazuje u stepenima i minutima.

Ulaz

Jedan realan broj koji predstavlja ugao u stepenima.

Izlaz

Ugao prikazan kao broj celih stepeni i broj minuta.

Primer

Ulaz

60.25

Izlaz

60 stepeni 15 minuta
Objašnjenje primera

Ceo deo je 60 stepeni. Decimalni deo je 0,25; 0,25 * 60 = 15 minuta.

Zadatak Pretvaranje ugla – decimalni stepeni u minute

Ideja za rešavanje

Ceo deo broja predstavlja stepene. Decimalni deo pomnoži sa 60 jer jedan stepen ima 60 minuta: 0.25 * 60 = 15.

Rešenje i dodatno objašnjenje

ZADATAK 10

Pretvaranje vremena u format hh:mm:ss

Pretvaranje vremena Deljenje i ostatak

Postavka zadatka

Učitaj vreme izraženo u sekundama i prikaži ga u formatu hh:mm:ss, gde su hh sati, mm minuti i ss sekunde.

Ulaz

Jedan ceo nenegativan broj sekundi.

Izlaz

Vreme u formatu sati:minuti:sekunde. Ispred minuta ili sekundi manjih od 10 treba ispisati nulu.

Primer

Ulaz

3661

Izlaz

01:01:01
Objašnjenje primera

3661 sekunda je 1 sat (3600 s), još 1 minut (60 s) i 1 sekunda, odnosno 01:01:01.

Zadatak Pretvaranje vremena – zapis hh:mm:ss

Ideja za rešavanje

Jedan sat ima 3600 sekundi, a jedan minut 60 sekundi. Broj sati dobija se celobrojnim deljenjem sa 3600; ostatak koristiš za računanje minuta i sekundi. Za ispis sa vodećim nulama možeš koristiti formatiranje izlaza.

Rešenje i dodatno objašnjenje

ZADATAK 11

Putovanje: računanje vremena kretanja

Kretanje Formule

Postavka zadatka

Porodica putuje automobilom ravnomernom brzinom od v kilometara na sat i treba da pređe put od s kilometara. Napiši program koji određuje koliko će vremena putovanje trajati.

Ulaz

U prvom redu nalazi se realan broj v — brzina u km/h, a u drugom realan broj s — dužina puta u kilometrima.

Izlaz

Vreme putovanja u satima, zaokruženo na dve decimale.

Primer

Ulaz

60
1050

Izlaz

17.50
Objašnjenje primera

Vreme je t = 1050 / 60 = 17,5 sati, što se na dve decimale ispisuje kao 17.50.

Ideja za rešavanje

Za ravnomerno kretanje vreme je t = s / v. Brzinu i put zadaj u jedinicama navedenim u tekstu zadatka.

Izvor / dodatni materijal: Petlja – Putovanje (aritmetika, formule i kretanje)

Rešenje i dodatno objašnjenje

Video-rešenje zadatka Putovanje

ZADATAK 12

Rastojanje između kuća

Ravnomerno kretanje Relativno kretanje

Postavka zadatka

Pera i Mika žive u istoj ulici, a njihove kuće su na različitim udaljenostima od škole. Polaze u isto vreme i kreću se ravnomerno. Pera se kreće brzinom v1, a Mika brzinom v2, pri čemu je v2 > v1. Posle t sekundi Mika je još uvek d metara iza Pere. Odredi početno rastojanje između njihovih kuća.

Ulaz

Četiri realna broja, svaki u posebnom redu: brzina Pere v1 u m/s, brzina Mike v2 u m/s, vreme t u sekundama i rastojanje d između njih posle tog vremena, u metrima.

Izlaz

Početno rastojanje između kuća, zaokruženo na dve decimale.

Primer

Ulaz

1.6
2.1
10
30.0

Izlaz

35.00
Objašnjenje primera

Brže vozilo pređe dodatnih (2,1 - 1,6) * 10 = 5 metara. Početno rastojanje je 30 + 5 = 35 metara.

Ideja za rešavanje

Tokom t sekundi Mika pređe za (v2 - v1) * t metara više od Pere. Zato je početno rastojanje d + (v2 - v1) * t.

Izvor / dodatni materijal: Petlja – Rastojanje između kuća

Rešenje i dodatno objašnjenje

Video-rešenje zadatka Rastojanje između kuća


PROVERA ZNANJA

Kviz: proveri šta si naučio

Odgovori na pitanja bez gledanja u rešenja. Za svaki odgovor odmah se prikazuje objašnjenje; kviz služi za samoprocenu i ne šalje odgovore na server.


KAKO DA NASTAVIŠ

Preporuke za dalje učenje

  1. Uvežbaj celobrojno deljenje i ostatak pri deljenju. To je osnova za izdvajanje cifara, razmenu cifara i računanje poslednje tri cifre.
  2. Razlikuj cele i realne brojeve. Proveri kada su potrebne decimale i kako se rezultat zaokružuje na dve ili pet decimala.
  3. Najpre napiši formulu, a zatim kod. Kod kretanja koristi formule za brzinu i put; kod rastojanja primeni Pitagorinu teoremu, a kod putovanja formulu vreme = put / brzina.
  4. Testiraj granične slučajeve. Probaj broj sa nulom među ciframa, vreme kraće od jednog minuta, jednake dimenzije i ulaze koji daju decimalni rezultat.
  5. Proveri primer ručno. Ako rezultat ne odgovara očekivanju, proveri prvo formulu i jedinice, a tek onda sintaksu programa.

Povezani materijali

Za najbolji napredak reši svih 12 zadataka redom, pa se vrati na one kod kojih si morao/la da otvoriš rešenje. Na kraju ponovo uradi kviz i pokušaj da objasniš svaki postupak svojim rečima.


Otvori još primera za samostalno rešavanje

Proveri se

Kada rešiš zadatke iz ove zbirke, uradi kontrolni zadatak: