- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- hdanesz: Hyundai Ioniq 28 kWh 2018 2. felvonás
- Argos: Szeretem az ecetfát
- btz: Internet fejlesztés országosan!
- eBay-es kütyük kis pénzért
- Elektromos rásegítésű kerékpárok
-
LOGOUT
Új hozzászólás Aktív témák
-
MRX'
újonc
válasz
Forest_roby #1830 üzenetére
-
ALI_G
veterán
válasz
Forest_roby #2513 üzenetére
persze, először állóképet kell megtanuld, hogy rajzold, aztán jöhet a mozgó (opengl-ben mozoghatnak maguktól a tárgyak, vagy akár bill lenyomáskor, esemény bekövetkeztekor stb.).
még 1 link: [link] és itt a mozgások, de az egész jegyzet használható. van egy csomó anyagom opengl-hez, kötelező tárgyam volt.
adnál egy mail címet? pl privibe
[Szerkesztve] -
doc
nagyúr
válasz
Forest_roby #2511 üzenetére
szerintem arra amit leírtál, érdemes megnézni a Blendert. bár ezt a részét nem használtam, elég komplex dolgokat tud modellezni, pl. nagyon jó a folyadékfizikája
az opengl nagyon más, az megjelenítésért felel, magyarul ha kiszámolod hogy pontosan hol a golyó, az opengl-el ki tudod rajzolni
az előbb linkelt ODE egy c-hez készült függvénykönyvtár, ami fizikai folyamatokat modellez, a segítségével egyszerűen lehet pl. autószimulátort csinálni anélkül, hogy neked kéne számolgatni hogy egy ütközésnél vagy kanyarodásnál mivel mi történik -
doc
nagyúr
válasz
Forest_roby #2504 üzenetére
esetleg még egy ötlet: ingyenes fizikai könyvtár pl. az ODE [link]
-
ALI_G
veterán
válasz
Forest_roby #2506 üzenetére
de nagyon besóztak öreg
Azért azt olvastam, hogy linux alatt (lehet csak bizonyos) néha akadnak az alkalmazások. Az is lehet driver híja volt a dolognak, nem most olvastam, régen meg alig volt rendes driver még alá. Nézz be az openGl topicba. Nekünk suliban tökéletesen be volt állítva asszem red hut alá, de most mintha más lenne fent nekik.
Egyébként simán C-ben lehet fejleszteni opengl-t probléma nélkül.
Itt egy kiindulási link: [link] -
ALI_G
veterán
válasz
Forest_roby #2504 üzenetére
opengl?
-
akasp
senior tag
válasz
Forest_roby #2450 üzenetére
offosa kérdés, de vki nem tud-e egy olyan programot, amibe be kell írni az előre (könyvben vagy más helyen) leírt számokat és magától megoldja, kitölti helyesen.
tudnilik matektáborba azt csináltuk, hogy ki voltak tűzdelve a falra a sudokuk, és batkáér meg lehetett oldani. mi meg azt csináltuk, hogy míg tanárok kajáltak, mi besunnyogtunk a szobájukba, és az ágyakon szét volt dobálva a megolásos papír. szépen azt telcsin lefényképeztük és beadtuk, mindegyikunk kapott jósok batkát. csak az volt a baj, hog eladtuk másoknak és mégnagyobb batkaösszeg ütötte markunkat, csak az lett a vége, hogy kitudódott.
szal a jövőre nézve keresek megoldásthogy miképp tehetünkmajd szert batkára, márpedig sudoku bizt. hogy lesz és van-e ilyen megoldóprogram??
köszi a válaszokat, jöhet e-mail, privi, akármi, és bocs az offér -
válasz
Forest_roby #2451 üzenetére
Nem tudom, de robotiranyitasbol nekunk orrba-szajba ment a linearis algebra, vagyis ugy vettek, h az mindenkinek kisujjaban van.
-
Lortech
addikt
válasz
Forest_roby #2451 üzenetére
Pedig nem rossz dolog, csak ugye nem progtanárok, hanem matektanárok tanítják, és (nálunk legalábbis) nem mutatják be a lehetséges alkalmazását. Pl elég nehéz lenne megérteni, vagy megcsinálni egy 3d-s teret vektorok és mátrixok nélkül.
mobal: sorry, én feladtam, de hátha jön valami médium, aki segíteni tud a leírásaid alapján.
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #2438 üzenetére
szoktam programozni, de a vi-t bottal sem piszkálnám.
notepad++ nálam nagyon bevált, főleg a code folding miatt. ha nincs erre szükséged, akkor med, esetleg textpad, editplus, ultraedit, stb.
[Szerkesztve] -
Speeedfire
félisten
válasz
Forest_roby #2436 üzenetére
köszi! a notepad biztos jó lesz!
a másikat nem ismerem! -
Jester01
veterán
válasz
Forest_roby #2366 üzenetére
Reggel a fenét
Az attól függ milyen build rendszert használsz. De ha belenézel a makefile-be, akkor nyilván magad is megtalálod. -
Jester01
veterán
válasz
Forest_roby #2336 üzenetére
Az union nem helyettesíti a 2 dimenziós tömböt (legalábbis az elsõ hszedben leírt feltételek szerint), csak az ide-oda konverziótól mentett volna meg.
-
Jester01
veterán
válasz
Forest_roby #2333 üzenetére
Ha a méretét maximalizáltad, akkor sima ügy. Kiírod az új kezdõ sor(oka)t. Egyben berántod a bemenõ fájlt memóriába, megkeresed a törlendõ blokk végét (n. soremelés karakter) és onnan kezdve visszaírod.
Soronként olvasással is meg lehet csinálni. Miután kiírtad az új kezdõsorokat szépen soronként beolvasod a fájlt, de a kiírást csak a megfelelõ sor után kezded.
MOD: mellékes javítás az elõzõ hsz-hez: az 'a' betû kódja 97, mert a 65 a nagy A.
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2332 üzenetére
12:00 akár AM akár PM már holnap van
union elem
{
char c;
int x;
};
...
union elem tomb[2];
tomb[0].c = 'a';
tomb[1].x = 1000;
Az a lényeg, hogy az union mezõi egymást átfedik a memóriában, tehát mindig csak az egyik használható. Hogy melyik, azt neked kell tudni. A fenti példában a tomb[0].x is helyes kifejezés, de az értékét nem lehet tudni azon túlmenõen, hogy a legalsó byte 65 lesz (az 'a' betû kódja). -
Jester01
veterán
válasz
Forest_roby #2330 üzenetére
A kétdimenziós tömb két indexet használ: t[1][2] alakban.
A több típus tárolásához pedig nem struct, hanem union a célszerû (ha egy cellába nem kerülhet egyszerre mind a 2)
A 12:00 után az nem holnap van?
MOD: alternatív megoldás lehet egydimenziós tömb használata, az indexek megfelelõ leképezésével.
[Szerkesztve] -
válasz
Forest_roby #2319 üzenetére
ha jól értem linux alá tetted fel a dev c -t ami dll eket hiányol. namármost ha dev c -s project akkor passz. ha nem csak sima forrásfájlod van letudod fordítani. amúgy meg ha a linux dll -t hiányol akkor az furi de sztem másold át win ből.
és ez? [link] -
válasz
Forest_roby #2311 üzenetére
használj g++ -t. nyiss terminált írd be man g++
-
Forest_roby
őstag
válasz
Forest_roby #2311 üzenetére
jó, ez nagyából megvan, de most kismillio *****.h file-t hiányol.
-
PazsitZ
addikt
válasz
Forest_roby #2290 üzenetére
Működik, köszi szépen!
(#2291) shev7: igen pont körbeforgos kell nekem! Neked is köszi!
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2286 üzenetére
Ja talán jó lesz az strcmp oda. De zárójelek nélkül, mert akkor kapod meg a címét! Igy egy függvényhívás lesz, ráadásul paraméterek nélkül. Nem is értem hogy fordulhat le, bár sikított érte a fordító.
MOD: Az az strlen-es warning is erõsen gyanús...
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2284 üzenetére
word_tree = g_tree_new(strcmp());
Ez mi akar lenni?
MOD: amúgy szokás szerint jó lenne a teljes progi + makefile hogy ki lehessen próbálni.
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2266 üzenetére
Az a baj, hogy a tömböt lokálisan foglaltad le (a veremben lesz) és így megszűnik amikor a függvény visszatér.
-
shev7
veterán
válasz
Forest_roby #2175 üzenetére
azthiszem c-ben is mukodik, hogy eleirsz egy 0x-et. Tehat az á az a 0xe1.
Vagy atszamolod decimalisba. -
pawee
tag
válasz
Forest_roby #2168 üzenetére
egyébként azt ajánlották hogy ezzel a kódlappal csináljam
http://www.aihara.co.jp/~taiji/tops/images/iso-8859-2.gif
és ebben ahogy nézem van ékezetes betű -
pawee
tag
válasz
Forest_roby #2150 üzenetére
ha esetleg sikerül, akkor átnyomhatnád a forrást, megnézném, tényleg érdekes!!!
-
pawee
tag
válasz
Forest_roby #2147 üzenetére
thx mindenkinek, asszem menni fog, minnyárt neki állok, majd eccer leisszuk egy pár sörrel...
MOD: persze, ha van még esetleg vmi építő ötlet, szívsen fogadom
[Szerkesztve] -
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] -
Forest_roby
őstag
válasz
Forest_roby #2146 üzenetére
mondjuk én ilyesmire gondoltam:
Feltöltöd a táblázatodta ugy, ahogy Jester01 mutatta:
char* tabla[255] = {0, }
tabla[ (unsigned char)'á' ] = ''a''';
tabla[ (unsigned char)'é' ] = ''e''';
stb....
...
utánna lefoglalsz egy elegendően nagy memóriaterületet (malloc) és végigmész karakterenként a szövegen, végrehajtod a cserét mindig és ezt szépen lejegyzed a memterületre -mindig hozzáfűzéssel és a végén a lefoglalt memterületeden ott lesz a szép uj szöveged! -
pawee
tag
válasz
Forest_roby #2137 üzenetére
include <stdio.h>
int main()
{
//változók felvétele
char str_in[160], str_out[160];
int i;
//file változók felvétele
FILE *input;
FILE *output;
//fileok megnyitása
input = fopen(''be.txt'',''r'');
output = fopen(''ki.txt'',''w'');
//konvertálás
for (i=0;i <= 80;i++)
{
switch (str_in)
{
// a program első fele, a síma ékezetest átalakítjuk repülőékezetre
case ''á'' :
{
if (str_in == ''Á'')
{
str_out = ''A'';
str_out[i+1] = ''''';
}
if (str_in == ''á'')
{
str_out = ''a'';
str_out[i+1] = ''''';
}
}
case 'é'||'É' :
{
if (str_in == ''É'')
{
str_out = ''E'';
str_out[i+1] = ''''';
}
if (str_in == ''é'')
{
str_out = ''e'';
str_out[i+1] = ''''';
}
}
case 'í'||'Í' :
{
if (str_in == ''Í'')
{
str_out = ''I'';
str_out[i+1] = ''''';
}
if (str_in == ''í'')
{
str_out = ''i'';
str_out[i+1] = ''''';
}
}
case 'ö'||'Ö' :
{
if (str_in == ''Ö'')
{
str_out = ''O'';
str_out[i+1] = '':'';
}
if (str_in == ''ö'')
{
str_out = ''o'';
str_out[i+1] = '':'';
}
}
case 'ü'||'Ü' :
{
if (str_in == ''Ü'')
{
str_out = ''U'';
str_out[i+1] = '':'';
}
if (str_in == ''ü'')
{
str_out = ''u'';
str_out[i+1] = '':'';
}
}
case 'ó'||'Ó' :
{
if (str_in == ''Ó'')
{
str_out = ''O'';
str_out[i+1] = ''''';
}
if (str_in == ''ó'')
{
str_out = ''o'';
str_out[i+1] = ''''';
}
}
case 'ő'||'Ő' :
{
if (str_in == ''Ő'')
{
str_out = ''O'';
str_out[i+1] = '''''';
}
if (str_in == ''ő'')
{
str_out = ''o'';
str_out[i+1] = '''''';
}
}
case 'ú'||'Ú' :
{
if (str_in == ''Ú'')
{
str_out = ''U'';
str_out[i+1] = ''''';
}
if (str_in == ''ú'')
{
str_out = ''u'';
str_out[i+1] = ''''';
}
}
case 'ű'||'Ű' :
{
if (str_in == ''Ű'')
{
str_out = ''U'';
str_out[i+1] = '''''';
}
if (str_in == ''ű'')
{
str_out = ''u'';
str_out[i+1] = '''''';
}
}
//A program első második fele még nem írtam meg...
default:
{
str_out = str_in;
}
}
}
fflush(input);
fflush(output);
fclose(output);
}
még eléggé kezdő vagyok a dologban, de az assembly-s megoldás az tényleg jóóó. értem mit akarsz mondtani vele.
ha pl egy két dimenziós tömbbel csinálnám meg???az eélső dimenzió az ákezetes betű második meg a percsis változata és ha egyezik akkor behelyettesít, így jó szted?
csak ezzel is az a baj, hogy Á betű helyett már A' lesz mi már két kari...erre is ki kell találnokm még vmit -
shev7
veterán
válasz
Forest_roby #2124 üzenetére
arra nem gondoltal, hogy konkretan olyan, hogy string nincsen a c nyelvben? Talan azert jottek letre ezek a fv-ek hogy lehetove tegyek a string kezelest, es nem azert, hogy megkonnyitsek?
''szoveg1''+''szoveg2'' meg erdekes kerdes. Ezt egybekent sem szeretjuk, mert ''draga'' muvelet. -
Jester01
veterán
válasz
Forest_roby #2124 üzenetére
Vita egy szál se. Szakmai vita meg különben is hasznos
A C egy viszonylag alacsony szintû nyelv, amiben (mmint magában a nyelvben) tulajdonképpen nincs is string kezelés a konstansokat leszámítva (az is csak kényelmi szolgáltatás, hogy ne karakterenként kelljen inicializálni a tömböket). Az összes mûvelet a c libraryban van. Az említett összefûzés pedig különösen problémás, hiszen az új stringnek helyett kell foglalni. Minthogy dinamikus memóriakezelés sincs (ez is a lib dolga) így ezt nem lehet megcsinálni. Ez így jó is, mert a lib cserélgetésével tetszõleges környezetben használható marad a nyelv. Enélkül bajos lenne pl. a kernelt C-ben írni.
MOD: ja és még egy dolog: mivel a C nem rejti el a részleteket a programozó már kb. ránézésre tudja, mi zajlik. Észreveszed, hogy az a string összefûzés egy bonyolult dolog lehet tehát esetleg át kellene írni olyanra a kódot, hogy kevesebbre legyen szükség (ha éppen számít a sebesség).
[Szerkesztve] -
shev7
veterán
válasz
Forest_roby #2118 üzenetére
pedig ez a fv is kb azt csinalja amit te csinalnal. Osszehasonlitja karakterenkent a ket stringet. (persze elotte megnezi, hogy egyenlo-e a hosszuk)
-
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.
-
Robaj
addikt
válasz
Forest_roby #2113 üzenetére
Kérdés: akkor miért írtak volna strcmp fgv-t?
Ha nem tetszik írj sajátot
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2113 üzenetére
Egy megoldás lehetne az, hogy strcmp -vel összehasonlítom, de nem akarok ágyúval lőni verébre.
Erre pedig ez a megoldás. -
shev7
veterán
válasz
Forest_roby #2067 üzenetére
jonak tunik. Remelem a jumpokat jol csinaltad, mert azokkal nem vagyok teljesen tisztaba.
-
Forest_roby
őstag
válasz
Forest_roby #2066 üzenetére
kicsit módosítottam:
ax = pozitív szám
bx = pozitív szám
osszehasonlitas:
cmp bx,ax
jnb userror
xchg bx,ax
userror:
cmp 2,bx ;a 2-vel hasonlítom össze, ha bx nagyobb egyenő, akkor tovább egyébként hiba kiírása és vége!
j?? tovabb
print: nincs közös osztó
jmp vege
tovabb:
cmp bx,ax
j?e? vege ;if equal jump vege else 'ez köv most:'
sub ax,bx ;ax -ba belekerül ax-bx értéke, bx marad, ezzel megvan a 2db kisebb szám is
jmp osszehasonlitas ;ugrás az összehasonlítás részhez
vege:
end
[Szerkesztve] -
shev7
veterán
válasz
Forest_roby #2064 üzenetére
hat nem sokat programoztam assemblyben de azert egy lnko programot megertek, ha jol megkommentezed
akkor este megnezem.
-
shev7
veterán
válasz
Forest_roby #2062 üzenetére
sztem igen. De miert nem probalod ki?
-
shev7
veterán
válasz
Forest_roby #2060 üzenetére
azert szoktak azt csinalni, hogy ha kell kesobb az ertek, akkor kivonas elott atmasoljak egy masik regiszterben es ott vegzik el a muveletet.
MOD: nem
SUB Instruction
Purpose: Subtraction.
Syntax:
SUB destiny, source
It subtracts the source operator from the destiny.
[Szerkesztve] -
shev7
veterán
válasz
Forest_roby #2058 üzenetére
szerintem ha azt iod, hogy sub ax,bx akkor ax-ben ax-bx erteke lesz benne...
-
Jester01
veterán
válasz
Forest_roby #2039 üzenetére
Ez a C átka. A stringeket cím szerint adja át, a számokat érték szerint. Vagyis a %s egy pointert vár. Ha a szám nulla (vagyis üres volt a szövegmező) akkor ez egy null pointer lesz amit külön lekezel a printf. De ha valami más számot adsz át, akkor bizony arról a - jó eséllyel érvénytelen - memóriacímről megpróbál olvasni, és így lesz segfault. Egyébiránt a gcc fordításidőben észreveszi az ilyen hibát, ha a -Wall kapcsolót használod (ez mindig jó ötlet):
callbacks.c:231: warning: format argument is not a pointer (arg 4) -
Jester01
veterán
válasz
Forest_roby #2035 üzenetére
Mail megjött.
Ez a smiley kell neked azt hiszem:
A debug üzenetedbe hal beleA számot ne %s-el írd ki, mert az nem jó
g_message(''A szöveg hossza: %d\n'', gtk_text_buffer_get_char_count(textview_buffer)); -
Forest_roby
őstag
válasz
Forest_roby #2035 üzenetére
az elözőben kicsit sok a per és vmiért nálam nem is műxik. itt egy másik link:
[link]
köszi a segítséget! -
Jester01
veterán
válasz
Forest_roby #2033 üzenetére
> wget 'http://www.uw.hu/admin/webftp/PHPFTP_main.php?phpftp_cmd=get&phpftp_file=myeditor-0.1.tar.gz'
...
Length: 0 [application/octetstream] -
Jester01
veterán
válasz
Forest_roby #2030 üzenetére
Ide vele! Valami a widget struktúrával lehet, ha a target NULL...
-
Forest_roby
őstag
válasz
Forest_roby #2028 üzenetére
abszolút véletlen módon találtam benne egy hibát!
GtkWidget *target; helyett GtkTextView *target; kellet volna, de ez a fő hibán nem javított, most is ugyan úgy fagy, ha kiveszem a commentet, csak most más a gcc hibaüzije.
callbacks.c: In function ‘on_open1_activate’:
callbacks.c:229: warning: assignment from incompatible pointer type
callbacks.c:243: warning: comparison between pointer and integer
callbacks.c: In function ‘on_save1_activate’:
callbacks.c:283: warning: assignment from incompatible pointer type
callbacks.c: In function ‘on_save_as1_activate’:
callbacks.c:346: warning: assignment makes pointer from integer without a cast
229: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
243: if ( size != NULL ) //ez a commentes részben van!
283: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
ezzel a sorral lesznek a problémák!!!
346: az véletlen, nem commenteztem ki vmit
szóval itt a bibi: target = lookup_widget(GTK_WIDGET(menuitem), ''myeditor_textview'');
mod:
Jester01: ha még mindig kell, akkor tudok adni forrást, bár sztem innen neked már meglesz, ha nem szól és már töltöm is fel vhova.
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #2028 üzenetére
A 2 warning szerintem 2 cast-tal orvosolható. A szöveg hosszát pedig a gtk_text_buffer_get_char_count függvénnyel egyszerûen le tudod kérdezni.
Azt, hogy mi a baj a te kódoddal így ránézésre nem tudom, ha adsz teljes forrást ami lefordul akkor esetleg megnézem. -
Lortech
addikt
válasz
Forest_roby #2025 üzenetére
@data az az adatszegmens kezdőcíme, abban a sorban ezt beleteszi ax-be.
:inlup,utlup egy címke, másképpen szimbólum (nincs nyoma a kódban). A program_kód_ minden sora egy-egy cím végülis, ha egy utasítást vagy ''adatdefiníciót'' tartalmazó sort megelőz egy cimke: alak, akkor ez a címke az őt követő kód címét szimbolizálja. Egy hívásban, ugrásban, ciklusban pedig felhasználhatod ezt a szimbólumot, hivatkozhatsz rá, rámutat egy címre.
Mint pl itt, a loop inlup. Ez egy ciklusszervezés, ennek hatására ugrik a vezérlés inlupra, és ismétlődik cx=0-ig a ciklus. Maga az utasításkód, a kódszegmens a .code-tól, az adatszegmens a .data-tól kezdődik. A felső sorok a fordítónak szólnak. -
doc
nagyúr
válasz
Forest_roby #2022 üzenetére
gtk-hoz nem ertek, de wxWidgets-ben ugy mukodik, hogy az esemenytablaban letre kell hozni egy EVT_CLOSE esemenyt, es atadni neki a fuggveny cimet amit meg akarsz hivni
ha gtk-ban is van ilyesmi, akkor errefele nezelodj -
amargo
addikt
válasz
Forest_roby #2022 üzenetére
Itt nincs valami:
Application->Terminate();
vagy
Application.Exit();
Ilyesmi?
GTK-t nem ismerem, de kötve hiszem, hogy nem lehet a bezáró X-et figyelni.. valahogyan? -
emitter
őstag
válasz
Forest_roby #2020 üzenetére
hogyha a főprogiból hívod a on_quit1_activate fv-t, akkor a hívása után rakj be egy
return 1;
sort, ezzel ki is lép a progiból
vagyis mégjobb, ha egy exit()-gyel lépsz ki, így ezt akár egy fv-en belül is megteheted.. mondjuk nem tudom, mennyire szép megoldás ez
tehát:
...
on_quit1_activate(...);
exit(EXIT_SUCCESS);
...
[Szerkesztve] -
emitter
őstag
válasz
Forest_roby #2018 üzenetére
nem értek az ablakozáshoz, de egy return() a főprogiban nem oldaná meg?
-
Jester01
veterán
válasz
Forest_roby #2015 üzenetére
Természetesen van. Szerinted a touch-ot miben írták?
FILE* F = fopen(''/tmp/empty.txt'', ''w'');
fclose(F); -
doc
nagyúr
válasz
Forest_roby #2010 üzenetére
a galde glade akar lenni? ha jól tudom, az gtk-s felülettervező, ugye?
maga a dialógus nem menti el a szöveget, nézd meg hogy a gtk-ban milyen osztályok/függvények vannak a szöveges file-ok kezeléséhez, és azzal te magad tudod kimenteni a dialógus által visszaadott nevű file-ba -
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.
-
Jester01
veterán
válasz
Forest_roby #1999 üzenetére
callbacks.c:16: warning: passing arg 1 of `strlen' from incompatible pointer type
MOD: plusz az az strcpy( *alap, uj ); nem kell oda.
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #1998 üzenetére
itt a progi: [link]
az src/callback.c a fontos.
kaptam mégegy hibaüzit:
*** glibc detected *** corrupted double-linked list: 0x0819cae0 ***
Félbeszakítva -
gaben
aktív tag
válasz
Forest_roby #1996 üzenetére
amúgy is a suliban linuxon kell...
-
gaben
aktív tag
válasz
Forest_roby #1994 üzenetére
Köszönöm a könyvet,sztem meg is veszem holnap...
-
gaben
aktív tag
válasz
Forest_roby #1991 üzenetére
CSak itt za egyetemen az Ansi C-ve lkezdünk alapból,ezért kéne valami jó kis könyv.
Akkor úgy kérdem,hogy kezdőnek miylen C könyvet ajánlanál?
(turbo pascal előélet már van) -
Jester01
veterán
válasz
Forest_roby #1982 üzenetére
Legegyszerűbb, ha az alap stringed dinamikusan foglalod és az összefűzésnél dupla pointert adsz be.
void osszefuzes(char** alap, const char* plus)
{
char* uj = ...
...
free(*alap);
*alap = uj;
}
Hívás példa:
char* alap = strdup(''vmi'');
osszefuzes(&alap, ''mas'');
printf(''%s\n'', alap);
osszefuzes(&alap, ''vege'');
printf(''%s\n'', alap);
free(alap); -
Jester01
veterán
válasz
Forest_roby #1979 üzenetére
Jah, figyelmetlen voltam
Szóval:
GtkWidget *a_checkbutton = lookup_widget(GTK_WIDGET(button),
''a_checkbutton'');
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(a_checkbutton)) == TRUE) g_message(''TRUE\n'');
Persze az is jó amit én írtam, csak ez szebb. -
Jester01
veterán
válasz
Forest_roby #1977 üzenetére
a_checkbutton->active == TRUE
-
Jester01
veterán
válasz
Forest_roby #1965 üzenetére
Vagy eleve karakterenként olvasod (fgetc) vagy pedig a beolvasott soron végigmész karakterenként.
-
emitter
őstag
válasz
Forest_roby #1960 üzenetére
-c Compile and assemble, but do not link
^-- ezt csinálja a -c
Szóval nincs ilyen fv, h outp().. akkor lehet, h az ncursesben ezt nem implementálták.
A libconio-val kéne próbálkozni
------
mod:[link]
sztem megpróbálkozhatnál ezzel
[Szerkesztve] -
emitter
őstag
válasz
Forest_roby #1958 üzenetére
ha hiányozna, kiabálna fordításkor..
_outp()-vel mit csinál? -
emitter
őstag
válasz
Forest_roby #1956 üzenetére
mi az az ltp.out?? ez a bináris lett a forrásodból?
nemtom, esetleg megpróbálhatsz egy hívást strace-szel
[Szerkesztve] -
emitter
őstag
válasz
Forest_roby #1951 üzenetére
sudo apt-get install libncurses5
és persze nem conio.h-t húzolbe, hanem ncurses.h-t
---
szerk: de az is lehet, h a fv. neve nem _outp, hanem simán outp
talán segít: [link]
[Szerkesztve] -
8472
aktív tag
válasz
Forest_roby #1951 üzenetére
Van valami ncurses nevű külön csomag. Ha jól tudom, linuxon azt használják a conio.h helyett.
-
Forest_roby
őstag
válasz
Forest_roby #1950 üzenetére
lehet, hogy hülyeséget csináltam.
feltelepítettem ezt: [link]
és most szépen le is fordítja a gép a progit csak épp nem tudom elindítani.
hozzáférés megtagadva
erre: chmod 777 progi
válasz: bash: ./progi: cannot execute binary file
nem megy..... -
paramparya
őstag
válasz
Forest_roby #1948 üzenetére
Ott van a hibaüzenetben, nincs meg a conio.h library...
-
cucka
addikt
válasz
Forest_roby #1945 üzenetére
például [link]
-
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)
-
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] -
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ó
)
-
Balux
tag
válasz
Forest_roby #1928 üzenetére
tehát plö
ofstream data(''kdv.txt''); //ebbe mennek az adatok!
for(j=0;j<N;j++) //ez az időben-i léptetés
for( i=0;i<n;i++) //ez a térbeli léptetés (1D-ban)
{
//ide jön egy csomo minden ami a kezdőfeltételek és a
//az időben ezelötti állapotból u minden elemének uj értéket ad!
data<<u<<endl;
ezt akkor hogy kéne módosítani hogy miután u-t kiiratom egymás alá
az időben következő (j++ ciklus) u adathalmazt az előző mellé írja ki??
ugye a végén egy n*N es 'mátrixot' kapnék!!
legalábbis szeretnék
köszi elöre is! -
cucka
addikt
válasz
Forest_roby #1910 üzenetére
fordításhoz általában a fejlesztői csomagok is szükségesek, ezek végén szerepel, hogy -dev. ha hiányzik neki csomag, de az mégis fel van telepítve, akkor legtöbb esetben a dev. csomag hiányzik, ez az első amit le szoktam csekkolni. az ubuntuban jó grafikus csomagkezelő (synaptic vagy adept), ott 1 perc alatt megoldhatóak az ilyen gondok.
-
Jester01
veterán
válasz
Forest_roby #1908 üzenetére
apt-get install libgtk2.0-dev
(debian) -
Jester01
veterán
válasz
Forest_roby #1906 üzenetére
gtk2 ..... -ból rengeteg dolog van telepítve a gépre.
... csak valószínűleg pont az nem, ami kell
Nézd meg a config.log-ba mit írt, mit keres és miért nem találta.
Amúgy a weboldalad most éppen nem elérhető. -
Jester01
veterán
válasz
Forest_roby #1903 üzenetére
Először is: a configure nem fut le, hibát dob:
checking for PACKAGE... configure: error: Package requirements (gtk+-2.0 >= 2.0. 0) were not met.
Tehát nem csinálja meg a makefile-t, mert hiányzik neki a gtk.
Másodszor: Az egy dolog, hogy a makefile nem készül el, de úgy látom maga a make program sincs telepítve.
Megoldás mindkét problémára: Tedd fel a megfelelő csomago(ka)t.
[Szerkesztve] -
orbano
félisten
válasz
Forest_roby #1858 üzenetére
használj double-t, egész jó
-
Jester01
veterán
válasz
Forest_roby #1858 üzenetére
Veszel egy 64 bites procit
MOD: hopp, tévedésben vagyok. A (nem létezõ) long long int mûködik 32 bites gépen is. Neked csak annyi baj volt, hogy a kiírásban nem %lld formátumot használtál.
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #1860 üzenetére
egy: nincs olyan, hogy long long int.
kettő: semmilyen különleges tudás nem szükséges hozzá. van 2 számod string-ben, számjegyenként kell velük műveleteket végezni (összeadás, szorzás, amire szükség van). ezeket neked kell kézzel megírni. az egész úgy működik, mint ahogyan elemi iskolában megtanítottak papíron összeadni/szorozni.
c++ - ban elegánsabb dolog nagyszámok osztályt írni, és átírni a használt operátorokat (+,*,<<, satöbbi).
egyébként meg milyen feladat az, amelyiknek nem elég a long?
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #1858 üzenetére
long-ba ekkora érték fér bele. ugye (nálad) 4 byte-on ábrázolja, az ~4 milliárdig jó, de mivel előjeles, ezért az előjel-bitnek is kell hely, ezért ~2milliárd a vége. unsigned long-al tehát ~4 milliárdig tudsz értéket tárolni.
ha még nagyobb számot szeretnél, akkor kénytelen leszel kézzel megírni (string-ben tárolod a számokat, megírod rá a műveleteket vagy operátorokat (c++), satöbbi). -
Forest_roby
őstag
válasz
Forest_roby #1856 üzenetére
okay
hülye vagyok! : (
fordítás: gcc -lm prog.c -
Asmarat
csendes tag
válasz
Forest_roby #1830 üzenetére
Köszönöm a segítséget!
Természetesen cuckának is..
Megpróbálok megbirkózni vele, nagyon érdekel a téma,
remélem egy pár hónap múlva érdemben is hozzá tudok szólni a
a totyikhoz...
[Szerkesztve] -
shev7
veterán
válasz
Forest_roby #1844 üzenetére
ez nem 23 bites szam
A legnagyobb szam a windows szamologepe kezel az 64 bites. Erteke: 18446744073709551615 -
cucka
addikt
válasz
Forest_roby #1846 üzenetére
nem véletlenül mondtam, hogy nézz utána a kettes számrendszernek, számábrázolásnak, satöbbi
10es számrendszerben 23 számjegyen ábrázolod.
2es számrendszerben x ''számjegyen'', amit más néven bitnek hívunk. tehát a bit az egy bináris szám számjegye.
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #1839 üzenetére
shev7 - #1835-ben valóban igazad van
Forest_roby - igen, pont a te általad leírt módszer az, ami túl sok időt vesz igénybe. utánanéztem, arra, hogy megállapítsd, egy n számjegyű szám prím-e, van log(n)^12 körüli műveletigényű algoritmus, ez mondjuk majdnem polinomiálisnak tekinthető. a gond az, hogy prímtényezőkre való bontásnál az összes lehetséges osztót végig kell nézni, ami n számjegy esetén 10^n nagyságrend, tehát exponenciális az algoritmusod.
ja, és az általad leírt 62484751362947029755811 sokkal több, mint 23 bit. nem keverni a bitet a számjeggyel. tessék utánanézni a kettes számrendszernek
[Szerkesztve] -
shev7
veterán
válasz
Forest_roby #1841 üzenetére
Nem nekem van igazam, hanem azoknak, akik az RSA-t kitalaltak
-
shev7
veterán
válasz
Forest_roby #1839 üzenetére
Meg ahogy azt moricka elkepzeli
Utananeztem, jol emlekeztem. Valasztasz ket nagy prim szamot. A ket prim szorzata lesz a nyilvanos kulcs egyik fele. Ha ezt felbontani primtenyezokre olyan egyszeru lenne, akkor torheto lenne az RSA. Csakhogy: ''No polynomial-time method for factoring large integers on a classical computer has yet been found'' Ha a programodat nekiereszted egy altalam valasztott ket ~100 jegyu prim szorzatanak, es megmondod a primtenyezosfelbontasat, akkor mar jo uton haladsz
Egy erdekes adat a wikipediarol: ''As of 2005, the largest number factored by general-purpose methods was 663 bits long, using state-of-the-art distributed methods. RSA keys are typically 1024–2048 bits long.''
[Szerkesztve] -
Coyot
őstag
válasz
Forest_roby #1820 üzenetére
Naszóval, az Eratoszthenész szita. lényege h egy K korlátig előállítja az összes prímszámot, mégpedig ugy h kilövi az összes prímszám többszöröseit, előről haladva K-ig.
Nem garantálom, h műxik majd, már nem kell tudnom C-be progzani, javaslom értsd meg inkább és progizd le, a működése nagyon egyszerű.
for(i=2;i<=k;i++)
{
a=1;
}
p=2;
/*szita*/
while(p<=k)
{
if(a[p])
{
i=2*p;
while(i<=k)
{
a=0;
i=i+p;
}
p=p+1;
}
/*kiirás*/
for(i=2;i<=k;i++){
if(a) printf(''%d'',i);
}
mod.: kicsit rondábban rakta be mint ahogy vártam, remélem azért érthető.
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #1826 üzenetére
találtam win alá is valami hasonlót, mint a linuxos time. úgy hívják, hogy timeit.exe és a Windows Server 2003 Resource Kit Tools nevű csoda része. sok sikert hozzá, nekem nem sikerült használnom, bár nem is próbálkoztam vele túl sokat. [link]
[Szerkesztve] -
válasz
Forest_roby #1820 üzenetére
Igaz, erről el is felejtkeztem.
-
cucka
addikt
válasz
Forest_roby #1826 üzenetére
linux alatt time paranccsal szoktam, windows alatt elvileg tudom, gyakorlatilag nem.
általában egy algoritmusnál nem a futási időt nézik, hanem a műveletigényt, ez független a megvalósítástól, azt ''méri'', hogy n számosságú bemeneti adathalmazra hány iterációt végez az algoritmus. -
cucka
addikt
válasz
Forest_roby #1823 üzenetére
ide tényleg gyorsabb lenne az erasztotenész szitája nevű módszer. a probléma az, hogy keresed az x-nél kisebb prímeket. felírod 2-től x-ig a számokat. ezután megkeresed az első olyan számot, ami nincs áthúzva, és még nem foglalkoztál vele. (ez első körben a kettes lesz). áthúzod minden második számot a 2-es után (vagyis a 4-est, 6-ost, stb.). ha vége, kezded az elejéről. a következő szám a 3-as, áthúzod minden harmadik számot(6,9,stb). a következő szám az 5-ös (a 4-es már át van húzva, így azzal nem foglalkozunk), és így tovább.
viszonylag egyszerű leprogramozni, szóval hajrá. a végén össze lehet hasonlítani a futási időket, kíváncsi vagyok. -
shev7
veterán
válasz
Forest_roby #1823 üzenetére
pontosan erre gondoltam
-
shev7
veterán
válasz
Forest_roby #1821 üzenetére
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
en ezt itt nem teljesen ertem. Megnezed, hogy a maradek nagyobb-e mint nulla. Ha nem akkor break, ez vilagos. De ha nem nulla, akkor hogy gyoknel nagyobb-e. Ez is ok. De itt nem kene kilepni a kiiratas utan? Es akkor a for-ciklusban mindegy, hogy meddig szamolsz b-vel...
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Xbox Series X, kitisztítva+újrapasztázva, 6 hó teljeskörű garanciával., Bp-i üzletből eladó!
- Eladó Gopro Hero 10 Black edition sok tartozékkal!!
- Brutál GAMER (I7-9700K/RX 6800 Aorus/Z370-F CHIP)
- Simrig eladó PS5/PC kompatibilis. (olvass leírást.)
- Ryzen7 2700X/ RTX2060/ 32GB DDR4/ 512GB m.2 alapú konfig/ garancia / ingyen foxpost
- Gamer szék noblechairs LEGEND TX Szövet Antracit
- Bomba ár! Lenovo Miix 510-12IKB : i5-7G I 8GB I 256GB SSD I 12" Touch I Cam I W11 I Garancia!
- BESZÁMÍTÁS! ASUS A520M R5 5600X 16GB DDR4 512GB SSD RTX 3060Ti 8GB Rampage SHIVA Enermax 650W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Beszámítás! Apple Mac mini 2020 M1 8GB 256GB SSD számítógép garanciával, hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest