







Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Uvod u programiranje. Zadatak za zagrevanje. 1. Četiri pingvina sa Madagaskara su krenuli u školu stranih jezika u kojoj će učiti (naravno) srpski, ...
Tipologija: Ispiti
1 / 13
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!








TEST PRIMER IZLAZ Zdravo svete Hello world Bonjour monde Ciao mondo Hola mundo Olá mundo Hallo Welt
Kakav je ovo neozbiljan, pomalo smešan i veoma, veoma, veoma neobi č an zadatak? ODGOVOR:
Zadaci na takmičenjima iz programiranja često se zadaju u obliku priče koja bi takmičare mogla da zabavi, ali da ih i podstakne da razmišljaju o važnim i zanimljivim programerskim problemima
Važno: Navedeni podaci za testiranje č esto ne pokrivaju SVE mogu ć e situacije, ve ć morate nekada i sami da osmislite što više klizavih test primera
Koje funkcije iz programskog jezika C moramo znati da bismo rešili ovaj zadatak? ODGOVOR: printf ("Zdravo svete\n"); Zbog čega koristimo sekvencu znakova \n? Šta znači ta divna srpska reč sekvenca? Sada razmislite o zadatku. Kako biste ga rešili?
#include <stdio.h>
int main() { printf("Zdravo svete\nHello world\nBonjour monde\nCiao mondo\nHola mundo\nOlá mundo\nHallo Welt\n"); return 0; }
stdio je skraćenica od standard input output .h je oznaka za zaglavlje (header)
Pretprocesorska direktiva #include stdio.h znači "uključi ulazno-izlazni tok". Ovde tražimo da se našem programu doda deo koji mu (između ostalog) omogućava da ispiše tekst na ekranu ili da prihvati podatak koji je unesen preko tastature. Bez ove linije, program za prevođenje ne bi razumeo ostatak našeg programa, konkretno liniju gde pominjemo "Zdravo, svete". Pretprocesorska direktiva je posebna naredba u izvornom kodu programa koja se izvršava pre nego se program prevede. Ove direktive se razlikuju od ostalih linija programa: počinju znakom# i završavaju se krajem reda, a ne tačkom i zarezom.
int main() Ova linija predstavlja deklaraciju funkcije. Funkcija predstavlja grupu programskih naredbi kojima se daje ime, u ovom slučaju ime funkcije je "main". O funkcijama ćemo detaljno učiti kasnije. Za sada je važno da znate da definicija funkcije počinje sa tipom podataka koji funkcija vraća (int), imenom (main) i parom zagrada "()", i opciono sa ulaznim parametrima.
Funkcija pod nazivom main (glavna) je specijalna funkcija u svim C i C++ programima!!! Ova funkcija se poziva kada se pokrene program. Izvršavanje svih C i C++ programa počinje sa main funkcijom, bez obzira gde se ta funkcija u kodu nalazi (na početku, u sredini ili na kraju).
{ }
Otvorena vitičasta zagrada "{" označava početak definicije funkcije main, a zatvorena vitičasta zagrada "}" predstavlja njen kraj. Sve između ovih zagrada je telo funkcije koje definiše šta se dešava kada se funkcija main pozove. Sve funkcije koriste vitičaste zagrade da označe početak i kraj svojih definicija.
printf
printf("Zdravo svete\n"); printf("Hello world\n"); printf("Bonjour monde\n"); printf("Ciao mondo\n"); printf("Hola mundo\n"); printf("Olá mundo\n"); printf("Hallo Welt\n"); return 0; }
#include
using namespace std;
int main() { cout << "Zdravo svete" << endl; cout << "Hello world" << endl; cout << "Bonjour monde" << endl; cout << "Ciao mondo" << endl; cout << "Hola mundo" << endl; cout << "Olá mundo" << endl; cout << "Hallo Welt" << endl; return 0; }
iostream je skraćenica od input-output stream.
Skoro svaki C ili C++ program koristi bar neku od standardnih funkcija ili klasa.
#include
cout << "Zdravo svete" << endl; Ova komanda ima tri dela: prvi, cout, koji označava standardni izlaz (standard character output - standardni tekstualni izlaz konzole i obično je to ekran računara). Drugi, operator toka "<<", koji označava da ono što sledi
će biti ispisano na izlaz. Na kraju, rečenica u okviru navodnika ("Zdravo svete"), je sadržaj koji će biti ubačen/ispisan na standardni izlaz. Primeti da se komanda završava znakom ";".
return 0; Funkcija main vraća vrednost operativnom sistemu. Ova vrednost signalizira da li je izvršavanje programa bilo uspešno (vraćena vrednost 0) ili je došlo do greške tokom izvršavanja (vraća se kod greške). Zato na kraju svakog programa pišemo return 0;
Standardna biblioteka C++ koristi različite ulazno-izlazne bafere za svaku ulazno-izlaznu tehniku. Kombinovanje C++ upisa/ispisa i C-ovskih funkcije upisa/ispisa (scanf/printf) može dovesti do nepredvidivih rezultata. U ulazno-izlaznim klasama C++-a postoji funkcija sync_with_stdio koja se koristi za koordinisanje funkcija printf i scanf sa ulazno-izlaznim podacima.
NAIVNA REŠENJA C
#include <stdio.h>
int main() { printf("*/*/*/"); return 0; }
C++
#include
IZLAZ //*/
Popravite naivna rešenje!!!
Objasnimo delove rešenja: char
int main() { int a; cin >> a; cout << a+1 << endl; return 0; }
#include
using namespace std;
int main() { cout << 53* << endl; cout << 15%6 << endl; cout << 5/2 << endl; cout << 5.0/2 << endl; cout << 1/3 << endl; cout << 1.0/3 << endl; return 0; }
IZLAZ 15 3 2
0
Šta je rezultat rada sledećeg C programa?
#include <stdio.h> int main() { printf("\n53=%d",53); printf("\n 15%%6 =%d",15%6); printf("\n5/2=%d",5/2); printf("\n5.0/2=%f",5.0/2); printf("\n1.0/3=%f",1.0/3);
return 0; }
5*3= 15%6= 5/2= 5.0/2=2. 1.0/3=0.
#include
Rešenje: #include
********* * * * * ***** * * * ULAZ Nema ulaznih podataka. IZLAZ * * * * * * ********* * * * * ***** * * *
Ulazni podaci:
Napomena: Brzina kojom vozi Moris uvek će biti veća od maksimalne dozvoljene brzine.
#include<stdio.h> main() { int A,B,K; scanf("%d%d%d",&A,&B,&K); printf("%d", A5+B10-K); }
Koliko je 3* 35 + 2 3(5 + 2) 35 + 210 – 25 5+2+3* 5+(2+3)* (5+(2+3))* (5+2)+3*
II način C++
#include
using namespace std;
int main() { int A,B,K; cin >> A>>B>>K; cout << A5+B10-K << endl; return 0; }
PRIMER ULAZ IZLAZ 14 17 2 Objašnjenje: Prodavačica će vratiti kusur sa ukupno dve monete (jedna od 2 jukuku i jedna od 1 jukuku), a neće vratiti kusur sa tri monete (svaka po 1 jukuku).
TEST PRIMERI KOJI SU SE BODOVALI NA TAKMIČENJU (svaki test primer vredi 5 poena)
ULAZ IZLAZ 14 20 2 38 40 1 100 100 0 91 100 3 12 20 3 25 30 1
Hajde da ne pišemo odmah program već da ručno prođemo kroz test primere.
Pokušajte sami da rešite zadatak i da ga testirate na zvaničnim test primerima sa takmičenja. Koliko poena biste osvojili?
#include <stdio.h> int main() { int n, m, monete=0, kusur; scanf("%d%d",&n,&m); kusur=m-n; monete+=kusur/5; //ostatak se dalje rasitnjava kusur-=(kusur/5)5; monete+=kusur/2; kusur-=(kusur/2)2; monete+=kusur; printf("%d", monete); return 0; }
Da li je svejedno ako pišete monete+=kusur/5; ILI monete= monete + kusur/5; monete+=kusur/2; ILI monete= monete + kusur/2; monete+=kusur; ILI monete=monete+kusur;
kusur-=(kusur/5)5; ILI kusur=kusur - (kusur/5)5; kusur-=(kusur/2)2; ILI kusur= kusur - (kusur/2)2;
II način
#include
kusur=m-n; monete+=kusur/5; //ostatak se dalje rasitnjava kusur-=(kusur/5)5; monete+=kusur/2; kusur-=(kusur/2)2; monete+=kusur;
cout << monete << endl;
II na č in (sami uz pomo ć cin, cout)
Napokon je osvanuo i taj dan, Ilijin rođendan. Danas će od roditelja na poklon dobiti novi računar. Ali, ipak nije sve tako savršeno kako izgleda, jer od njih nije dobio dovoljno novaca da ispuni sve svoje želje. Nikako se ne želi odreći skupih zvučnika i joysticka(volana), jer svi njegovi prijatelji kažu bez tih delova računar ništa ne vredi. Sada ga zanima jedino koliko će mu novca ostati nakon što kupi te preko potrebne delove.
Ulazni podaci:
Izlazni podaci:
TEST PRIMERI
ULAZ IZLAZ 3000 2100 500 400
ULAZ IZLAZ 1000 250 300 450
I način C++ #include
using namespace std;
int main() { int r, z, j, b; cin >> r >> z >> j; b = r - z - j; cout << b << endl; return 0; }
II način C
#include <stdio.h> main() { int r, z, j, b; scanf("%d%d%d", &r,&z,&j); b = r - z - j; printf("%d",b); }