- +/- sve poruke
- ravni prikaz
- starije poruke gore
Evo trebam riješiti zadatak pa ako netko zna neka napiše!? Ja nemam pojma!
Ocito onda ne razumijes sto znaci % operator.
4%3 = 1, to ti je modul, znaci vraca ostatak dijeljenja,
kad podjelis 4/3, ostane ti ostatak 1
istu tako u zadatku b, kad podjelis 64/4 = 16 i ostatak 0,
sto znaci 64%4 = 0,
U zadatku b, posto ti nema break naredbe nakon case, izvršiti će se svi slucajevi
tj. naredbe koje se nalaze ispod prve za koju je ispunjen uvjet, u ovom slucaju
sve ispod case 0.
EDIT: hahaha ipak, je 72-8 = 64.... nesto mi se pomiješalo
Bilo bi lijepo da napišeššto točno neznaš, ovako ispada da: ili nisi porazmislio o zadatku, ili te uopće ne zanima.
a:
x = 4
switch (ostatak djeljenja 4 sa 3, dakle 1)
slučaj da je ono u zagradi = 1: povećaj x za 5 i prekini switch
slučaj da je ono u zagradi = 2: povećaj x za 7 i prekini switch
nije li ono u zagradi 1 ili 2: povećaj x za x (i prekini switch)
b:
x = 72, y = 8, z = 4
switch (ostatak djeljenja (72-8) s 4, dakle 0)
slučaj da je sadržaj zagrade = 0: uvećaj z za 1
slučaj da je sadržaj zagrade = 1: uvećaj z za 2
slučaj da je sadržaj zagrade = 2: uvećaj z za 3
slučaj da je sadržaj zagrade = 3: uvećaj z za 4
Switch možeš shvatiti kao veoma miroljubivu i nestrogu konstrukciju. Svaki case je neka vrsta oznake, poput one za "goto". Po ulasku u switch, tvoj program će početi izvršavati linije nakon prvog odgovarajućeg "case"-a. A prekinut će switch tek kad naiđe na "break;" ili sl.
Dakle, možeš shvatiti "case" kao uputu gdje početi switch, i ništa više od toga.
Podebljao sam upravo one linije koje će doživjeti izvršenje, možda ćeš tako jasnije dokučiti.
Pa nerazumijem ja ništa u tome!! To ona nama zada i onda mi to moramo napisat u bilježnicu!
Jest da ne valja uzimati zdravo za gotovo sve što ljudi npišu ovdje, ali za koji k.. ona prima plaću ako djeci ne objasni nešto poput switch-a na satu.
dakle, robi," use i u svoje kljuse", nema druge
a koliko je trebalo itf-u da to objasni, tri minute
Nemaš drugo nego olovku i papir u ruke i korak po korak piši koja varijabla je na kojoj vrijednosti, do kne dođeš do kraja. Sve ti je lijepo napisao itf, samo si zapisuj :D
samo mladicu nije jednostavno prolaziti red po red sa naredbama kada ne razumije što one uopće znače!
možda da uz ove informacije sa forume i bezobraznu učiteljicu proba i neku knjigu uzeti u ruke...
mala varijacija itf4n-ovog objašnjenja...
a)
x = 4
switch (ostatak djeljenja 4 sa 3, dakle 1)
slučaj da je ono u zagradi = 1: povećaj x za 5 i prekini switch // dakle, x je i dalje 4 -> 4 + 5 = 9
slučaj da je ono u zagradi = 2: povećaj x za 7 i prekini switch
nije li ono u zagradi 1 ili 2: povećaj x za x (i prekini switch)
b)
obrati pozornost na z, jer se to jedino mijenja kroz switch
x = 72, y = 8, z = 4
switch (ostatak djeljenja (72-8) s 4, dakle 0)
slučaj da je sadržaj zagrade = 0: uvećaj z za 1 // z = 4 + 1 = 5
slučaj da je sadržaj zagrade = 1: uvećaj z za 2 // z = 5 + 2 = 7
slučaj da je sadržaj zagrade = 2: uvećaj z za 3 // z = 7 + 3 = 10
slučaj da je sadržaj zagrade = 3: uvećaj z za 4 // z = 10 + 4 = 14
dopiši još sljedeći kod:
#include <stdio.h>
int main ()
{
(onaj tvoj kod)
printf ("%d", x);
return 0;
}
i to če ti pokazat koliko je ono...
P.S. pitaj nastavnika/cu, to je uđbenik za 2 i 3 gimnazije/elektro...
Zar samo ja vidim da na screenshotu ispod zadatka pišu i rješenja? :P
Evo da ne otvaram novu temu, zanima me rješenje ovog zadatka, što vi mislite, što je točno. Zadatak glasi:
Ispišite vrijednosti (od izlaza prema ulazu reda) koje se nalaze u redu nakon što se obavi funkcija func. Funkcija func kao parametar prima red s vrijednostima: 1, 2, 3, 4, 5, 6, 7, 8. Funkcija dodajURed dodaje vrijednost argumenta el u red.
void func (Red *red){
int el;
if (skiniIzReda(&el, red)) func(red);
if (el % 2) dodajURed(el, red);
}
Ja sam mislim da je rješenje 1 3 5 7.
Znači, ako imamo red
1 2 3 4 5 6 7 8
onda ovom rekurzivnom funkcijom prvo skidamo sve elemente sa reda, i to 1, 2... 8. Nakon što se više nema što skinuti rekurzija se vraća nazad te se čitaju među-stanja i izvršava druga if naredba tj.
if(8%2) dodajURed(8, red);
if(7%2) dodajURed(8, red);
.
.
if(1%2) dodajURed(8, red);
što će biti izvršeno samo nad neparnim brojevima, pa će se polje početi puniti s 7, 5, 3, 1, a ako to ispišemo od izlaza prema ulazu dobijemo 1 3 5 7.
Tako da, mislim da ti je to točno ;)
Točno tak i ja razmišljam. Inače, ovo je zadatak sa 2 međuispita iz ASP-a, a oni kažu da je rješenje 7,5,3,1. Sutra idem na žalbe, baš me zanima...
Tracer, aj pomozi s ovim. Skužio sam u čem je finta, ja gledal ovak: ulaz - red - izlaz, a mi radili, a i u tvojoj knjizi (slika 9.4.1, str. 189) izlaz je s lijeve strane, dakle: izlaz <-- red <-- ulaz. I sad, ko je tu lud? Jel je to striktno da ciklički red tak izgleda? Uh...
Koliko ja znam, iz reda kad skidaš skidaš s vrha, a ubacuješ od iza... dakle lijevo izlaze, desno ulaze... zamisli red u banci npr... dolaziš na kraj reda, a s vrha reda izlaziš.
Ali opet bi trebalo bit kak si napiso gore, jer će se sve samo u krug odvrtit, i s time da će samo neparni ostat.
Evo da ne otvaram novu temu, zanima me rješenje ovog zadatka, što vi mislite, što je točno. Zadatak glasi:
Ispišite vrijednosti (od izlaza prema ulazu reda) koje se nalaze u redu nakon što se obavi funkcija func. Funkcija func kao parametar prima red s vrijednostima: 1, 2, 3, 4, 5, 6, 7, 8. Funkcija dodajURed dodaje vrijednost argumenta el u red.
void func (Red *red){
int el;
if (skiniIzReda(&el, red)) func(red);
if (el % 2) dodajURed(el, red);
}
Ja sam mislim da je rješenje 1 3 5 7.
Ne. Skidaš redom 1,2,3,4,5,6,7,8 i pri povratku iz najdublje rekurzije vraćaš one koji nisu dijeljivi sa 2, dakle vraćaš 7,5,3,1 i takav red bude na kraju.
što će biti izvršeno samo nad neparnim brojevima, pa će se polje početi puniti s 7, 5, 3, 1, a ako to ispišemo od izlaza prema ulazu dobijemo 1 3 5 7.
Tako da, mislim da ti je to točno ;)
U krivu si. Ulaz u red je poslije 1. Novi element će doći iza 1. Ako vadimo elemente, prvo ćemo izvaditi 7, dakle to je izlaz.
Od izlaza prema ulazu, od 7 prema 1, dakle 7,5,3,1.
Tracer, aj pomozi s ovim. Skužio sam u čem je finta, ja gledal ovak: ulaz - red - izlaz, a mi radili, a i u tvojoj knjizi (slika 9.4.1, str. 189) izlaz je s lijeve strane, dakle: izlaz <-- red <-- ulaz. I sad, ko je tu lud? Jel je to striktno da ciklički red tak izgleda? Uh...
Da. Tu smo izlgeda zeznuli. Sve smo dobro rješili osim što smo u glavi zamjenili ulaz i izlaz pa krivo popunili red.
što će biti izvršeno samo nad neparnim brojevima, pa će se polje početi puniti s 7, 5, 3, 1, a ako to ispišemo od izlaza prema ulazu dobijemo 1 3 5 7.
Tako da, mislim da ti je to točno ;)
U krivu si. Ulaz u red je poslije 1. Novi element će doći iza 1. Ako vadimo elemente, prvo ćemo izvaditi 7, dakle to je izlaz.
Od izlaza prema ulazu, od 7 prema 1, dakle 7,5,3,1.
Točno. To sam baš upravo htio gore opisati ali je malo prekonfuzno za objasniti. Stvar je u točnom poimanju izlaza i ulaza u ovom zadatku.