C++ arendus...

Kui vajad mõnda eestikeelset õpetust, juhendit, ülevaadet, siis küsi seda siin

Moderaator: Moderaatorid

Vasta
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

C++ arendus...

Postitus Postitas olavsu1 »

Minu esmane katsetus graafilise keskkonna jaoks miskit teha. See peab olema utiliit mis ruutvõrrandit lahendab. Ilma igasuguse ette vamistuseta on nii kaugele jõutud KDevelopi kasutades.

link: http://n6ges.pri.ee/ruutvorrand.tar.gz

Äkki see inimene vaatab üle selle asja ja viskab mõnel lingi normaalsele õppevahendile. :)

//tahaks loota, et läbi ei sõimata.
olen Troll ja ootan pingviin.org konto sulgemist.
eric
Pingviini külastaja
Pingviini külastaja
Postitusi: 34
Liitunud: 28.02.2007, 19:36

Postitus Postitas eric »

laadisin paketi alla, kuid kuna ./configure "soovitas" kde arenduspakettide paigaldamist jätsin kompileerimise pooleli.

seejärel vaatasin lähtekoodi, kuid midagi otseselt sinu programmeeritud (peale akna disainimise) (veel) ei leidnud - kogu "kupatus" on enamjaolt kdevelop'i poolt genereeritud.

soovitaks võibolla alustada lihtsamast otsast - installeeri QT arenduspaketid (libqt4-dev, qt4-doc, qt4-dev-tools) ja uuri qt dokumentatsiooni (väga selge ja ülevaatlik + piisavalt näiteid). proovi sellessamas kdevelope-is mõni QT näide kompileerida ("tööle saada") ja siis sama näite lähtekoodiga "mängida" (i.e. seda muuta, seejärel kompileerida ning vaadata, kas programmi "käitumine" muutus nagu olid kavandand).

edu ja järjekindlust soovides!

e.

ps. alustasin kdevelop-i kasutamisega umbes 2 aasta eest ja nüüd ei vahetaks "teda" naljalt enam millegi muu vastu. eelnevalt olin ca 10 aastat kasutand (windoozis) borland c++ builderit. kdevelop on super ja ka qt-teegid (libraries) on super (ega's KDE muidu neil põhineks, vää ;) ?)
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

jah tõsi peale akna disaini ei suutudki mikit teha..

järgmine katsetus....

Kood: Vali kõik

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

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

using namespace std;

int rehkendus(){
int a, b, c, d, x1, x2;
	cout << "Tere, ruutvõrrandi rehkendaja olen. arvud palun :)" << endl;
	cout << "Sisesta arv a ";
	cin >> a;
	cout << "Sisesta arv b ";
	cin >> b;
	cout << "Sisesta arv c ";
	cin >> c;
	d=b*b-4*a*c;
if (d < 0){
	cout << "Diskriminant on negatiivne (" << d <<") . Ruutvõrrandit ei teki.\n";
	return EXIT_SUCCESS;  //väljavise
}else{
	cout << "Diskrminant on " << d  << endl;
	x1= -b+sqrt(d)/2*a;
	x2= -b-sqrt(d)/2*a;
	cout << "x1 = " << x1  << endl;
	cout << "x2 = " << x2  << endl;
}
}

int main(int argc, char *argv[])
{
rehkendus();
/*int jarg, J, n;
cout << "Kas jätkata?  J/n"<< endl; // rehkendaks veel???
cin >> jarg;
if(jarg == J) return rehkendus(); //jätkamine
if(jarg == n)return EXIT_SUCCESS; //väljavise 
//krt, see vuristab kogu jutu ette, ükshaaval peaks..
*/
return EXIT_SUCCESS;

 
}
see sai käsurea jaoks c++ ikka.
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
johnsmith
Vana Pingviin
Vana Pingviin
Postitusi: 714
Liitunud: 24.07.2006, 23:33

Postitus Postitas johnsmith »

Pole küll mingi ütleja aga äkki peaks siiski proovima ilma graafilise arenduskeskonnata alguses läbi ajada. Saab korralikult selgeks kuidas need komponendid seal asetatakse ja siis võib ju pärast Kdevelopi kasutada.

Ma hakkasin ka vahepeal qt -d õppima aga asi jäi kuidagi katki vist ajapuuduse taha (vabanduse leiab alati). Samas oskan panna kokku graafilisi progesid javaga ja seda on parem õppida tavalise tekstiredaktoriga (jälle subjektiivne arvamus).

Qt ja java graafika progemise vahel on teatud sarnasus ei tea kes kelle pealt järele teinud on :)

Lihtsalt mõte mida ei pea mingil juhul keegi tõsiselt võtma.
"Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

tore kui asi tööle hakkab nagu soovitud. puudu on vaid sisestatava info kontroll, et kas on arv või ei ole arv :)

Kood: Vali kõik

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

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


using namespace std;
char jarg = 0;

int end() //funksioon, mis välja viskab
{
	return EXIT_SUCCESS;
}//väljavikaja lõpp

int rehkendus(){

int a, b, c, d, x1, x2;
	
	cout << "Sisesta arv a ";
	cin >> a;
	cout << "Sisesta arv b ";
	cin >> b;
	cout << "Sisesta arv c ";
	cin >> c;
	d=b*b-4*a*c;
if (d < 0){
	cout << "Diskriminant on negatiivne (" << d <<") . Ruutvõrrandit ei teki.\n";
	
}else{
	cout << "Diskrminant on " << d  << endl;
	x1= (-b+sqrt(d))/(2*a);
	x2= (-b-sqrt(d))/(2*a);
	cout << "x1 = " << x1  << endl;
	cout << "x2 = " << x2  << endl;
} //if else lõpp
	cout << "Kas jätkata?  j/e"<< endl; // rehkendaks veel???
	cin >> jarg;
switch(jarg){
	case 'j': 
	rehkendus(); //rehkendame veel
	break;
	case 'e': 
	end(); //ei rehkenda veel
	break;
	
} //lüliti lõpp
}//rehkendus lõpp



int main(int argc, char *argv[])
{
cout << "Tere, ruutvõrrandi rehkendaja olen. arvud palun :)" << endl;

rehkendus(); //rehkenduse väljakutse


}//main lõpp
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
KristjanS
Vana Pingviin
Vana Pingviin
Postitusi: 419
Liitunud: 29.12.2006, 10:13

Postitus Postitas KristjanS »

KAs keegi teist ühele programmile lisavõimaluse viitsiks meisterdada? Peaks imelihtne olema, aga ma ei jaga antud programmeerimiskeelest essugi.

Programm ise asub siin:
http://muquit.com/muquit/software/grabc/grabc.html

Mis see teeb? Käivitad programmi, see muudab ikooni ja kui klõpsu teed, siis programm tuvastab selle koha koordinaadid ja värvi.

Mis mul vaja? 1) Võimalust määrata käsitsi piksli koordinaadid, ilma hiireklõpsuta, nii et see annab siis selle piksli värvi 2) Võimalust saada ainult koordinaadid või värvi

Programm ise on ~300 rida, kui ainult natukene oskaks, siis teeks ise ära. Vaja ühe makro jaoks. :D
Ubuntu Brainstorm: Have a device manager
Seadmehalduriga peaks saama jälgida riistvara, juhtprogrammi vahetada, ning vastavalt juhtprogrammile seadistusi muuta.
wk
Vana Pingviin
Vana Pingviin
Postitusi: 1133
Liitunud: 24.10.2007, 22:04

Postitus Postitas wk »

KristjanS kirjutas:Mis see teeb? Käivitad programmi, see muudab ikooni ja kui klõpsu teed, siis programm tuvastab selle koha koordinaadid ja värvi.
Kuna ma C-d ise ei valda siis täpsustaks ainult, et praeguses seisus tagastab see programmike ainult RGB-väärtuse, seda 16- ja 10-süsteemis. Kuna üks läheb STDERRi ja teine STDOUTi, siis saab valida, kumba skriptis mugavam kasutada on.
Kõike hääd,
WK
Kasutaja avatar
bobc
Pingviini aktivist
Pingviini aktivist
Postitusi: 165
Liitunud: 09.07.2005, 03:00

Postitus Postitas bobc »

Pakuks omaltpoolt välja väikese rakenduse kuidas lugeda pixli värvi etteantud kordinaadilt. sgc_out.tar.bz2
Sai natuke xlib programmeerimis manuali loetud (pole eriline C progeja).

Kood: Vali kõik

make sgc
sgc 100 100
sgc 100 100 -hex
Toimis xorg-server 1.5.1 ja xorg-server 1.6.1 peal, ei oska kommenteerida kuidas toimib/ei toimi kui desktop efektid on kasutusel (compositing window manager).
Pilt
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

uus küsimus siia,

nimelt vajaks juhendamist, kuidas panna rakendus kontrollima parajasti sisseloginud kasutaja gruppi.

kui kasutaja on grupis SEE siis rakendus lubab teha SEDA ja kui kasutaja on grupis TOO siis lubab teha TODA
kui ollakse mõlemates kruppides siis lubatakse mõlemaid operatsioone teha.
olen Troll ja ootan pingviin.org konto sulgemist.
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Postitus Postitas -ordi- »

olavsu1 kirjutas:uus küsimus siia,

nimelt vajaks juhendamist, kuidas panna rakendus kontrollima parajasti sisseloginud kasutaja gruppi.

kui kasutaja on grupis SEE siis rakendus lubab teha SEDA ja kui kasutaja on grupis TOO siis lubab teha TODA
kui ollakse mõlemates kruppides siis lubatakse mõlemaid operatsioone teha.
Mul ei ole praegust võimalus proovida aga umbes nii saad id kätte.

Kood: Vali kõik

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

Kood: Vali kõik

..................................
      
      int current_uid = getuid();
      printf(”My UID is: %d. My GID is: %d\n”, current_uid, getgid());
      system(”/usr/bin/id”);
 ...............................
Pärast saad kasutada juba seda http://www.cprogramming.com/tutorial/lesson5.html
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

töötas, jutumärgid olid valed.
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
andreas
Pingviini aktivist
Pingviini aktivist
Postitusi: 112
Liitunud: 26.02.2008, 13:03

Postitus Postitas andreas »

http://www.opengroup.org/onlinepubs/007 ... roups.html

Kood: Vali kõik

#include <unistd.h>
#define GRUPPE 50
#define SEE 1000
#define SEDA 1
#define TOO 1001
#define TODA 2

gid_t grupid[GRUPPE];
int teha;

getgroups(GRUPPE, grupid);

for(int i=0; i < GRUPPE; i++)
{
   if(grupid[i] == SEE)
     teha = SEDA;
   else if (grupid[i] == TOO)
     teha = TODA;
}

if (teha == SEDA)
{
  // Tee SEDA
}
if (teha == TODA)
{
 // Tee TODA
}
Hoiatus: Koodi ei ole testitud. Kasutada ülima ettevaatlikusega.
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

andreas kirjutas:http://www.opengroup.org/onlinepubs/007 ... roups.html

Kood: Vali kõik

#include <unistd.h>
#define GRUPPE 50
#define SEE 1000
#define SEDA 1
#define TOO 1001
#define TODA 2

gid_t grupid[GRUPPE];
int teha;

getgroups(GRUPPE, grupid);

for(int i=0; i < GRUPPE; i++)
{
   if(grupid[i] == SEE)
     teha = SEDA;
   else if (grupid[i] == TOO)
     teha = TODA;
}

if (teha == SEDA)
{
  // Tee SEDA
}
if (teha == TODA)
{
 // Tee TODA
}
Hoiatus: Koodi ei ole testitud. Kasutada ülima ettevaatlikusega.

tänud, töötas tõesti poolikult. ei tehtud mõlemat operatsiooni kui kasutaja kuulus mõlemasse gruppi.

täiendus:

Kood: Vali kõik

#include <unistd.h>
#define GRUPPE 50
#define SEE 1001
#define SEDA 1
#define TOO 1002
#define TODA 2   

gid_t grupid[GRUPPE];
int teha, toda;

getgroups(GRUPPE, grupid);

for(int i=0; i < GRUPPE; i++)
{
   if(grupid[i] == SEE){
     teha = SEDA;
   }
   if (grupid[i] == TOO){	
     toda = TODA;
   }
}

if (teha == SEDA)
{
 cout << "Test 1" << endl; // Tee SEDA
    //system("/usr/bin/id");
}
if (toda == TODA)
{
 cout << "Test 2" << endl;// Tee TODA
    //system("/usr/bin/id");
}
if (teha != SEDA && toda != TODA){
    cout << "Ei ole õigusi!" << endl;
    //system("/usr/bin/id");
}
}
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Postitus Postitas -ordi- »

olavsu1 kirjutas:
andreas kirjutas:http://www.opengroup.org/onlinepubs/007 ... roups.html

Kood: Vali kõik

#include <unistd.h>
#define GRUPPE 50
#define SEE 1000
#define SEDA 1
#define TOO 1001
#define TODA 2

gid_t grupid[GRUPPE];
int teha;

getgroups(GRUPPE, grupid);

for(int i=0; i < GRUPPE; i++)
{
   if(grupid[i] == SEE)
     teha = SEDA;
   else if (grupid[i] == TOO)
     teha = TODA;
}

if (teha == SEDA)
{
  // Tee SEDA
}
if (teha == TODA)
{
 // Tee TODA
}
Hoiatus: Koodi ei ole testitud. Kasutada ülima ettevaatlikusega.

tänud, töötas tõesti poolikult. ei tehtud mõlemat operatsiooni kui kasutaja kuulus mõlemasse gruppi.

täiendus:

Kood: Vali kõik

#include <unistd.h>
#define GRUPPE 50
#define SEE 1001
#define SEDA 1
#define TOO 1002
#define TODA 2   

gid_t grupid[GRUPPE];
int teha, toda;

getgroups(GRUPPE, grupid);

for(int i=0; i < GRUPPE; i++)
{
   if(grupid[i] == SEE){
     teha = SEDA;
   }
   if (grupid[i] == TOO){	
     toda = TODA;
   }
}

if (teha == SEDA)
{
 cout << "Test 1" << endl; // Tee SEDA
    //system("/usr/bin/id");
}
if (toda == TODA)
{
 cout << "Test 2" << endl;// Tee TODA
    //system("/usr/bin/id");
}
if (teha != SEDA && toda != TODA){
    cout << "Ei ole õigusi!" << endl;
    //system("/usr/bin/id");
}
}
A'la sellist väga õudsat koodi ei ole mõtet kirjutada (#define 1 0).
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

milles seisneb õudus?
olen Troll ja ootan pingviin.org konto sulgemist.
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Postitus Postitas -ordi- »

olavsu1 kirjutas:milles seisneb õudus?
Ma ei näe erilist põhjust kirjutada nii:

#define A 50

See selline mõtetu virin minu poolt ...
Kasutaja avatar
andreas
Pingviini aktivist
Pingviini aktivist
Postitusi: 112
Liitunud: 26.02.2008, 13:03

Postitus Postitas andreas »

Miks A?
Vasta