PDA

Pogledaj cijelu verziju : Q-Basic, C++, C or Pascal



Gamer++
26-06-2009, 20:28
Pozz svima, totalni sam no0b što se tiče programiranja i želio bih od nečega početi, mnogi kažu da je najbolje krenuti od Loga ali mi se o "crtanje" baš i ne sviđa radije bih počeo s pravim programskim jezikom u kojem se pišu programi za početak mogu i primitivni... pa me zanima koji je programski jezik od gore navedenih najlakši za savladati, unaprijed hvala!

Luka
26-06-2009, 20:32
QBasic ;)

Gamer++
26-06-2009, 20:38
tnx počinjem odmah
======================edit:
Ovo je najlakši programski jezik definitivno 2 minute učenja kužim sljedeće dijelove:
ispis na zaslon -> PRINT "Ono sto zelim ispisati ide tu ali bez cj, tj, zj i dj jer se to mijenja drugim ascii znakovima"
čiščenje ekrana -> cls (značenje clear screen il ti očisti ekran(
postavljanje rezolucije ako je to potrebno -> screen 12 (480x320) ili screen 9 (300x200)
boja teksta -> color 12 (recimo crvena) ili color 1 (bijela)
======================edit2:
znam crtati krug -> circle (x , y), radius, color -> circle (12 , 12), 12, 12 (prije svega treba aktivirati grafički zaslon, eg screen 12)
povući crtu -> line (x, y) - (x, y) -> line (početna točka x i y) - (završna točka x i y)

Luka
26-06-2009, 20:46
hehe, da, smisao je da odmah skužiš

Gamer++
26-06-2009, 20:57
ok ovo nema smisla... ulazni tok

input "Unesi svoje ime: " ime$ -> $ -> označava string (znakovni niz)
ispis imena -> print "Drago mi je " ;ime$; "."


rad sa vaijablama

input "Tvoje godine: " A
input "Godine tvoje sestre: " b
C = a-b
c=abs(c)
print "Razlika u godinama je ";c
===============edit:
sa ovim svatko može početi...
===============edit2:
sad ću malo vježbati a sutra ću probati if else i petlje...

SkunK
26-06-2009, 22:07
tnx počinjem odmah
======================edit:
Ovo je najlakši programski jezik definitivno 2 minute učenja kužim sljedeće dijelove:
ispis na zaslon -> PRINT "Ono sto zelim ispisati ide tu ali bez cj, tj, zj i dj jer se to mijenja drugim ascii znakovima"
čiščenje ekrana -> cls (značenje clear screen il ti očisti ekran(
postavljanje rezolucije ako je to potrebno -> screen 12 (480x320) ili screen 9 (300x200)
boja teksta -> color 12 (recimo crvena) ili color 1 (bijela)
======================edit2:
znam crtati krug -> circle (x , y), radius, color -> circle (12 , 12), 12, 12 (prije svega treba aktivirati grafički zaslon, eg screen 12)
povući crtu -> line (x, y) - (x, y) -> line (početna točka x i y) - (završna točka x i y)

Sve ok samo se nemoj previše uzbuđivati, kao prvo sigurno ovo nisi "naučio"(ajde probaj ništa ne čitati 2 dana i ovo probati napraviti?) kao drugo takve stvari se i rapidno uče no limitacije u QBasicu su ogromne.

Sretno ;)

Burek_fr0m_SPACE
26-06-2009, 22:19
limitacije u QBasicu su ogromne.
Na šta misliš?

SkunK
26-06-2009, 22:34
limitacije u QBasicu su ogromne.
Na šta misliš?

Na limitacije.

Prije 25 godina s BASIC-om si mogao sve što su mogla računala raditi, više-manje. Danas je BASIC limitiran pošto računala mogu izvesti puno više nego što se može napraviti u BASIC-u. Primjer je C++ s kojim je doslovno moguće sve napraviti, što god poželiš.

Pod limitacije mislim prvenstveno na izradu desktop aplikacija kakve ih danas čovjek koristi na računalu.

Burek_fr0m_SPACE
26-06-2009, 22:56
Dobro, to se podrazumijeva, ali unutar tih limitacija QBasica se ipak može toliko toga naučiti. Meni su ispočetka i C++ i VB izgledali limitirano jer nisam mogao u jednoj liniji zaposjesti cijeli ekran i crtati po njemu kako ja želim.

SkunK
27-06-2009, 00:05
Dobro, to se podrazumijeva, ali unutar tih limitacija QBasica se ipak može toliko toga naučiti. Meni su ispočetka i C++ i VB izgledali limitirano jer nisam mogao u jednoj liniji zaposjesti cijeli ekran i crtati po njemu kako ja želim.

Hm, nisam siguran di sam točno napisao da se nemože ništa naučiti u BASIC-u ( namjerno kazem u BASIC-u pošto ima više dijalekata BASIC-a, što znači da on netreba nužno koristiti QuickBasic dijalekt).

Burek_fr0m_SPACE
27-06-2009, 00:34
Nisam ni spomenuo da si ti napisao da se ne može ništa naučiti. Pitao sam samo na šta si mislio jer ja lično ne bih ta ograničenja nazvao "ogromnim", nema potrebe za prepucavanjem.

Gamer++
27-06-2009, 13:58
Ok skužio sam i petlje i malo rješavao zadatke, ima tko kakve zadatke za vježbu?

Luka
27-06-2009, 14:02
Probaj tablicu množenja (klasika :D)

Btw, dobra ideja je sam smisliti problem i riješiti ga :)

Gamer++
27-06-2009, 14:04
OK PROBAT ĆU...

CLS
FOR i = 1 TO 10
FOR j = 1 TO 10
PRINT i * j;
NEXT j
PRINT
NEXT i

malo je grbavo ali nema veze evo pokazati ću rješenje...

http://img222.imageshack.us/img222/5145 ... noenja.png (http://img222.imageshack.us/img222/5145/tablicamnoenja.png)

SkunK
27-06-2009, 14:43
OK PROBAT ĆU...

CLS
FOR i = 1 TO 10
FOR j = 1 TO 10
PRINT i * j;
NEXT j
PRINT
NEXT i

malo je grbavo ali nema veze evo pokazati ću rješenje...

http://img222.imageshack.us/img222/5145 ... noenja.png (http://img222.imageshack.us/img222/5145/tablicamnoenja.png)

OK, inače koji OS koristiš i koji IDE?

Gamer++
27-06-2009, 14:46
windows xp home, q basic 1,1

Gamer++
27-06-2009, 16:07
SVIRANJE???

scale$ = "CDEFGAB"
PLAY "L16"
FOR i% = 0 TO 6
PLAY "O" + STR$(i%)
PLAY "X" + VARPTR$(scale$)
NEXT i%

sry nema edit...

http://qbasic.parkdalien.com/homes/qb/Q ... evil_2.zip (http://qbasic.parkdalien.com/homes/qb/QBGamesDirectory/B/birth_of_devil_2.zip)
IGRICA???

SkunK
27-06-2009, 16:24
Nekako bi ti preporučio neki drugi IDE, iako mi je i čudno kako si uopce uspio natjerati da ti radi QBasic 1.1 pod Windowsima XP.

Osim toga, znaš da su QuickBasic IDE i Qbasic IDE različite stvari? QuickBasic se plaća, a donosi dosta ostalih mogućnosti i može compileat kod u izvršnu datoteku, dok je QBasic bez tih stvari, nešto kao danas Visual Basic naspram Visual Basic Express.

Gamer++
27-06-2009, 18:51
imam neke emulatore... meni to ionako služi samo za vježbu a pošto ću se brzo maknuti od quickbasica 2-3 mjeseca možda i prije jer već sad više neznam jer mislim da sam ove osnove prokužio još ću par dana vježbati a onda ću vidjeti što i kako ću...
ima netko stranice sa zadacima? tnx in adventage!

Gamer++
30-06-2009, 13:58
Ovako ja sam lagano krenuo na Visual Basic jer mi je ovo već dosadno provježbao sam 124 zadatka i mislim da sam shvatio ako mi nešto neće biti jasno pitati ću.

Gamer++
30-06-2009, 16:13
sorryite na triple postu :cry: ali sam dobio preporuku da bolje počnem učiti C++ pa mi vi recite što je bolje
Visual Basic or C++

Luka
30-06-2009, 16:41
C++...

Gamer++
01-07-2009, 08:24
Planiram učiti ovim redom ako zna netko bolji redosljed učenja neka me ispravi

struktura programa
varijable tipovi podataka
konstante
operatori
osnove ulaza izlaza

controlne strukture
funkcije

nizovi
nizovi znakova
pokazivači
dinamična memorija
strukture podataka

(planiram učiti cjelinu po cijelinu svaki prored smtam cijelinom)

Luka
01-07-2009, 10:14
Onim redom kakvim je sadržaj predstavljen u knjizi. Ako ne učiš iz knjige, kupi neku.

Ovo što si naveo ne smatram idealnim - ali ako je tako u tvojoj knjizi onda idi tim redom.

Gamer++
01-07-2009, 17:40
to je iz knjige c++ za apsolutne početnike autor jakopec, ali sam čuo da je knjiga koma pa sad učim iz ove c++ primer plus

Gamer++
03-07-2009, 10:51
ova knjiga c++ primer plus ne valja kao ni c++ programiranje za apslutne početnike, s neta tutoriali mi rade a iz knjiga ne može li mi tko reći što ne valja, ide koji koristim je Microsoft Visual C++ 2008 Express


#include <iostream.h>

int main()
{
cout << "Hello world!";
return 0;
}

SkunK
03-07-2009, 11:34
ova knjiga c++ primer plus ne valja kao ni c++ programiranje za apslutne početnike, s neta tutoriali mi rade a iz knjiga ne može li mi tko reći što ne valja, ide koji koristim je Microsoft Visual C++ 2008 Express


#include <iostream.h>

int main()
{
cout << "Hello world!";
return 0;
}

1. To što ti nešto ne radi ne znači da knjiga ne valja.


Isto tako, kad ti neki kod ne radi moraš nam dati Serror Sda bi uopće znali o čemu se radi.


I da, nije ni čudo što ti ne radi kod pošto mu fali dosta toga, probaj ovako :





#include <iostream>

using namespace std;

int main() {

cout << "Hello World\n";
system ("pause");

return 0;

}


Inače ova system("pause") komanda je tu samo da ti zadrži ekran da vidiš što se u konzoli točno ispisalo, sve dok ne pritisneš neku tipku.

Luka
03-07-2009, 11:35
Za detalje oko razloga tvog problema pogledaj ovdje: link (http://www.doublebuffer.org/site/index.php?option=com_content&view=article&id=61:stltutintro&catid=41:cpp&Itemid=60).

* Rješenje je maknuti ".h" iz "#include<iostream.h>", i ispod te linije dodati liniju "using namespace std;"

Alternativno rješenje je koristiti IDE s kompajlerom koji je kompatibilniji sa standardom - npr. Code::Blocks ili Dev-C++

(Usput budi rećeno, u primjeru ništa nije krivo, problem je u Visual Studiu)

* - pogledaj ReiKov kod iznad

Gamer++
03-07-2009, 12:31
ovo je bio error
c:\documents and settings\welcome\desktop\programiranje\c++\varijab le i tipovi podataka\dsa\dsa\dsa.cpp(1) : fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
da sad bez ovo.h i sa usingnamespce std; radi a za ovaj sistem pause znam to je da piše ono press any .... itd.
hvala.
Dali postoji u ta dva slučaja bolje rješenje?
using namespace ili .h?

Luka
03-07-2009, 12:40
Pa nema boljeg, to je dijelom stvar kompatibilnosti.

Pogledaj onaj link koji sam ti dao ako te zanima više o tome.

Gamer++
09-07-2009, 10:24
Samo da vas obavjestim da lijepo napredujem i da sam već usvojio ove dijelove:
izlazni tok
tipove podataka
string

Ali pod ovo mislim da kužim što se događa u pojedinim dijelovima a ne samo da to znam napamet

Luka
09-07-2009, 12:20
poznaješ cout? ne možeš to reći dok ne usvojiš OOP i tokovsku terminologiju (bufferi, vezivanje tokova, preusmjeravanje...) :P

samo polako, imaš vremena ;)

Gamer++
09-07-2009, 12:58
cout je objekt u klasi,
iostream je načinjen od inputoutputstream
a ovo drugo neznam mislim osvojio sam korištenje cout!
=====
edit: vezivaje tokova npr. (mislim da je to to)
cout << "blabla" << varijabla1 << "blax2" << varijabla2 << endl;

edit2: preusmjeravanje <<Sznači da se ispis preusmjerava na standardnu izlaznu jedinicu (monitor) a u ulaznom toku znam da >> znači preusmjravanje na tipkovnicu

edit3: jedino što znam o oop je da to znači Object-Oriented Programming, što bi po tome značilo da je cout objekt što i jest!

neznam kako o funkcionira (za oop) ali najvjerojatnije (mislim to su moji zaključci jer još baš nisam vjet :) ) je u iostream zaglavlju cout postavljen kao neka globalna konstanta u nekoj klasi pa dobro ok nezz baš najbolje

Luka
09-07-2009, 14:19
cout je objekt u klasi
ne, cout je instancirani objekt klase, ali nikako ne uSklasi (on je u imeniku ::std)

iostream je načinjen od inputoutputstream
da to je kratica :D
iostream je STL header


edit: vezivaje tokova npr. (mislim da je to to)
cout << "blabla" << varijabla1 << "blax2" << varijabla2 << endl;
ne, vezivanje tokova je flushanje buffera u pravi trenutak, koristi se kad su i input i output tokovi usmjereni na isti sadržaj (npr. konzolu)
on omogućuje ispravan rad konzole bez pozivanja .flush() metode, ili korištenja manipulatora tokova

ovo što si dao kao primjer je primjer moći operator overloadanja u C++u (bitovni pomak ulijevo, <<, preopterećen metodom koja "prepoznaje" tip podatke i šalje ispravan string toku)


edit2: preusmjeravanje <<Sznači da se ispis preusmjerava na standardnu izlaznu jedinicu (monitor) a u ulaznom toku znam da >> znači preusmjravanje na tipkovnicu

tamo gore sam mislio na nešto drugo (npr. datoteka, konzola, drugi uređaj), ali ok, nisam bio dovoljno precizan :D


edit3: jedino što znam o oop je da to znači Object-Oriented Programming, što bi po tome značilo da je cout objekt što i jest!
neznam kako o funkcionira (za oop) ali najvjerojatnije (mislim to su moji zaključci jer još baš nisam vjet :) ) je u iostream zaglavlju cout postavljen kao neka globalna konstanta u nekoj klasi pa dobro ok nezz baš najbolje

cout jest objekt, ali nije u klasi : )

kao što rekoh, znaš više-manje koristiti cout, ali kako on radi je nešto što i ne možeš u potpunosti shvatiti bez boljeg poznavanja C++a

imaš vremena ; )

Gamer++
09-07-2009, 20:13
ne, vezivanje tokova je flushanje buffera u pravi trenutak, koristi se kad su i input i output tokovi usmjereni na isti sadržaj (npr. konzolu)
on omogućuje ispravan rad konzole bez pozivanja .flush() metode, ili korištenja manipulatora tokova

ovo što si dao kao primjer je primjer moći operator overloadanja u C++u (bitovni pomak ulijevo, <<, preopterećen metodom koja "prepoznaje" tip podatke i šalje ispravan string toku)

Ovo uopće ne užim ali dobro probati ću nekak shvatiti!

Luka
10-07-2009, 11:31
ne trebaš sada shvaćati, kao što rekoh tôkovi su koncept kojim možeš potpuno ovladati tek nakon boljeg poznavanja C++a

Gamer++
15-07-2009, 09:40
Ima tko kakav prijedlog za učenje, gubim motivaciju vrlo je teško učiti s monitora... :cry:

Luka
15-07-2009, 09:52
Analiza i Demistificirani, mogao si pogledati u susjedne teme :P

Gamer++
15-07-2009, 09:57
Učim iz demi e-verzija, ali je teško a nisam toliko blizu zg, nezz kako ću jedina knjiga o programiranju imam je c osnove programiranja ali učim c++ :hangin:

Gamer++
15-07-2009, 13:41
sorrite na 2x postu


// example3_20.cpp

#include <iostream>
#include <string>

int main()
{
using namespace std;

int number1 = 99;
string name = "No smoking";

if (name = "No smoking" && number1 = 22)
cout << "Obje strane od AND izraza su istinite";

return 0;
}
može li mi tko naći grešku programu? izbaciva ovaj error:

error: non-1value in assigment

Koristim Code::Blocks 8.02

Hvala!

P.S : Znam da ovaj program nebi trebao ispisati ništa, ali se događa greška u prevođenju koda.

Gamer++
15-07-2009, 14:42
Evo našao sam sam grešku trba biti == umjesto =,

I samo da najavim spremam mali programčić uskoro ništa specijalno za računanje prosjeka ocjena ali probat ću bez knjige!

Gamer++
15-07-2009, 16:05
nema edit :cry:


/************************************************** ********************
* File: prosjek_ocjena.cpp *
* Autor: No smoking *
* Start: 15.7.2009. ; 16:35 *
* Description: Ovo je program koji računa prosjek ocjena iz 5 predmeta*
************************************************** ********************/

#include <iostream>

using namespace std;

int main()
{

// deklaracija varijabli i dodjela vrijednosti

const int PREDMETI = 5;

float hrvatski = 5;
float matematika = 3;
float biologija = 2;
float informatika = 5;
float kemija = 4;
float prosjek;

// računanje aritmetičke sredine

prosjek = (hrvatski + matematika + biologija + informatika + kemija) / PREDMETI;

// ispis ocjena za pojedini predmet i prosjek svih zajedno
cout << "Ocjena iz hrvatskog: " << hrvatski << endl;
cout << "Ocjena iz matematike: " << matematika << endl;
cout << "Ocjena iz biologije: " << biologija << endl;
cout << "Ocjena iz informatike: " << informatika << endl;
cout << "Ocjena iz kemije: " << kemija << endl;
cout << "==================================" << endl;
cout << "Prosjek svih ocjena je: " << prosjek << endl;

system("PAUSE");
return 0;
}


U budućnosti planiram da se upiše broj predmeta, i da se upisuju ocjene, ako u ocjenama ima jedinica (<=2) tada se za prosjek ispisuje 1.0, i ide još jednom upisivanje pod 1. rok, ako i dalje ima jedinica 2. rok te na kraju 3. rok ako ih ima i dalje pojavljuje se poruka pad razreda, ako nema tada se zbrajaju sve ocjene uključujuči ove nove ispravljene i jedinice isključene te se djele s brojem predmeta, ako su više od 3 jedinice odmah se ispisuje poruka ponavljanje razreda!

ako netko ima neki prijedllog, zamjerku ili komentar neka ovdje napiše biti ću mu zahvlan!
Dakle vrijedi ona stara "Feel free to comment"!

fps_gamer
16-07-2009, 00:17
ok, prva stvar, ne trebaju ti biti float varijable jer radis sa cijelim brojevima...
ako se podijelom dobije float, samo rezultat stavis u float...

druga stvar, napravi ovo za vjezbu:
input od usera, znaci za info, mat, hj, pov itd... da unese ocjenu...
a drugi dio programa ti ostaje isti :)



ispravite me ili nadodajte, cekaj luku za profesionalni komentar :thumbs2:

Gamer++
16-07-2009, 06:03
ok, prva stvar, ne trebaju ti biti float varijable jer radis sa cijelim brojevima...
ako se podijelom dobije float, samo rezultat stavis u float...


ne, krivo moraju biti barem jedna (rezultat i još jedna) varijabla float tipa da bi rezultat bio float, a ja sam radi izgleda stavio sve tipa float!

--------------->http://img204.imageshack.us/img204/5691/nebiislo.th.png (http://img204.imageshack.us/i/nebiislo.png/)

Luka
16-07-2009, 12:07
Ne, niti jedna varijabla ne mora biti float (sve mogu biti int, što je i poželjno - jer kako reće fps_gamer, nikad neće imati decimalne vrijednosti).

To se rješava castanjemSint varijabli u float u izrazu u kojem je to potrebno. Castanje u float će nakratko stvoriti float vrijednost koja će se odmah po izlazu iz izraza uništiti. Na taj način koristiš int varijable, a dobivaš float rezultat. Potrebno je castati jednu (bilo koju) ili obje vrijednosti u izrazu:

Rezultat = (float)intVarijabla1 / intVarijabla2;
ili
Rezultat = float(intVarijabla1) / intVarijabla2;
ili
Rezultat = static_cast<float>(intVarijabla1) / intVarijabla2;


Prva 2 su Covski načini dostupni i u C++u. Treći je možda ispravniji način jer detaljno definira koji tip casta želiš (postoje i dynamic_cast, reinterpret_cast...), dok C koristi istu verziju za sve moguće tipove pretvorbi što je potencijalan uzrok problema.

Gamer++
16-07-2009, 12:25
// da vidim jesam li skužio
#include <iostream>
using namespace std;
int main()
{
int a = 5;
int b = 2;
float c;
c = static_cast<float>(a) / b
cout << c;
return 0;
}

Tako?

Usto da najavim da proširavam svoj program i da već ima 250+ linija redaka

Luka
16-07-2009, 12:28
Da, tako.

P.S. iako je static_cast "ispravniji", u ovakvim situacijama većina ljudi koristi (float) castanje : )

Gamer++
16-07-2009, 15:04
možda je ispravnije ali je i u neku ruku teže...

Gamer++
16-07-2009, 17:06
Evo program je gotov pa ocijenite:


/************************************************** *
* Project: Prosjek ocjena *
* Autor: No smoking *
* Start: 15.7.2009. ; 10:43 *
* Description: Program računa prosjek ocjena *
* unesenih od strane korisnika *
************************************************** */

#include <iostream>
#include <string>

using namespace std;

int main()
{
// inicijalizacija korisnika
char ime_korisnika[256];
cout << "Unesite svoje ime: ";
cin.getline(ime_korisnika,256);
cout << "Drago mi je, " << ime_korisnika << "." << endl;
cout << "Pocnimo, za pocetak odaberite spol, M za musko i Z za zensko: ";
char spol;
cin >> spol;
cout << "Unesite godinu rodenja: ";
int godina_rodenja;
cin >> godina_rodenja;
cout << "Hvala na informacijama, pocnimo racunati prosjek!" << endl;

// deklariranje varijabli pojedinih predmeta
int hrvatski;
int matematika;
int biologija;
int kemija;
int fizika;
int tzk;
int informatika;
int povjest;
int geografija;
int strani_jezik;

// upisivanje deklariranih varijabli
cout << "Upisi ocjenu iz hrvatskog : ";
cin >> hrvatski;
cout << "Upisi ocjenu iz matematike : ";
cin >> matematika;
cout << "Upisi ocjenu iz biologije : ";
cin >> biologija;
cout << "Upisi ocjenu iz kemije : ";
cin >> kemija;
cout << "Upisi ocjenu iz fizike : ";
cin >> fizika;
cout << "Upisi ocjenu iz tjelesnog : ";
cin >> tzk;
cout << "Upisi ocjenu iz informatike : ";
cin >> informatika;
cout << "Upisi ocjenu iz povjesti : ";
cin >> povjest;
cout << "Upisi ocjenu iz geografije : ";
cin >> geografija;
cout << "Upisi ocjenu iz stranog jezika: ";
cin >> strani_jezik;

// ispis pojedinih ocjena
cout << "Upisane ocjene su: " << endl << endl;
cout << "Hrvatski : " << hrvatski << endl;
cout << "Matematika : " << matematika << endl;
cout << "Biologija : " << biologija << endl;
cout << "Kemija : " << kemija << endl;
cout << "Fizika : " << fizika << endl;
cout << "Tjelesni : " << tzk << endl;
cout << "Informatika : " << informatika << endl;
cout << "Povjest : " << povjest << endl;
cout << "Geografija : " << geografija << endl;
cout << "Strani jezik : " << strani_jezik << endl << endl;

// provjera jedinica

int jedinice = 0;

if (hrvatski == 1)
{
jedinice = jedinice + 1;
}
if (matematika == 1)
{
jedinice = jedinice + 1;
}
if (biologija == 1)
{
jedinice = jedinice + 1;
}
if (kemija == 1)
{
jedinice = jedinice + 1;
}
if (fizika == 1)
{
jedinice = jedinice + 1;
}
if (tzk == 1)
{
jedinice = jedinice + 1;
}
if (informatika == 1)
{
jedinice = jedinice + 1;
}
if (povjest == 1)
{
jedinice = jedinice + 1;
}
if (geografija == 1)
{
jedinice = jedinice + 1;
}
if (strani_jezik == 1)
{
jedinice = jedinice + 1;
}

if (jedinice >= 3)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
if (jedinice <= 2 && jedinice >= 1 )
{
if (hrvatski == 1)
{
cout << "Na popravni iz hrvatskog!";
cout << endl << "Uspjeh na prvom roku: ";
cin >> hrvatski;
if (hrvatski > 1)
{
cout << "Ocjena iz hrvatskog ispravljena na: " << hrvatski << "." << endl;
jedinice = jedinice - 1;
}
else
if (hrvatski == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> hrvatski;
if (hrvatski > 1)
{
cout << "Ocjena iz hrvatskog ispravljena na: " << hrvatski << "." << endl;
jedinice = jedinice - 1;
}
else
if (hrvatski == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> hrvatski;
}
if (hrvatski > 1)
{
cout << "Ocjena iz hrvatskog ispravljena na: " << hrvatski << "." << endl;
jedinice = jedinice - 1;
}
else
if (hrvatski == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (matematika == 1)
{
cout << "Na popravni iz matematike!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> matematika;
if (matematika > 1)
{
cout << "Ocjena iz matematike ispravljena na: " << matematika << "." << endl;
jedinice = jedinice - 1;
}
else
if (matematika == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> matematika;
if (matematika > 1)
{
cout << "ocjena iz matematike ispravljena na: " << matematika << "." << endl;
jedinice = jedinice - 1;
}
else
if (matematika == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> matematika;
}
if (matematika > 1)
{
cout << "Ocjena iz matematike ispravljena na: " << matematika << "." << endl;
jedinice = jedinice - 1;
}
else
if (matematika == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (biologija == 1)
{
cout << "Na popravni iz biologije!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> biologija;
if (biologija > 1)
{
cout << "Ocjena iz biologije ispravljena na: " << biologija << "." << endl;
jedinice = jedinice - 1;
}
else
if (biologija == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> biologija;
if (biologija > 1)
{
cout << "ocjena iz biologije ispravljena na: " << biologija << "." << endl;
jedinice = jedinice - 1;
}
else
if (biologija == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> biologija;
}
if (biologija > 1)
{
cout << "Ocjena iz biologije ispravljena na: " << biologija << "." << endl;
jedinice = jedinice - 1;
}
else
if (biologija == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (kemija == 1)
{
cout << "Na popravni iz kemije!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> kemija;
if (kemija > 1)
{
cout << "Ocjena iz kemije ispravljena na: " << kemija << "." << endl;
jedinice = jedinice - 1;
}
else
if (kemija == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> kemija;
if (kemija > 1)
{
cout << "ocjena iz kemije ispravljena na: " << kemija << "." << endl;
jedinice = jedinice - 1;
}
else
if (kemija == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> kemija;
}
if (kemija > 1)
{
cout << "Ocjena iz kemije ispravljena na: " << kemija << "." << endl;
jedinice = jedinice - 1;
}
else
if (kemija == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (fizika == 1)
{
cout << "Na popravni iz fizi8ke!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> fizika;
if (fizika > 1)
{
cout << "Ocjena iz fizike ispravljena na: " << fizika << "." << endl;
jedinice = jedinice - 1;
}
else
if (fizika == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> fizika;
if (fizika > 1)
{
cout << "ocjena iz fizike ispravljena na: " << fizika << "." << endl;
jedinice = jedinice - 1;
}
else
if (fizika == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> fizika;
}
if (fizika > 1)
{
cout << "Ocjena iz fizike ispravljena na: " << fizika << "." << endl;
jedinice = jedinice - 1;
}
else
if (fizika == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (tzk == 1)
{
cout << "Na popravni iz tjelsenog!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> tzk;
if (tzk > 1)
{
cout << "Ocjena iz tjelesnog ispravljena na: " << tzk << "." << endl;
jedinice = jedinice - 1;
}
else
if (tzk == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> tzk;
if (tzk > 1)
{
cout << "ocjena iz tjelesnog ispravljena na: " << tzk << "." << endl;
jedinice = jedinice - 1;
}
else
if (tzk == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> tzk;
}
if (tzk > 1)
{
cout << "Ocjena iz tjelesnog ispravljena na: " << tzk << "." << endl;
jedinice = jedinice - 1;
}
else
if (tzk == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (informatika == 1)
{
cout << "Na popravni iz informatike!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> informatika;
if (informatika > 1)
{
cout << "Ocjena iz informatike ispravljena na: " << tzk << "." << endl;
jedinice = jedinice - 1;
}
else
if (informatika == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> informatika;
if (informatika > 1)
{
cout << "ocjena iz informatike ispravljena na: " << informatika << "." << endl;
jedinice = jedinice - 1;
}
else
if (informatika == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> informatika;
}
if (informatika > 1)
{
cout << "Ocjena iz informatike ispravljena na: " << informatika << "." << endl;
jedinice = jedinice - 1;
}
else
if (informatika == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (povjest == 1)
{
cout << "Na popravni iz povijesti!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> povjest;
if (povjest > 1)
{
cout << "Ocjena iz povijesti ispravljena na: " << povjest << "." << endl;
jedinice = jedinice - 1;
}
else
if (povjest == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> povjest;
if (povjest > 1)
{
cout << "ocjena iz povijest ispravljena na: " << povjest << "." << endl;
jedinice = jedinice - 1;
}
else
if (povjest == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> povjest;
}
if (povjest > 1)
{
cout << "Ocjena iz povijesti ispravljena na: " << tzk << "." << endl;
jedinice = jedinice - 1;
}
else
if (povjest == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (geografija == 1)
{
cout << "Na popravni iz geografije!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> geografija;
if (geografija > 1)
{
cout << "Ocjena iz geografije ispravljena na: " << geografija << "." << endl;
jedinice = jedinice - 1;
}
else
if (geografija == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> geografija;
if (geografija > 1)
{
cout << "ocjena iz geografije ispravljena na: " << geografija << "." << endl;
jedinice = jedinice - 1;
}
else
if (geografija == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> geografija;
}
if (geografija > 1)
{
cout << "Ocjena iz geografije ispravljena na: " << geografija << "." << endl;
jedinice = jedinice - 1;
}
else
if (geografija == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
if (strani_jezik == 1)
{
cout << "Na popravni iz stranog jezika!" << endl;
cout << "Uspjeh na prvom roku: ";
cin >> strani_jezik;
if (strani_jezik > 1)
{
cout << "Ocjena iz stranog jezika ispravljena na: " << strani_jezik << "." << endl;
jedinice = jedinice - 1;
}
else
if (strani_jezik == 1)
{
cout << "Uspjeh na drugom roku: ";
cin >> strani_jezik;
if (strani_jezik > 1)
{
cout << "ocjena iz stranog jezika ispravljena na: " << strani_jezik << "." << endl;
jedinice = jedinice - 1;
}
else
if (strani_jezik == 1)
{
cout << "Uspjeh na trecem roku: ";
cin >> strani_jezik;
}
if (strani_jezik > 1)
{
cout << "Ocjena iz stranog jezika ispravljena na: " << strani_jezik << "." << endl;
jedinice = jedinice - 1;
}
else
if (strani_jezik == 1)
{
cout << "Ucenik pada razred!" << endl;
return 0;
}
}
}
}

if (jedinice < 1)
{
float prosjek_ocjena = (hrvatski + matematika + biologija + kemija + fizika + tzk + informatika + strani_jezik + povjest + geografija) / 10.;

cout << "SVjEDODzBA";
cout << "-----------------------------------------------------" << endl;
cout << "Ime i prezime učenika: " << ime_korisnika << endl;
cout << "SPOL: " << spol << endl;;
cout << "Starost: " << 2009 - godina_rodenja << "godina." << endl;
cout << "Prosjek: " << prosjek_ocjena << endl;
return 0;
}
}


Ako ima još netko prijedlog...


Za ovo sam velik ko kuća! :thumbs2: :pray:

:bravo: JA

Luka
16-07-2009, 17:23
Hihi, ovo se moglo 10ak puta kraće napisati :D

Ne bih ti htio davati prijedloge dok ne usvojiš petlje i funkcije (mislim na C++ovske funkcije)...

Gamer++
16-07-2009, 19:29
Ma znam ovo

if (hrvatski == 1)
jedinice = jedinice + 1;
sam mogao ovako napisati ali sam nešto prtljao pa je u tom bloku bilo više naredbi...

Nema veze što se dalo 10ak puta kraće napisati meni je ovo dalo ogroman poticaj i novu želju za učenjem nemogu opisati koliko sam ponosan na sebe i to sve bez pomoći knjige...

Luka
17-07-2009, 12:39
Ah sad, moglo se to i još kraće xD :

jedinice += (hrvatski == 1);

Nisam mislio ništa loše s onim, samo sam dao odgovor na tvoje pitanje o prijedlozima : )

Gamer++
17-07-2009, 13:46
Nisam se ja ni žalio na ništa ja sam još samo početnik i svaki je savjet dobrodošao usto usvojio sam korištenje loopova



// for petlja
#include <iostream>

using namespace std;

int main()
{
for (int brojac = 1;brojac < 21;brojac++)
cout << brojac << endl;
return 0;
}

deklarira varijablu brojač kao cjelobrojni tip;
dok je vrijednost varijable manja od vrijednosti 21;
varijabla brojac se povećava za 1 i ispisuje svoju vrijednost


// while
#include <iostream>

using namespace std;

int main()
{
int brojac = 0;
while (brojac < 5) {
cout << brojac << endl;
brojac++;
}
return 0;
}

deklariramo varijablu brojac;
dok je vrijednost varijable manja od 5 ispisuje njenu vrijednost i povećava se za jedan

do-while

isto kao i while petlja samo što se u ovom slučaju "radnja" mora izvesti barem jedanput a u gornjem primjeru netreba niti jedanput ako je uvjet već zadovoljen

ispravite ili nadopunite ako nije dobro! :thumbs2:

Danas ću još ovo vježbati a sutra krećem na funkcije( :scared: )

Luka
17-07-2009, 14:07
do-while evaluira uvjet na kraju svakog prolaza, pa to implicira da će se uvijek barem jednom izvesti...

vježbaj na zadacima, tad ćeš stvarno vidjeti jesi li usvojio (http://programiranje.big-forum.net/prog ... io-t16.htm (http://programiranje.big-forum.net/programski-jezik-c-f1/skupina-zadataka-za-vjeabu-1-dio-t16.htm))

Gamer++
17-07-2009, 19:45
tnx za stranicu regao sam se i rješavam , ime mi je isto

Gamer++
20-07-2009, 08:29
Jedno pitanje:

u uspoređivanju brojeva postoje oni znakovi: više, manje, jednako... kako ide ona za različito?

Luka
20-07-2009, 10:39
Jedno pitanje:

u uspoređivanju brojeva postoje oni znakovi: više, manje, jednako... kako ide ona za različito?

a != b

alternativno, možeš not-ati izraz s operatorom jednakosti: !(a == b), ili ako osjetiš potrebu biti posebno podao, usporediti sa falseom: a == b == false

Gamer++
20-07-2009, 13:53
tnx! ja sam cijelo vrijeme pisao =! :rotfl:

Gamer++
20-07-2009, 17:13
Napravio sam svoju prvu igru! txt-based avantura u stilu a je to, nadam se da će vam se svidjeti :rambo:
kratka je ali mislim ubaciti još sadržaja tako da je ovo recimo "beta" verzija

link na igru (http://www.box.net/shared/mrcqxrd5d9)

Gamer++
25-07-2009, 09:30
Što nitko neće komentirati :(

Ghost_Rider
25-07-2009, 17:41
Radnja je glupava do boli,mislim da bi klinjo od 6 god napravio bolje od tebe.AI nema pojma,samo postavlja neka glupa pitanja.Likovi se krecu kao klade,samo stoje u mjestu. :pray: :pray: :pray:

:rotfl: :rotfl: :rotfl:

Sala...

Malo sam se nasmijao na nekim dijelovima.

Predobro je ovo,hoces pokusati napraviti nesto kao Pong.

Gamer++
26-07-2009, 09:29
Tnx :D neki pong bude sigurno ali ne još za par mjeseci mislim krenuti na directX pa ćemo onda vidjeti
možda još izbacim koju epizodu mira i iva samo moram dobiti ideju! :)

Gamer++
26-07-2009, 14:36
Samo da javim da sam usvojio funkcije do neke mjere: funkcije bez nasljeđivanja i funkcije s nasljeđivanjem te preopterečivanje funkcija
još ću vježbati tjedan 2 pa idemo dalje (klase) :rambo:

Luka
26-07-2009, 15:19
Samo da javim da sam usvojio funkcije do neke mjere: funkcije bez nasljeđivanja i funkcije s nasljeđivanjem te preopterečivanje funkcija

funkcije bez nasljeđivanja i funkcije s nasljeđivanjem? funkcije se ne mogu nasljeđivati (osim unutar klasa, a o tome očito ne govoriš)

Gamer++
26-07-2009, 16:25
:shock: ups tek sad vidim što sam napisao :roll:

Funkcije koje primaju argumente

nezz valjda su mi misli već odlatjele dalje dok sam pisao :friends: :toilet:

Nego Luka ti mi još nisi dao kometaar što kažeš na izvedbu? :wink:

Luka
26-07-2009, 17:17
hehe ok je : )

Gamer++
31-07-2009, 14:00
Evo nastavljamo dalje s učenjem pa bi trebao još zadataka... Evo tablica množenja:


#include <iostream>
using namespace std;

int main()
{
int do_koliko;
cin >> do_koliko;
for (int i = 1; i < do_koliko + 1; i++){
for (int j = 1; j < do_koliko + 1; j++)
cout << i * j << " ";
cout << endl;
}
return 0;
}

Gamer++
02-08-2009, 18:07
Kako napraviti da mi program pomoću switch i case provjerava string?

npr.


#include <iostream>
#include <string>
using namespace std;

int main()
{
string primjer;
cin >> primjer;

switch (primjer)
case "blabla":
cout << " " << endl;
break;
}

Ovo sam napisao bzvz pa ako se podkrala koja veća sintaksna pogreška n uzimajte u obzir :wink:

Luka
02-08-2009, 18:31
Nikako, string nije konstanta nego pointer (odnosno objekt, ako se misli na std::string).

S druge strane, ako bi baš htio mogao bi možda improvizirati nešto sa ifovima i #defineovima. No u klasičnom smislu, nemoguće je.

Gamer++
02-08-2009, 20:06
a dali je to moguće postići sa

char bla[256];

Ili je nemoguće u case ubacivati znakovne nizove?

Luka
03-08-2009, 09:54
Noup, kao što rekoh, string nije konstanta nego pointer, efekt bi bio uspoređivanje pointera (što je česta greška).

Sa #defineovima možeš postići sličan efekt... ovo što sam dolje napisao je primjer toga.



#include <iostream>
#include <string>
using namespace std;

// slobodno zamijeni SWITCH, CASE, DO, SWITCH_END sa svojim nazivima...
#define SWITCH(v) string val=v; if (false) {
#define CASE } else if (val ==
#define DO ){
#define SWITCH_END}

int main() {
string k = "blabla";

SWITCH(k)
CASE "abl" DO
cout << "abl";
CASE "blabla" DO
cout << "blabla";
SWITCH_END

std::cin.get();
return 0;
}

U gornjem primjeru nedostatak je da možeš imati samo 1 SWITCH u trenutnom scopeu i pod-scopeovima. Također, ne smiješ imati varijablu "val". Oba nedostatka bi se dala srediti uz malo više truda...

Gamer++
03-08-2009, 13:15
Znači nemože se standardnim putem :thumbs1: ali se da nekako :thumbs2:
tnx :wink:

edit-------------------------------
tražim po knjizi ali nigdje nemogu pronać kako se koristi #define ako može objašnjenje..

Luka
03-08-2009, 13:29
Pretprocesorke direktive.. potraži to.

#define je pretprocesorka naredba. Vjerojatno znaš da kompajler prevodi C++ kod u strojni jezik. No, prije toga, kôd prevodi pretprocesor. On npr. uključuje #includeove, evaluira #ifdef i sl. Sve što se tiće pretprocesora počinje na početku linije i sa znakom #

Postoje 2 tipa #definea:
1. #define <a> [b]Sće zamijeniti, u kodu, sve <a> sa [b].
2. #define <a>(<x>) [b]Sje nešto što se zove makro funkcija i nije ju preporučljivo koristiti. Kad se u kodu napiše <a>(<x>), pretprocesor će to zamijeniti sa [b]

Primjer za 2. :
#define zbroj(a, b) a + b
zbroj(2, 3) će postati 2 + 3

Gamer++
03-08-2009, 13:34
Skužio tnx ima u knjizi ja sam tražio gdje piše #define :rotfl:

Gamer++
05-08-2009, 16:54
#include <iostream>

using namespace std;

int Vrati();

int main()
{
Vrati();
cout << Vrati() + 2 << endl;
return 0;
}

int Vrati()
{
cout << "3!" << endl;
return 3;
}


Ovaj sam kod sklepao na brzinu pa ako ima errorova ne uzimajte u obzir! (ja mislim da nema)


S cout << Vrati() + 2 << endl;

Kako napraviti da mi prije zbrajanja on ne ispiše "3!" nego da odmah zbroji? ako je moguće naravno?

== edit riješeno :thumbs2:

nije bilo preteško samo sam napravio jednu globalnu varijablu... ma evo kod

#include <iostream>

using namespace std;

int vrati;

int Vrati();

int main()
{
Vrati();
cout << vrati + 2 << endl;
return 0;
}

int Vrati()
{
cout << "3!" << endl;
vrati = 3;
return vrati;
}


8)

Luka
05-08-2009, 17:18
A joj. Pročitaj ponovno sve o funkcijama, nešto si jako krivo shvatio.

Gamer++
05-08-2009, 17:26
sto to? :kill:

Luka
05-08-2009, 17:56
Pa.. sve.

Gamer++
05-08-2009, 19:30
Koje sve odgovori mi :evil:

Luka
05-08-2009, 19:55
Smisao funkcije je grupirati kôd koji će dalje raditi kao samostalni mali program, kako bi se smanjila kompleksnost cijelog programa. Funkciji se stoga definiraju ulazne vrijednosti i izlazna vrijednost (ukoliko nije samo jedna izlazna, koriste se strukture ili reference na out vrijednosti među argumentima). Pozivanjem funkcije zamišljeni izvršavatelj naredbi preskače na prvu liniju funkcije, te se po završetku funkcije vraća na staru liniju.

Nakon što si pozvao Vrati() u main()u, izvršila se linija s ispisom teksta pa si dobio taj neželjeni tekst na ekranu. Nakon toga si vratio vrijednost 2. Kad jednom vratiš vrijednost funkcije nema povratka u istu.

Ustvari sad vidim što si mislio, malo sam krivo shvatio što si htio.. ali koji je točno smisao tog ispisa poslije zbrajanja? Globalne varijable bi se smijele koristiti u jako malim količinama u velikim programima, u manjima uopće ne. Najbolje da napraviš još jednu funkciju koja će se brinuti isključivo za ispis. Također, ne trebaš koristiti int funkciju ako nećeš koristiti povratnu vrijednost.

Gamer++
05-08-2009, 20:23
Ja sam ovaj program samo napisao kao primjer ali hvala svejedno ;)
Ovo zbrajanje mi služi samo jer vježbam to vraćanje argumenata :roll:

SkunK
06-08-2009, 09:40
Također, ne trebaš koristiti int funkciju ako nećeš koristiti povratnu vrijednost.

Nažalost, to radi jer uči napamet a ne sa razumjevanjem. Da je sa razumjevanjem, koristio bi void.

Gamer++ nemoj prepisivati kod i sintaksu, uči je/ga i onda ga sam piši.

Gamer++
06-08-2009, 10:27
#include <iostream>

using namespace std;

int vrati;

int Vrati();

int main()
{
Vrati();
cout << vrati + 2 << endl;
return 0;
}

int Vrati()
{
cout << "3!" << endl;
vrati = 3;
return vrati;
}


@ReIko ja koristim varijablu koju sam vratio! I ne nije prepisano iz knjige nego sam si sam zadao ovaj zadatak jer vježbam funkcije :? u knjizi iz primjera iz knjige jedino što funkcija vraća je string zato i nisam znap kako pravilno vratiti cjelobrojčanu vrijednost :|

Luka
06-08-2009, 10:59
gdje si koristio tu vrijednost? napisao si Vrati() u praznoj liniji, dakle nisi ju koristio...


u knjizi iz primjera iz knjige jedino što funkcija vraća je string zato i nisam znap kako pravilno vratiti cjelobrojčanu vrijednostS :|

?

SkunK
06-08-2009, 12:14
#include <iostream>

using namespace std;

int vrati;

int Vrati();

int main()
{
Vrati();
cout << vrati + 2 << endl;
return 0;
}

int Vrati()
{
cout << "3!" << endl;
vrati = 3;
return vrati;
}


@ReIko ja koristim varijablu koju sam vratio! I ne nije prepisano iz knjige nego sam si sam zadao ovaj zadatak jer vježbam funkcije :? u knjizi iz primjera iz knjige jedino što funkcija vraća je string zato i nisam znap kako pravilno vratiti cjelobrojčanu vrijednost :|

Nemoj se nastavljati brukati...

Gamer++
06-08-2009, 13:59
Ok, može pojašnjenje? ipak sam samo početnik :oops:
================
Idem učiti sve iz početka, iako nisam izostavljao gradivo imam osjačaj da će mi dobro doći ponovno ponavljanje