Programiranje u C++-u - pitanja i odgovori
- poruka: 7.285
- |
- čitano: 1.712.352
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
ok...samo ocu naglasiti da nisam zelio gotovo rjesenje,vec samo pomoc pri
obnjasnjavanju...buduci da na predavanju to nismo radili jer je profesor prekinuo ranije radi razgovora sa kandidatima specijalističkog studija,
a sa prezentacija mi je malo teze to skuzit... i molim asistenta da niko ne strada zbog mene jer sam trazio pomoc i neznalica sam
Nije problem u tome što si ti zapeo nego na koji način tražiš pomoć tj. gotovo rješenje koje bi na kraju svi iskopirali. Ako si zapeo na nečemu konkretnom to svakako možeš pitati bez obzira što se radi o zadatku za pripremu, ali u tom slučaju navedi točno na čemu si zapeo, pejstaj dio koda koji si sam napravio pa ćemo vidjeti dalje. Ali cijeli zadatak - ne.
Ma ne ja sam mislio da me se ispravi di grijesim,al nema veze...nakon par sati proucavanja tutorijala i svega i svacega konacno sam skuzio
koncept toga...pozdrav i zivjeli!
ok...da priprema je. Buduci ste skuzili nemojte stavljati rjesenja da nebi ja imao problema. Budem to ja sam
probao rjesiti.
Naravno da ću skužiti kad ja i držim te vježbe...
Čekaj, ovo je drugi put, sjećam se jednom iste situacije.
Uglavnom, dečko može znati da si ti susretljiv i rado pomažeš kad treba objasniti nešto što zapne u učenju i rješavanju.
Ali i to da cijeniš rad.
Čekaj, ovo je drugi put, sjećam se jednom iste situacije.
nije potpuno ista situacija Ja sam uz zadatak napisao svoje "rjesenje" i trazio da mi neko kaze
gdje grijesim i tako to. I molim vas da to ne razvlacite vise jer mi je i ovako previse neugodno i sigurno
znam da vise nigdje ne trazim pomoc osim u svojoj glavi i eventualno istrukcijama ako ce biti potrebno...
nije potpuno ista situacija Ja sam uz zadatak napisao svoje "rjesenje" i trazio da mi neko kaze
gdje grijesim i tako to. I molim vas da to ne razvlacite vise jer mi je i ovako previse neugodno i sigurno
znam da vise nigdje ne trazim pomoc osim u svojoj glavi i eventualno istrukcijama ako ce biti potrebno...
Aha, tako. Onda nemaš razloga da ti bude neugodno, tim što si stavio svoje rješenje pokazao si da radiš i trudiš se. A nije sramota zapeti, tko od nas nije zapeo i tražio pomoć. Nitko se nije naučen rodio.
Nemaš razloga odmah bježati, nitko te neće ni razvlačiti ni išta, niti tko ima razloga za to. Mnogi dolaze po pomoć, i istovremeno pomažu, sve je to OK, kad čovjek nije gotovan, a ti očto nisi.
Ako odlučiš ostati, dobrodošao na forum
Trebao bih pomoć vezano za zadatak. Tekst glasi: Učitati 6 brojeva u polje i nakon toga broj koji se traži u polju. Ako se br.pojavljuje u polju, da li se pojavljuje paran ili neparan br.puta? Javlja mi grešku u zadnjem else-u.
Imaš problem sa vitičastim zagradama. Ajde molim te pogledaj gdje je koja otvorena a gdje zatvorena, skužit ćeš o čemu se radi...
I nije main nego je int main. Tko vas to uči?
EDIT: u redu, budući da nisi skužio pogledaj taj svoj kod još jednom:
#include<stdio.h>
main(){
int a[6],br=0,i,b;
for(i=0;i<6;i++){
scanf("%d",&a[i]);
printf("\n Upisi broj koji se trazi:");
for(i=0;i<6;i++){
if(a[i]==b)
br++;
if(br!=0){
if(br%2==0)
printf("\n Br.se pojavljuje par.br.puta:");
else
printf("\n Br.se poj.nep.br.puta:");
else
printf("\n Br.se ne pojavljuje:");
}
}
}
}
Pogledaj gdje su ove unutrašnje zagrade otvorene i zatvorene. Kojem 'if' bloku ovaj zeleno označeni 'else' pripada?
Da otvaraš i zatvaraš zagrade na istoj razini indentacije te bi ti stvari malo teže promakle, taj tvoj visual studio koji koristiš sigurno ima brace highlighting s kojim možeš lako vidjeti koja zagrada pripada kojoj drugoj zagradi.
I općenito fali ti razmaka u kodu, i vertikalnih (pokoja prazna linija da odvoji neke dijelove) i horizontalnih.
Evo kako to izgleda samo za izmijenjenim vitičastim zagradama:
#include<stdio.h>
main()
{
int a[6],br=0,i,b;
for (i=0;i<6;i++)
{
scanf("%d",&a[i]);
printf("\n Upisi broj koji se trazi:");
for (i=0;i<6;i++)
{
if (a[i]==b)
br++;
if (br!=0)
{
if (br%2==0)
printf("\n Br.se pojavljuje par.br.puta:");
else
printf("\n Br.se poj.nep.br.puta:");
else
printf("\n Br.se ne pojavljuje:");
}
}
}
}
Odmah se bolje uočava problem, ne?
Dalje, koristiš posve isti brojač 'i' istovremeno u dvije petlje. Također, zašto koristiš petlju u petlji za ovaj zadatak? Ako sam dobro shvatio zadatak trebaju ti dvije neovisne petlje, prva kojom ćeš samo upisati brojeve u polje, i druga kojom ćeš potom izbrojati koliko se puta broj 'b' pojavljuje u polju. Kad smo već kod broja 'b', gdje točno korisnik upisuje njegovu vrijednost? Nigdje.
Ima li itko nekakve materijale sa faksa u ovezi objekata i klasa, gdje imaju zadatci vezani za njih (moze i na eng literatura s drugih fakulteta) gdje se kreće od osnovnih zadataka.
Ima li itko nekakve materijale sa faksa u ovezi objekata i klasa, gdje imaju zadatci vezani za njih (moze i na eng literatura s drugih fakulteta) gdje se kreće od osnovnih zadataka.
Mozda ti ova predavanja pomognu.
www.fesb.hr/~mateljan/cpp
Možeš učiti odavde,nije odviše loša knjiga,također
mogu uploadati prezentacije od Marijana Sikore,ali je sve većinom od Mateljana,
naravno Sikora ima puno zadataka,pa su prezentacije s malo više prakse.
Ja bi isto trebao zadatke što se tiče klasa i objekata. Znači ne trebaju mi predavanja nego zadaci, pa ak može neko poslat link sa zadacima ili nešto s faksa.
Zahvaljujem.
Pozdrav,
može mi netko napisati kod:
koji za zadano polje(u kojem su npr. svi brojevi od 8 do 170) računa koji su prosti brojevi i gura ih u vektor, da ih može kasnije ispisati.
hvala
nisam baš našao nikakav program na netu, pa nastojim napisati vlastiti.
jednostavno imam hrpetinu slika (oko 4k) koje bi htio renameati po datumu slikanja.
jedina caka je da datum slikanja nije niti "modified", niti "created", niti "accessed".
nego se zapravo nalazi u Properties-Details-Origin-Date Taken, no kako do toga doći pomoću C-a?
nisam baš našao nikakav program na netu, pa nastojim napisati vlastiti.
jednostavno imam hrpetinu slika (oko 4k) koje bi htio renameati po datumu slikanja.
jedina caka je da datum slikanja nije niti "modified", niti "created", niti "accessed".
nego se zapravo nalazi u Properties-Details-Origin-Date Taken, no kako do toga doći pomoću C-a?
Operacijski sustav (ili da budem precizniji datotečni sustav) drži samo općenite podatke o datotekama koji uključuju i datum nastanka, posljednje modifikacije, i datum pristupa datoteci. Dodatne meta informacije se nalaze u samoj datoteci i nisam upoznat sa postojanjem API-ja u operacijskom sustavu koji bi vadili EXIF meta informacije.
Dakle tebe vjerojatno zanima EXIF blok pohranjen u JFIF (JPEG) slikovnu datoteku.
http://www.fileformat.info/format/jpeg/egff.htm#JFIF-DMYID.2
http://www.w3.org/Graphics/JPEG/jfif3.pdf
Vjerojatno možeš naći neku biblioteku da se ne moraš sam boriti sa formatom datoteke, ali niti ja imam prijedlog neke dobre biblioteke za taj posao, niti je ručno implementiranje podrške za čitanje tih formata nekakva znanost.
nisam baš našao nikakav program na netu, pa nastojim napisati vlastiti.
jednostavno imam hrpetinu slika (oko 4k) koje bi htio renameati po datumu slikanja.
jedina caka je da datum slikanja nije niti "modified", niti "created", niti "accessed".
nego se zapravo nalazi u Properties-Details-Origin-Date Taken, no kako do toga doći pomoću C-a?
Osobno mislim da ti je za tako nesto lakse uzeti neki skriptni jezik, Python ili Perl, nego C. Ali u biti, glavnu stvar ti je objasnio rust, poanta je u EXIF-u.
Zadatak:
Napiši if-else naredbu u kojoj se ispisuje riječ Upozorenje u slučaju da je ili vrijednost varijable temperatura veća ili jednaka 100 ili je vrijednost varijable tlak veća ili jednaka 200 ili oboje. Inače, se ispisuje riječ OK. Varijable su tipa int.
#include <iostream>
using namespace std;
int main()
{
int temp, tlak;
if (temp>100)||(tlak>200)
cout << "upozorenje";
else
cout << "ok";
}
Kad bi pokrenuo program daje mi ove greske
expected primary-expression before '||' token|
expected ';' before 'cout'|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===|
Help?
evo :)
#include <iostream>
using namespace std;
int main()
{
int temp, tlak;
cout <<"Unesi temperaturu: ";
cin >> temp; // nisi unio temperaturu i tlak
cout <<"Unesite tlak: ";
cin >> tlak;
if ((temp>=100)||(tlak>=200)) { // pripazi na sintaksu falile su ti zagrade - if (uvjet) {kod}
cout << "\nupozorenje !"; // \n ti prestavlja novi red
}
else {
cout << "\nok";
}
system ("pause > nul"); // ovo ti ukida ono press any key
return 0;
}
evo :)
#include <iostream>
using namespace std;
int main()
{
int temp, tlak;
cout <<"Unesi temperaturu: ";
cin >> temp; // nisi unio temperaturu i tlak
cout <<"Unesite tlak: ";
cin >> tlak;
if ((temp>=100)||(tlak>=200)) { // pripazi na sintaksu falile su ti zagrade - if (uvjet) {kod}
cout << "\nupozorenje !"; // \n ti prestavlja novi red
}
else {
cout << "\nok";
}
system ("pause > nul"); // ovo ti ukida ono press any key
return 0;
}
Hvala, sve super objasnjeno :)
Samo mi javlja gresku kod ovog system pause > nul, kopiram ga od tebe u editor i kaze system was not declared in this scope.
Nije bitno, izbaci ga stavi samo pause.
A pitanje za ostale, pošto sam tek poceo je li se treba koristiti F5 ili ctrl F5, neka onovna razlika ?
Hvala, sve super objasnjeno :)
Samo mi javlja gresku kod ovog system pause > nul, kopiram ga od tebe u editor i kaze system was not declared in this scope.
Zato što i nije deklariran. Funkcija system je deklarirana u stdlib.h headeru, odnosno cstdlib za c++. Dodaj #include <cstdlib> na početak programa.
A pitanje za ostale, pošto sam tek poceo je li se treba koristiti F5 ili ctrl F5, neka onovna razlika ?
Pretpostavljam da je Visual Studio u pitanju. F5 pokreće program sa debuggerom, ctrl + F5 ga pokreće bez debuggera.
trebam pomoc znaci trebam napraviti program koji bi nudio 2 opcije (spremanje i ucitavanje podataka o nekoj osobi) nesto tipa adresar
case 1 dozovio unos podataka te bi ih spremio negdje izvan programa npr u nekom txt formatu, a
u case 2 bi trebao dati unos imena i prezimena te pomocu toga it tog txt dokumenta izvuči spremljene podatke o toj osobi
ovo je samo gruba verzija treba jos doraditi
ali nzm kako da mi program sprema podatke koji su uneseni u txt format
te kako da ih ponovo ucitava nazad (nzm kako napraviti search)
zna neko mozda nekakav tut il nesta ne trezim gotov kod nego samo neke smjernice
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
//Adresar v. 1.0//
int x;
string ime;
string prezime;
string adresa;
string email;
int telbroj;
cout<<"Odaberite opciju:"<<endl;
cout<<"1. Unesi podatke.\n2. Ucitaj podatke."<<endl;
pogresan_unos:cin>>x;
switch (x)
{
case 1:
cout<<"Unesite ime:"<<endl;
cin>>ime;
cout<<"Unesite prezime:"<<endl;
cin>>prezime;
cout<<"Unesite adresu:"<<endl;
cin>>adresa
cout<<"Unesite email:"<<endl
cin>>email;
cout<<"Unesite telefonski broj:"<<endl;
cin>>telbroj;
cout<<"Unjeli ste:\nIme: "<<ime<<endl<<"Prezime: "<<prezime<<endl<<"Adresa: "<<adresa<<endl<<"Email: "<<email<<endl<<"Telefonski broj: "<<telbroj<<endl;
//znaci ove bi podatke program trebao spremit negje
break;
case 2:
cout<<"Unesite ime osobe:"<<endl;
cin>>ime;
cout<<"Unesite prezime osobe:"<<endl;
cin>>prezime;
cout<<"Ime"<<ime<<endl<<"Prezime: "<<prezime<<endl;
break;
//ovdje bi program trebao spremljene podatke pomocu imena i prezimena izbaciti nazad
default :
cout<<"Progesan unos!"<<endl;
cout<<"Za unos novih podataka unesite 1!"<<endl;
cout<<"Za ucitavanje unesenih podataka unesite 2!"<<endl;
goto pogresan_unos;
}
system("PAUSE");
return EXIT_SUCCESS;
}
te kako da ih ponovo ucitava nazad (nzm kako napraviti search)
zna neko mozda nekakav tut il nesta ne trezim gotov kod nego samo neke smjernice
Prvo stavi sve podatke o jednoj osobi u strukturu, recimo ovako:
struct osoba
{
int x;
string ime;
string prezime;
string adresa;
string email;
int telbroj;
};
Zatim napraviš polje te strukture kako bi imao mjesta za više osoba. Najjednostavnija pretraga je jednostavno linearna pretraga kroz polje, recimo da tražiš korisnika koji se zove "pero perić" gledao provjeravao bi svaki element polja i gledao da li član 'ime' i 'prezime' sadržavaju odgovarajući tekst.
Dakle za ovo bi trebao znati polja (arrays), strukture, i rad sa tekstualnim datotekama.
http://www.functionx.com/cpp/Lesson12.htm
http://www.learncpp.com/cpp-tutorial/47-structs/
http://www.cplusplus.com/doc/tutorial/files/
U ovom postu imaš dovoljno materijala o C-u i C++-u na hrvatskom jeziku, a isplati se pogledati što ima i u ostatku teme.
trebam pomoc znaci
#include<iostream>
#include<fstream>
using namespace std;
void main(){
ofstream fajl ("naziv_fajla.txt"); //upisivanje u fajl
int broj = 5;
fajl << broj << endl;
fajl << ++broj << endl;
fajl.close();
ifstream fajl_ucita ("naziv_fajla.txt"); //ispisivanje iz fajla
char citaj[10];
while(!fajl_ucita.eof()){ //eof(end of file) vraca true kada je pročitan fajl, dosegnut kraj
fajl_ucita.getline(citaj,10); //duzina reda/slova 10
cout << citaj << endl;
}
fajl_ucita.close();
}
Evo ti primjer, pokušaj ga analizirat i primjenuti u svom zadatku...fajla ti se defaultno sprema na mjesto gdje ti je i c++ projekat spremljen, a ako zeliš neku određenu lokaciju pišeš ovako:
ofstream fajl ("C:\\Users\\"pa tvoje ime racunara"\\Desktop\\naziv_fajla.txt");
Dakle imam problem, kada windows ode na standby, onda se moj program ugasi i neće se ponovo pokrenuti sam od sebe nakon što se win wake up-a. Program je rađen u Pythonu i funckionira kao običan proces koji nešto radi. Jel bi mi mogao netko napraviti program u C++ ili dat bilo kakvo rješenje? Bilo što, kao dll injector ili nešto...
Dakle imam problem, kada windows ode na standby, onda se moj program ugasi i neće se ponovo pokrenuti sam od sebe nakon što se win wake up-a. Program je rađen u Pythonu i funckionira kao običan proces koji nešto radi.
Objasni. Kada windows ode u stand-by process tvog programa je ubijen? I kada se windows vrati iz stand-bya program nije automatski ponovno pokrenut? O kojoj verziji windowsa pričamo? Što taj tvoj program točno radi?
Tako je, u Pythonu je nemoguće(po mojim spoznajama) složit da se ne ubije program u nekom power eventu i čuo sam da je jedino rješenje za to C++ program. Program mi radi na svim verzijama windowsa, od 95 pa do 8.1, al večinom mi ga koriste win7 i win8 korisnici. Taj moj program uglavnom služi za remote control preko LAN mreže(kao npr. TeamViewer samo što ovo nema desktop control preko miša i tipkovnice nego se sve radi u dos komandama) i kada netko stavi računalo na stand-by, moj program je ubijen i onda to računalo više nije pod kontrolom administratora sve dog se ne restarta manualno.