Hirdetés

2024. május 4., szombat

Gyorskeresés

Hozzászólások

(#5401) EQMontoya válasza sztanozs (#5400) üzenetére


EQMontoya
veterán

200ft-os csapolt sör? Ugyan, BME környékén szerintem 350-400 körül lesz az alja.

Same rules apply!

(#5402) sztanozs válasza EQMontoya (#5401) üzenetére


sztanozs
veterán

oké, akkor marad a tesco gazdaságos :)

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...

(#5403) Ver'alor


Ver'alor
tag

Heló, olyan problémám akadt, hogy egy program elején bekérek két számot integer típusban, de ezeket a program egy bizonyos szakaszában float típusban szeretném használni. Erre van valami megoldás?

May the 4th be with you!

(#5404) Karma válasza Ver'alor (#5403) üzenetére


Karma
félisten

Természetesen van, például írsz elég egy (float) castolást ahol úgy kellene használnod. Bár szerintem az osztástól eltekintve nem sok olyan helyzet van, ahol erre szükség lehet. Mit is szeretnél ezzel elérni?

“All nothings are not equal.”

(#5405) Ver'alor


Ver'alor
tag

Eltaláltad, osztani szeretnék :) .
Így gondoltad:
printf ("A ket szam hanyadosa: %f", (float)a/b);
??
Csakmert így működött, köszönöm!

[ Szerkesztve ]

May the 4th be with you!

(#5406) Ver'alor


Ver'alor
tag

Heló, megint én vagyok.
Az lenne a kérdésen, hogy hogyan lehet egy számot az n-edik hatványára emelni?
Lehet, hogy ezek alap dolgok, de elég kezdő vagyok, bocsi. :/

May the 4th be with you!

(#5407) kispx válasza Ver'alor (#5406) üzenetére


kispx
addikt

pow()

Vagy egy for ciklussal n-szer összeszorzod a számot .

(#5408) Ver'alor


Ver'alor
tag

Heló, köszi a választ, pow()-val sikerült :)
Még egy kérdésem lenne:
Lehet-e olyan epágazást csinálni, amiben a felhasználó nem egy számot ít be, aminek függvényében ugrik a program arra a bizonyos ágra, hanem egy szöveget ír be. Pl beítok egy országot, és kiírja annak a fővátosát, vagy valami hasonlót.

May the 4th be with you!

(#5409) kispx válasza Ver'alor (#5408) üzenetére


kispx
addikt

if (strcmp(valtozo, "Magyarorszag") == 0){
printf("Magyarorszag");
} else if (strcmp(valtozo, "Nemetorszag") == 0){
printf("Nemetorszag")
} else {
printf("Nincs ilyen orszag");
}

strcmp függvénnyel két stringet össze lehet hasonlítani.

if ... else if ... részhez egy kis leírás.

[ Szerkesztve ]

(#5410) Ver'alor válasza kispx (#5409) üzenetére


Ver'alor
tag

Köszönöm, az if else else if-ekel már ismertem, csak az strcmpt nem, de sikerült, köszönöm a gyors választ és a példát :R
Csak az nem annyira világos, hogy minek az az ==0 :/

[ Szerkesztve ]

May the 4th be with you!

(#5411) kispx válasza Ver'alor (#5410) üzenetére


kispx
addikt

Az strcmp 0-val tér vissza ha a két paramétere megegyezik. De a linkelt leírásban benne van.

if Return value < 0 then it indicates str1 is less than str2.
if Return value > 0 then it indicates str2 is less than str1.
if Return value = 0 then it indicates str1 is equal to str2.

Forrás

(#5412) Ver'alor


Ver'alor
tag

Heló, lenne efy kicsit másmilyen jellegű kérdérem.
Most fogok kezdeni a szegedi ságvári endre gyak. gimnáziumban, mégpedig infó orientált osztályban. Hallottam, hogy tanulni fogunk programozást, és úgy gondoltam, hogy hát csak legyen már egy megalapozott tudásom, elkezdtem tanul(gat)ni a c nyelvet. Az lenne a kérdésem, hogy esetleg valaki ismer-e olyat, aki itt tanul/végzett, mert érdekelne, hogy egészen pontosan milyen programozáso nyelvet tanul(t). Meg esetleg úgy a 4 év nagyobb témaköreit, mert gondolom ottár csaktán nem tanártól függ a tananyak, mert eddig általánosban 2 évig egy olyan tanárom volt, akivel painten kellett rajzolgatni (persze volt, aki élvezte, de voltunk páran, akikkel a hajunkat téptük, hogy legyen már vége az órának:) )

May the 4th be with you!

(#5413) EQMontoya válasza Ver'alor (#5412) üzenetére


EQMontoya
veterán

Hadde ma' nem is ugy hijjak! ;]

Same rules apply!

(#5414) Ver'alor


Ver'alor
tag

Nem értem, hogy ez miért olyan fontos, de én is tudom, hogy át lett nevezve, de ha megkérdezel egy ottani diákot, hogy hova jár, 100%, hogy azt mondja, hogy a ságváriba.

May the 4th be with you!

(#5415) EQMontoya válasza Ver'alor (#5414) üzenetére


EQMontoya
veterán

Csak trollkodok. ;)

Same rules apply!

(#5416) asuspc96


asuspc96
senior tag

él még a topic ? :DDD

(#5417) kispx válasza asuspc96 (#5416) üzenetére


kispx
addikt

Nem. De lassan itt a vizsgaidőszak szóval respawnolni fog a topic :)

(#5418) #36268800


#36268800
törölt tag

Sziasztok!

Kaptam még jó pár hónapja egy RAR fájlt, ami tele van hasznos dolgokkal, de sajnos jelszóval védett, amire nem emlékszem. Akitől kaptam, nyilván tudja és meg tudnám kérdezni, DE én arra gondoltam, hogy írni kellene egy C programot (nem letölteni egy már kész szoftvert), ami megfejti nekem a jelszót. Érdekel az IT biztonság, a vírusok, a vírusok elleni védekezés, az "ethical hacking", viszont totál zöldfülű vagyok ezen a téren, még soha nem foglalkoztam ilyesmivel. Valakinek van ötlete, hogyan lehetne belekezdeni egy efféle program megírásába? Akár együtt is elkészíthetnénk, soha nem dolgoztam még csapatban, jó lenne tapasztalatot szerezni ilyen téren is.

A kihívásoktól nem riadok vissza, az idő pedig nem sürget, tehát ha csak hétvégente foglalkozunk vele néhány órát, az sem akadály!

Köszi előre is a válaszokat, üdv!

(#5419) sztanozs válasza #36268800 (#5418) üzenetére


sztanozs
veterán

1. Utánanázel a RAR tömörítési eljárársnak
2. Utánanézel a RAR titkosításnak
3. Eldöntöd, hogy milyen jelszótörőt írsz (saját jelszótörő az alapoktól, vagy plugin valamelyik meglevő jelszótörőhöz)
4. Megírod

:DDD

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...

(#5420) zka67 válasza #36268800 (#5418) üzenetére


zka67
őstag

Szia, teljesen felesleges idő és energiapocsékolás egy filléres programot újból megírni, főleg úgy, hogy fogalmad sincs dolgokról. Próbáld ki, ha tetszik, vedd meg:

RAR Password Unlocker

(#5421) EQMontoya válasza sztanozs (#5419) üzenetére


EQMontoya
veterán

Aztán vegyél egy lehetőleg minimum 32 magos vasat (több jobb), mert ez egy kiválóan párhuzamosítható feladat.
Én mondjuk tuti c++-ban írnám, és szétdobnám threadekre.

Illetve egy szint fölött érdemes letenni róla, mert a brutefocre csúnyán exponenciális lesz.

Same rules apply!

(#5422) sztanozs válasza EQMontoya (#5421) üzenetére


sztanozs
veterán

Én inkább bérelnék egy kis amazon cluod service kapacitást a szuperül optimalizált kódomra... :DDD

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...

(#5423) EQMontoya válasza sztanozs (#5422) üzenetére


EQMontoya
veterán

Ha csak egyszer akarod használni, akkor az is megteszi valóban.

Same rules apply!

(#5424) alapz@j válasza #36268800 (#5418) üzenetére


alapz@j
tag

Ez a probléma bonyolultabb annál, sem hogy egy szabad hétvégéden nekiállj megoldani. Ha érdekel a titkosítás, mint programozási terület, ennél egyszerűbb dologgal kezdj szerintem.

(#5425) asuspc96 válasza sztanozs (#5422) üzenetére


asuspc96
senior tag

Hasonló létezik mèg ?
Pl van egy nagyon erőforrás igényes programom akkor azt feltöltöm egy hasonló szerverre majd "kidobja" nekem az eredményt ?
ha rossz a topik akkor mit ajánlotok hol kérdezzem meg ezt ?

(#5426) sztanozs válasza asuspc96 (#5425) üzenetére


sztanozs
veterán

Nem megoldást, hanem csak számítási kapacitást tudsz venni. Nem tudsz bármit feltölteni, hogy ott majd jól megoldják.

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...

(#5427) #36268800 válasza alapz@j (#5424) üzenetére


#36268800
törölt tag

Tudsz valamit javasolni?

(#5428) alapz@j válasza #36268800 (#5427) üzenetére


alapz@j
tag

Írj egy one time pad alkalmazást. Egy hex és base64 kódolót/dekódolót. Aztán valami egyszerűbb ciphert (pl. rot13) használó kis programot. Aztán írj egy programot, amiben egy külső titkosító könyvtár (wincrypto, libnettle, openssl, akármi) egyszerű szimmetrikus titkosítását használod (xxtea, aes, chacha, stb.). Közben ismerkedj meg a secure random, a kriptográfiai hash, a keyed hash fogalmával és használatával. Ezután jöhet az authenticated titkosítás, a nyilvános kulcsú kriptográfia és a többi finomság. És mindeközben sajátítsd el azt, hogyan lehet biztonságos C programot írni, amelyik nem szivárogtat ki információkat az általa kezelt adatokról.

(#5429) #36268800 válasza alapz@j (#5428) üzenetére


#36268800
törölt tag

Köszi, ez már így valami.

(#5430) r4z


r4z
nagyúr

Sziasztok!

Adott egy stringet módosító függvény, elég egyszerű:

void stringedit(char *old, char *new){
if (strcmp(new, old) != 0){
free(old);
old = new;
}
else
free(new);
}

A régi string mindig adott (és mindig van tartalma), az újat egy scanf-fel olvasom be a következőképpen, mert szóközöket is tartalmazhat:

scanf(" %[^\n]", new);

A kérdésem az lenne, hogy hogyan lehetne a legelegánsabban megoldani azt, ha nem akarok változtatni az eredeti stringen, de mégis meg kell hívnom a scanf-et és a függvényt?

[ Szerkesztve ]

I don't love people. I love 911s, Astral Projection and french fries, in that order.

(#5431) EQMontoya válasza r4z (#5430) üzenetére


EQMontoya
veterán

Őszinte leszek, nekem nem sikerült megérteni a kérdésed.

Same rules apply!

(#5432) r4z válasza EQMontoya (#5431) üzenetére


r4z
nagyúr

Akkor megpróbálom szemléletesebben:

- kiírja a régi stringet a program
- új sor, jön a scanf, beolvasok egy stringet
- meghívom a stringeditet

Ha nem akarok változtatni, akkor újra le kell írnom a teljes stringet a második lépésben, ezt szeretném elkerülni mondjuk egy tab és az enter leütésével. A tabot és az entert viszont nem érzékeli érvényes inputként a scanf, így ő fut tovább, és várja a stringet.

[ Szerkesztve ]

I don't love people. I love 911s, Astral Projection and french fries, in that order.

(#5433) EQMontoya válasza r4z (#5432) üzenetére


EQMontoya
veterán

Ez ebben a formában így nem fog menni.
A scanf ignorálja a sor eleji whitespace-eket, így a \n-t is.
Ha kizárólag stringet szeretnél olvasni, akkor használj fgets-t.

És a megoldás:
Csinálsz egy ÚJ buffert. (char tömb)
Beleolvasol fgets-el.
Megnézed az új buffert. Ha csak egy "\n" van benne, akkor nem adott meg semmit a user, nem használod a stringet. Ha van benne bármi más, akkor meg használod. (okosan: strlen)

Same rules apply!

(#5434) r4z válasza EQMontoya (#5433) üzenetére


r4z
nagyúr

Köszönöm!

Sajnos buffert nem adtak (még) le előadáson, úgyhogy azt inkább még nem használom, de kipróbáltam, azt csinálja, amit szeretnék. :R Egyelőre átírtam a függvényt, hogy rákérdezzen külön a módosításra, majd legfeljebb felülírom ezzel.

[ Szerkesztve ]

I don't love people. I love 911s, Astral Projection and french fries, in that order.

(#5435) EQMontoya válasza r4z (#5434) üzenetére


EQMontoya
veterán

Mi ez, BME prog1?

Same rules apply!

(#5436) r4z válasza EQMontoya (#5435) üzenetére


r4z
nagyúr

Jackpot :D

I don't love people. I love 911s, Astral Projection and french fries, in that order.

(#5437) EQMontoya válasza r4z (#5436) üzenetére


EQMontoya
veterán

Ott végeztem én is. :)
Buffer == egy karakter tömb, semmi extra.
Tehát az egyikbe olvasol, a másikat használod. Ha nem olvastál be semmi értelmeset, akkor nem csinálsz semmit, ha beolvastál valami értelmeset, akkor a beolvasós tömb tartalmát átmásolod a másikba (strcpy).

Same rules apply!

(#5438) Szirikee


Szirikee
újonc

Sziasztok.
Lenne egy fájlkezeléses problémám... Egy .dat kiterjesztésű fájlból olvasunk be adatokat. Pár diáknév van minden egyes sorban, és mellettük szóközzel tagolva a kapott érdemjegyük. A programban (amit bemásoltam) már megvannak az egységes számítások (az egész osztályra nézve), viszont az lenne a következő feladatunk, hogy minden egyes diákot nézzünk végig, és :
- irassuk ki az átlagukat (fejenként, egységesen már megvan)
- vizsgáljuk meg azt, hogy mekkora a legjobb átlag, és hogy kié.

Itt az eddig megírt algoritmus (lejjebb személtetem a .dat kiterjesztésű fájlt is!):

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

using namespace std;

int main() {
int n,db_nev;
float db_jegy,jegy_ossz;
string s,nev;

cout << "A jegyek.dat-bol olvasunk be." << endl;
ifstream f;
f.open("jegyek1.dat");
if (f.fail())
{
cout << "Hiba megnyitas soran" << endl;
cin.get();
return 1;
}
db_nev=0;
db_jegy=0;
jegy_ossz=0;
while(!f.eof())
{
f>>s;
n=atoi(s.c_str());

if (n==0)

{
db_nev++;
cout<<endl<<s<<" ";
}

else
{
db_jegy++;
jegy_ossz=jegy_ossz+n;
cout<<s<<" ";
}
}
f.close();

cout<<endl<<endl<<"Nevek szama: "<<db_nev<<endl;
cout<<"Jegyek szama: "<<db_jegy<<endl;
cout<<"Jegyek osszege: "<<jegy_ossz<<endl;
cout<<"Az osztaly atlaga: "<<jegy_ossz/db_jegy<<"\n"<<endl;

cin.get();
return 0;
}

.DAT KITERJESZTÉSŰ FÁJL:
Andi 4 4 3 5
Bela 4 5 4 3
Geza 2 2 4 4
Aladar 3 1 4 5
Eva 5 5 5
Eszter 3 3 5 4
Sandor 4 5 3 2

Előre is köszönöm a válaszokat! :)

(#5439) EQMontoya válasza Szirikee (#5438) üzenetére


EQMontoya
veterán

Csak két probléma van:
1, Nem tettél fel kérdést
2, A kódod c++, aminek inkább a c++ topikban van a helye.

Same rules apply!

(#5440) dabadab válasza r4z (#5430) üzenetére


dabadab
titán

"Adott egy stringet módosító függvény, elég egyszerű:"

...és hibás :) Az "old = new" rész egyáltalá nem azt csinálja, amit te szeretnél, azok csak a stringedit két lokális változóját módosítják, nem a paraméternek megadottakat.

Ezenkívül az elég rossz gyakorlat, hogy hagysz nem feltűnően érvénytelen pointerek, márpedig amikor lefut ez a függvény, utána nem fogod tudni azt, hogy a new az érvényes-e, ezért ilyen esetekben nagyon praktikus lenullázni (plusz ez segít abban, hogy gyorsabban kibukjon az, ha ezután valahol mégis használni akarnád, annak ellenére, hogy érvénytelen).

Ja, és én a magam részéről a "new" használtatát kerülném még C kódban is.

DRM is theft

(#5441) maestro87


maestro87
őstag

Sziasztok!

Lenne pár kérdésem egy gyári függvénnyel, mivel nem vagyok egy programozó zseni.
1. while (WR) continue; kifejezésbe minek a continue? Szerintem tök felesleges, vagy mégsem? :F

2. #define EEPROM_READ(addr) ((EEADR=(addr)),(RD=1),EEDATA)
Ezt sem tudom értelmezni, hogy miért vesszővel és nem pontos vesszővel vannak elválasztva egymástól az utasítások. :F
Ráadásul ezt egy függvény return-nal meghívja: return EEPROM_READ(addr);
És elvileg az EEDATA-val kellene hogy visszatérjen, szóval miért nem egyszerűen return EEDATA?

Valaki elmagyarázná ezt nekem? :R

(#5442) Karma válasza maestro87 (#5441) üzenetére


Karma
félisten

1) Nekem is feeslegesnek tűnik, mintha nem akartak volna üres zárójeleket írni.

2) A vessző egy alap C operátor, azt jelenti, hogy sorban végrehajtja a három műveletet, és az utolsónak az eredményét adja vissza. Az első két tag elég fontos, ezzel címezi meg az EEPROM adott celláját és engedélyezi az olvasást – ezek nélkül a harmadik tagnak semmi értelme.

[ Szerkesztve ]

“All nothings are not equal.”

(#5443) maestro87 válasza Karma (#5442) üzenetére


maestro87
őstag

:R Köszi, ezt így utólag sejtettem, csak sosem láttam/használtam még ezt a módszert. De most már fogom tudni és használni is fogom, hogy más kezdőknek se legyen egyértelmű az ÉN kódom. ;]

Most találtam még egy számomra értelmetlen felesleges utasítást:

EEADRH = (badd >> 8) & 0x03;
EEADR = (badd & 0x0ff);

1024 byte-os EEPROM, azaz 10 bites a cím, ezt osztja ketté (8+2 bit). Itt szintén feleslegesnek érzem, hogy 1-esekkel (&0x03, &0xff) 'és'-eli a cím biteket. Mert ha 1 volt, akkor 1 marad, ha meg 0 volt, akkor 0 marad. Kíváncsi lennék, hogy mikor írják a programot a nagy cégek programozói (pl. Microchip), milyen előre megfontolt szándékból tesznek be ilyen felesleges utasításokat? :D Azért egy 'és' kapcsolat is csak helyet foglal a szűkös program memóriában... :U

[ Szerkesztve ]

(#5444) kispx válasza maestro87 (#5443) üzenetére


kispx
addikt

A 0x0ff-vel való 'és'-elés kell, mert ez távolítja el a 10 bites cím első két bitjét.
0x03-mal való 'és'-elésre miértjére egyelőre nem tudok választ adni. Akkor látnám értelmét, hogy ha a 11. 12. ... biteket is ki szeretné nullázni.

(#5445) buherton válasza maestro87 (#5443) üzenetére


buherton
őstag

Hülyeség ellen védenek a maszkolással. Érdemes rászokni, mert sok bosszságtól kímél meg.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#5446) zka67 válasza maestro87 (#5443) üzenetére


zka67
őstag

A Keil ARM C fordítója pl. figyelmen kívül hagyja az 0xFF-el történő maszkolást, ha 8 bites a cél operandus, azaz nem tesz bele feleslegesen még egy utasítást a lefordított kódba. De én is mindig beleírom a forráskódba, mert így értelmezhetőbb a program.

(#5447) maestro87 válasza kispx (#5444) üzenetére


maestro87
őstag

A 'badd' az egy 16 bites unsigned int változó. Az 'EEADR' az meg 8 bites regiszter. Szerintem így is úgy is elvész a felső bájt, nem? A 11. 12. ... bit meg nem is írható/olvasható.

buherton: Értem, megpróbálok akkor rászokni, de mi zavarhatja be ezt az egyszerű műveletet? :F
Meg van valamilyen iromány erről (lehetőleg magyar), hogy milyen esetekben célszerű ezt alkalmazni?

(#5446) zka67: Szerintem meg csak megzavarja az egyszerű embert.:)

(#5448) buherton válasza maestro87 (#5447) üzenetére


buherton
őstag

Írásra törlődő regiszterek esetén határozottan célszerű a maszkolás, vagy ha nem direktben egy címre írsz, hanem mondjuk egy struktúra pointer által mutatt pointerre, ahol már nincs castolás, és kapásból memória korrupció léphet fel. Ez kvázi egy ököl szabály, hogy csak azokat a biteket engedjük át, ami valós értéket képviselnek. A többi maszkoljuk.

Közben eszembe jutott még egy példa. Mi van ha a változó értéke éppenséggel -1? Az egész változó tele van 1-esekkel.

MOD: ilyenekre nincs iromány.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#5449) maestro87 válasza buherton (#5448) üzenetére


maestro87
őstag

:R Akkor megpróbálok rászokni erre ha már a dohányzásra nem sikerült.:D Bár még most sem teljesen világos az oka, de talán majd idővel rájövök.:)

[ Szerkesztve ]

(#5450) asuspc96 válasza zka67 (#5420) üzenetére


asuspc96
senior tag

"Demo Limitations

1. The trial version can only recover the first three characters of the password."

Ismersz olyat ami működik is ? :DDD

Copyright © 2000-2024 PROHARDVER Informatikai Kft.