Tutorijali.Net forum

Full Version: Sintaksa, funkcije.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Ovaj, pozdrav. Ja sam skupila neka pitanja ovako usput programirajuci (iako to ni p od programacije nije).
Jel mogu ja to ovdje da postavim...
Iliiii je to protivno pravilima ili tako nesto?
Hvala :]

Pozdrav. :]
Protivno pravilima je jedino naslov ovog topica "Pitanja". Za naslov topica inače odaberi nešto što približno opisuje tvoj problem.

Pucaj s pitanjima.
Okej, promijenila sam naziv.
Pa da vam kopiram ovo sto sam slala instruktoru.



1. Za sta sluze 'iteratori', npr. begin O_o
I da li su neophodni?
2. Za sta sluzi string member empty?
3. Sta je to size_t?
4. Da li se if uslovi mogu skratiti? (Npr. u QB se
moze napisati u jednom redu)
5. Sta mislite o ideji da se, kad je potrebno, umjesto funkcije koje vraca
vrijednost, iskoristi void koji mijenja vrijednost neke promjenljive u globalu?
6. Da li je moguce kastovati broj sa vise cifara u string, ili string
(ne char) u broj, ili se trebaju razdvajati karakteri i cifre.
Posto pokazali su mi kako ide sa jednim karakterom i jednom cifrom.
7. Da li je for petljom moguce uskociti u funkciju, posto
nema prosljedjivanja parametara pretpostavimo da su potrebni parametri
u globalu. (da li se onda funkcija poziva kao npr int i=funk()? O_o)
8. Za sta sluzi biblioteka <stlib.h>?
9. Da li ukljucivanje standardnih biblioteka u program odnosi memoriju?
10.Kako se pravi slucajan izbor brojeva u c++?
I postoji li slucajan izbor karaktera sluuucajno?
11.Sta su dvostruka polja, pokazivaci na pokazivace?
(rekli su mi da je dobro rijesiti hiperprostor sa tim)
i da, dal mi je to neophodno.
xD
12.E, ako mi imas kakav najbanalniji skolski zadatak za rekurziju. :S
13.Da li se nizu moze u jenom koraku promijeniti tip? Kao i varijablama unutar njega?
14. Postoji li mogucnost da se niz naknadno 'prosiruje?'
Posto bila je ideja pronaci clan niza najblizi aritmetickoj sredini, sad, logicno je rjesenje da se ide od sredine pa jedan tamo jedan vamo, ali
ako je jedan broj ponovljen tri ziliona puta, to nema svrhe. Mislila sam da prosirim niz za kucicu, tu ubacim aritmeticku, sortiram, pronadjem ju i pogledam recimo po dve kucice okolo, trazeci najblizi (i to cisto iz razloga ako aritmeticka bude double a ovo intovi).
Da, sta mislis o tome i da li je moguce?
15. Da li postoji brzi nacin od provjeravanja da li je broj int ili double, nego da vidimo da li su original i zaokruzena verzija iste?
16. Da li je pow stepenovanje? Posto ja zasad, kad trebam da stepenujem neki broj, napravim malu funkciju samo za to.
17. Da li je bolje koristiti za upravljanje stringom biblioteku <string> ili iostream.
Mislim, sta ima vise mogucnosti,s ta je lakse?
18. Ida, da li postoji neki popis naredbi u programu?
kao sto u QB editoru ima .. ona lista naredbi sa objasnjenjima ^^, Bog je blagoslovio He he
19. DA li se moze odmah znati koliko neki broj ima cifara bez retardiranog prebrojavanja u loop petlji koje ja radim. -.-'
20. Zar until ne postoji u njihovim loop petljama? O.o
22. U cemu je razlika izmedju floor i (int)
23. Da li u c++ postoji cint (zaokruzivanje na vecu vrijednost) ?
24. Da li postoji swap u c++, il se to mora raditi rucno (2 varijable i jedna pomocna)
25. U cemu je razlika stat. i din. nizova osim alociranja u memoriji, prednosti mane.


Ljubim onoga ko mi rijesi do subote.
Da, ovo sam ja onako usput, ideje sto su mi pale na pamet, jedno sam izbacila, cisto da vidim, jer nemam volje da provjeravam sve (a stvarno sam znatizeljna sto se ovakvih stvari tice).

Pozdrav veliki. :]
4.
Umjesto:
Code:
if (a == 4) {
    b = 5;
}
else {
    b = 13;
}

možeš pisati:
Code:
b = (a==4) ? 5 : 13;


5.
Promjenjiva ti ne mora biti u globalu da bi je void funkcija promijenila.
Probaj ovo:
Code:
void foo(int &a) {
    a = 5;
}

int main() {
    int x = 4;
    foo(x);
    cout << x;
}

10.
http://www.cplusplus.com/reference/clibr...dlib/rand/
Za slucajan izbor karaktera mozes iskoristiti slucajan izbor integera.
Na primjer napravis staticki niz od N karaktera, a onda nabavis neki random integer
u intervalu [0, N-1] i ispises random clan niza.

12.
Code:
void rek(int broj) {
    if (broj < 1) return;
    cout << broj << " ";
    rek(broj-1);
}

int main() {
    rek(10);
}

16.
Da.
http://www.cplusplus.com/reference/clibrary/cmath/pow/

19.
Napravis sebi funkciju sa tim loop-om i samo nju uvijek pozivas :)

23.
http://www.cplusplus.com/reference/clibrary/cmath/ceil/

24.
Da.
Code:
int a = 5, b = 3;
swap(a, b);
cout << "a = " << a << ", b = " << b;

25.
Statički ne možeš naknadno proširivati, dinamički možeš.
Statičkom moraš unaprijed definisati maksimalni broj elemenata iako korisnik može koristiti samo
jedan element tog' niza, što znači da je ostatak elemenata zapravo "razbacivanje resursima", dok kod dinamičkih nizova korisnik prvo unosi broj elemenata niza, a zatim se alocira toliko elemenata tog niza u memoriji.
Kod dinamičkog moraš paziti da ne dođe do curenja memorije (proguglaj).

Odabrao sam neke od najlakših pitanja, jer mi se nije dalo kucati odgovore na ostale. He he
Hvala, mnogo si mi dobar He he
Ma, već je meni lakše He he
Pipl? Nouan tu help mi????
Confused Ccc
2.
empty() je metoda definisana nad objektima tipa string i vraća logičku vrijednost u ovisnosti da li je string prazan (true) ili sadrži neke znakove (false).
Code:
string s = "...";
if (s.empty() == true) {
    cout << "String 's' je prazan.";
} else {
    cout << "String 's' nije prazan.";
}

7.
Ovako nesto? hmm
Code:
int f() {
    return 5;
}

int main() {
    for (int i = f(); i <= 10; i++)
        cout << i << " ";
}

8.
Ovdje ti je i pola odgovora na 6. pitanje:
http://www.cplusplus.com/reference/clibrary/cstdlib/

9.
Da, naravno.

11.
Dvostruka polja su ti matrice (valjda znaš šta su matrice u matematici).
Kako običnim poljima (elementima običnog niza) pristupaš preko jednog indeksa, npr. prvom elementu običnog niza pristupaš preko: niz[0], tako kod dvostrukih polja imaš dvije dimenzije(visina/širina, tj. brRedova/brKolona) i takvim nizovima (još se i nazivaju dvodimenzionalni nizovi) pristupaš preko dva indeksa, npr prvom elementu (element u prvom redu i prvoj koloni) pristupaš preko: matrica[0][0].
Eh sad, pošto znaš (mislim da znaš) razliku između statičkih i dinamičkih nizova (običnih) i sintaksu njihovog stvaranja u c++ -u, tako znaš zašto se koriste pokazivači kod stvaranja dinamičkog niza (običnog).
Ako ideš logikom da je matrica NIZ NIZOVA, što i jeste, onda se dinamički niz u c++ stvara tako da stvoriš niz pokazivača, gdje ćeš za svaki element tog niza biti pokazivač na novi niz (obični) u memoriji, i tako si dobila (dobiLA - mislim da sam negdje na forumu pročitao da si žensko, sorry ako grijesim, ispravi me :] ) dinamički alociranu matricu.
Otud i ta teorija pokazivača na pokazivače, jer sintaksa takvog stvaranja matrice je:
Code:
int* *matrica = new int*[N];
Ovdje si stvorila pokazivač na pokazivač, a sa desne strane si naredila programu da alocira N pokazivača u memoriji i da pokazivač (pokazivač na niz pokazivača) spremi u varijablu "matrica".
Da bi mogla raditi sa ovakvim nizom, moraš proći kroz ovaj niz, i za svaki element niza alocirati novi niz, tj.:
Code:
for (int i = 0; i < N; i++)
    matrica[i] = new int[N];
Ovako si stvorila matricu NxN i sa njom sada radiš kao i sa običnom matricom:
Code:
for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++)
        cin >> matrica[i][j];

Pošto se prvi put srećeš sa ovim, može ti izgledati jako apstraktno, ali ako znaš teoriju o pokazivačima (da to nisu neke varijable koje imaju prst pa pokazuju na drugu varijablu xD, nego da su to varijable koje sadrže memorijsku adresu neke druge varijable) onda ti neće biti problem shvatiti o čemu se radi. Isto tako, može biti problem da ja ne znam baš dobro objasniti. Kako god, ako nije šta jasno - pitaj.

14.
Da, ako radiš sa dinamičkim nizovima (otud im i naziv).
Btw. taj zadatak možeš riješiti na više načina i mislim da ni jedan način ne zahtjeva širenje niza. Jedan od načina ti je da napraviš novi niz i u taj novi niz spremiš apsolutne vrijednosti razlike ARS-a i elemenata niza ( aps(ARS-niz[i]) ), zatim prođeš kroz taj novi niz i nađeš index elementa koji ima najmanju vrijednost (u tom novom nizu). Ako ti je taj najmanji index "a", onda ti je najbliži element ARS-u: niz[a].
Razumijem te ako ne kontaš, ja ne bi skontao da sam na tvom mjestu
Ali opet... pitaj ako nije jasno.

17.
Biblioteka <iostream> u sebi ima uključenu <string> biblioteku.
Isto ti je...

18.
Probaj sa HELP-om u kompajler-u.

20.
???
Ispisuj "a" i inkrementiraj "a", dok je "a" manje ili jednako od 10.
U prijevodu: Radi to sve, dok (until) "a" ne dođe do 10.
Code:
int a = 0;
while(a <= 10) {
    cout << a << " ";
    a++;
}
Jel' to hoćeš?

21.
Ja dobro, ti? He he
He he He he He he He he
He he
He he
He he
He he
He he
He he
He he
:* ♥

Eto He he Sad kad imam i ovo.... He he
He he
He he
He he

MA JEL BILO TESKO! ? He he
He he
He he He he He he He he He he He he He he He he He he He he
Ma nije, oko moje xD

Edit:
hahah kakva je to slika xDDD
Ahahahaa tribjut He he Dont esk xD
Ju ar maj nju hiro, coz daniel is samver mising He he

Ma cuti more, kad se ucio QB svaku sitnicu sam morala ja da provjerim He he
I da pogrijesim da se uvjerim da je greska He he
Lol ju got maj point He he
A onda, u C++ i nije bilo tako.. al eto ga He he
He he He he He he He he
(zao mi je za ispad emocija via internet ahahahhahaa xD)
Pages: 1 2
Reference URL's