Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Treba mi pomoc sa zadacima iz informatike

[es] :: C/C++ programiranje :: C/C++ za početnike :: Treba mi pomoc sa zadacima iz informatike

[ Pregleda: 2159 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IVORYB

Član broj: 286620
Poruke: 3
92.60.238.*



+2 Profil

icon Treba mi pomoc sa zadacima iz informatike19.06.2011. u 00:02 - pre 156 meseci
Ovako, spremam prijemni iz informatike za fax, ali nikad nisam imao priliku da ucim i vidim kako se programira (ne racunam amatersko programiranje u BASIC-u na Commodore 64 pre 15 godina). Na sajtu faxa su izbacili pitanja i zadatke koji bi mogli da budu na prijemnom, i pitanja su maciji kasalj, ali zadaci.....pa ako neko moze da mi pokaze tj napise kako bi neki od ovih zadataka trebalo da se odrade:

1. Dato je 5 različitih prirodnih brojeva. Odrediti srednji po veličini. Na primer, za unete brojeve 2, 7, 3, 4, 5 – odgovor
je 4.

2. Napisati program koji računa n‐ti član Fibonačijevog niza, koji je definisan sa F [0] = 0, F [1] = 1 i F [n+1] = F [n] + F [n
– 1]. Na primer, za n = 6 – odgovor je 8.

3. Napisati program koji broji pojavljivanja samoglasnika (A, E, I, O, U) u tekstu koji se unosi sa standardnog ulaza. Na
primer, za tekst ‘Prirodno matematicki FAKULTET’ – odgovor je 11.

4. Napisati program koji štampa prvih n Nivenovih brojeva (oni brojevi koji su deljivi sumom svojih cifara). Na primer,
za n = 15, štampati 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24.

Zadaci izgledaju kao da su mnogo laki, ali dzabe kad nemam osnovu.

Inace zadaci mogu da se pisu ili u C ili u Paskalu, ne znam kako se lakse uci ili pamti.
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Treba mi pomoc sa zadacima iz informatike19.06.2011. u 01:52 - pre 156 meseci
Pozdrav,

Ne znam koliko ce ti znaciti gotova resenja ako nisi programirao, obzirom da ne mozes da naucis napamet. Zadaci jesu relativno laki, mada su mozda neki previse dugacki za prijemni na papiru.
Mozda ti je najbolje da pokusas da naucis nesto iz paskala do prijemnog, ali ne znam koliko sad imas vremena za sve to i zasto to nisi ranije poceo da spremas ako upisujes smer na kome se radi programiranje.
Od ovih zadataka je najkraci verovatno drugi, mada i on moze da se uradi na nekoliko nacina, kao 'prepisana' matematicka jednacina [vrlo cesto resenje i lose]:
Code:

int fib(int n){
return n == 0 || n == 1 ? n : fib(n-1) + fib(n-2);
}

ili nesto na ovu foru (gde je prvi poziv u stvari fib(n, 0,1) ili jos bolje rasclanjeno u dve funkcije, nebitno):
Code:

int fib(int n, int current, int next){
    return n == 0 ? 0 : (n == 1 ? next : fib(n - 1, next, current + next));
}

Resice ti neko i ostale ovde posto nisu komplikovani, ali pitanje je koliko to moze stvarno da ti pomogne bez da uzmes sam da radis i da vezbas.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

IVORYB

Član broj: 286620
Poruke: 3
92.60.238.*



+2 Profil

icon Re: Treba mi pomoc sa zadacima iz informatike20.06.2011. u 17:42 - pre 156 meseci
Nisam ranije poceo da se spremam, zato sto su se sa PMF-a u Nisu setili 15 dana pred prijemni da moze da se polaze i informatika za upis i objavili takvu informaciju (do sada je to iskljucivo bila matematika). Nisu ni stigli da naprave pripremnu nastavu za upis, vec su samo postavili pitanja i zadatke na sajtu, ako neko slucajno naidje na njih pa da vidi sta moze da ocekuje.

Prijemni je za 7 dana. Za to vreme, tesko da cu bilo sta sam i bez neke knjige o programiranju da ukapiram. Do petka je prijavljivanje za upis, pa se nadam da ce biti manje prijavljenih nego sto ima slobodnih mesta (Primaju 32 studenta i to sve na budzet, a recimo prosle godine se prijavilo njih 21 za upis, samo ne znam koliko je njih naletelo na informaciju da moze da se polaze i informatika). Ako bude manje od 32 prijavljenih, onda cu ucenje programiranja da ostavim za oktobar i za predmet osnove programiranja, ali ako ih bude vise prijavljenih, voleo bih da imam nekog keca u rukavu, da "ukradem" jos koji poen na prijemnom.

Evo sad su na sajtu faxa izbacili kako bi trebao da izgleda prijemni: http://www.pmf.ni.ac.rs/pmf/up...matika/primer_prijemnog_01.pdf
http://www.pmf.ni.ac.rs/pmf/up...matika/primer_prijemnog_02.pdf

Pitanja su smesna, ovo da me probudis u sred noci znam da ti kazem, ali zadaci.....da se ne ponvljam.

Kako bi npr ove zadatke trebao da odradim, barem da vidim primer, pa na osnovu njega da probam nesto da zapamtim:

1. Odrediti vrednost broja m posle izvršavanja sledećeg koda:

C verzija
int n = 123456789;
int m = 0;
while (n != 0) {
m = (10 * m) + (n % 10);
n = n / 10;
}

Pascal verzija
n := 123456789;
m := 0;
while (n <> 0) do begin
m := (10 * m) + (n mod 10);
n := n div 10;
end;

2. Ispred blagajne je stoji n ljudi  čije su visine, redom, date nizom h [1], h [2], ..., h [n].
Napisati program koji određuje broj ljudi koje vidi blagajnik sa početka reda. Elementi
niza h se učitavaju sa standardnog ulaza.
Na primer, za ljude sa visinama 155, 170, 165, 180, 175, 195, blagajnik vidi prvog,
drugog, četvrtog i šestog čoveka – odgovor je 4

3. Šta se štampa izvršavanjem sledećeg programa
C verzija
for (int i = 0; i < 10; i++)
a = 9 ‐ i;
for (int i = 0; i < 10; i++)
a = a[a];
for (int i = 0; i < 10; i++)
cout << a;

Pascal verzija

for i := 1 to 10 do
a := 10 ‐ i;
for i := 1 to 10 do
a := a[a];
for i := 1 to 10 do
writeLn (a);

4. Dato je n ponuda u dinarima. Napisati program koji određuje minimalnu jedinstvenu
ponudu, ukoliko takva postoji, a u suprotnom štampa odgovarajuću poruku. Ponude su
date kao niz celih brojeva koji se učitava sa standardnog ulaza.
Na primer, za ponude 5, 4, 1, 2, 1, 2, 6, 2 – odgovor je 4 (pošto se ponude 1 i 2 javljaju
više puta).
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
95.180.86.*



+7 Profil

icon Re: Treba mi pomoc sa zadacima iz informatike20.06.2011. u 22:11 - pre 156 meseci
Evo objasnjenja za 1. i 3. zadatak. Ne znam koliko bi ti vredelo da ti se uradi 2. i 4. ako uopste nemas iskustva u programiranju, dok bi 1. i 3. mogao bar da razumes

1. U ovom zadatku ti je data pocetna vrednost za n i za m. While petlja oznacava da ce se naredbe unutar nje izvrsavati dok je uslov zadovoljen (n!=0, != predstavlja razlicito).
Znaci dok je n!=0, izvrsavace se
Code:
m = (10 * m) + (n % 10);
n = n / 10; 

n%10 oznacava ostatak pri deljenju sa 10, a n/10 oznacava celobrojno deljenje (jer je n tipa int). Sta se ovde zapravo desava - svaki put ce se m pomnoziti sa 10 i dodace mu se poslednja cifra broja n (jer n%10 zapravo predstavlja poslednju cifru broja n), a sa broja n ce se ukloniti poslednja cifra (jer n/10 predstavlja celobrojno deljenje sa 10 pa se samo uklanja poslednja cifra). Ovo se ponavlja dok se ne prodju sve cifre od broja n (odnosno dok n ne postane 0). Ako bi ispisao prvih par vrednosti za m, lako bi primetio da ce vrednost promenljive m na kraju zapravo biti broj koji ima iste cifre kao i n, samo u obrnutom redosledu - 987654321!

3.
Code:
for (int i = 0; i < 10; i++)
a[i] = 9 ‐ i;
for (int i = 0; i < 10; i++)
a[i] = a[a[i]];
for (int i = 0; i < 10; i++)
cout << a[i];


for je petlja koja promenljivu i svaki put povecava za 1. Na pocetku je i = 0, a posle svakog izvrsavanja naredbe
Code:
a[i] = 9 - i;
promenljiva i ce se uvecati za 1. a predstavlja niz, dok
Code:
a[i]
predstavlja clan niza na i-toj poziciji. Znaci na pocetku ce biti a[0] = 9 - 0; - odnosno na nultoj poziciji niza ce se upisati broj 9. Zatim ce i da se uveca za 1, pa ce da se izvrsi a[1] = 9 - 1; - odnosno na pozicija prvom mestu u nizu upisace se broj 8. I tako dalje, do poslednjeg kad je a[9]=9-9; - na poslednjoj (devetoj) poziciji zapisace se broj 0. U sledecem koraku i postaje 10, ali to ne zadovoljava uslov petlje i < 10.
Posle ove petlje niz a ce biti = 9, 8, 7, 6, 5, 4, 3, 2, 1, 0. Pocetni broj se nalazi na indeksu 0.
Zatim se prelazi na drugu for petlju.
Na pocetku ce biti a[0] = a[a[0]], pa posto je a[0] zapravo 9 (izracunato u prosloj petlji), onda je izraz ekvivalentan a[0]=a[9]. Posto je a[9]=0, onda ce a[0] dobiti vrednost 0.
Zatim a[1]=a[a[1]], sto je a[1]=a[8], sto je a[1]=1.
Zatim a[2]=2;
Zatim a[3]=3;
Zatim a[4]=4;
E sad dolazimo do specificne situacije. Iako se cini da ce a[5] biti jednako broju 5, nije tako. a[5] = a[a[5]]. Iako je pre pocetka izvrsavanje ove petlje na mestu 4 u nizu a broj 5, mi smo u toku izvrsavanje ove petlje, upravo u prethodnom koraku na a[4] upisali broj 4. Znaci a[5]=4, to jest a[5]=a[4], to jest a[5]=4.
Ako se nastavi sa ovom simulacijom, videce se da ce a[6] da bude 3 (a[6]=a[a[6]], a[6]=a[3], a[6]=3), a[7]=2 itd.
Na kraju ce niz a da bude = 0, 1, 2, 3, 4, 4, 3, 2, 1, 0
Treca for petlja ispisuje niz redom od 0-tog do 9-tog clana, tako da ce ispis biti
0123443210
 
Odgovor na temu

IVORYB

Član broj: 286620
Poruke: 3
92.60.238.*



+2 Profil

icon Re: Treba mi pomoc sa zadacima iz informatike20.06.2011. u 22:45 - pre 156 meseci
OK, hvala na odgovoru, trebace mi neko vreme da skapiram sve, dok procitam par puta i probam to sve na papiru, pa da udjem malo u stos.

U svakom slucaju i jedan od ovih zadataka da znam da uradim, vec sam u prednosti u odnosu na druge.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Treba mi pomoc sa zadacima iz informatike

[ Pregleda: 2159 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.