http://www.daniweb.com/software-develop ... ads/156962Snadam se da moze pomoc?
Dakle, zanima me kako pretvorit mala u velika slova, ali, na idući način. Znači, ja znam napravit da kad upišem "Tvrtko" da mi on izbaci "tVRTKO". Meni treba da kad upišem "TvRtKo" da on ispiše "tVrTkO",tj. da mi u bilo kojem slučaju, ispiše ono suprotno, ako itko razumije.
Hvala unaprijed.
Ovo je kod koji imam za sada:
Code:#include<iostream> #include<ctype.h> using namespace std; int main() { char a,b,c,d,e,f; cout<<"Unesite svoje ime: "; cin>>a>>b>>c>>d>>e>>f; cout<<"Unijeli ste: "<<a<<b<<c<<d<<e<<f<<endl; cout<<"Kodirano ime "<<char(tolower(a))<<char(toupper(b))<<char(toupper(c))<<char(toupper(d)) <<char(toupper(e))<<char(toupper(f))<<endl; system("pause"); }
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
http://www.daniweb.com/software-develop ... ads/156962Snadam se da moze pomoc?
Won't Bow Don't Know How.
Treba mi za C++. Znam da je to sve jako slično, ali pošto sam novak u svemu tome, trebali bi mi dani da to prevedm. ^^
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
Ah sry
Won't Bow Don't Know How.
Šećeš se po stringu i za svaki znak provjeravaš Ascii vrijednost. Pogledaj na ASCII tablici odakle počinju i gdje završavaju mala slova, i isto za velika. U petlji onda provjeravaš za svako slovo u kojem je području, i ako je malo, smanjiš mu vrijednost za 32, a za veliko povećaš za 32 (ja mislim da je 32), i to je to. Napisao bih kako ide, ali nemam sad baš vremena.
Tako nesto su mi i drugi predlozili, ali posto nemam pojma koji je "string" vrag, samo sam napisao if-else petlju.
Jest da moram sad 6 puta to isto kopirat i samo zamjenit varijable, al sta je tu je.Code:if(islower(a)) { cout<<char(toupper(a)); } else { cout<<char(tolower(a));
Hvala na pomoći cham, to su ostali iz grupe radili, samo ne preko stringa, nego preko if elsa, ovako:
Code:if(f==char(isupper(f))) { cout<<char(int(f)+32); } else{ cout<<char(int(f)-32); }
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
Da, toupper i tolower su valjda gotove naredbe iz nekog libraryja. Ako bi te tražili da to napraviš ručno, moraš napravit neku funkciju koja ti očita string i radi u petlji onako kako sam rekao.
String je array ili niz (valjda ste bar to radili), ali ne brojeva nego znakova (char).
I zašto moraš kopipejstat 6 puta? Šta je to za riječ od 6 slova? Je li moguće da vas nisu učili petlje?
Code:#include <iostream> #include <string> using namespace std; int main() { string tekst; // String, niz slova, proizvoljne duzine getline(cin, tekst); // Pokupi jedan red teksta, sve dok se ne stisne Enter for(int i = 0; i < tekst.length(); i++) // Od pocetka, pa do posljednjeg slova (length) if(islower(tekst[i])) // Ako je slovo malo tekst[i]S= toupper(tekst[i]); // Pretvori ga u veliko else // Inace tekst[i]S= tolower(tekst[i]); // Pretvori u malo cout << tekst << endl; // Ispisi tekst return 0; }
Nismo petlje radili. :$
E hvala burek, pogledat cu sutra malo to, sad cu spavat. Mi smo za sada učili samo if-else. I to nešto jedva, loše, ne razumljivo. Sve je na faksu što smo radili ne razumljivo i na pola ispričano, pa se ti poslje snađi. Mislio sam da sam to ostavio iza sebe u srednjoj... :/
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
Neznam el ti jos treba al evo:
Ovo uz to sto pretvara slova ima opciju ako upises tocku zavrsit ce program i ispisat kolko je slova promjenio.Code:#include <iostream> #include <cstdlib> using namespace std; int main() { char ch; int changes=0; cout<<"Upisi tocku za prekid.."; do { cin>>ch; if(ch>='a' && ch<='z') { ch-=(char)32; changes++; cout<<ch; } else if(ch>='A' && ch<='Z') { ch+=(char)32; changes++; cout<<ch; } } while(ch!='.'); cout<<"\nBroj slova promjenjenih: "<<changes<<"\n"; cout<<"\n\n"; system("PAUSE"); }
Hvala, ali mi vise nije trebalo, obio sam sve bodove iz te zadace. ^^
No, sad imam drugo pitanje.
Dakle imam ovakav zadatak: http://img39.imageshack.us/img39/894/kolokvijdpj.jpg
Sve mi je jasno osim dijela di kaze "Ispisati onoliko znakova "*" koliko je rez." To apsolutno ne razumijem i nemam pojma kako bi to uopce mogo rijesit.
I jos da, da li ima nekakav kacin da se ispise interval od 1 do 10, a da nije ovako:
Zahvaljujem.Code:Scout<<"Unijeli ste 0, a mogli ste npr.: 1,2,3,4,5,6,7,8,9,10"<<endl;
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
De mi samo jedan primjer stavi, jer i dalje nemam ideju.
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
Super si mi to copy/pasteo. Da nisam to procito 2 puta i progooglo opcenito to sve prije, ne znam sta bi...
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
for(int c=0;c<rez;c++){
cout<<"* ";}
To je to. Hvala puno.
Ima jos 1 nacin koji sam izmudrovo:
Sad se patim s jednim drugim opet programom, ali necu nista ovdje pitat, znam da sam dosadan i bogu i vragu. ^^Code:int x; x=1; while(x<=rez) { cout<<"*"; x=x+1;
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
oh hai, me again!
Imam problema s razumijevanjem programa sto smo dobili za vjezbu. Dakle, zadano je ovako:
Sad, ono sto mene pati jest, ako netko unese na pocetku broj 40, on ce stvarno morat unjet 40 podataka da bi se program dalje izvrsio? I da se provjeri ako je jedan ili vise unesenih podataka veci ili manji od 50?Code:Napišite program koji od korisnika traži unos prirodnog broja u intervalu (0, 50]. Unos se ponavlja sve dok unesena vrijednost ne bude u odgovarajućem intervalu. Učitati niz od n realnih brojeva. Učitani niz ispisuje se na zaslon. Ispisuju se indeksi svih onih elemenata koji ne pripadaju segmentu [1,50]
|| Intel® Core™ i5-4570 @ 3.2 GHz || nVIDIA GeForce GTX260 || ASUS H87m Plus MBO || 2x4GB Corsair Vengeance @ 1600 MHz || OCZ ZT 750 Fully Modular PSU ||
kolko sam skuzio, u 1om djelu te trazi da uneses x koji mora biti u intervalu od 1 do 50
ako uneses recimo 69 opet te pita da uenses broj od 1 do 50.
drugi dio zadatka ti kaze da ucitas n realnih brojeva. recimo ti uneses 6 brojeva (2, 69,74,14,64,15).
on ti na ekran ispise te brojeve (2, 69,74,14,64,15), te ti potom ispise indeksi brojeva koji ne pripadaju segmentu [1,50]
u ovom slucaju ce ti drugi dio drugog zadatka ispisati 1,2,4. jer ti brojevi ne pripdaju skupini od 1 do 50.
(index ti je broj broja u polju, ove kockaste zagrade-2[0], 69[1],74[2],14[3],64[4],15[5])
tako bi ja tu vjezbu rjesio, valjda sam dobro skuzio sta pise.