Ljudi molim vas samo rijesite taj zadatak
Rješen je, samo se sad malo nadmeću čiji je veći. :)
Ljudi molim vas samo rijesite taj zadatak
Rješen je, samo se sad malo nadmeću čiji je veći. :)
Ljudi molim vas samo rijesite taj zadatak, sve sam opisao, samo se sjetite kako ste to rijesavali dok ste bili u srednjoj skoli, ovo sto rijesavate nacinima sa fakulteta mi je nepoznati i iskreno to trenutno nemoram ni znati :)
Taj zadatak mi treba hitno!
Imaš gore @Tracerovo rješenje, to je sve što trebaš.
Izraz brojac++ ti je isti kao izraz brojac = brojac + 1
Napisao ti ovo u bloku
{
niz[brojac] = 5;
brojac = brojac + 1;
}
ili ovo
{
niz[brojac++] = 5;
}
Dođe mu na isto.
Tonci isao trollat i na kraju ga zatrollalo :P
Ne vidim kako, kad imam pravo. :)
Baš si ga zatrolao, cijeli dio decimalnog broja je onaj dio lijevo od decimalne točke.
Uostalom, evo ti rješenje koje koristi nizove i super pregledno je.
#include <stdio.h>
#include <math.h>
int main()
{
double a[5] = {4, 9.9, 8.7, 5, 16.4};
double b[5];
int i, brojac = 0;
double d;
for(i = 0; i < 5; i++)
{
d = (a[i] - (int)a[i]) - (int)a[i]%2;
if(d > 0)
b[brojac++] = pow((int)a[i], 0.5);
}
for(i = 0; i < brojac; i++)
printf("%lf ", b[i]);
return 0;
}
Dakle, korištenje vektora ne znači u ovom slučaju bolju preglednost, nego da štedi prostor i izvedeno je sa jednom varijablom manje.
Probaj ovo..
#include <stdio.h>
#include <math.h>
int main() {
float a[5], b[5];
int i, brojac_b = 0;
for (i = 0; i < 5; i++) {
printf("\n upisi %d. broj: ", i + 1);
scanf("%f", &a[i]);
// ako je decimalni
if(a[i] - (int)a[i] != 0){
// ako je cijeli dio decimalnog broja paran
if((int)a[i] % 2 == 0)
b[brojac_b++] = sqrt((int)a[i]); -- nerazumijem ovo b[brojac_b++] nikad to nismo radili, mi smo stavljali u [] samo brojeve i varijablu "i" npr. B[5] i B[i]
}
}
// ispis b polja
for (i = 0; i < brojac_b; i++)
printf("%.3f\n", b[i]);
return 0;
}
Inače, imaš gore temu posvećenu samo C++ problemima. Nema potrebe otvarati novu za svaki novi zadatak.
Zamisli da je taj brojac naziva i, svejedno, ime jedno ili drugo, radi se o int varijabli.
primjeti da je inicijaliziran na 0 na početku
int brojac = 0;
kad prvi put uđe u taj if blok
niz[brojac++] = 5;
tu na poziciju niz[0] pridružuješ broj 5, a kad se izvrši ta linija koda varijabla brojac se poveća za 1
kad drugi put uđe u taj if blok
niz[brojac++] = 8;
pošto nam je nakon prvog izlaska iz if bloka sada vijednost varijable brojac = 1, na poziciju niz[1] pridružujemo vrijednost 8
kada se ta linija koda završi varijabla brojač se povećava za 1 i sada iznosi 2
i tako dok god se ulazi u taj if blok.
E pa sačuvaj bože da nešto i naučiš. To bi tek bilo strašno zar ne?
Funkcija pow. Hint: podizanje broja na 0.5-tu potenciju je isto što i izvlačenje drugog korjena tog broja.
funkcija scanf
%lf čita double
Ako znaš čemu služi onda znaš da je to isto što i float samo sa više preciznosti. Prema tome u čemu je problem?
Ako misliš na ovo:
for (int i = 0; i < brojac; i++)
To je deklaracija brojača 'i' unutar incijalizacijskog dijela for petlje. Tako varijabla 'i' ima scope koji je ograničen samo na petlju, izvan petlje ta varijabla ne postoji. Takav način deklaracije brojača omogućava C++ i C99 standard. ANSI C standard ga ne dozvoljava i tamo se treba koristiti nešto tipa:
int i;
for (i = 0; i < brojac; i++)
Što je vjerojatno ono što si učio u školi pa si se malo zbunio.
Tonci isao trollat i na kraju ga zatrollalo :P
Ne vidim kako, kad imam pravo. :)
Baš si ga zatrolao, cijeli dio decimalnog broja je onaj dio lijevo od decimalne točke.
...
Dakle, korištenje vektora ne znači u ovom slučaju bolju preglednost, nego da štedi prostor i izvedeno je sa jednom varijablom manje.
Nisi baš shvatio; preporučam da pročitaš moj komentar iznova:
1. C++ koristi streamove i to je preporučena praksa
2. "Jedna varijabla više" je nepotreban višak. A što da je 1099 varijabli više? Jedan GB memorije više, jedan CPU cycle više.... npr. moj rintf se također može kompajlirati u jednu instrukciju, što je također korisno i znati i primijeniti. Na stranu to što je svrha vektora i mnogo kompleksnija od "lijepo udarenih entera" koje ti promoviraš kao smisao.
-
3. Povratak na: "cijeli dio decimalnog broja je onaj dio lijevo od decimalne točke"
Tebi baš nije jasno o čemu govorim? Objašnjavaš mi "cijeli dio decimalnog broja", što nigdje nije upitno.
"Upisi 5 cijelih i decimalnih brojeva u polje A, u polje B ispisuj drugi korijen cijelog parnog dijela decimalnog broja"
Moraš i čitanje vježbati, kao što i autoru tog zadatka ne bi loše došlo malo vježbe (ne)elokvencije.
Ja sam ga protumačio kako jesam, a tako sam i napravio.
Ti si u oba slučaja napravio drukčije od onog što govoriš, prvi put si filtrirao parne cijele i dekadske dijelove decimalnih, a drugi put nisi filtrirao ništa.
Što se tiče onog što je on tražio:
Kad vidim kod sa bibliotekom stdio.h u headeru, i još uz to da deklarira brojač petlje izvan petlje, to je za mene ono što jest - ćisti C , pa nazvao on to kako hoće, a vidim da baš i ne kuži što je što, ali zna što traži.
Misliš da sam ja lud bez scanf i printf, i ja koristim iostream i cin i cout.
Što se mene tiče, case closed, dosta mi polemike bez veze.
E ovo.
Jako malo forumaša ovdje zapravo i traži rješenja zadataka u C++-u u punom smislu. Većinom je riječ o čistom C-u kojeg oni nazivaju C++ (jer ne znaju razliku, ili, još gore, misle da je C++ program u kojem pišu svoj programski kod), a u najboljem slučaju koristi se C sa C++ stream objektima.
Ovako iz sjećanja mogu na prste jedne ruke nabrojati slučajeve kada je netko trebao nešto raditi sa klasama, spominjao vektore itd...
E ovo.
Jako malo forumaša ovdje zapravo i traži rješenja zadataka u C++-u u punom smislu. Većinom je riječ o čistom C-u kojeg oni nazivaju C++ (jer ne znaju razliku, ili, još gore, misle da je C++ program u kojem pišu svoj programski kod), a u najboljem slučaju koristi se C sa C++ stream objektima.
Ovako iz sjećanja mogu na prste jedne ruke nabrojati slučajeve kada je netko trebao nešto raditi sa klasama, spominjao vektore itd...
Tako ih uče u školi, kreću sa prethodnikom C++, i to nazivaju C++. Međutim C++ ima u svom sastavu te C biblioteke, i moraju ih znati.
Sa druge strane i logično je da uče nizove prije vector klase, i moraju ih učiti. Kad savladaju nizove, lako mogu i vector klasu.
Tako ih uče u školi, kreću sa prethodnikom C++, i to nazivaju C++.
Ma slažem se ja sa svime što si rekao, samo kažem - to je u osnovi C.
Prvi put sam napravio kako sam prvi put pročitao: "u B ubaci druge korijene cijelih brojeva", zatim sam na tvoj komentar da ne valja napravio da "u B ubaci druge korijene cijelih parnih dijelova cijelih i decimalnih brojeva" (bilo je blesavo, ali tako piše). Zatim na tvoj komentar i ponovno čitanje ubacujem provjeru da računa isključivo za decimalne brojeve, odnosno ignorira cijele brojeve u A nizu.
Bilo koje moje rješenje je točno i ovisi isključivo o interpretaciji postavljenog zadatka. Ti radiš goru stvar od mene: arogantno (kako i komentiraš cijelo vrijeme) pretpostavljaš da autor pitanja traži C, a ne C++, iako on izričito navodi C++ dva puta. Konkretno, iz perspektive C++ zadatka, moje je rješenje pravilnije i bolje, ne samo zato što koristi bolju praksu za ovaj slučaj: vektori su bolji jer su bolji iz niza razloga koji izlaze van razine ove rasprave, veličinu vektora sam namjerno zadao na 0, iako je u ovom slučaju 5 bolje iz perspektive performansi, ali postoji razlog zašto ne prejudiciram veličinu B niza (razlog je i edukativan), for petlja u ranged formatu je bolja iz više razloga, streamovi su C++ "way of doing things", a backward kompatibilnost je samo tu da jest.
Tvoj kod jednostavno nije C++, iako je C++ s njime kompatibilan.
Najgore od svega je što je profesor (ako zadatak zaista glasi onako) posve nepismena osoba.
Da, kraj rasprave jer zaista nema smisla.
Tako ih uče u školi, kreću sa prethodnikom C++, i to nazivaju C++.
Ma slažem se ja sa svime što si rekao, samo kažem - to je u osnovi C.
Da, baš tako, još kad se tomu pridoda inertnost u školama, zamisli da me pita što znači %lf, pa bar su im mogli umjesto floata uvesti double već jednom.
@Tonči
Ja kao arogantan, a ti mi zamjeraš "kompliciranost" jer je dečko tražio biblioteku stdio.h i nizove.
Ma daj.
Dečko je tražio rješenje zadatka i ja sam mu ponudio rješenje u sklopu "C++ ... [ tekst zadatka ]". Smatram da je "komplicirano" ako već imaš postavljen C++, uvoditi scanf printf itd. što s C++-om nema puno veze. Scanf i sl. uz modifikatore je jednostavno kompliciranje u odnosu na C++ praksu. Ne znam uopće što će ti pow npr.? - Arogantan mi je onaj dio gdje uletiš "nije točno" bez ikakvog daljnjeg objašnjenja. Da si napisao "nije ono što zadatak traži, jer traži:...." onda je to nešto, a u suprotnome je to arogantna provokacija koju si ponovio dva puta.
Dakle, ako mu treba C, opet je Tracerovo rješenje prikladnije jer ima jednostavniji segment usporedbe. Ako mu treba C++, moje je očito prikladnije.
Znaš što će mi pow
VS 2012 mi ne dozvoljava preopterećeni sqrt metod sa int argumentom.
...
Dakle, ako mu treba C, opet je Tracerovo rješenje prikladnije jer ima jednostavniji segment usporedbe. Ako mu treba C++, moje je očito prikladnije.
Stvar je u tome sto decko _misli_ da radi u C++-u jer su tako _rekli_ u skoli i zato je trazio pomoc u C++-u, iako je to daleko od C++-a kakvim ga dozivljavas ti, ja, Tracer ili tko vec. U tome je stvar. Ajde sad ozbiljno, otvori onaj njegov pastebin i reci koji je to jezik?
Tako rade u skoli, takav im je program i ti u vezi toga mozes napraviti ama bas nista. Najvise, ako je decko zagrijan za programiranje kao usijano zeljezo, uputiti ga u neku literaturu i objasniti mu o cemu je rijec. A vrlo vjerojatno nije, zeli samo nauciti toliko da polozi taj predmet i sljus: nikad vise ne upalit IDE. I to je ok, ne mozes mu zamjeriti na tome.
Ono sto ti smatras da je C++: OO i sve sto to za sobom nosi - klase, konstruktore, destruktore, skriveni this pointer, klase prijatelji, preopterecenje operatora svih vrsta, inicijalizacijske liste, STL, visestruko nasljedivanje, virtualne klase, virtualne funkcije, virtualni destruktori, virtualna tablica, ciste virtualne funkcije, apstraktne bazne klase, interface klase, templatei, TMP, pa svi goodiesi koje nosi C++11; auto, decltype, nullptr, enum klase, inicijalizacijske liste (vektori), lambda, delegacijski konstruktori... - mali nikad nece cuti za to (osim ako sam ne zapne) i niti ce se ista od toga ikad predavati u srednjim skolama. A kao predaju C++.
Dovoljno je reci da su na FOI-ju malo napredniji, na Programiranju 1 cak koriste cin i cout (te posljedicno includeaju iostream). Niti reference ne spomenu ako se ne varam. Toliko o "C++-u".
S te strane nema smisla forsirati C++ nacin ili sto vec.
A sad, cije je rjesenje tocno ili cije nije, u to se necu mijesati, to sami rijesite. :D
P.S. Dam se kladiti da decko nije ucio niti ternarni operator ?:
Odem na kavu i evo koliko propustim
Moje mišljenje je da dotični uopće ne radi u C++u već u C-u. Code koji je priložio ne slijedi nikakva pravila C++ jezika tj. u codu koristi C headere, deklarira varijable van petlje, koristi printf i scanf itd.. Tako da, prije bih rekao da dotični koristi nekakav C++ IDE u kojemu radi C a ne C++ aplikacije. S obzirom na dio coda koji je on napravio logično je da mu je jednostavnije shvatiti rješenje napisano u C jeziku nego li u C++u, iako i sa time ima previše problema, a kamoli još s kontejnerima, C++11 itd..
Zapravo, volio bih da se sam autor ovdje javi i kaže što on točno uči. C ili C++? Ili C pomoću C++ IDE-a?
Znaš što će mi pow
VS 2012 mi ne dozvoljava preopterećeni sqrt metod sa int argumentom.
A vidio sam da nisu bili u stanju C++11 integrirati kako spada. Meni na VS2013 radi.
...
Dakle, ako mu treba C, opet je Tracerovo rješenje prikladnije jer ima jednostavniji segment usporedbe. Ako mu treba C++, moje je očito prikladnije.
Stvar je u tome sto decko _misli_ da radi u C++-u jer su tako _rekli_ u skoli i zato je trazio pomoc u C++-u, iako je to daleko od C++-a kakvim ga dozivljavas ti, ja, Tracer ili tko vec. U tome je stvar. Ajde sad ozbiljno, otvori onaj njegov pastebin i reci koji je to jezik?
Tako rade u skoli, takav im je program i ti u vezi toga mozes napraviti ama bas nista. Najvise, ako je decko zagrijan za programiranje kao usijano zeljezo, uputiti ga u neku literaturu i objasniti mu o cemu je rijec. A vrlo vjerojatno nije, zeli samo nauciti toliko da polozi taj predmet i sljus: nikad vise ne upalit IDE. I to je ok, ne mozes mu zamjeriti na tome.
Ono sto ti smatras da je C++: OO i sve sto to za sobom nosi - klase, konstruktore, destruktore, skriveni this pointer, klase prijatelji, preopterecenje operatora svih vrsta, inicijalizacijske liste, STL, visestruko nasljedivanje, virtualne klase, virtualne funkcije, virtualni destruktori, virtualna tablica, ciste virtualne funkcije, apstraktne bazne klase, interface klase, templatei, TMP, pa svi goodiesi koje nosi C++11; auto, decltype, nullptr, enum klase, inicijalizacijske liste (vektori), lambda, delegacijski konstruktori... - mali nikad nece cuti za to (osim ako sam ne zapne) i niti ce se ista od toga ikad predavati u srednjim skolama. A kao predaju C++.
Dovoljno je reci da su na FOI-ju malo napredniji, na Programiranju 1 cak koriste cin i cout (te posljedicno includeaju iostream). Niti reference ne spomenu ako se ne varam. Toliko o "C++-u".
S te strane nema smisla forsirati C++ nacin ili sto vec.
A sad, cije je rjesenje tocno ili cije nije, u to se necu mijesati, to sami rijesite. :D
P.S. Dam se kladiti da decko nije ucio niti ternarni operator ?:
Da, u pravu si tu i to je činjenica.
No, ostaje jedino rasprava o kvaliteti školstva, a to je tek u prazno. :D
Odem na kavu i evo koliko propustim
Moje mišljenje je da dotični uopće ne radi u C++u već u C-u. Code koji je priložio ne slijedi nikakva pravila C++ jezika tj. u codu koristi C headere, deklarira varijable van petlje, koristi printf i scanf itd.. Tako da, prije bih rekao da dotični koristi nekakav C++ IDE u kojemu radi C a ne C++ aplikacije. S obzirom na dio coda koji je on napravio logično je da mu je jednostavnije shvatiti rješenje napisano u C jeziku nego li u C++u, iako i sa time ima previše problema, a kamoli još s kontejnerima, C++11 itd..
Zapravo, volio bih da se sam autor ovdje javi i kaže što on točno uči. C ili C++? Ili C pomoću C++ IDE-a?
Slažem se. :) Povlačim svoj optimizam iz rasprave. :D
I Tonči, ako već toliko forsiraš s C++om nemoj pisati
#include <math.h>
već
#include <cmath>
I Tonči, ako već toliko forsiraš s C++om nemoj pisati
#include <math.h>
već
#include <cmath>
Auto-complete, automatski je obavio includove, ali da, točno. :)
Nije mi jasno kako ne zna inkrement ako je prošao nizove.
Jeli baš tako malo vježbaju s njima, ili djeca kao djeca uvijek imaju izgovor "nismo to radili".
Kako ne idu paralelno sa stdio.h i iostream.
Nije mi jasno kako ne zna inkrement ako je prošao nizove.
Jeli baš tako malo vježbaju s njima, ili djeca kao djeca uvijek imaju izgovor "nismo to radili".
Kako ne idu paralelno sa stdio.h i iostream.
Sad, s obzirom da je riječ o "popravnom", upitno je jel' oni nisu radili ili on nije radio. Meni je neshvatljivo da se tu nešto može ne-raditi od tih osnovnih stvari, a kamoli što drugo. Operatori, petlje, varijable, nizovi, klase... sve je to gradivo za prvi semestar šk. godine. To da nisu radili virtualne funkcije, inicijalizacijske liste, dinamičke biblioteke i štošta takvoga, razumio bih, ali baš da "nisu radili ++", nego samo "+", to mi je čudno.
To da nisu radili virtualne funkcije, inicijalizacijske liste, dinamičke biblioteke i štošta takvoga, razumio bih, ali baš da "nisu radili ++", nego samo "+", to mi je čudno.
Meni nije. Ajmo reći da imam neki uvid u to kako se u nekim srednjim školama obrađuje programiranje.
To ti otprilike izgleda ovako:
Slabo upućen profesor bez previše zainteresiranosti pokušava programiranju učiti još manje zainteresirane učenike. Čista sprdačina (čast iznimkama).
To ti otprilike izgleda ovako:
Slabo upućen profesor bez previše zainteresiranosti pokušava programiranju učiti još manje zainteresirane učenike. Čista sprdačina (čast iznimkama).
I onda isti ruknu kompjuter van kroz prozor jer steka.
I onda isti ruknu kompjuter van kroz prozor jer steka.
Sarkazam? Moram priznati da mi je sarkazam detektor zakazao :D
Inače znam ja jednu priču gdje je školska klupa letjela kroz prozor, ali to ću ostaviti za jednu drugu priliku ^^
Sarkazam? Moram priznati da mi je sarkazam detektor zakazao :D
Inače znam ja jednu priču gdje je školska klupa letjela kroz prozor, ali to ću ostaviti za jednu drugu priliku ^^
Nikakav sarkazam, kumic mi je pricao kad je isao u Ruder (sad je 2. god. FOI), dakle prije nekih 2-3 godine je to bilo. Neki predmet s mrezama kod njih ne znam tocno kako se zove i sad oni tamo to nesto spajali u labosu, neke switcheve sto vec i jedan je kolega iz razreda radio nesto na kompjuteru i zastekalo. I javi se on tom profesoru/asistentu, mislim da je cak neki asistent bio privremeno na zamjeni, da ne moze nista napraviti na kompjuteru. Dode ovaj da pogleda, proba, neki deadlock je bio, sto vec, i onak ispali (nesto u tom smislu): "Pic*ka mu materina, ovdje nikad ni jedan ku*rac ne radi, je*bo mu pas mater!" i zgrabi kompjuter i šus kroz otvoreni prozor. Sto je poslije bilo s likom ne znam.
Doduse, prica mi je vec lagano izblijedila tako da je ovo okvirni slijed dogadaja, poslao sam sad poruku kumicu za detalje pa cemo vidjeti. :D
EDIT: Evo, veli mi mali da se ni on vise ne sjeca najbolje, ali da je bio neki profesor. xD
I onda se čudim kad se od 20 prijavljenih na oglas za c++ posao, s riješenim zadatkom javi jedan kojem se kod ni ne kompajlira...
Odem na kavu i evo koliko propustim
Moje mišljenje je da dotični uopće ne radi u C++u već u C-u. Code koji je priložio ne slijedi nikakva pravila C++ jezika tj. u codu koristi C headere, deklarira varijable van petlje, koristi printf i scanf itd.. Tako da, prije bih rekao da dotični koristi nekakav C++ IDE u kojemu radi C a ne C++ aplikacije. S obzirom na dio coda koji je on napravio logično je da mu je jednostavnije shvatiti rješenje napisano u C jeziku nego li u C++u, iako i sa time ima previše problema, a kamoli još s kontejnerima, C++11 itd..
Zapravo, volio bih da se sam autor ovdje javi i kaže što on točno uči. C ili C++? Ili C pomoću C++ IDE-a?
Evo koliko me je dotični profesor Nadarević naućio, mi po njemu radimo "C++", ovako kao što sam ja riješio zadatak (iako je netočan), tako bi zadatak trebao izgledati. Znaći #include<stdio.h><math.h><string.h>, printf,scanf/gets,for,if,while,return 0....sve to smo radili.
I ne, neizvlačim se s "to nismo učili", imam sve u bilježnici, svaku riječ koju je izdiktirao ili zadatak koji je izrekao. Naučio sam sve iz nje, svako slovo! I ako nešto neznam to znaći da nismo učili tj. da nas profesor nije naučio.
Svaki dan zadnja 2 tjedna sam proveo ispisivajući zadatke na kompu i u bilježnicu (svaki dan 3 sata, dosada sam ispunio oko 100 papira i 2 bilježnice xD), voljan sam naučiti ali moj profesor očito nije voljan predavati jer je uvijek mrzovoljan i ako mu kažeš da nešto nerazumiješ pošalje te na ploču da riješiš zadatak koji nisi znao riješiti te ti naravno da 1 u imenik jer ga nisi znao riješiti.
Čovjek je zadnji ološ i nebi trebao raditi kao profesor ako se stalno dere na nas i neuči nas ničemu a traži znanje kao da si na FER-u.
Već smo se žaliti bezbroj puta na njega (mislim na nas učenike i njihove roditelje) no bezuspješno. Razrednica uvijek opravdava profesora i kaže da je naša krivica što svi imamo tako loše ocjene kod njega :/
Nakraju roditelji odustanu jer ih razrednica uvjeri da smo mi krivi a ne profesor, i profesor opet nastavlja po svome.
Jedne je godine srušio 20 njih iz istog razreda i nije imao nikakvih problema zbog toga. Po tome zaključite dali sam ja kriv što nemam znanja iz "C++-a" ili profesor.
Prvo, učiti C++ u srednjoj školi može biti kontraproduktivno, pogotovo ako je prvi jezik. Drugo, nema vas što "profesor učiti", u drugom srednje bi već trebao znati engleski solidno i dovoljno da možeš surfati Internetom, a svo znanje je na Internetu i uglavnom je posve besplatno. Također, ako već učite C++, odeš i kupiš pokoju knjigu i ne čekaš profesora.
No, kako rekoh, C++ može biti kontraproduktivan, posebno ako već nisi "na ti" s logikom i booleovom algebrom i ako se ne predaje kako treba, a to je očito slučaj.