-
Fototrend
Új hozzászólás Aktív témák
-
bdav
őstag
válasz Bazsesz #1767 üzenetére
na ezt a hszedet nem tudom értelmezni. de ha az eredeti problémát jól vágom akkor annyi kell h. a '\n' '\t' és ' ' karaktereket számold. amit írtál progi az minden karakter előfordulását nézi, tök feleslegesen. (ráadásul külön függvényt kér)
én így írnám meg:
void charCount(char* fileName)
{
FILE* f=fopen(''fileName'', ''r'');
int s=0;
int spaceCount=0;
int nCount=0;
int tCount=0;
do
{
s=fgetc(f);
if(s=='\n') nCount++;
if(s=='\t') tCount++;
if(s==' ') spaceCount++;
} while(s!=EOF);
printf(''\\n száma: %d'\n\\t száma: %d\nspace száma: %d', nCount, tCount, spaceCount);
}
mod: amit te irtál az is kb. ugyanezt teszi, csak megszámol mindent feleslegesen. ja és a while és for ciklust megint felcserélted. Kiírásnál meg nem lennék benne biztso hogyha a \n-t karakterként írod ki akkor nem tesz e inkább ujsort (ezért írok én pl. \\-t). egy iffel rá tudsz szürni mondjuk és akkor csak a szükségeseket írja ki (if(c[ i ]=='\n') printf(''\\n száma: %d'', c[ i ]);)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
-
bdav
őstag
-
bdav
őstag
javaban van BigInteger osztály, onnan lehet lopni az ötleteket amugy ezzel az osztállyal már relative könnyen lehetne rsa-t implementálni (ha gyors a modpow amit csináltak benne), ha lesz időm meg kedvem meg is csinálom (persze h. használható cucc legyen belőle az lényegesen több meló)
ugyanakkor c++ ban sokkal kényelmesebb, ha egyszer megvan a bigintegered, az operator overload miatt (ez hiányzik nekem igazán a javaból)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
-
-
bdav
őstag
.NET az az ''MS Javája'' valóban hasonló koncepció, és igen gondolom a C#, VB.net kódot a .net interpreter által végrehajthatóra fordítja. Jövő félév után már többet tudok róla mondani
ja c/c++ ben mindent lehet. de mindent lehet assemblyvel is csak kicsit nehezebb. el kell dönteni hogy a hatékonyság / könnyebb programozás közül mit akarsz.
Delphi manapság nem túl népszerű, nagyon kevesen fejlesztenek benne
igen, a modern nyelvek jó része a C-ből ''származik'', érdemes megtanulni kicsit. Symbian az egy oprendszer, opengl meg sztem függvénykönyvtár (de ebben nem vagyok biztos).
64bites kód sztem a fordítón múlik igazán.
Kedvenc ide: Eclipse javához, visual studio c++-hoz és majd gondolom .nethez is10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
hát éppen van lehetőség egy nyitott filestreamban hogy mozgasd az aktuális írási pozíciót (seegk és seekp) de nem ismerem ezt a lehetőséget jól, most találtam a googleval. nahh ha ez megvan és ismered a fájl sorainak hosszát, akkor sztem el tudsz navigálni a sorzáró \n (vagy \n\r) elé és oda beírhatsz, így kvázi új oszlopod lesz. (nézz utána ennek még, próbálgasd előtte)
de nekem szimpatikusabb lenne tömbben gyűjteni a kiírandó adatokat és csak a szim. végén létrehozni a fájlt
mod most látom h. jo lenne tömbbel is csak az implementácio hiányzik. nahh akkor:
Legyen egy tömböd:
[code] tomb[sorok][oszlopok] [/code]
ezt fel tudod tölteni két ciklussal:
[code]
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++) //ez léptet a köv. oszlopra
for(sorok=0; sorok<maxsorok; sorok++) // ez egy oszlop adatait szedi össze
tomb[sorok][oszlopok]= //ide elvégzed a müveletet
[/code]
kiíráskor az kell hogy egy sor kiírásakor minden oszlop első eleme szerepeljen
[code]
for(sorok=0; sorok<maxsorok; sorok++)
{
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++)
file<<tomb[sorok][oszlopok]<<'\t'; //kiirkálod az oszlopok első elemeit
file<<'\n'; //majd sor vége, köv. körben jönnek a 2. elemek.
}
[/code]
a lényeg h. a két tömbbejárásnál más legyen a tömbindexeken végigfutó ciklusok sorendje.
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
óbasszus nem [code] a kód tag. ááá na 2. nekifutás:
Legyen egy tömböd:
tomb[sorok][oszlopok]
ezt fel tudod tölteni két ciklussal:
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++) //ez léptet a köv. oszlopra
for(sorok=0; sorok<maxsorok; sorok++) // ez egy oszlop adatait szedi össze
tomb[sorok][oszlopok]= //ide elvégzed a müveletet
kiíráskor az kell hogy egy sor kiírásakor minden oszlop első eleme szerepeljen
for(sorok=0; sorok<maxsorok; sorok++)
{
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++)
file<<tomb[sorok][oszlopok]<<'\t'; //kiirkálod az oszlopok első elemeit
file<<'\n'; //majd sor vége, köv. körben jönnek a 2. elemek.
}10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #1935 üzenetére
hát ciklusmagban még eszembe se jutott, ha erre gondolsz: for(...) { int i...} sztem ez így nem lesz jó. Ciklus deklarációban lehet a C++-ban: for(int i=...;...){} de fordítófüggő hogy a változó élettartama mennyi lesz, szóvalezzel óvatosan (ugyis beugat ha nem jó )
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #1937 üzenetére
hogyne lenne.
int** tomb=malloc(sizeof(int*), maxsorok);
for(i=0; i<maxsorok; i++)
{
tomb[ i ]=malloc(sizeof(int), maxoszlopok);
}
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #1939 üzenetére
az fentebb van. amit most írtam le az a 2D tömb lefoglalása volt C-ben. (c++ban a new használatos). utána már tomb[][] - vel lehet rá hivatkozni; tomb[a][ b] helyettesíthető pointerekkel, ha jól emléxem akkor így: ((tomb+a)*+b)* (bár ezt sztem senki sem használja, nem is biztos hogy így korrekt teljesen, de a [] kikerülhető az fix)
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
nincs mit és persze h. buzerálnod kell, csak az alapötletet adtam meg tab az '\t' karakter (mint a '\n' ugy müködik) de egyébként sztem tökmindegy hogy mit raksz bele
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #2005 üzenetére
de én elképzelhetőnek tartom. c/c++ alatt mondjuk egy példa. létrehozol egy pointert valahova mint változó. oda beírsz valamit. majd átkasztolod a pointered függvénypointerré vagy objektumra mutató pointerré és meghívod a függvénypointert / objektum tagfüggvényét (függvény ptr-t sose használtam de létezik, nem tudom hogy meg lehet e csinálni egy ilyen cast - ot, de az objektumosat biztos). na a hívás után szépen az fog programutasításként értelmeződni amit előzőleg beírtál a memóriába. persze ehhez nagyon kell tudni hogy mit írsz be (nem tudom hogy a vírusok így csinálják e). ezzel a módszerrel felülírhatod a programod normális utasítás részét is ha eltalálod a memóriacímeket.
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
new és delete csak C++-ban van. A legtöbb mai fejlesztőprogi ami erre való az C/C++. A kérdés hogy neked jó-e a C++ vagy szigorúan C kell.
intekkel írom, mert az egyszerűbb most
C megoldás (ebbe lehet hogy van hiba, tök rég nem írtam már Cben dinamikus foglalást):
int tomb**=malloc(8*sizeof(int*)); //ez lefoglal 8 int* nak helyet
for(i=0; i<8; i++) //i -t deklaráld azért előbb
{
tomb[ i]=malloc(n*sizeof(int)); //ez minden tomb[ i]-nek foglal n int helyet
}
A végén egy free(tomb); hívás illik.
ha C++ van:
int tomb**=new int*[8]; //8 int* nak a tömbje
for(int i=0; i<8; i++) //itt már lehet i-t deklarálni menet közben is
{
tomb[ i]=new int[n];
}
végén delete[] tomb;
[Szerkesztve]
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
igen, int** tomb. sry reggel van még
és akkor hangsúlyozom hogy a 2. verzió az csak C++ alatt érvényes (ha gyakorlati problémát oldasz meg vele akkor tökmind1, de ha pl. suliba kell ahol C-t tanultok épp akkor nem fogják szeretni)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
hát sztem .net framework pl. linux alá nincs (msdnen legalábbis nem láttam nyomát - meg ki csinálna ilyet?) java ebből a szempontból jobb, fájlkezelés ott se annyira gáz, de az ftp valóban nehezebb egyébként meg mikoljannak ha még sose programozott akkor az alapokkal kéne tisztába jönnie (változó, ciklus, stb...), és csak utána nekiállni ftp klienst írni. .Net -et én most kezdem tanulni egyetemen, aztán azt mondták h. tiszta agymosás (tapasztalom is, 2 betűnél ritkán kell többet beírni...), másban utána már nem tud programozni az ember, úgyh. félek is tőle
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Yeti910331 #2071 üzenetére
valszeg sokba. egyrészt ha elvileg működne is a dolog, szükséged lenne az eredeti játék forráskódjára, ami nem egy egyszerű menet annyira azért. másrészt én úgy vélem hogy régebben annyira nem különült el a játék grafikus motorja a többitől (minél régebbi annál kevésbé). harmadrészt a programozók drágán dolgoznak (és pl. nem is biztos hogy egy programozó elég)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Jester01 #2074 üzenetére
hát, akkor tévedtem és van bár a többieknek meg nem értem a motivációt, ezzel tkp a ms-nek segítenek.
(mod) na jó ez így hülyeség, nyilván valamilyen érdekük fűződik hozzá, különben nem csinálnának ilyet. de akkoris furcsa kicsit.
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Pho3bus #2089 üzenetére
arra gondolsz hogy beírod neki azt hogy 3468 és kiírja hogy háromezer-négyszázhatvannyolc?
azt vkönnyű megoldani hogy meglegyenek az egyes helyiértékek: legyen x a bemeneted, ekkor legkisebb helyiérték=x%10; x=(x-x%10)/10; és így tovább amíg 0 nem lesz x. Ezek után most fel kéne lapozni a magyar helyesírási szabályzatot hogy hogy is van pontosan (2000ig mindentegybeírunk utána kötőjelezünk kivéve ha ''kerek'' a szám)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Pho3bus #2093 üzenetére
ja hogy ez így van beolvasva? akkor ez ugyis char* ba kerül és megvan helyiértékesen (ne próbáld számként tárolni)
a másikra meg: általános sulis matematikai anyag részeként tanult összeadó és kivonó algoritmus kell10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Pho3bus #2097 üzenetére
ha a helyiértékes felbontás megvan akkor én hármasával szedném a számjegyeket (száz - tíz - egy), u.i ezek közösek, és csak utána kell írni hogy ezer v. millió ha 3mal odébb vannak. a neccesebb résznek én a kötőjelezés eldöntését tartom, de tényleg ott a pontos szabályoknak sztem nézz utána.
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
ha charként olvasod be akkor ha azt látod a fájlban hogy '2' akkor nem 2 fog bekerülni hanem a '2' mint karakter kódja, ezért az eltérés, ezen nem tudsz segíteni. A jobbra igazításhoz pedig vagy megszámolod hogy milyen hosszú a számod, vagy pedig megfordítva írod bele a tömbbe (tomb [0 ] lesz a legkisebb helyiértéked)
gabesz: kicsit konkrétabban miről lenne szó?
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #2118 üzenetére
használd csak nyugodtan, ha direkt nem kötötték ki hogy nem lehet, télleg azért rakták bele ha nagyon nem akarsz akkor kb. 4 sorban lehet írni sajátot, nem bonyolult annyira.
10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
ezzel a legnagyobb baj az h. karaktert akarsz stringgel hasonlítani. u.i. ha jól látom ahogy a motor legyakta az [ i ] -t akkor ez van:
switch(str_in [i ])
{
...
case ''á''
...
namost az str_in[ i] az 1 db char típusú lesz a ''á'' viszont char* ot eredményez. ''á'' helyett 'á' kellene.
másik gáz az lesz hogy az str_outban mindig csak egy karakter kerül majd be. ráadásul ezt megcsinálod hogy str_out = ''á'' akkor az foglal szépen helyet egy egy karakter hosszú stringnek, lezárja \0-al aztán ha mögé akarsz írni akkor az hogy string_out[ 2] az nem túl szép és nem is fog működni (az 1 dolog hogy nem lefoglalt memóriaterületre írsz, de ugyis csak a \0-ig látja stringnek, ha meg azt írod felül akkor a memóriát kilistázza majd az első 0-ig )
a helyedben én írnék egy eljárást ami két char* -ot vár paraméterül és a másodikat hozzáfűzi az elsőhöz (nemtom van e ilyen beépített függvény v. nincs). Vagy használj C++-t és String osztályt
mégvalami: 2 C stringet nem tudsz ==-vel összehasonlítani, arra való az strcmp, pár hszel ezelőtt volt róla szó.
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz Forest_roby #2146 üzenetére
én így csinálnám:
void append(char* str1, char* str2)
{
int len=strlen(str1)+strlen(str2)+1;
char* temp=str1;
str1=malloc(sizeof(char)*len);
//itt valahogy belemásolod az str1be a tempet és mögéírod str2-t, akár beépített
//függvényekkel vagy egy ciklussal, lezárni ne felejtsd el
free(temp);
}
ekkor az első paraméterhez hozzáfűzi a másodikat.
ja és kimenet számára nem kell lefoglalni előre helyet, append foglal magának (ha raksz bele ellenőrzést str1 nullságára, akkor lehet így:
char* str=null;
append(str, ''akarmi'' /*ide jöhet változónév is */ );
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
bdav
őstag
válasz bambano #2154 üzenetére
str2t majd a hívó fél, ha változót adsz paraméterül akkor ciki lenne ha felszabadítaná, ha nem akkor abban nem vagyok biztos
realloccal igazad van, de C-ből a beépített függvényekből elég keveset tudok fejből (amikor tanultam nem kellett, azóta meg nem programozok C-ben)10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Kerékpárosok, bringások ide!
- Háztartási gépek
- Genshin Impact (PC, PS4, Android, iOS)
- Kertészet, mezőgazdaság topik
- Milyen alaplapot vegyek?
- exHWSW - Értünk mindenhez IS
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Kamionok, fuvarozás, logisztika topik
- A Watch7-tel debütálhat a Samsung vércukormérője
- Hálózati / IP kamera
- További aktív témák...
- APPLE MacBook Air 2020 13" Retina - M1 / 8GB / 256 GB SSD / MAGYAR / 96% akku, 81 ciklus / Garancia
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!