Hirdetés

2024. június 15., szombat

Gyorskeresés

Hozzászólások

(#4301) bucsupeti válasza axioma (#4300) üzenetére


bucsupeti
senior tag

Igazad van, egyetértek veled abban hogy változnak a dolgok és más értelmet kapnak így nem biztos hogy egy programozó a jövőben foglalkozni akar azzal, hogy mi és hogyan tölti be a programokat a memóriába, (egyáltalán mi az a memória) és hogy hogyan kapja meg a vezérlést, majd ha a futásnak vége van akkor mi történik. Egyszerűen elkészíti a szoftvert ami megoldja a problémáját.
De ez nekem akkor is furcsa.... Bár az is igaz hogy az első programomat 30 éve írtam, így valóban egy korábbi generáció tagja vagyok és mást gondolok az informatikus/programozó/IT szakember stb szavakról.

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4302) rgrg1


rgrg1
csendes tag

Házi feladatnak kaptam ezt a feladatot: Hogy tudnám megoldani? (10 változóval int a,b,c,d...; és IF fv-vel?)

Írjon egy kis programot, amiben bekér 10 egész számot és kiírja, hogy pozitív, negatív, vagy 0. Nem kell tömbben tárolni.

(#4303) bucsupeti válasza rgrg1 (#4302) üzenetére


bucsupeti
senior tag

be: a
ha a=0 akkor ki: nulla különben
ha a>0 akkor ki: pozitív különben ki: negatív

be: b
ha b=0 akkor ki: nulla különben
ha b>0 akkor ki: pozitív különben ki: negatív

stb....

A "neheze" kész, most már csak C-be kell átírni...

[ Szerkesztve ]

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4304) rgrg1 válasza bucsupeti (#4303) üzenetére


rgrg1
csendes tag

köszönöm a segítséged. így már világos.

(#4305) Dave-11 válasza rgrg1 (#4304) üzenetére


Dave-11
tag

Ha már vettétek a ciklusokat, akkor így éri meg megcsinálni:
int i = 0;
int szam;
for(i=0; i<10; i++)
{
scanf("%d",&szam);
if(szam==0)
{
printf("0");
}
else if(szam<0)
{
printf("negativ");
}
else
{
printf("pozitiv");
}
}

[ Szerkesztve ]

:D Semmi :D

(#4306) rgrg1 válasza Dave-11 (#4305) üzenetére


rgrg1
csendes tag

Köszi!
Nekem így sikerült megoldanom:

#include <stdio.h>

int main(void)
{
int n,i;
i = 0 ;

while (i<10)
{
printf("A szam=");
scanf("%d",&n);

if (n>0)
printf("pozitiv.\n");
else if (n<0)
printf("negativ.\n");
else
printf("nulla.\n");

i=i+1;
}

return 0;
}

[ Szerkesztve ]

(#4307) umek7


umek7
őstag

C++, a megoldásom félkész és valószínűleg sok helyen hibás. A feladat:

Hozz létre egy Virág osztályt. Az adattagok legyenek: név (string), fagyástűrés (string (igen, nem, közepes), magasság (egész szám cm-ben).
Tiszta virtuális metódus: AtlagDarabszam, mely kiszámítja a darabszámok átlagát. Ez alapján eldönthető minden virág esetében, hogy sok van belőle, közepes vagy kevés. Szükséges kiíró alprogram is.
- Származtass a Virág osztályból egy Tulipán utódosztályt, az öröklődött adattagokon kívül legyen egy új virtuális adattagja: szín (string)
- Származtass a Virág osztályból egy Nárcisz utódosztályt, az öröklődött adattagokon kívül legyen egy új virtuális adattagja: darab (egész szám)
- Írd ki a tulipán és nárcisz adatait.

class Virag {

protected:
string nev;
string fagytures;
int magassag;
int darab;

public:

Virag(string n, string f, int cm,int db){
nev=n;
fagytures=f;
magassag=cm;
darab=db;
};

virtual double AtlagDarabszam()=0;

bool sok(){
return darab > AtlagDarabszam();
};
};

class Tulipan:public Virag {
string szin;
public:
Tulipan(string n, string f, int cm, string sz,int db) : Virag(n,f,cm,db) {
szin=sz;
};

double AtlagDarabszam(){
return 10;
};

void kiir();
};

void Tulipan::kiir() {

cout<<"Nev: "<<nev<<"\n";
cout<<"Fagyturo: "<<fagytures<<"\n";
cout<<"Magassag: "<<magassag<<" cm"<<"\n";
cout<<"Szin: "<<szin<<"\n";
cout<<"Darabszam: "<<(sok()? "Sok van belole!":"Keves van belole!"); }

class Narcisz:public Virag {
public:
Narcisz(string n, string f, int cm, int db) : Virag(n,f,cm,db) {
};
void kiir();

double AtlagDarabszam(){
return 11;
};
};

void Narcisz::kiir() {

cout<<"Nev: "<<nev<<"\n";
cout<<"Fagyturo: "<<fagytures<<"\n";
cout<<"Magassag: "<<magassag<<" cm"<<"\n";
cout<<"Darabszam: "<<(sok() ? "Sok van belole!":"Keves van belole!"); }

int main(int argc, char *argv[]) {

Tulipan tulipan("Tulipan","igen",20,"kek",2);
tulipan.kiir();

cout<<"\n";
cout<<"\n";

Narcisz narcisz("Narcisz","nem",18,11);
narcisz.kiir(); }

(#4308) zoli03 válasza umek7 (#4307) üzenetére


zoli03
őstag

Ez a C programozás topik, nem a C++. Azt itt találod.

(#4309) umek7 válasza zoli03 (#4308) üzenetére


umek7
őstag

Beraktam oda, elnézést, valamiért az rémlett hogy egy kalap alatt fut a kettő.

(#4310) izsom


izsom
újonc

Ezt a feladatot megtudná oldani valaki nagyon nagy segítség lenne!

Írjon egy függvényt amely paraméterenként kap egy szöveget és egy betűt és vissza adja hogy a hogy a szöveg a megadott betűre végződik -e!

(#4311) Dave-11 válasza izsom (#4310) üzenetére


Dave-11
tag

Írtam neked egy lehetséges verziót, ha valami nem tiszta kérdezz nyugodtan. Vagy ha valaki úgy gondolja van ennél jobb megoldás, az is szóljon :))

#include<stdio.h>

void erreVegzodikE(char szoveg[], char betu);

int main()
{

erreVegzodikE("Programozas",'s');

return 0;
}

void erreVegzodikE(char szoveg[], char betu)
{
int hossz = 0;
while(szoveg[hossz]!='\0')
{
hossz++;
}

if(szoveg[hossz-1]==betu)
{
printf("Igen\n");
}
else
{
printf("Nem\n");
}
}

:D Semmi :D

(#4312) izsom válasza Dave-11 (#4311) üzenetére


izsom
újonc

Köszönöm a segítséget, de közben sikerült megoldanom!!! :D

#include <stdio.h>
#include <string.h>
void osszehasonlit(char szoveg[], char betu)
{
if(szoveg[strlen(szoveg)-1]==betu)

printf("megegyezik.");

else
printf("nem egyezik meg.");
}
int main()
{
char tomb[40]={"kutya"};

char beker='a';

osszehasonlit(tomb, beker);

return 0;
}

[ Szerkesztve ]

(#4313) Dave-11 válasza izsom (#4312) üzenetére


Dave-11
tag

Aha. Én direkt nem az strlen() függvénnyel csináltam, azt hittem hogy direkt arra kíváncsi a feladat, hogy minden plusz include nélkül hogyan oldod meg a feladatot.
De ha meg így nézzük a tiéd egyszerűbb :)

[ Szerkesztve ]

:D Semmi :D

(#4314) umek7


umek7
őstag

Addig akarok bekérni a user-től adatot (2db szöveg: pl. név, lakhely. 1db int: pl. kor), amíg a lakhely helyére az nem kerül hogy "stop". Ezt hogy a legegyszerűbb?

(#4315) bucsupeti válasza umek7 (#4314) üzenetére


bucsupeti
senior tag

hátultesztelő.ciklusba bekéred az adatokat, majd a ciklusfeltételben a lakcimként bekért sztringet vizsgálod.

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4316) umek7 válasza bucsupeti (#4315) üzenetére


umek7
őstag

Létrehozok egy char tömböt, fgets-el a do ciklusban bekérem a szöveget, majd a while feltételében megadom, hogy mi ne legyen. Ennyi lenne nem? Egy kódot nagyon megköszönnék, de lehet már csak én lettem autista, az elmúlt pár nap sok volt.

(#4317) umek7


umek7
őstag

Nem sikerül működésre bírni. Amíg számmal kell csinálni addig minden rendben, de szövegnél már problémákba ütközök. A Google már füstöl, hálás lennék a segítségért.

(#4318) prosoftware


prosoftware
csendes tag

Sziasztok!

Mi a különbség az alábbi két programkódrészlet között?

scanf("%d%d%*[^\n]", &a, &b);
getchar();

scanf("%d%d%", &a, &b);

(#4319) bucsupeti válasza umek7 (#4317) üzenetére


bucsupeti
senior tag

beírnád ide a kódot? sokat segítene hogy segíthessünk... :)

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4320) Jester01 válasza prosoftware (#4318) üzenetére


Jester01
veterán

Az első az megeszi az egész sort, a második az nem (a végén a % az gondolom elírás).

Jester

(#4321) prosoftware válasza Jester01 (#4320) üzenetére


prosoftware
csendes tag

Nem elírás a százalék jel. Próbáld ki! Mindkettő ugyanazt csinálja. Beolvas a bemenetről két int váltózóba(a, b). Legalábbis úgy tűnik. Biztos valami máshogy zajlik a fordítás közben. (Ubuntu alól terminálban gcc fordítóról van szó.)

(#4322) umek7 válasza bucsupeti (#4319) üzenetére


umek7
őstag

Azt szeretném kivitelezni, hogy bekérjen mondjuk 2 adatot (legyen lakhely és név) usertől, és ha pl. a lakhelyhez azt írom be hogy "stop", akkor ne kérje újra. Később a bekért adatokat bináris fájlba akarom íratni.

(#4323) Jester01 válasza prosoftware (#4321) üzenetére


Jester01
veterán

Nem ugyanazt csinálják, ha a sorban a két számon kívül még van valami és később azt is be akarod olvasni.

scanf("%d%d%*[^\n]", &a, &b);
getchar();
scanf("%d", &c);
printf("%d %d %d\n", a, b, c);

Be:
1 2 3
4

Ki: 1 2 4

Az első sorban a szám után bármi lehet, azt figyelmen kívül hagyja.

scanf("%d%d%", &a, &b);
scanf("%d", &c);
printf("%d %d %d\n", a, b, c);

Be: 1 2 3
Ki: 1 2 3

Itt a két szám után ami még a sorban volt az megmarad és a további beolvasások felhasználják. A formátumstringben az utolsó % jel pedig igenis elírás mivel annak ott semmi értelme nincs. Ugyanígy működik anélkül is, csak akkor még helyes is.

[ Szerkesztve ]

Jester

(#4324) rgrg1


rgrg1
csendes tag

Adott egy feladatom:
Kérjen be 10 könyv árát és oldalszámát 1-1 tömbbe.
Aztán külön függvény segítségével számolja ki az ár/oldal arányt.
Ha az 4.5 alatt van, akkor írja ki, hogy olcsó, ha felette, akkor drága, a függvénynek nincs visszatérési értéke.
A függvénynek a két tömböt kell paraméterként átadni.

Idáig eljutottam de innen nem igazan tudom hogyan tovább:

#include <stdio.h>

int main(void)
{
int ar[10];
int szam[10];
int i = 0;
int j = 0;
for(i=0; i<10; i++)
{
printf("szam:");
scanf("%d",&szam[i]);
printf("ar:");
scanf("%d",&ar[j]);
if(ar[j]/szam[i]>4.5)
{
printf("draga\n");
}
else
{
printf("olcso\n");
}
}
return 0;
}

Köszönöm a segítségeteket.

(#4325) rgrg1 válasza rgrg1 (#4324) üzenetére


rgrg1
csendes tag

Közben tovább jutottam: (az előzőt bocsi mar nem tudtam szerkeszteni)
#include <stdio.h>

int main(void)
{
float ar[10];
float szam[10];
float arany;
int i = 0;
int j = 0;
for(i=0; i<10; i++)
{
printf("szam:");
scanf("%d",&szam[i]);
printf("ar:");
scanf("%d",&ar[j]);

arany = ar[j] / szam[i];
if(arany>4.5)
{
printf("%f draga\n",arany);
}
else
{
printf("%f olcso\n",arany);
}
}
return 0;
}

(#4326) prosoftware válasza Jester01 (#4323) üzenetére


prosoftware
csendes tag

A scanf("%d%d%", &a, &b); tényleg elírás a 3. %. Nem vettem észre. Bocsi.

Köszi a választ.

(#4327) prosoftware válasza prosoftware (#4326) üzenetére


prosoftware
csendes tag

scanf("%d%d%*[^\n]", &a, &b);
getchar();
scanf("%d", &c);
printf("%d %d %d\n", a, b, c);

A getcharnak mi a szerepe itt? Ha jól néztem nélküle is működik.

[ Szerkesztve ]

(#4328) bucsupeti válasza umek7 (#4322) üzenetére


bucsupeti
senior tag

Én értem a feladatot. Azt írtad hogyha számmal csinálod a ciklusfeltétel ellenőrzését akkor minden jó, de szöveggel nem működik. Ekkor kértem, hogy írd be a forráskódot ide, hogy lássuk, mi az ami nem működik.

Ne haragudj, de a programot nem írom meg helyetted. Szívesen adok tanácsot, vagy véleményt mondok a megoldásodról, de ahhoz konkrét forráskódot kéne látni.

Kíváncsi vagyok arra, hogy pl milyen módon hasonlítod össze a szövegeket, illetve érdekel még az is hogy a while()-ban a zárójelek között mi van?

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4329) bucsupeti válasza rgrg1 (#4325) üzenetére


bucsupeti
senior tag

A bekérések után van ez a két sor:

arany = ar[j] / szam[i];
if(arany>4.5)

Ugyebár ez helyett kell egy függvényt csinálni. Pontosabban kell egy olyan függvény ami kiszámolja az arányt és visszaadja azt eredményül. Ezt kellene az if()-ben meghívni. Több lehetőség van.
A függvény formális paraméterei ilyenek lehetnek pl:

float aranyszamitas(float*, float*, int) :ebben az esetben a két tömböt adjuk át és a tömbindexet amit arányosítani kell.

float aranyszamitas(float, float): ebben az esetben két float számot adunk át, amit arányosítani kell.

Az aktuális paraméterekkel az if() így néznek ki:
Első paramétrezés: if(aranyszamitas(ar,szam,i)>4.5)
Második paraméterezés: if(aranyszamitas(ar[i],szam[i])>4.5)

Mostmár csak a két függvény közül az egyik változatot ki kell választanod és megírni :)

Szerintem meg tudod oldani! Ha nem megy írd le meddig jutottál.

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4330) rgrg1 válasza bucsupeti (#4329) üzenetére


rgrg1
csendes tag

Köszönöm. Igazából értem mit kellene csinálni innen, viszont nem tudom, hogyan is kezdjek neki.

(#4331) Jester01 válasza prosoftware (#4327) üzenetére


Jester01
veterán

A getchar() a sorvég jelet \n eszi meg mivel azt a scanf a [^\n] miatt nem tette meg. Persze bele lehetne oda is tenni.

Jester

(#4332) zoli03 válasza rgrg1 (#4330) üzenetére


zoli03
őstag

Lehet, hogy én néztem el valamit, de a j-t miért nem növeled a ciklusban? Vagy ha mindig a két tömb ugyanazon indexét akarod összehasonlítani, akkor minek egyáltalán a j változó?

(#4333) rgrg1 válasza zoli03 (#4332) üzenetére


rgrg1
csendes tag

köszi. igen mindig a két tömb ugyanazon elemét akarom összehasonlitani. javitottam.

(#4334) umek7 válasza bucsupeti (#4328) üzenetére


umek7
őstag

Igazad van, csak túl bizonytalan voltam. Utoljára kb. így próbáltam meg, kevés sikerrel. Biztosan van hatékonyabb megoldás, illetve az fgets is szúrja a szemem. Ha később ezeket az adatokat egy bináris fájlba akarom kiíratni, az miben változtat majd a felálláson...?

char nev[50];

do {
printf("neved: ");
fgets(nev,50,stdin);
} while (nev[0]!='e' && nev[1]!='n' && nev[2]!='n' && nev[3]!='y' && nev[4]!='i');

(#4335) umek7 válasza umek7 (#4334) üzenetére


umek7
őstag

Sikerült létrehozni egy elvileg működő verziót, scanf-el, && >> || cserével.

(#4336) umek7


umek7
őstag

Lefut, "működik" is, de érdekelnének az esetleges hibák. A kérdés pedig az lenne, hogy tudom az int-et is helyesen kiíratni a txt-be?

typedef struct {
int hd;
char domain[30];
}
vmi;

int main(int argc, char** argv) {

char domain[30];
char tulaj[30];
int hd;
FILE * fp;
fp=fopen("vmi.txt","r");

do {
printf("Add meg a tulajdonos nevet!\n)"); scanf("%s",domain);
printf("Add meg az elofizeto havidijat!\n"); scanf("%d",&hd);

} while (domain[0]!='e' || domain[1]!='n' || domain[2]!='n' || domain[3]!='y' || domain[4]!='i');

if (fp!=NULL) {

fwrite(domain,sizeof(domain),1,fp); printf("Az adatokat kiirtuk\n");
}
else {
printf("Sikertelen\n");
}
fclose(fp);

(#4337) Dave-11 válasza umek7 (#4336) üzenetére


Dave-11
tag

1. Ezt a sort először is ki kéne javítanod: fp=fopen("vmi.txt","r");
Azzal az "r" paraméterrel olvasásra nyitottad meg a fájlt, nem pedig írásra. Írd át "w" -re.

2. Én a helyedben az fprintf() függvényt használnám, ugyanúgy működik mint a printf(), csak paraméterként meg kell adnod azt a fájlmutatót, ami a te esetedben fp. Például:
fprintf(fp, "%d",100);

[ Szerkesztve ]

:D Semmi :D

(#4338) bucsupeti válasza umek7 (#4336) üzenetére


bucsupeti
senior tag

.

[ Szerkesztve ]

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4339) bucsupeti válasza umek7 (#4336) üzenetére


bucsupeti
senior tag

A while feltétel így elég "bonyolultan" néz ki. Nem látszik belőle hogy gyakorlatilag te az "ennyi" szó beírásakor hagynád abba a ciklust (holott a feladatban a "stop" volt megadva ;] )
Inkább csinálj egy függvényt rá, vagy használd a string.h-ban lévő strcmp() függvényt. Sokkal kellemesebb lesz a kódod.
pl:
do {
printf("Add meg a tulajdonos nevet!\n)"); scanf("%s",domain);
printf("Add meg az elofizeto havidijat!\n"); scanf("%d",&hd);
} while (strcmp(domain,"ennyi"));

Gyakorlatilag bekéregeted az adatokat és nem csinálsz velük semmit. Kivéve azzal az adattal aminél a domain nevű stringbe azt írod hogy "ennyi"
Pl ha azt írod be hogy "alma" akkor nem történik semmi újból fut a ciklus.Ezután beírod hogy "ennyi" akkor a ciklus befejeződik. Ezek után szándékod szerint ezt kiíratod egy vmi.txt nevű fájlba.
Sok értelme ennek nincs, mert a többi adat nincs elmentve.
A fájlba írást a ciklusmagban kell elvégezned, vagy tömbbe (láncolt listába) kell az adatokat bekérni, majd a bekérő ciklus után az egészet kiírni egyben.

A progi elején a vmi nevű struktúra az mi akar lenni? Nem használod sehol.

[ Szerkesztve ]

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4340) umek7


umek7
őstag

Köszöntem a javaslatokat/útmutatást.

(#4341) bucsupeti


bucsupeti
senior tag

úgy látom vége a vizsgaidőszaknak, meg a féléves beadandók határideje is letelt már... ;]

"Nem gond ha nem vágod a párologtatók bináris nyelvét..."

(#4342) sztanozs válasza bucsupeti (#4341) üzenetére


sztanozs
veterán

Ááá, még van egy hét (plusz egy-két hét utóvizsgakurzus) :D

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#4343) maathe


maathe
senior tag

Notepad++-ban hogyan lehet legegyszerűbben megoldani a C fordítást?

(#4344) LonGleY válasza maathe (#4343) üzenetére


LonGleY
veterán

:D atya ég...

Az biztos, hogy egy alt+tab-al kezdődik... :]

[ Szerkesztve ]

(#4345) PumpkinSeed válasza maathe (#4343) üzenetére


PumpkinSeed
addikt

Megírod a programot benne, majd lemented .txt-be. Majd felmész a világhálóra és letöltesz egy C fordítót és a .txt-ben lévő állományt megnyitod vele és kész.

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#4346) Retekegér válasza maathe (#4343) üzenetére


Retekegér
HARDVERAPRÓD

Ha most arra gondolsz, amire gondolom, hogy gondolsz, akkor első hsz.:

Fordítóprogramok, fejlesztőkörnyezetek:
DevC++
Anjuta
MingW
GCC
Turbo C

Esetleg Codeblocks...

[ Szerkesztve ]

<< Heimdal >>

(#4347) Peter789


Peter789
senior tag

Sziasztok ismét!

Szeretnék egy UDP szerver programot írni, ami adatokat tud küldeni a rácsatlakozó kliens programnak. A kliens lehet akár a GPSGate vagy a TCP-Com amelyek az UDP forrásból virtuális sorosportra közvetítik az adatfolyamot (tetszőleges platformon) de vannak olyan programok is amelyek közvetlenül tudnak csatlakozni UDP portra (NMEA0183 sorok), nem csak sorosra

Ezt a példaprogramot találtam a témában legközelebbinek, viszont ez sem tökéletes. Egymással természetesen tökéletesen beszélgetnek, viszont ennek feltétele hogy a kliens egyszer küldjön valami szemetet a szervernek. Hogyan lehetne anélkül küldeni, hogy bármi beérkezőre csomagra várna a szerver oldal?

----------------------------------------------------------------------------------------------------------------- AquAgorA ...Pál apostol nyomában:                                                                          http://fleettracker.eu/index.php/component/aquagora

(#4348) kingabo válasza maathe (#4343) üzenetére


kingabo
őstag

Pl: [link]. Ha nem tetszik erre guglizz: notepad++ c compiler plugin
Vagy egy ide-t használsz, előbb írtak párat.

(#4349) maathe válasza PumpkinSeed (#4345) üzenetére


maathe
senior tag

.

[ Szerkesztve ]

(#4350) sztanozs válasza Peter789 (#4347) üzenetére


sztanozs
veterán

Ez nem küld hülyeséget, csak amit kell...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

Copyright © 2000-2024 PROHARDVER Informatikai Kft.