-
4200 - 4101
6397 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-04-25 14:12 Téma összefoglaló
Új hozzászólás Aktív témák
-
Karma
félisten
Már hogyne volna C stílusú ez a fajta zárójelezés.
Amellett, hogy Ritchie eléggé a nyelv alkotója, nagy open source projektekben is előfordul, hogy ez a forma mellett döntenek.De persze az is gyakori, hogy új sorba rakják. C-ben én is úgy szoktam, de ettől nem lesz univerzális igazság.
-
Jester01
veterán
Szerintem alapvetően nincs baj az int*-al, bár tény, hogy C-ben ilyen nincs de szerintem olvashatóbb. Személy szerint szigorúan követem a soronként csak 1 változó elvet, így a "hová tartozik a *" probléma nem érint.
Ja és még a beolvasásod nem bolondbiztos. Igaz, azt C-ben nehéz is csinálni, de első körben legalább a scanf visszatérési értékét ajánlott ellenőrizni.
-
stranger28
addikt
-
buherton
őstag
Kiegészítés (#4195) dabadab hsz-re.
1. feleslegesek a typecast-ok és a jövőben kerüld ezeket, mert könnyen kerülhetsz olyan helyzetbe, amikor jön a fej vakarás, mert nem fut a kód, mint például:
void foo(long *bar)
{
*bar = 23424234;
}
int main(void)
{
char bar;
foo(&bar);
return 0;
}2. formázás: ez az adott sor végére rakni a { nem C-szerű formázás, hanem tán a Java-ból jön, és ajánlott ott használni. Továbbá próbáld kialakítani a saját stílusod, és tartsd magad ahhoz, mert könnyebb neked és másnak is olvasni a kódod.
int* foo; helyett int *foo; mert ebből is lehetnek gondok, mint int* foo, bar; és két pointer helyett lesz egy pointer és egy változó, és nincs olyan típus, hogy int pointer, hanem int-re mutató pointer van csak.
3. óvatosan az ilyenekkel:
for(i=0;i<n;i++)
if (palyak[i]==0)
{
nemsi_index[a]=i;
a++;
}Ugyanis nem feltétlenül portable a kód. Sajnos nem mindegyik fogadja el így ezt a formát. Az ilyen formával már kevésbé lehet gond:
for(...)
{
if(...)
...;
...;
} -
stranger28
addikt
-
dabadab
titán
Par dolog:
0. Az egesz cuccban egy darab komment sincs, pedig azt erdemes gyakorolni, mert kulon tudomany.
1. "magic value"-ket a kodba irni nem tul jo gyakorlat, jobb konstanskent kezelni oket, illetve C-ben makrokent, szoval "#define MIN100_NOT_FOUND -1"
2. A free()-ket erdemes pont forditott sorrendben meghivni, mint a malloc()-ot, egyreszt, mert ugy maradnak meg szepen a blokkok, masreszt meg lehet, hogy egy kesobb malloc()-olt strukturaban egy pointer egy elozoleg lefoglalt memoriateruletre mutat - es ha az elso free()-zed, a masodikrol meg azt gondolod, hogy az meg ervenyes adatokat tartalmaz, abbol baj lesz.
3. A valtozoneveket (konstansokat, makrokat, file-okat, kommenteket) angolul tessek irni.
4. A nemsi_index teljesen felesleges. Lehetne mondani, hogy azert van igy, hogy meglegyen a funkcionalis tagolas (beolvasas, feldolgozas, kiiras), de ez egyebkent sincs meg (amire teljesen elfogadhato magyarazat, hogy igy hatekonyabb a kod - leszamitva ezt a franya nemsi_indexet).
5. Ha megis a tagolas mellett dontenel, akkor erdemes lenne azt harom fuggvenybe kirakni.
-
greenity
senior tag
Nekem tetszik, nálam elég úri lenne

-
stranger28
addikt
Üdv!
Érdekelne, hogy a kódom mennyire "elegáns" megoldás a következő egyszerű kis feladatra:
Egy hójelentés N sípályán mért hóréteget tartalmazza.
Készíts programot, amely beolvassa a sípályák számát (1≤N≤20) és az egyes pályákon a hóréteg vastagságát (0≤V(i)≤100), majd
A. megadja, hogy melyik sípályán a legnagyobb a hóréteg;
B. megad egy sípályát, ahol a hóréteg legalább 100 cm vastag;
C. megadja azokat a sípályákat, ahol nem lehet síelni (azaz a hóréteg vastagsága 0)!1-20,0-100 és egyéb hülyebiztos vizsgálatokkal most nem töltöttem az időt.
#include <stdio.h>
#include <stdlib.h>
int main(){
int i,n,a=0;
int* palyak;
int maxi=0;
int leg100=-1;
int nemsi=0;
int* nemsi_index;
printf("Palyak szama: ");
scanf("%d",&n);
palyak=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++){
printf("%d. palya: ",i+1);
scanf("%d",&palyak[i]);
if (palyak[i]>palyak[maxi]) maxi=i;
if (palyak[i]>=100 && leg100==-1) leg100=i;
if (palyak[i]==0) nemsi++;
}
nemsi_index=(int*)malloc(sizeof(int)*nemsi);
for(i=0;i<n;i++)
if (palyak[i]==0){
nemsi_index[a]=i;
a++;
}
printf("\nLegnagyobb: %d\n",maxi+1);
printf("Van 100 cm ho: %d\n",leg100+1);
printf("Nem lehet sielni %d palyan:",nemsi);
for(i=0;i<nemsi;i++){
printf(" %d",nemsi_index[i]+1);
}
free(palyak);
free(nemsi_index);
return 0;
}Hülyén hangzik, de tényleg erre mennek rá, hogy mennyire úri.

(#4192) aAron_: Én innen szedtem le a keybindert, az minden ilyet megold.
-
aAron_
őstag
az lett végül, ott beraktam valahova majd töröltem, így most jó, remélem mással nem lesz problémám már
köszi a segítségeket

-
Ereshkigal
őstag
-
aAron_
őstag
-
buherton
őstag
Default eclipse beállításnál is ilyen problémák vannak. Állítsd át a billentyűzet kiosztást
.MOD: Ugye az angol billentyűzeten a speciális karaktereknek más hol van a helyük, így ők nyugodt szívvel tesznek ide billentyű kombinációkat.
-
aAron_
őstag
sziasztok!
az egyik desktopomra (win8x64) most tettem fel először a codeblocks-ot, minden jónak tűnik, kivéve, hogy nem tudok " { " karaktert írni, helyette ezt írja mindig:
/** \brief
*
* \param
* \param
* \return
*
*/mi lehet a baj? alt gr + B gondolom valami shortcut, de alapértelmezetten? kicsit furcsa

-
greenity
senior tag
Ma lnko-t meg faktoriálist meg binomiálist számoltunk.
Úgy kezdtük, hogy statikusan adtuk meg az adatokat, és utána mutattam meg a scanf-et, miután már megcsináltuk a programokat.Az a nagyobb gond, hogy a csapat nagy része még nem látott linuxot, így aztán már ezzel is problémák voltak.
Majdnem minden második embernek én lépegettem be cd-vel a mappájába... másodszorra már ment..
De lehet az elején linux gyorstalpalót kéne tartsak.. -
dabadab
titán
-
Jester01
veterán
-
skylaner
senior tag
-
Bobrooney
senior tag
-
greenity
senior tag
-
Jester01
veterán
-
greenity
senior tag
Sziasztok!
Lehet nem itt kéne kérdeznem, de olyan emberkéknek tartok programozást, akik nem tanultak még ilyet.
A tutorom azt mondta, hogy matematikai problémákat oldjunk meg folyamatábrával, majd kódoljuk le c-ben.
Ha esetleg lenne valami ötletetek, hogy mit lehetne nekik adni, annak nagyon örülnék.LNKO-t, faktoriálist, páros és páratlan függvények kiíratását gondoltam eddig, de nem igazán jut olyan eszembe, amit könnyű szívvel adok nekik, akár csak matekból...
-
buherton
őstag
-
alapz@j
tag
-
Jester01
veterán
Az akkor lehet, ha elfelejtetted hozzálinkelni a math könyvtárat. Minden bizonnyal valamit panaszkodott is a fordító, legközelebb azt is írd meg nekünk, valamint keress rá az interneten is. Jelen esetben valószínűleg undefined reference hibát kaptál ami azt jelenti, a linker nem talált valami hivatkozott szimbólumot. Ilyenkor ha nem elírás történt, akkor hiányzó könyvtárak/modulok felé kell keresgélni. Konstansra azért fordulhat, mert azt szerencsés esetben a fordító kiszámolja így nincs szükség a tényleges atan implementációra.
Végül pedig a gyógymódról. Nem írtad milyen környezetet használsz, parancssoros gcc esetén -lm kapcsolót kell alkalmazni. A -l segítségével lehet függvénykönyvtárakat hozzáadni a beszédes m pedig a matek könyvtár neve. IDE környezetben meg kell keresni hol lehet további könyvtárakat (library) beállítani és ott fel kell venni a matek könyvtárat.
-
zitto
csendes tag
Egy kis segítséget szeretnék kérni.
Még nemrég kezdtem programozni tanulni ráadásul egyedül.
A problémám az lenne, hogy ezt a kódott nem fordítja le a compiler, csak akkor, ha az atan-on belül szám van és nem egy előre definiált változó. Nem értem miért, kérlek segítsetek:#include <stdio.h> /* printf */
#include <math.h> /* atan */#define PI 3.14159265
int main ()
{
double param, result;
param = 1.0;
result = atan (param) * 180 / PI;
printf ("The arc tangent of %f is %f degrees\n", param, result );
return 0;
} -
eriktoth
tag
Időközbe megoldódott
még hozzáférek a sulishoz -
eriktoth
tag
Üdv! Valaki esetleg nem tud valami free servereket fejlesztésre? anno volt suliba amin putty-val könnyen el lehetett érni, és fejlesztgetni rajta. Valami hasonlót keresnék
-
Jester01
veterán
Mint rajottem, az ftell/fgetpos csak akkor mukodik "helyesen", ha mar olvastam a streambol.
Ha elso olvasas elott adom ki, akkor -20-at ad vissza, es innentol fogja egyesevel novelni/csokkenteni a poziciot minden getc/ungetc utan, nem nullatol.Ezt nehezen hiszem, és ha tényleg így van az bug.
Nekem egyébként működik linuxon, akár text akár binary módban nyitom meg a fájlt. -
Karma
félisten
-
nyunyu
félisten
Bontsuk kette a problemat.
Mint rajottem, az ftell/fgetpos csak akkor mukodik "helyesen", ha mar olvastam a streambol.
Ha elso olvasas elott adom ki, akkor -20-at ad vissza, es innentol fogja egyesevel novelni/csokkenteni a poziciot minden getc/ungetc utan, nem nullatol.
Ez a kisebbik problema.Nagyobbik bajom az, hogy a getc platform fuggoen kezeli a sorvege karaktereket.
Pl. Visual C++ 2010 Win alatt ha \n karaktert lat, akkor lenyeli az utana jovo \r karaktert es mindig kettovel noveli a fajl poziciot.
Ez azert problema, mert a feldolgozando forraskodok egy resze UNIX alatt lett mentve, ott meg nincsen \r az \n utan, de akkor is kettovel noveli a poziciot...Plusz nehezitesnek vannak olyan forraskodok is, amiben nincs \n, hanem \r-rel vannak tordelve.

Probaltam szamolni, hany getc/ungetc-nel jarunk, de az sem ad pontos eredmenyt, mivel nem tudom eldonteni, hogy a latott \n karakternel eggyel vagy kettovel noveljem az indexet.
Windows alatt automatikusan utana rakott \r egyaltalan nem jon at a getc-vel, nem tudom megszamolni. -
nyunyu
félisten
Hogyan lehet _megbizhatoan_ lekerdezni, hanyadik karakternel tartunk az eppen feldolgozott fajlban, majd a lementett poziciora visszaugrani?
ftell neha negativ erteket ad vissza, majd a kovetkezo karakter olvasasa utan az elozo rossz ertek+1-et, aztan fseek(fp, pos, SEEK_SET)-re total mashova ugrik, nem a "megjelolt" karakterhez.
fgetpos paros is ugyanazokat az ertekeket adja vissza, mint az ftell.
Ha manualisan szamolom a karaktereket minden getc/ungetc-nel, akkor sem pont oda ugrik vissza.
Probaltam Win alatt VC++ 2010-zel, meg linux alatt GCC-vel, mindegyik produkalja.
Feldolgozando fajl szoveget tartalmaz, mind win, mind linux stilusu sortores is elofordulhat benne. -
Jim Tonic
nagyúr
-
alapz@j
tag
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.
-
Jester01
veterán
Ahogy a kollega írta, logikailag megsemmisül és a szabvány csak ennyit ír elő.
Az már fordítófüggő, hogy ez hogyan néz ki gépi kód szinten, de rendesen optimalizáló fordító nyilván előre lefoglalja a területet és újrahasznosítja. Mellesleg a stack kezelésnek igen minimális az overheadje hiszen csak egy-egy pointer művelet.Ha érdekel a végeredmény hogy néz ki akkor kérj assembly listát a fordítódtól vagy használd ezt a remek weboldalt.
-
alapz@j
tag
-
Davs
tag
-
alapz@j
tag
Egy C99
for (..) {
int x = ...
}ciklusban az x minden iterációnál létrejön/megsemmisül a stack-en vagy csak egyszer és mindig az kerül felhasználásra?
-
Jester01
veterán
-
tototos
addikt
Sziasztok!
Mi a különbség a két függvény között? Mi alapján kell használni az externt és mi alapján nem?
extern void do(int,int)
void do (int,int) -
tototos
addikt
-
buherton
őstag
-
tototos
addikt
-
Jester01
veterán
-
tototos
addikt
-
Jester01
veterán
-
tototos
addikt
-
dabadab
titán
-
tototos
addikt
Sziasztok!
Egy kis preprocesszor segítség kellene.
A következőt szeretném valahogy fordítás előtt megcsinálni.
Adott a következő 2 define#define CHG_I2C I2C1
#define GPIO_AF_I2C1 0x000Ehhez kellene egy macro ami kb így nézne ki.
#define CONCAT(a,b)
ennek azt kellene csinálni hogy
CONCAT(GPIO_AF_,CHG_I2C) meghívása után a GPIO_AF_I2C1 legyenPróbálkoztam sok dologgal de még nem sikerült rájönni melyik a jó kombináció.
-
concret_hp
addikt
-
bucsupeti
senior tag
Nem tudom de nekem simán elfogadták a saját megoldásomat. Vagy fgets-el vagy getc-vel csináltam és mindig a helyzetnek megfelelő inputot írtam. Soha nem használtam a Bauer féle getline-t. Igaz hogy ez 16 éve volt már, de akkor is ugyan azt a getline-t használta mint amit most. Neki rohadtul bejöhetett ez a módszer

-
Jim Tonic
nagyúr
-
Jester01
veterán
-
Bobrooney
senior tag
-
mobal
nagyúr
-
Bobrooney
senior tag
Alapvetően a SZE C vizsgának az a lényege (ProgI-ből), az input ellenőrzés.
Karakterláncot kérünk be (gyakorlatilag csak a getline-t fogadják el!)
Majd ellenőrizzük, hogy helyes-e az input, vagy hogy helytelen-e (attól függ, hogy építed fel az ellenőrzést).
Majd ha csakis kizárólag legalább formailag helyes adat érkezett be, akkor mehet a tartalmi ellenőrzés.
Majd ugye az "alapfeladat". -
mobal
nagyúr
-
bucsupeti
senior tag
Az órát átszámolni percekbe, hozzáadni a perc részt. Ezt mindkettőnél megcsinálni.
Az elsőből kivonjuk a másodikat és vesszük az abszolút értékét.
A kapott eredmény / 60 lesz az óra a kapott eredmény % 60 lesz a perc.Ennyi.
C-ben számolás+kiiratás (draft):
kulonbseg=abs((o1*60+p1)-(o2*60+p2))
printf("%d:%d",int(kulonbseg/60),kulonbseg%60Szerintem az ellenőrzött input és annak feldolgozás sokkal "bonyolultabb".
-
mobal
nagyúr
Nem lenne egyszerűbb megoldás, ha megvizsgálnád, hogy melyik "óra a nagyobb" azt elvégeznéd simán kivonással, a percnél pedig hasonló képen (itt fordított esetben, tehát, ha az első "óránál" nagyobb a második akkor 24-ből ki kell vonni)? Bár ott én úgy oldanám meg, hogy az viszonyítási alap - tehát a legelső - időpont "perceit" kivonnám 60-ból majd hozzáadnám a másikét (itt értelemszerűen lenne 60-nál nagyobb érték is, akkor simán -60 és megvan a keresett különbség).
Pl.:
1. 00:00
2. 09:17
3. 11:23
Itt tök egyszerű, leellenőrzöd, mindig a nagyobb az időpont.
Pl.:
1. 15:37
2. 16:42
3. 09:27
Itt már kevésbé. Első óra 15, a második 16. Ez oké, nagyobból a kisebb. A második esetben 9 óra viszont kisebb, de itt is nagyobb-kisebb majd ezt az értéket levonod 24-ből (15 óra és 9 között van 18 óra különbség. 15-9=6, 24-6=18). Perc esetén hasonlóan.
Remélem érthető voltam!

mobal,
-
bucsupeti
senior tag
SZE vizsga.
Van egy tanítványom aki szintén tegnap volt vizsgázni. Neki sikerült az alapfeladatot megcsinálnia úgyhogy sikeres vizsgát tett.Tök véletlenül a vizsga előtt egy hétig éppen egy időátszámító feladatot adtam neki (éjféltől eltelt másodpercekkel kellett számolnia moduló képzéssel).
A lényeg hogy úgy csináltattam meg vele az időpontátszámítót hogy készíetett egy ctoi() függvényt amit hivogatott. Kiszámolta másodpercekben az órát a percet és a másodpercet, majd úgy modulózott tovább.Boldogan mesélte hogy sikerült a vizsga, én is örültem neki. Nem is kérdeztem hogy mi volt a vizsgafeladat, ma meg látom itt ezt a sze feladatlapot. Fel is hívtam hogy szégyellje magát, mert az alapfeladat gyakorlatilag készen volt már egy hete és sokkal tovább kellett volna jutnia.....

-
Jim Tonic
nagyúr
Az alapelv oké, de ez mi? Ha ez megvan, akkor a két időpontot ki kell vonni egymásból, majd az órát meg kell szorozni 60-nal és hozzá kell adni a percet. Ezt már a kivonás előtt meg kell tenned. A visszaalakítást pedig maradékos osztással (modulo) tudnád megcsinálni, de az itt nem kell. AM esetén ellenőrzöd, hogy az óra <= 12, 24órás esetén <= 24, pm esetén az órához 12-t adsz, a perc pedig <=59.
Melyik része nem oké még? -
Bobrooney
senior tag
-
maathe
senior tag
Ma vizsgáztam progból, ami sajnos nem jött össze. A feladat ez volt.
Többféle módon próbálkoztam, de előbb utóbb mindegyikkel lett valami gondom. Szerintetek hogy kellene megoldani?Szerintem kellene egy formátum ellenőrző függvény, de az órát és a percet mégis külön kellene kezelni a minimum és maximum értékek és a különbség meghatározása miatt. Ha ez megvan, akkor a két időpontot ki kell vonni egymásból, majd az órát meg kell szorozni 60-nal és hozzá kell adni a percet.
Lehet, hogy az egész gondolatmenet rossz, valószínűleg ezért sem lett meg

Előre is köszi, ha valaki segít

-
aAron_
őstag
é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

-
Jester01
veterán
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!
-
Jester01
veterán
-
aAron_
őstag
-
Jester01
veterán
-
aAron_
őstag
üdv!
hogy lehetne X db szám összes lehetséges variációját a lehető leggyorsabban előállítani úgy, hogy az egyes számok különbsége 0.01 vagy ennek szorzata (akár 0 vagy 1), és az X db szám összege 1?
pl egy lehetséges variáció (ahol X = 20):
0.1 0.03 0.05 0.02 0.04 0.02 0.05 0.05 0.01 0.05 0.05 0.04 0.05 0.05 0.05 0.05 0.02 0.09 0.2
nekem sajnos csak olyan ötletem van amit még leírni is sokáig tartana (sok for loop), és rendkívül lassú lenne

-
lockdown90
senior tag
-
skylaner
senior tag
Nem hagyja figyelmen kívül, csak a fordító máshogy dolgozza fel mint ahogy te első ránézésre gondolnád.
2 lépésben értékeli ki a feltételt:1: a < b => 4 < 3 => nem igaz, az érték FALSE => tehát 0
2: ÉRTÉK(a<b) < c => 0<3 => ez már igaz lesz ezért fog végrehajtódni az IF igaz ága, nem pedig az else ág. -
lockdown90
senior tag
sziasztok! azt szeretném kérdezni, hogy itt a relációkat miért hagyja figyelmen kívül?
int a=4, b=3, c=2;
if(a<b<c)printf("%d",a);
else printf("%d",b);folyamatosan 4-et ir ki, holott elvileg 3 at kéne.
köszi
-
Jester01
veterán
-
Karma
félisten
-
krisztianAMG
senior tag
-
Jester01
veterán
Szittja: a kill függvénnyel vagy az azonos nevű közismert segédprogrammal.
krisztianAMG: azért mert a scanf_s csak úgy szereti a string beolvasást ha a hosszt is megadod, pl. így: scanf_s("%s", 99, string); Ezt egyébként az msdn szépen le is írja, tessék máskor ott olvasgatni.
Bobrooney: javaslom nézz utána a scanf-nek és a pointer-tömb ekvivalenciának.
-
Carasc0
őstag
Sziasztok!
Érdemes ezt a nyelvet megtanulni? Mármint az ANSI C-re gondolok. Nem akarok hibás következtetésre jutni más által mondottak befolyásolási hatások miatt. Sokak szerint ma már a C++ és a C# a menő. Én azért gondoltam ezt megtanulni mert én a linux világába költözöm, és gondolom oda pontjó lesz! Meg amúgy is szeretem ezt a nyelvet, főleg mióta tudom, hogy ez a programozási nyelvek angolja.

Előre is köszönöm!
-
Bobrooney
senior tag
scanf_s("%s",string);
hiányzik a & karakter
scanf_s("%s",&string);
Legalábbis a legtöbb scanf-nél meg kell adni! -
krisztianAMG
senior tag
Miért omlik ez össze?
char string[100];
scanf_s("%s",string); -
Szittja
csendes tag
Üdv! Volna egy kis problémám: van egy programom ami a megfelelő signalra (SIGUSR1 és SIGUSR2) növeli és kiírja egy változó értékét. Ez rendben is van. De szükségem lenne egy másik programra, ami az előzőnek a futása közben küldi a megfelelő signalokat. Erre milyen módszerek vannak? Köszönöm előre is. Üdv.
-
Bobrooney
senior tag
-
Jester01
veterán
-
skylaner
senior tag
Egyre többször látom itt a forumban, hogy fgv paraméterben így szerepel egy tömb:
int osszegez(int tomb[])
és nem így:
int osszegez(int* tomb)Miért ezt használjátok?
Vagy valamiért hatékonyabb mint a második változat? -
lockdown90
senior tag
-
Jester01
veterán
Ha csak a kiíráshoz kell, akkor a printf formátumok megfelelő használatával ez megoldható:
printf("%.*s_%d\n",strlen(tomb[i].nev)-2,tomb[i].nev,i+1);
(persze ellenőrizni kellene, hogy a név legalább 2 karakter-e). -
lockdown90
senior tag
-
Jester01
veterán
Ezt a kérdést nem igazán értem, mit akarsz átírni?
Általánosságban: lekéred a string hosszát és szépen index alapján felülirod kézzel vagy strncpy-vel. -
lockdown90
senior tag
-
Jester01
veterán
A javított verzió nekem működik.

-
lockdown90
senior tag
nah sikerult, mukodik indexelesbe is elrontottam vmit, de mar jo
-
lockdown90
senior tag
-
skylaner
senior tag
Mert az osszegez fgv-ben csak N-ig mész a ciklussal M helyett.
-
lockdown90
senior tag
#include <stdio.h>
#define N 2
#define M 5
typedef struct szavak{
char nev[10];
int jegy;
int ora[5];
}szavak;
void beker(szavak tomb[])
{
int i;
int j;
for(i=0; i<N; i++)
{
printf("Tanulo neve:");
scanf("%s",tomb[i].nev);
printf("Tanulo jegye:");
scanf("%d",&tomb[i].jegy);
printf("Oralatogatasok szama:\n");
for(j=0; j<M; j++)
{
printf("%d.nap:",j+1);
scanf("%d",&tomb[i].ora[j]);
}
}
}
void vissza(szavak tomb[])
{
int i=0;
int veg = N-1;
printf("Nevek visszafele atirva:\n");
for(i=veg; i>=0; i--)
{
printf("%s_%d\n",tomb[i].nev,i+1);
}
}
int legjobb(szavak tomb[])
{
int i;
int max;
int index=0;
max=tomb[0].jegy;
for(i=0; i<N; i++)
{
if(tomb[i].jegy>max)
{
max=tomb[i].jegy;
index=i;
}
}
return index;
}
int osszegez(int tomb[])
{
int i,j;
int osszeg=0;
for(i=0; i<N; i++)
{
osszeg+=tomb[i];
}
return osszeg;
}
void heti(szavak tomb[])
{
int i;
for(i=0; i<N; i++)
{
printf("Heti oralatogatasok: %d\n\n",osszegez(tomb[i].ora));
}
}
int legtobb(szavak tomb[])
{
int i;
int index=0;
for(i=0; i<N; i++)
{
if((osszegez(tomb[i].ora))>30)
{
index=i;
}
}
return index;
}
int main()
{
szavak tomb[10];
beker(tomb);
vissza(tomb);
heti(tomb);
printf("Legjobb tanulo: %s\n\n",tomb[legjobb(tomb)].nev);
printf("30 tobb oralatogato: %s\n\n",tomb[legtobb(tomb)].nev);
system("pause");
return 0;
}tudna esetleg valaki segiteni hogy miert nem adja vissza a 30 na tobb oralatogato nevet, illetve miert nem adja ossze az oralatogatasok osszeget? mindig rossz eredmenyt ad. ki tudna javitani valaki?
nagyon megkoszonnem, nagyon fontos lenne -
Bobrooney
senior tag
Lekéred a hosszát és az után indexeled a kívánságodnak megfelelően.
-
lockdown90
senior tag
sziasztok!
azt hogy lehetne megoldani, hogy egy tombben tartolt nevek vegen az utolso ket karaktert
atirom _0-ra? van ra valami fuggveny a string.h-ban? hogy lehetne leprogramozni?koszi
-
Dementor01
csendes tag
Sziasztok! Osztott memóriás feladatban kérnék segítséget:
Olyan programokra van szükség, ami létrehoz egy osztott memória szegmenst; az egyik program beleír, és vár néhány másodpercet, bináris szemafor segítségével védi az írást; a másik program pedig kiolvas belőle.Az shm szegmens létrehozása megvan, de a többit nem tudom hogyan..

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#define SHMKEY 69906L
int main()
{
int shmid; /* osztott memoria azonosito */
key_t key; /* kulcs az osztott memoriahoz */
int size=512; /* osztott mem szegmens merete byte-ban */
int shmflg; /* flag a jellemzokhoz */
key = SHMKEY;
/* Megnezzuk, van-e mar SHMKEY kulcsu es size meretu szegmens. */
shmflg = 0;
if ((shmid=shmget(key, size, shmflg)) < 0) {
printf("Nincs meg szegmens! Allitsuk elo!\n");
shmflg = 00666 | IPC_CREAT;
if ((shmid=shmget(key, size, shmflg)) < 0) {
perror("Az shmget() system-call sikertelen!\n");
exit(-1);
}
} else printf("Mar van ilyen shm szegmens!\n");
//printf("\nAz shm szegmens azonositoja %d: \n", shmid);
exit(0);
} -
hoffman_
nagyúr
-
Jester01
veterán
A maszkolás az bináris dolog, akkor jó ha bitekkel dolgozol. Jelen esetben az alsó két bitet kell leválasztani erre az & 3 az pont jó is, vizsgálni viszont az 10 kombinációt kell aminek az értéke 2.
A helyiértékes dolog ennek a tízes megfelelője és arra az osztás művelet jó. Ugye az egyesek száma az simán 10-el vett maradék, tehát x % 10. A tízesek száma ugyanez csak még egy tízzel való osztás is van benne: (x / 10) % 10. A százas helyiértéknél már 100-al kell osztani és így tovább.
Új hozzászólás Aktív témák
-
4200 - 4101
6397 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Formula-1
- Állítólag összeolvadt a OnePlus és a Realme
- Battlefield 6
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Energiaital topic
- Ingatlanos topic!
- Építő/felújító topik
- További aktív témák...
- Eladó egy pixel 8 128/8
- Saeco Intelia Evo Black I Gőzölőkar I Szervizelve I Garancia I Számla I Beszámítás
- Eladó megkímélt, szép állapotú Nikon D750 full-frame (FX) DSLR váz
- Kingston Fury / G.Skill Ripjaws V 64GB 32GB 2x32GB 2x16GB 4x16GB DDR4 3200MHz CL16 RAM memória BAZÁR
- AMD Ryzen 9 5900X / 3900X / R7 3700X + MSI / Gigabyte X570 / B450 Alaplap + Arctic hűtős félkonfigok
- HIBÁTLAN iPhone 12 Pro 128GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS4493
- Eladó Huawei P Smart Z 4/64GB zöld / 12 hónap jótállás
- Magyarország piacvezető szoftver webáruháza
- Apple iPhone 14 /128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 85%
- Honor Magic V2 / 16/ 512GB / Kártyafügetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Amellett, hogy Ritchie eléggé a nyelv alkotója, nagy open source projektekben is előfordul, hogy ez a forma mellett döntenek.












