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.
Moderaator: Moderaatorid
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;
}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
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.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.
Kood: Vali kõik
make sgc
sgc 100 100
sgc 100 100 -hex

Mul ei ole praegust võimalus proovida aga umbes nii saad id kätte.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.
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”);
...............................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
}andreas kirjutas:http://www.opengroup.org/onlinepubs/007 ... roups.htmlHoiatus: Koodi ei ole testitud. Kasutada ülima ettevaatlikusega.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 }
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 kirjutas:andreas kirjutas:http://www.opengroup.org/onlinepubs/007 ... roups.htmlHoiatus: Koodi ei ole testitud. Kasutada ülima ettevaatlikusega.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 }
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"); } }