Programiranje

Programiranje u C-u - od svega pomalo

beno101 sri 7.7.2010 10:17

 

Pozdrav!

Dobrodošli u temu Programiranje-C.

Ako imate neko pitanje postajte slobodno i sigurno će jedan od forumaša znati odgovor na vaše pitanje.

U slučaju da nitko nezna odgovor na vaše pitanje pričekajte koju minuticu :)

Happy Coding!

 

 

 

beno101 sri 7.7.2010 10:22
d_a_l_3 kaže...

Evo jedna sitnica, inače google sve zna ako već neznaš :D

 

#include<stdlib.h>
main()
{
system("clear"); //briše sve
}

 

nadam se da ti je malo pomoglo

 

lp

Ja sam u Google-u izgubio svaku nadu...

Ali hvala najljepša!

beno101 sri 4.8.2010 15:02
d_a_l_3 kaže...

Evo jedna sitnica, inače google sve zna ako već neznaš :D

 

#include<stdlib.h>
main()
{
system("clear"); //briše sve
}

 

nadam se da ti je malo pomoglo

 

lp

A kako bi to u c++ izgledalo?

Private sri 4.8.2010 15:31

Win okruženje ,VS2008 ....ovako u c++-u :

 

#include <stdio.h>
#include<iostream>
#include<cstdlib>

using namespace std;

int main (void)

//otvaranje funkcije
{

    //deklaracija varijabli
    int odabir=0;
    char dat[]="";
    char komanda[]="";
    int novac=3500;

       //main menu
       /* tu treba obrisati ekran */     
       cout<< ("*******************************HAKIRANJE JE GOTOVO*******************************\n");
       cout <<("\n");
       cout<< ("             1. PO ČE TAK\n");
       cout<< ("             2. P O M O Ć\n");
       cout<< ("             3. I Z L A Z\n");
       cout<< ("Odabir:");
       cin>>odabir;
     
       //uvjeti
       //ako je odabir = 1 tada počinje igra
       if (odabir==1) {
      system("cls");
       cout<< ("D O B R O D O Š L I !\n");
     
       }
      system("pause");

       return 0;
}

 

 

 

 

Wedran Dev sri 4.8.2010 15:35

Evo ja sam ju ovako u C++-u napravio:

 

 

#include <iostream>

using namespace std;

 

int main ()

 

//otvaranje funkcije

{

 

   //deklaracija varijabli

   int odabir=0;

   char dat[]="";

   char komanda[]="";

   int novac=3500;

 

     //main menu

     /* tu treba obrisati ekran */    

     cout<<("*******************************HAKIRANJE JE GOTOVO*******************************\n");

     cout<<("\n");

     cout<<("        1. PO CE TAK\n");

     cout<<("        2. P O M O C\n");

     cout<<("        3. I Z L A Z\n");

     cout<<("Odabir:");

     cin>>odabir;

 

     //uvjeti

     //ako je odabir = 1 tada pocinje igra

     if (odabir==1) {

     /* tu treba obrisati ekran */    

     cout<<("D O B R O D O S L I !\n");

     }

 

     system("PAUSE");

     return 0;

}

 

edit: Private je bio brzi od mene!

 

loko_1 uto 7.9.2010 19:03

Zamolio bih nekog da mi  napiše rješenja ovih zadataka u C-u.

 

1.Zadaj n brojeva. Izračunaj njihovu aritmetičku sredinu.

2.Upiši prosječnu ocjenu položen ispita za n studenata. Ispisati koliko je studenata čija je prosječna ocjena 3.5.

logicar uto 7.9.2010 20:28
loko_1 kaže...

Zamolio bih nekog da mi  napiše rješenja ovih zadataka u C-u.

 

1.Zadaj n brojeva. Izračunaj njihovu aritmetičku sredinu.

  2.Upiši prosječnu ocjenu položen ispita za n studenata. Ispisati koliko je studenata čija je prosječna ocjena 3.5.

 

Zadaća?

 

#include <iostream>

int main()
{
float n, a, uk_zbroj = 0;
scanf("%f", &n);
for (int i = 0; i < n; i++)
{
scanf("%f", &a);
uk_zbroj += a;
}
printf("%.2f", uk_zbroj / n);
system("PAUSE");
return 0;
}


#include <iostream>

int main()
{
float n, a, uk_zbroj = 0;
scanf("%f", &n);
for (int i = 0; i < n; i++)
{
scanf("%f", &a);
if (a == 3.5)
uk_zbroj++;
}
printf("%.0f", uk_zbroj);
system("PAUSE");
return 0;
}

mbaksa sri 8.9.2010 00:21
King of Games kaže...
tko je za da otvorimo temu u kojoj svi mogu pitati pitanja u vezi c, c# i c++?
ima tu bar desetak tema, svaki user koji radi u c++ ima jednu, a to je malo glupo... ko je za?

Zasto je to "malo glupo"? Tko ce se poslije snaci u temi ispresjecanoj s tri programska jezika i mnogo razlicitih tema? Kuzis - imao bi hrpu tema u jednoj temi. Postoje slucajevi nesto slicno ima smisla. Recimo tema C++ - brza pitanja iz objektno orij. programiranja ima smisla (tj. imala bi da su se drzali same teme), ali ovo sto si napisao nema.

 

Pa poanta teme (threada) je da se govori o jednoj stvari, o stvari kojom je tema zapoceta.

 

Floki sri 8.9.2010 14:29

Dosadašnjem načinu rada nije ništa nedostajalo

Tko ima problem navede jezik i uže područje jezika u naslovu teme

npr C++ rekurzivna funkcija

Čak je i onaj thread o OOP preširok, najbolje se uči ako već znaš što pitaš,

baš se vidjelo na onoj temi o OOP kako se preširoka tema mora presjecati, 

tip odjednom pita što znači &x

Naravno, ako želiš pomoć u rješavanju zadataka na hrvatskom preko google tražilice,

prednost je da se na forumu navede u naslovu teme programski jezik i područje na koje se problem odnosi

Tada pristupiš forumu i preko google tražilice npr. za gornji primjer ukucaš u google "c++ rekurzija" i

dobiješ link: http://www.bug.hr/forum/topic/programiranje/pomoc-c-rekurzija/14309.aspx

i to na prvom mjestu u tražilici

Eto novih članova na taj načinNamigiva

1domagoj1 pon 13.9.2010 17:03

Erm, nikak kolko ja znam. Ak se ne varam, Borland ima nešto tipa textcolor();, ali to nije po standardu, tak da ništa od toga. Ovisi na kojoj si platformi, na Linuxu bi se valjda nekaj dalo s ncurses, ali nisam siguran, a za Windowse ne znam. Vjerojatno postoji neki API poziv da oboja tekst, ne znam stvarno. U svakom slučaju, nije baš trivijalno.

captain_soap_McTawish pon 13.9.2010 17:16

Ako to radiš na c++ prevoditelj učini ovo. Dodaj ispod #include<stdio.h>,dodaj #include <cstdlib>. Onda odmah na početku int main dodaj system("COLOR  broj od 0-F");

Ovo gdje trebaš broj upisati ovisi koju boju hoćeš:

0 = Black

1 = Blue

2 = Green

3 = Aqua

4 = Red

5 = Purple

6 = Yellow

7 = White

8 = Gray

9 = Light Blue

A = Light Green

B = Light Aqua

C = Light Red

D = Light Purple

E = Light Yellow

F = Bright White

 

Npr ako ćeš plavu napisat ćeš system("COLOR  1");

beno101 pon 13.9.2010 17:17
captain_soap_McTawish kaže...

Ako to radiš na c++ prevoditelj učini ovo. Dodaj ispod #include<stdio.h>,dodaj #include <cstdlib>. Onda odmah na početku int main dodaj system("COLOR  broj od 0-F");

Ovo gdje trebaš broj upisati ovisi koju boju hoćeš:

0 = Black

1 = Blue

2 = Green

3 = Aqua

4 = Red

5 = Purple

6 = Yellow

7 = White

8 = Gray

9 = Light Blue

A = Light Green

B = Light Aqua

C = Light Red

D = Light Purple

E = Light Yellow

F = Bright White

 

Npr ako ćeš plavu napisat ćeš system("COLOR  1");

 Daš Moooolim te primjer?

mbaksa pon 13.9.2010 17:53
beno101 kaže...

Hvala puno!

No još me zanima postoji li kraći način od mbakse?

Krace? Imas svega nekoliko linija koda. Ako ti je bas sila, mozes to svesti na samo dvije linije - jednu za ukljucivanje zaglavlja s funkciom za promjenu boje: #include <windows.h>

I druga za promjenu boje: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), k);

 

Varijabla k je broj koji koji oznacava boju teksta i pozadine.

 

Boje su 4-bitne - donja 4 bita idu za boju teksta, gornja 4 bita idu za boju pozadine. Dakle, kako su boje 4-bitne, znaci da idu od 0 crna, 1 plava... do 14 zuta, 15 bijela.

Kako sad iz boje teksta i pozadine dobiti boju koju cemo poslati kao argument funkciji?

 

k = bojateksta + bojapozadine*16

 

Znaci, ako hoces zuti tekst na plavoj pozadini, onda je k = 14 + 1*16 = 30

 

Naredba system("COLOR xx"); funkcionira na istom principu, samo sto joj se boja specificira u heksadekadskom obliku, znaci zuti tekst na plavoj pozadini je 30dec = 1Ehex. Iliti: system("COLOR 1E"); Zapravo je boju jednostavnije specifirati u heksadekadskom obliku - boja je formata xx, pri cemu svaki od x-eva ima raspon od 0 do F - prvi x se odnosi na boju pozadine, a drugi na boju teksta. Znaci, u slucaju COLOR 1E, 1 je pozadina (plava), a E je boja teksta (zuta, u decimalnom obliku iznosi 14).

 

Inace, problem s naredbom COLOR xx je u tome sto ce ona promijeniti boju cijelog ekrana, a ne samo da se odredi boja kojom ce se nadalje ispisivati tekst, kao sto je to slucaj sa SetConsoleTextAttribute.

 

 

PS ovo objasnjavam radi onih koje ce zanimati ista stvar, a ne radi tebe ili tvog preponosnog profesora. Namigiva

captain_soap_McTawish pon 13.9.2010 18:07
beno101 kaže...

Hvala!

Moj profesor je ponosan!

:D

  Kad je ponosan onda bi bio i red ta znaš  što to radiš  što sam ti ja rekao. Kao što vidiš program se izvodi u cmd-u. U cmd ti mijenjaš boju teksta tako što upišeš naredbu COLOR pus broj za boju koje sam već naveo. Upiši u run cmd pa onda u cmd upiši to i vidjeti ćeš da će se tekst promijeniti. A u programu naredbom system("COLOR 1"), ti naređuješ programu to da ti upiše u cmd autmatski naredbu COLOR 1. Dakle u naredbi system u zagradi između navodnika upisuješ  naredbu koju će ti program unijeti. Npr mogao si napisati system("VER"); pa bi ti program ispisao verziju windowsa u cmd-u. Fakle putem toga možeš unijeti neku naredbu direktno u cmd.

mbaksa kaže...

  Hvala na pojašnjenju. Ipak je COLOR xx cmd naredba je naredba za definiranje boje teksta u naredbenom retku pa se ovaj trik može upotrijebiti na satovima informatike i sl.

Inače ovo vaše sam baš tražio tako da hvala vam.

1domagoj1 uto 14.9.2010 11:05

Samo da napomenem, čini mi se da tekst obojan na taj način, preko system("COLOR"), a mislim i preko ovog WinAPI poziva boja sav tekst u konzoli u istu boju ili? Znači ne može se jedna riječ ispisati crveno, jedna plavo itd. Za bilo kaj naprednije, ja bi tu išel na OpenGL ili DirectX. Ispravite me ako griješim.

rustweaver uto 14.9.2010 13:43

Ne, pomocu win API-ja se moze svako slovo u drugu boju obojati jer te funkcije petljaju po video memoriji tekst moda koja za svaki znak na ekranu ima zaseban atribut. Koristenje DirectX ili OpenGL API-ja je teski overkill za ovakve stvari, usporedi samo kolicinu koda potrebnu za oba pristupa.

 

Inace, malo detaljnije o onome sto je mbaksa napisao.

1domagoj1 uto 14.9.2010 15:25
rustweaver kaže...

Ne, pomocu win API-ja se moze svako slovo u drugu boju obojati jer te funkcije petljaju po video memoriji tekst moda koja za svaki znak na ekranu ima zaseban atribut. Koristenje DirectX ili OpenGL API-ja je teski overkill za ovakve stvari, usporedi samo kolicinu koda potrebnu za oba pristupa.

 

Inace, malo detaljnije o onome sto je mbaksa napisao.

Znam da je overkill za ovak nešto jednostavno, zato sam i rekao "za nešto naprednije". E sad, ovo za WinAPI nisam znao, jer ga ne koristim, pošto ne radim na toj platformi, zato sam i postavio to kao pitanje neko. Thx, na objašnjenju :).

mbaksa uto 14.9.2010 15:57
1domagoj1 kaže...
rustweaver kaže...

Ne, pomocu win API-ja se moze svako slovo u drugu boju obojati jer te funkcije petljaju po video memoriji tekst moda koja za svaki znak na ekranu ima zaseban atribut. Koristenje DirectX ili OpenGL API-ja je teski overkill za ovakve stvari, usporedi samo kolicinu koda potrebnu za oba pristupa.

 

Inace, malo detaljnije o onome sto je mbaksa napisao.

Znam da je overkill za ovak nešto jednostavno, zato sam i rekao "za nešto naprednije". E sad, ovo za WinAPI nisam znao, jer ga ne koristim, pošto ne radim na toj platformi, zato sam i postavio to kao pitanje neko. Thx, na objašnjenju :).

Nisi procitao moj post s razumijevanjem - eksplicitno sam pojasnio to sto si naknadno pitao:

Inace, problem s naredbom COLOR xx je u tome sto ce ona promijeniti boju cijelog ekrana, a ne samo da se odredi boja kojom ce se nadalje ispisivati tekst, kao sto je to slucaj sa SetConsoleTextAttribute.

Pod Linuxom cini se da boje mozes mijenjati koristeci odredjenu escape sekvencu kod ispisa tekst: http://www.linuxquestions.org/questions/programming-9/changing-text-color-in-c-172930/

Probao sam to pod Windowsima u DevC++-u, ali ne radi.

 

ncurses: http://uw714doc.sco.com/en/SDK_charm/_Color_Manipulation.html ili http://www.perlmonks.org/?node_id=32154 - vidjet ces da je kljucna funkcija attron, kojoj moras poslati COLOR_PAIR(x).