- Milyen billentyűzetet vegyek?
- VR topik (Oculus Rift, stb.)
- Melyik tápegységet vegyem?
- Nem indul és mi a baja a gépemnek topik
- Samsung Galaxy Tab S6 Lite 2024 - a visszatérő
- Épített vízhűtés (nem kompakt) topic
- Kilép a PC-s piacról a Noctua
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen monitort vegyek?
Hirdetés
-
Ilyen lesz az Astor: Blade of the Monolith
gp A C2 Game Studio nemrég átnevezett játéka a tervek szerint a hónap végén debütál.
-
Ezért jött hardveres sugárkövetés nélkül a Hellblade II
ph A Microsoft saját nagy címe ötközött bele először a DirectX Raytracing masszív limitációjába.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
Új hozzászólás Aktív témák
-
artiny
őstag
válasz Jester01 #3806 üzenetére
A cliens kuld valamit a servernek , a server tovabb kuldi egy masik kliensenk ami a kerest vegre hajtja majd vissza kuldi a szerver a kapott eredmenyt. (összeadást , pl. 1 + 1)
Ezen az oldalon van egy server-kliens
http://www.prasannatech.net/2008/07/socket-programming-tutorial.html
C tipusu
tcpserver.c
tcpcliens.c
Ezeket lefutattam,mukodnek (szoveget tudok kuldeni ide oda. Ubuntu alatt teszteltem)[ Szerkesztve ]
-
aAron_
őstag
válasz Jester01 #3828 üzenetére
mintha ott se lenne, én sem értem...
kons.txt:
alma
narancsde a kons.dat-ba csak ezt íja:
almanarancs
a teljes kód így néz ki:
void csinal_dat()
{
char puff[256];
FILE *fpt=fopen("kons.txt","rt");
FILE *fpd=fopen("kons.dat","wb");
if (fpt!=NULL)
{
while(fgets(puff,256,fpt)!=NULL)
{
fprintf(fpd,"%s\n",puff);
}
}
else
printf("hibas megnyitas: kons.txt");
fclose(fpd);
fclose(fpt);
}[ Szerkesztve ]
What is your ikigai?
-
buherton
őstag
válasz Jester01 #3838 üzenetére
Nem jogos, ha a C99 szabványt vesszük alapul, mert a 37. oldal 16 sorától:
The type signed char was introduced in C89 to make available a one-byte signed integer type on those systems which implement plain char as unsigned char. For reasons of symmetry, the keyword signed is allowed as part of the type name of other integer types. Two varieties of the integer types are specified: signed and unsigned. If neither specifier is used, signed is assumed.
[ 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... !!!
-
buherton
őstag
válasz Jester01 #3841 üzenetére
Inglish még gyakorolni kell... De becsapós, mert egy bekezdésben volt.
[ 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... !!!
-
buherton
őstag
válasz Jester01 #3969 üzenetére
De ez nem csak arra vonatkozik, hogy az induló függvény neve és az argumentum típusa lehet implementáció függő?
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... !!!
-
skylaner
senior tag
válasz Jester01 #3959 üzenetére
(Gondolom az nem jutott eszedbe hogy nem a tökéletesen szép megoldás volt a célom, hanem csak az algoritmus leírása? Eredetileg main-t se akartam írni csak a fgv-t, de a jobb érthetőség miatt beletettem.)
Amúgy mi a gond a printf("%c",c)-vel?#include <stdio.h>
void text_fragmentation(const char* string, int char_num)
{
int i=1;
while (*string != '\0')
{
putchar(*string);
if (i == char_num)
{
putchar('\n');
i=0;
}
i++;
string++;
}
}
int main(int argv, char* argc[])
{
const char* string="cseresznye";
text_fragmentation(string,3);
return 0;
}[ Szerkesztve ]
-
buherton
őstag
válasz Jester01 #4092 üzenetére
Ha a linker szerint az ex_task4.o-ban is benne van, az azt jelenti, hogy huncutság van, például az ex_task4.c-ben lehet egy #include "ex_init4.c".
Ezt nem tudom, hogy honnan tudtad, de tényleg így van. Az ex_task4.c-ben semmilyen __heap_start-os declarálás, definiálás vagy hasonló sincs. De ez miért jelent problémát?
MOD: Arra gondolsz, hogy a make környezet úgy fordítja, hogy minden c fájt fordít, és ennek az lesz a következménye, hogy az ex_task4.c-ből includálva van az ex_init4.c ezért gyakorlatilag az ex_init4.c kétszer van fordítva? És amikor a linkeléshez ér, akkor jön a felismerés, hogy két __heap_start van, mert bár az ex_task4.c nem tartalmazza, de az include miatt mégis bele kerül.
(#4093) Karma: Igen, több példa is van, viszont úgy van megcsinálva, hogy a közös dolgok 4 init fájlban vannak, és a különböző példák ezeket include-álják és így egy rakat fölös kódot nem kell ismételten leírni. Ilyen a main, a task inicializálás, deklarálások, stb..-k. Nem túl szép, de az biztos hogy hatékony, de egyelőre még nem fordul...
[ 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... !!!
-
hoffman_
nagyúr
válasz Jester01 #4099 üzenetére
mhm, köszönöm!
akkor a beolvasásra getc(stdin)-nel próbálok valamit. viszont a többire hiába írtad a hibát, nem tudom, hogy hogy lenne helyes a megoldás. ezt a maszkolás részt akkor nagyon nem értem ezek szerint.
[ Szerkesztve ]
"The time you enjoy wasting is not wasted time."
-
Jester01
veterán
válasz Jester01 #4135 üzenetére
Sőt, durvábbat mondok. Ha azokat nézzük ahol az első 19 szám a 0, 0.01, 0.02, 0.03, 0.04, 0.05 bármelyike a huszadik pedig szépen kipótolja az összeget 1-re, akkor az 6^19 lehetőség ami nagyjából 609 billió. Ezt az életben nem fogod mind végignézni, és ez még mindig csak az összes lehetőség töredéke!
Jester
-
aAron_
őstag
válasz Jester01 #4136 üzenetére
értem, akkor leírom pontosabban mit akarok kiszámolni, hátha van valami ötleted (meg kedved segíteni). sajnos most úgy érzem még nem elég a tudásom egy ilyen probléma megoldásához.
szóval az egész dolog lényege az, hogy X db részvény (ált 40<X<50) egy portfólióban való optimális eloszlását megtaláljuk. ez akkor a legjobb ha a sharpe ratio a lehető legnagyobb. ezt az alábbi módon kell kiszámolni:
sharpe_ratio=sqrt(250)*((avg_daily_rets - riskfree_daily_rets)/std_dev)
avg_daily_rets nem más mint a porfólió átlagos napi hozama pl.: 0.0002364 = 0.02364%
riskfree_rets az elérhető legnagyobb kockázatmentes napi hozam (lehet akár 10 éves lejáratú amerikai kötvény, vagy akár banki kamat, bár ez utóbbi kevésbé)
std_dev pedig standard deviation of the portfolio, tehát a szórása a napi hozamoknak (ez a kockázat a gyakorlatban)
(250 a kereskedési napok száma egy évben)
adatok amivel dolgozni kell kb így néznek ki (napi igazított árfolyam, mintha mindegyik 1-től indulna az 1. napon):
első, második, harmadik, negyedik, ..., n-edik részvény
1. 1.00000 1.00000 1.00000 1.00000 ... 1.00000
2. 0.99820 0.99930 1.00090 0.99130 ... 1.00010
3. 1.00150 0.99750 1.00140 1.00300 ... 1.00060
3. 1.00510 0.99970 1.00080 1.00380 ... 1.00070
5. 1.00830 1.00240 1.00160 1.00360 ... 1.00080
6. 1.00910 0.99050 1.00270 1.01440 ... 1.00100
7. 1.00900 0.98940 0.99970 1.01890 ... 1.00110
8. 1.00830 0.99060 0.99930 1.02240 ... 1.00170
.
.
.n-edik 1.29590 1.22330 1.13880 1.40270 ... 1.06800
napeddig úgy számoltam (X<=4 esetén), hogy leteszteltem az összes lehetőséget
egyik lehetőség pl.: első részvényt vettem 0.5x, másodikat 0.3x, harmadikat 0.1x, negyediket 0.1x és így kiszámoltam minden napra a porfólió értékét
ebben az esetben (ha az első 4 részvénnyel számolunk csak) a portfólió árfolyama a 2. nap= 0.5x0.99820+0.3x0.99930+0.1x1.00090+0.1x0.99130=0.99811
ha ez az érték megvan minden napra abból már ki tudom számolni minden egyes nap hozamát és tudok vele dolgozni
csak onnan tudom, hogy sokkal több részvény optimális allokációját is ki lehet számolni, hogy többen is több mint 500 részvénnyel dolgoztak (külföldi fórumon), és olyan algoritmust írtak amely egy évre visszamenőleges adatból kiszámolta az optimális allokációt és sharpe ratio-t, mégpedig sokkal nagyobb pontossággal mint 0.01, elmondásuk szerint egy viszonylag lassú gépen kevesebb mint 20 perc alatt lefutott az egész.
remélem érthető és nem magyaráztam túl semmit sem
[ Szerkesztve ]
What is your ikigai?
-
alapz@j
tag
válasz Jester01 #4166 üzenetére
Huh, nagyon jó ez a GCC Explorer, meg is adta a választ:
int main() {
for (int i = 0; i < 5; ++i) {
int x = i + 10;
}
}g++ 4.8 (-O és más kapcsolók nélkül)
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-8], 0
jmp .L2
.L3:
mov eax, DWORD PTR [rbp-8]
add eax, 10
mov DWORD PTR [rbp-4], eax
add DWORD PTR [rbp-8], 1
.L2:
cmp DWORD PTR [rbp-8], 4
jle .L3
mov eax, 0
pop rbp
retÉrdekes, ha jól olvasom, akkor a teljes stack allokálás (int i és int x is) megtörténik már a ciklus előtt, azaz nincs sem menet közbeni allokálás, sem blokk utáni deallokálás.
-
-
dabadab
titán
válasz Jester01 #4205 üzenetére
Kenytelen vagyok visszakozni: megtakaritana, mivel itt csupa char lenne. Ha amugy egy csomo intje meg pointere lenne, es akoze rakna be egy-egy chart, akkor nem lenne megtakaritas, mert ott azoknak a 4 / 8 byte-os alignmentje bekavarna, de ha tenyleg mindenki char, akkor nincs ilyen gond.
DRM is theft
-
buherton
őstag
válasz Jester01 #4209 üzenetére
Meg az ilyenek elkerülése végett:
#define PRINT_TEXT printf("foo"); printf("bar");
if(...)
PRINT_TEXTvagy
if(...)
if(...)
elseKihez is tartozik az else?
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... !!!
-
tototos
őstag
válasz Jester01 #4238 üzenetére
Köszi.
Melyik a jobb megoldás ha veszek egy 64 bites változót, és ebbe rakom be az adatokat, majd ezt bájtokra bontva elküldöm, vagy az ha a tömbbe rakom be a fenti módszerrel az adatokat és a tömböt küldöm ki?
Ugyanezt kell visszafele is, tehát van egy uint8_t tömb[8] tömb, amiből ki kell nyernem az adat pozíciótól az adott hosszú adatokat.@dabadab: Bájtosával kell kiküldenem az adatokat, és úgy is kapom őket. Tehát vagy alapból bájt tömbben tárolom őket, vagy a 64 bites változómat darabolom bájtokra, valamint vételnél visszafele.
[ Szerkesztve ]
-
-
Karma
félisten
válasz Jester01 #4363 üzenetére
Na igen, a qemunál karcsúbban elég nehéz megúszni
Axioma, az hogy big endian valami, még nem sok mindent definiál szerintem. Kérdés az architektúra (ARM, MIPS, SuperH, MicroBlaze, stb.), meg a szoftverkörnyezet is (Linux, valamilyen RTOS, nyers kód a vason). Csak mert ettől is függ, hogy mit kéne emulálni vagy szimulálni.
Szerk.: na jó, második nekifutásra mégse olyan fontos kérdések, mert maga a program elmondásod szerint elég minimalista. Ettől függetlenül nem nagyon lehet megúszni a QEMU-t és a Limux telepítést, csak hogy legyen min futtatni.
Itt egy MIPS útmutató, és itt ugyanez SPARC-kal. Valamelyiket lenyomod, és kész is leszel
[ Szerkesztve ]
“All nothings are not equal.”
-
don_peter
senior tag
válasz Jester01 #4446 üzenetére
A legegyszerűbb dolgok a leg-kézenfekvőbbek.
Bonyolultabban akartam megoldani és ez volt a hiba.
Itt meg már egy saját kis függvény meg eldönti, a számok számából, hogy mennyivel kell elkezdeni szorozni és utána már mehet vissza felé szépen a dolog.
Picit még parázok ettől a nyelvtől.Az strlen -re akkor gondolom érdemes egy saját rutint írni bár gondolom majd az is lassú lesz.
A string-ek esetében még mondjuk jó is, de ha számokat akarok megszámolni már parásabb a helyzet.
Vagy erre meg jó ez a megfordító dolog, csak a végeredmény majd a szétválasztott számok száma lesz és meg is van számolva----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz Jester01 #4448 üzenetére
Ehhez is ismerni kell a bevitt érték nagyságát nem?
"(((a*10)+b)*10+c)*10+d" mert ez összesen csak 4 változó értékét tudja felszorozni és összeadni.
Én most így oldottam meg:int number, right_digit[5], i = 0, mennyi = 0, ossz = 0;
printf("Adj meg egy számsort (1-100e közt): ");
scanf("%i", &number);
printf("Visszafelé: ");
while(number != 0) {
right_digit[i] = number % 10;
printf("%i, ",right_digit[i]);
number = number / 10;
mennyi = i;
i++;
}
printf("\n");
for(i = mennyi; i >= 0; i--){
if(i == 4)
ossz += right_digit[i] * 10000;
else if(i == 3)
ossz += right_digit[i] * 1000;
else if(i == 2)
ossz += right_digit[i] * 100;
else if(i == 1)
ossz += right_digit[i] * 10;
else if(i == 0)
ossz += right_digit[i];
else
printf("Maximum 99999-et lehet megadni!\n");
}
printf("Hány karakter: %i",mennyi+1);
printf("\nÖssz érték: %i\n", ossz);Kimenete:
Adj meg egy számsort (1-100e közt): 344
Visszafelé: 4, 4, 3,
Hány karakter: 3
Össz érték: 344[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz Jester01 #4452 üzenetére
Thanks a segítséget:
for(i = mennyi; i >= 0; i--){
if(i == 0)
ossz += right_digit[i];
else
ossz = (ossz + right_digit[i]) * 10;
}ui: Köszi de őszintén szólva Karma bejegyzése inkább félrevezetett mint rá
Ezt ne vedd sértésnek Karma
Jester01-nek megy a pont
Köszi, most sokat tanultam...[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
don_peter
senior tag
válasz Jester01 #4454 üzenetére
Közben rájöttem, hogy az if feltétel az ő megoldásához nem kell így kevesebb kódból megoldható.
Így helyesbítek és tökéletes az ő példája.
Köszönöm neki is
Eredménye:for(i = mennyi; i >= 0; i--){
ossz = ossz * 10 + right_digit[i];
}[ Szerkesztve ]
----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
-
axioma
veterán
válasz Jester01 #4485 üzenetére
Arrol beszeltem. De mint programozo nagysagrend szinten gondolkozom egy algoritmus gyorsasagarol (kis/nagy ordo'k). Az egyik esetben egy N bites szam eseten varhato ertekben N-szer fut le, a masiknal - ha eleg veletlenszeruek a szamok - N/2-szor (N az most ne az abrazolasi bitszam legyen, hanem a legmagasabb bittel bezarolag a szam merete). En ezt nem tartom igazan sebessegkulonbsegnek, bar teny, hogy lehetnek helyzetek ahol ez szamit - pl. AES titkositast kellett legutobb addig pofozgatni, amig abban a kornyezetben a savszelesseget a titkositas nem korlatozta mar le, itt szamitott a 6-7x-es szorzo, annak aran is, hogy a kod.szabv.-unkkal ellentetesen felhasznaltuk a pointer-aritmetikat.
dabadab: code review-zo szintjen gondoltam, en ilyenre gondoltam: "mivel az egy kivonasa a legalso 1-es bittol kezdve csinal xor muveletet, vissza-&-elve csak pontosan ez a bit valtozik"
Es igazabol ez szamabrazolasi kerdes is, mondjuk ha bcd kijelzesu orarol es megjelenitendo bitekrol beszelunk, akkor ez nem segit.[ Szerkesztve ]
-
don_peter
senior tag
válasz Jester01 #4502 üzenetére
Igen ez megvan, (Bináris->oktális) hogy 3bit = 1 oktális számjegy.
Viszont a helyi értékek kimaradtak és ennek tudatában egyből, villámcsapásként értelmet adott az egésznek
Köszi a rávilágítást. Most már tudok majd aludni----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- JBL Partybox Club 120 - Új, garanciális, akár beszámítással
- JBL Partybox 710 - Új, garanciális, akár beszámítással
- LG 75Uq8100 4K HDR Thinkq AI SMART TV Magic Motion Távirányítóval!
- Thinkpad P16s Gen2 16" FHD+ IPS i7-1370P RTX A500 32GB 512GB NVMe ujjlolv IR kam gar
- LG 65Qned7S3QA Qned UHD 4K HDR Thinq AI SMART TV
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs