-
Fórumok
Mobilarena - 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
-
emvy
félisten
-
emvy
félisten
-
emvy
félisten
-
emvy
félisten
Az egyik elv az, hogy csak akkor valtoztatnak meg szabalyokat/mintakat, amikor arra kifejezetten jo ok van. Tehat ha idaig jo volt az ANSI, es az ujabb feladatokat is meg lehet oldani igy, akkor nem tesznek a fejlesztokre extra mentalis terhet azzal, hogy varialnak.
A C++ (Scala, etc.) egyik fo problemaja, hogy nagyon sok modszerrel meg lehet csinalni ugyanazt. C++-ban irhatsz proceduralis, OO, funkcionalis, etc. programot, ami egyreszt meno+kenyelmes, masreszt sokkal nehezebb megakadalyozni, hogy egy nagyobb projektnel divergaljon a stilus/megkozelitest. A sokfele megkozelites meg azt eredmenyezi, hogy a projekt reszvevoinek 1) allandoan el kell donteni, hogy melyiket alkalmazzak 2) nehezebb ertelmezni a masik kodjat.
Pl. a Java ezert is olyan sikeres -- egy Java kodot _barki_ el tud olvasni. (Ott a komplexitast attoltak a frameworkok szintjere.)
-
emvy
félisten
-
emvy
félisten
-
emvy
félisten
nem fut le, mert 280 hibát dob a 12-es és 350 warningot, felét tudom hogy amiatt, hogy a 12esben is még elöl kell deklarálni változókat, de jobb lenne látni a dolgokat azért.
Szívesen foglalatoskodom hogy WP 8.1re is tanulom az alkalmazásfejlesztést, aztán így muszáj hogy minimum 2013as legyen. emellé meg még a 2010es C++ t nem igazán szeretném feltenni hogy összekutyulódjonMiert kutyulodna ossze?
-
emvy
félisten
(#5274) zka67
Igen, tudom, és az adatlapban is olvastam. A 750 ms az csak akkor szükséges, ha 12 biten ábrázoltatom vele a hőmérsékletet. Próbáltam belerakni 750 ms késleltetést __delay_ms(750);-el illetve szétdarabolva, pl. 200-200-as csoportokban. Le se fut ez a függvény(halmaz). Egyszerűen csak (mintha) átugorja, és küldi a többi mért adatot. Továbbá 16 C-nál magasabb hőmérsékleten tökéletesen működik a várakozás nélkül is. Szóval nem gondolnám, de persze lehetni LEHET!
(#5273) emvy
Erre én is gondoltam, hogy ez itt nagyon gyanús, hogy amikor 15-öt (00001111)-t kéne kijelezni, akkor 127 (11111111) jön helyette. De nem jutottam semmire se. Valami konkrét(abb) ötleted van?
Amit mer, az egyebkent pontos? Tehat amikor 16 fokot jelez, akkor az megfelel a valosagnak?
-
emvy
félisten
Sziasztok!
Írtam egy DS1820 hőmérő IC-hez C-ben programot PIC-re, de sajnos nem úgy működik, ahogy kéne neki.
DS1820 kód. Jól és viszonylag pontosan mér, de 16 Celsius foknál kisebb hőmérsékleteknél 127 C-t jelez ki a putty egy USB-RS485 konverteren keresztül. Más, mért adatot is küldök ugyanezen a csatornán keresztül ugyanazzal a függvénnyel, így azt nem gondolnám rossznak. Valami ötlet?
127 az gyanusan megegyezik az SCHAR_MAX-al, szoval kicsit megneznem, hogy nincs-e valami tulcsordulas/alulcsordulas valahol.
-
emvy
félisten
-
emvy
félisten
-
emvy
félisten
"Goto-t igazából a C korszakban igyekeztek nagyon írtani"
Valójában Dijkstra ismert cikke '68-as, a C-n meg '69-ben kezdtek el dolgozni Ritchie-ék, szóval a goto utálata megelőzi a C-t és igazából az a fajta vallásos utálat, ami bizonyos körökben megvolt a gotoval kapcsolatban, nem igazán volt indokolt.
Barcsak Dijkstra egyeb cikkeit is ennyire komolyan venne a komjuniti.
@buherton:
csak irtal mar olyan kodot, hogy
10 print "Szia"
20 goto 10 -
emvy
félisten
Lazan kapcsolodik:
.Net CLR GC. 1200 kByte-os CPP fajl. Az elso verziojat Lispben irta Patrick Dussud, es irt hozza egy Lisp -> C++ transzlatort. Es egyebkent eleg szep.
-
emvy
félisten
"APL(-szeru) nyelven neztem bazi hosszu, teljesen strukturalatlan kodokat - ott ugye nem jellemzoek a fuggvenyek, viszont az sem, hogy regesreg krealt ertekeket hasznalsz sokkal-sokkal kesobb; inkabb sok-sok egymas utan kovetkezo es egymasra epulo lepest irnak le."
Azert ott is joval olvashatobb es kovethetobb lesz a kod, ha ugy nez ki, hogy van egy fuggvenyed, hogy
do_something_complex()
{
do_something_simple();
do_something_even_simpler();
// ...
}es az egyes lepeseket kirakod sajat fuggvenybe. A fordito meg ugyis inline-olja a fuggvenyeket, szoval meg csak lassabb se lesz.
A k/q write only, akarhogy strukturalsz

Ha meg van code folding, akkor
#region Do something complex
do_something_simple();
do_something_even_simpler();
#endregionDe ha sima C-rol van szo, akkor igazabol nincs gyakorlati tapasztalatom real life, szoval elfogadom, ami mondasz.
-
emvy
félisten
"Tehat vegulis az ok, amiert szet akarod szedni, az a konnyebb navigacio."
Nem csak a navigacio, hanem a fuggveny atlathatosaga is: ugyanis ilyen szerkezetnel siman elofordul, hogy olyan valtozokra hivatkoznak, aminek par szaz sorral korabban adtak valami erteket. (Ami IDE-kkel eddig talalkoztam, azok csak a komplett switchet tudtak osszehajtogatni, az egyes case agakat nem)
Bocs, de most tenyleg nagyon latszik, hogy soha az eletben nem kellett ilyenekkel szenvedned, azert nem gondolod ezt problemasnak

C/C++-ban tenyleg nem (amikor azzal dolgoztam, akkor maniakus overengineering ment a fejlesztes soran, es az kod nagy resze pure virtual osztalyokbol epult fel
), mas nyelvekben lattam hasonlot, de nem volt extra szenvedes, ez teny. (Es 40 agas switch/case szerkezetekkel se sokat talalkoztam, ez is teny; nem tudom, hogy ez szerencse, vagy tapasztalatlansag
.)Mondjuk azert masrol beszelunk. En azt mondtam, hogy onmagaban a fuggveny hossza nem problemas, te meg azzal jossz, hogy ha nagyon bonyolult switch/case szerkezetek vannak, vagy a valtozok deklaracioja/ertekadasa es felhasznalasa kozott van 40 kepernyonyi kod, az problemas. Ezt elfogadom/elhiszem, de ugye itt nem a kod hosszaval van a gond -- a kod hossza az kovetkezmenye a problemanak, de nem az oka.
APL(-szeru) nyelven neztem bazi hosszu, teljesen strukturalatlan kodokat - ott ugye nem jellemzoek a fuggvenyek, viszont az sem, hogy regesreg krealt ertekeket hasznalsz sokkal-sokkal kesobb; inkabb sok-sok egymas utan kovetkezo es egymasra epulo lepest irnak le. Peldaul ilyen esetben semmi problema nincs a hosszu koddal.
De tenyleg nem tudok az erveddel vitatkozni

-
emvy
félisten
"bar sokan azt valljak, hogy egy fuggveny ne legyen hosszabb X sornal, de ez szerintem butasag"
Ezt csak azert mondod, mert meg nem kellett olyan fuggvenyeket kibogoznod, amikor tobb ezer sor hosszuak voltak, bennuk tobbszorosen egymasba agyazott switchekkel, ami azt eredmenyezi, hogy a "hol vagyok a kodban?" kerdesre a valaszt tobb perces scrollozgatas adja meg.
Igazabol ha egy fuggveny kezd hosszu lenni (mittomen, tobb, mint szaz soros), akkor erdemes eltoprengeni azon, hogy nem lenne-e erdemes megis szetszedni. Erre persze lehet az is a valasz, hogy "nem", de azert toprengeni erdemes.
Tehat vegulis az ok, amiert szet akarod szedni, az a konnyebb navigacio. Ennek a megkonnyitese szerintem az IDE dolga lenne, nem a programszervezese, es a modern IDEk mar szoktak tudni fold/collapse funkciot C++-ra is, ha jol gondolom. .Net-ben ott a #region pragma, ami pont erre valo; Java-ban a sok patternhuszar ugyis haromsoros classokba szervez mindent (
), funkc. nyelvek meg altalaban tul tomorek ahhoz, hogy ilyen hosszu fuggvenyeket irjon az ember. -
emvy
félisten
-
emvy
félisten
Köszönöm a segítőkész válaszokat!
Újabb kérdésem lenne. Mindig is gondjaim voltak a függvények elkészítésével. Hogyan lehetne ebben a kódban azt a két adag feltételt 1-1 külön függvénybe kiírni, hogy ne a programtörzset árasszák el?
Fuggvenybe olyan funkcionalitast celszeru kiszervezni, amiket a kod tobb pontjan is hasznalsz. Az, hogy feldarabolsz egy adott funkciot tobb reszre, eleg ertelmetlen (bar sokan azt valljak, hogy egy fuggveny ne legyen hosszabb X sornal, de ez szerintem butasag).
-
emvy
félisten
O bazz, X perce nezem mar, hogy ez mi a fene.
Az enum-ot meg az unsigned parametert ki is hagyhatnad a trukkbol, csak elvonja a figyelmet 
Hint, ha mas se latja meg elsore: ket karakterrel meg lehet fixalni.
-
emvy
félisten
Bringaval mindenki el tud, az nem erdekes

-
emvy
félisten
Viszont ez minden elem elérésnél egy indirekt függvényhívás amit nem tud a fordító inline beágyazni. Bizonyos mennyiség fölött garantáltan sokkal lassabb lesz, mintha ténylegesen transzponáltad volna.
A másik, hogy a cache hatékonyságát nagyban befolyásolja a bejárás. Egy sorfolytonos bejárás sokkal gyorsabb lehet mint egy oszlopok szerinti. Az algoritmust ennek megfelelően választhattad meg, de ha a hívó egy függvénypointeresen transzponált mátrixot ad be, akkor amire a kód azt hiszi, hogy hatékony sorfolytonos az valójában nem az. Ugye bizonyos műveleteknél ezért éri meg ténylegesen transzponálni a mátrixot, a bejárás megváltoztatása helyett, még akkor is ha amúgy nincs függvénypointeres trükközés. Lásd még What every programmer should know about memory: "Through the simple transformation of the matrix we can achieve a 76.6% speed-up! The copy operation is more than made up. The 1000 non-sequential accesses really hurt. "
Virtuális mátrixokhoz viszont kétségkívül jó megoldás lehet.
> "Bizonyos mennyiség fölött garantáltan sokkal lassabb lesz, mintha ténylegesen transzponáltad volna."
Algoritmustol fugg. Ha kevesszer transzponalsz, de sokszor olvasol, akkor igen. Ha sokszor transzponalsz, es kevesszer olvasol, akkor a te megoldasod lehet drasztikusan lassabb. Ha pl. marha nagy matrixokkal dolgozol, de a transzponalt matrixot felhasznalo fel minden matrixbol csak nehany elemet vesz ki, akkor a lazy megoldas a jobb.
-
emvy
félisten
Konkretan elkezdtem ezt irni, de aztan ugy gondoltam, hogy nem trollkodok ennyire bele a forumba
Ezzel annyi lehet a gond C-ben, hogy ha az eredeti matrixot megvaltoztatjak, miutan visszaadtad a fvptr-t, akkor esetleg problema lehet. Rendes funkcionalis stilusban ez az alapmegoldas egyebkent, es ott meg azzal sincs gond, hogy valaki kirantja alolad a szonyeget (ill. az eredeti erteket). -
emvy
félisten
Újabb problémán van.
Elő kellene állítanom az összes x hosszúságú stringet amelyben pontosan y darab 'a' és z darav 'b' karakter van.
Sajnos nem tudom ezt csak megoldani úgy hogy az 'a' és 'b' karakterekből előállítom az összes x hosszú stringet, és ezekből kiszűröm azokat amelyek kellenek. Valami erőforrás-hatékonyabb megoldás van a problémámra?
Egy rekurziv megoldas lehet, pszeudokodban:
szavak_listaja = ures_lista;
fuggveny generalj_szot(szotoredek, rendelkezesre_allo_a, rendelkezesre_allo_b) {
ha szotoredek hossza = x akkor add hozza a szavak_listaja-hoz szotoredeket;
egyebkent
{
ha rendelkezesre_allo_a > 0 akkor generalj_szot(szotoredek+"a", rendelkezesre_allo_a-1, rendelkezesre_allo_b);
ha rendelkezesre_allo_b > 0 akkor generalj_szot(szotoredek+"b", rendelkezesre_allo_a, rendelkezesre_allo_b-1);
}
}Ezt at lehet alakitani rekurzio nelkulire, ha ugy tartja kedved.
-
emvy
félisten
Dinamikusan kellene memóriát foglalni.
-
emvy
félisten
-
emvy
félisten
Igen, koszi, a zarojelezesnel rontottam el, mert en a masik jelzest hasznaltam.
Valamiert ugy gondoltam ,hogy az if a te megoldasod szerint csak akkor engedi tovabb igen-el, ha mindegyik feltetel teljesul.
De akkor ezek szerint nem(#5119) emvy
Valahonnan erre emlekeztem, de ezt is elfogadhatta volna, ha rendesen zarojelezek, nem?
Mert ez lenne a logikai vagy
De mar lehet, hogy belezavarodtam ,es azt se tudom, hogy hogyan allapitjuk meg harom oldalrol, hogy alkothatnak-e haromszoget
Szerintem utobbi zavart be picitJa, meg nem csak hogy nem zarojeleztel jol, de || kapcsolatot hasznaltal && helyett.
-
emvy
félisten
Az indexelest nem vettem eszre, akkor a nem lefoglalt memoriateruletrol gondolom behalaszott valamit.
Pointereket leszedtem, atirtam azokat, amiket emlitettel, de meg igy se irja ki, ha nem lehet osszerakni az oldalakbol haromszoget.Azt is feldobta csoporttarsam, hogy hasznaljam az stdbool.h libet, de azzal nemhiszem ,hogy elorebb lennek, nem valtoztatna rajta.
Az lehet meg, hogy nem jol zarojelezel. Ez itt mukodik:
http://pastebin.com/aETwmi6F -
emvy
félisten
- a 'kerulet' valtozot inicializalni kene (0-ra)
- a tomboket (es kb. mindent C-ben) 0-tol kezdodoen indexalunk, tehat az elso elem indexe 0, az n. elem indexe n-1, tehat a lehet_e_haromszog-ben az indexeket csokkentsd eggyel
- if (lehetvagynem = 1)
nagyon tipikus C/C++ hiba: a '=' operator ERTEKADAS, nem pedig egyenloseg-ellenorzes. Az ertekadas eredmenye az ertek. C-ben az if utan kovetkezhet szam is, nem csak boolean ertek (ha nem nulla, akkor igaznak szamit), tehat
if (a = 5) {
// ez itt mindig vegrehajtodik, mert erteket adtal a-nak, es az nem nulla
}Szoval if (lehetvagynem == 1) a helyes.
Te meg az elejen vagy, szoval ha lehet, szokd meg, hogy ugy tesztelunk egyenloseget, hogy bal oldalon van a konstans. Ergo:
if (1 == lehetvagynem) { }
.. ugyanis ha veletlenul elgepeled, akkor szolni fog a fordito.
-
emvy
félisten
Szóval ez kb arra jo, hogy atadhassak tomboket, a fuggveny pedig ha a parametereknel megadom int *-kent a tombot, akkor nem is kell semmi mast tennem, ezzel at is van adva a tomb es vegezhetek a fuggvennyel muveleteket rajta ugy, hogy nem kell foglalkoznom a visszaadással, mert a memoriacimen talalhato adatokkal dolgozik? Szoval nagyjabol ertem, de megis fura, hogy erre kulon kell valamit alkalmazni..
pl:
#include <stdio.h>
int darab (int * tomb, int meret);
int main()
{
int meret;
printf("Kerem az elemek szamat\n");
scanf("%d",&meret);
int elemek[meret];
printf("A 10-nel nagyobb elemek szama:%d",darab(elemek,meret));
return 0;
}
int darab (int * tomb, int meret)
{
int i;
int tobbmint=0;
for(i=0;i<meret;i++)
{
if(tomb[i]>10)
{
tobbmint+=1;
}
}
return tobbmint;
}[kihagytam az adatbevitel tobbi reszet, nem akartam megirni az egeszet a scanf-el, csak osszedobtam gyorsan, hogy lassam a dolgot.]
Erre is jo, de alapvetoen ez nagyon szuk resze a pointerek felhasznalasi modjanak. Azt gondold vegig, hogy imperativ programozasi nyelvekben (pl. C) megkulonboztetunk ket dolgot:
- ertek
- identitasTehat ha van ket valtozonk:
int a = 5;
int b = 5;.. akkor az ertekuk megegyezik, az identitasuk nem. A pointer arra jo, hogy ne erteket kezelj, hanem identitast. Ha atadom egy fuggvenynek a 'b' valtozo erteket, akkor az 5-ost adom at. Az eredeti b-vel (az identitassal) nem tud a hivott fuggveny semmit sem kezdeni, hiszen arrol nem tud, o csak az erteket (5) latja. Ha a b-re mutato pointert adom at (&b), akkor a hivott fuggveny az identitasrol tud, meg tudja valtoztatni b erteket, ha akarja.
Kepzelj el pl. egy fuggvenyt, ami kicsereli ket valtozo erteket. Ezt nem lehet megcsinalni csak ertekek atadasaval -- a 'csere' fuggveny bemenete ket _identitas_, hiszen ertekeket nem lehet megcserelni, azok ugyanugy ertekek maradnanak.
Funkcionalis nyelvekben (pl. Lisp, ML-leszarmazottak) nincs szukseg ilyesmire, mert ott csak ertekek vannak, identitas nincs. (Illetve van, csak sokkal jobban kezbentartott modon kezeljuk.)
-
emvy
félisten
Vegulis ezen kivul nincs tul sok dolog. Par aprosag:
- az operatorok probalnak okosak lenni, ezert ha pl. inkrementalsz egy pointert (ami ugye egy sima elojel nelkuli egesz szam) akkor az nem feltetlen egyet ugrik, hanem annyit, amekkora annak a tipusnak a merete, amire mutat. Tehat pl. egy 64 bites double-ra mutato pointer egy 32 bites architekturan 8 bajttal novekszik, ha inkrementalod.
double ertek = 5;
double * a = &ertek;
printf("%p\n", a);
a++;
printf("%p", a);>> 09FFB28
>> 09FFB30
Ketto kulonbsege: 8- a tomb az nem mas, mint a tomb kezdetere mutato pointer
.. most jo lenne, ha konkret dolgokat kerdeznel

-
emvy
félisten
Igen, az angollal elevickelek.
Ott tartok, hogy az eloadas folian le van irva, hogy mi is ez pontosan, de ezzel nem igazan vagyok elorebb, mert nem ertem, hogy miert jo ez. Marmint mire hasznalhato, meg pontosan hogyan.. Szoval a gyakorlati alkalmazasat valamiert nem latom at.
A pointereken kivul a tombok fuggvenyeknek parameterkent valo atadasa sincs meg, de szerintem erre megoldast talalok majd valamelyik eloadas folian.
A strukturakkal egyelore meg nem foglalkoztam, eloszor ezeket szeretnem megerteni, megtanulni a hasznalatukat normalisan.
Van a neten csomofele leiras, erdemes rakeresni, de probaljuk meg itt is.
Ugyebar C-ben (es mas imperativ prog. nyelvekben is) vannak valtozoink, vagy nevezzuk oket inkabb ertekeknek, mert az tokmindegy, hogy valtoznak-e vagy sem. A forditonak megprobaljuk megmondani, hogy milyen tipusu az az ertek, amit letrehozunk. (A tovabbiakban tegyuk fel, hogy sima 32 bites arhichitekturan vagyunk). Pl.:
double a = 1;
Egy valtozorol mindig ket dolgot tudunk: mekkora helyen fer el (hany bitnyi hosszu), es hogyan ertelmezzuk. Azt, hogy hogyan/minek ertelmezzuk, szoktak tipusnak is nevezni.
Most 'a'-rol a kovetkezoket tudjuk:
- 64 bitnyi informacionk van
- ezt egy elojellel rendelkezo lebegopontos szamkent ertelmezzukHa van egy ilyenunk:
double * a;
.. akkor errol az tudjuk, hogy
- 32 bitnyi informacionk van
- ez egy egesz szam, es ugy ertelmezzuk, mint egy memoriacimet. A memoriacimen pedig egy 64 bit hosszu lebegopontos szamot talalunk.Tehat a pointer egy jellemzoen 32 vagy 64 bitnyi informaciot tartalmazo szam. A memoria szepen be van szamozva 0-tol 2^32 vagy 2^64-ig. Ha ahhoz a memoriarekeszhez mesz, aminek a szama megegyezik a pointer ertekevel, akkor ott egy olyan erteket talalsz, aminek a tipusa a pointer tipusaban jelezve is van.
A pointert a * jelzi altalaban. Ha van pl. egy
double ** a;akkor az a kovetkezo jelenti, analog modon:
- van egy 32 bites ertekunk
- ez egy egesz szam, es ugy ertelmezzuk, mint egy memoriacimet. A memoriacimen pedig egy 32 bit hosszu egesz szamot talalunk, amit ugy ertelmezunk, mint egy 32 bites erteket, amit ugy ertelmezzunk, mint egy memoriacimet. A memoriacimen pedig egy 64 bit hosszu lebegopontos szamot talalunk.Ez idaig vilagos?
(Tobbieknek: szandekosan vagyok pontatlan az int, double, etc. meretevel kapcsolatban.)
-
emvy
félisten
Kerdes, hol tartasz a dologban. Angolul ertesz, ugye?
-
emvy
félisten
Csinalhatnal ilyen plugint
ranyomok az IDE-ben a kodra, elkuldi neked, de kezzel indentalod es visszakuldod. 
-
emvy
félisten
Programozást tekintve semmi különbség, ahogy notepad-ben is nyugodtan tudsz programozni. Egyéb kényelmi szolgáltatásokban szerintem a Visual Studio többet nyújt. Lévén, hogy fizetős ez el is várható.
Valójában mindenki saját szája íze szeirint eldöntheti, hogy miben programoz. Ha lehetőséged van mindkettőt kipróbálni, akkor szerintem tedd azt és egy hét használat után el tudod dönteni melyik jön be jobban.
Pl. én utoljára VS-ben grafikus alkalmazást csináltam (DirectX/OpenGL). Nem tudom, hogy a Code:
locks milyen segítséget tudott volna nyújtani benne, de a VS elég jól hozzájárult.Magánfelhasználásra már nem fizetős.
-
emvy
félisten
Akinek a ternary operator bántja a szemét, az szerintem menjen el kapálni

-
emvy
félisten
//harom beolvasott szam kozul a legkisebbet hat. meg
#include <stdio.h>
void main()
{
int i, szam, min;
for (i = 1; i < 4; i++)
{
printf("kerem a szamot\n");
scanf_s("%d", &szam, 1);
if (i == 1)
min = szam;
else
if (szam < min)
min = szam;
}
printf("A legkisebb szam: \n", min);
getchar();
}Azt akarom megkerdezni, hogy miert nem ir ki ez semmit a kepernyore, valakine van valamilyen otlete? Koszi
A valtozoidat celszeru lenne 0-ra inicializalni.
-
emvy
félisten
void visszateresi erteku fv-ben minek 0-t visszaadni?
Nem errol van szo, hanem arrol, hogy a scanf a VS2010-ben mar deprekalva volt, 2012-tol meg csak kulon kapcsoloval lehet engedelyezni a hasznalatat.
-
emvy
félisten
Desktopra (ha nem kell multiplatform) akkor egyertelmuen .Net.
-
emvy
félisten
-
emvy
félisten
Dobd fel http://pastebin.com/ -re, es tedd be ide a linket.
-
emvy
félisten
Uraim...
Van egy kis problémám.
Van egy programmemóriába létrehozott tömböm és ebből szeretnék kiíratni.
A következő képen néz ki:rom static unsigned char szovegek[14][19] = {
{'P','r','o','f','i','l',' ','n','e','v',':'} //, ...stb sorok
};
//A kiíratást meg így
printf("%s", szovegek[i]);Az i természetesen növekszik.
Ha nem a rom-ba teszem hanem simán a memóriába akkor menne, de akkor meg a hely kevés..
Azért van szükség erre a tömbre mert szeretnék helyet spórolni...
Előtte switch() elágazással csináltam, de az zabálja a memóriát.
Előre is köszi...Oo, nem kene 0-val terminalni a sztringet? Egyebkent mit jelent az, hogy 'nem megy'?
-
emvy
félisten
A konvencio az, hogy ha a char erteket szovegkent ertelmezed, akkor siman 'char'-kent hasznalod, ha szamkent ertelmezed, akkor pedig signed vagy unsigned chart-t hasznalsz.
-
emvy
félisten
Munkáltató teszteken nem ilyen jellegű kérdések szoktak lenni, hanem írjon algoritmust és a fentebb írt szivatós kérdések.
(#4822) axioma: Ha jelentkezőt kellene tesztelni ahhoz lenne pár ötletem és akkor saját kútfőből, saját tapasztalatom alapján állítanám össze. A probléma, hogy most más állítja össze és én a másik oldalon ülök.
Például az enum-os kérdésem tapasztalatból jön. Adott volt egy enum tömb, amit használtunk 8- és 32 bites architektúrán is. A probléma ott kezdődöt, amikor memset-el 0-tól különböző értékkel próbáltuk inicializálni a tömböt.
MOD: eszembe jutott még egy. Ugye ezzel // egy sort lehet kikommentezni, vagy mégsem?
![;]](//cdn.rios.hu/dl/s/v1.gif)
Gondolom a digrafokra meg a trigrafokra gondolsz.
-
emvy
félisten
Oké
.a[i] = i++;
Mit eredményez?
char foo[3] = "bar";
Mi lesz a tömbben?
char *string = "foo bar";
Miért nem módosítható pl. az első elem? Egyáltalán lefordul? Ha igen/nem miért?
typedef struct foo *BAR;
struct x
{
char c;
BAR ptr;
};Lefordul?
struct x
{
char c;
int i;
} foo bar;Lefordul? Ha igen/nem miért?
Az enum teljesen mértékben portábilis?
Az elsőről már hallottam, de még soha nem használtam (nem kellett még). Bevallom derekasan a középsőről nem hallottam még. Az object (.o) fájl (és mellé kerülnek egyéb fájlok, mint pl. a nagyon hasznos .lst is) a következő lépcső a preprocesszált fájl után, ami gyakorlati értelembe vett fordtási szakasz. A header fájlok alapján kívülről elérhetők az egyesek függvények, tömbök, változók, és egyéb szimbólumok, amit majd később a linket fog összekötözgetni. A linker már teljesen független a nyelvtől. Szimbólumokat kötözgeti össze és közben persze figyelembe veszi az egyéb fordítónak szóló utasításokat, amivel mondjuk linkelés során tovább lehet optimalizálni, függvényeket elhelyezni a memóriatérben, összecsomagolja pl. a struktúrákat (__attribute__(packed)) stb... Kimenete a bináris/hex (Intel, Motorola, stb...), .map (memória térkép, meg lehet nézni hogy az egyes függvények és társaik hol találhatók), .elf (debuggoláshoz kell). Azt tudni kell, hogy a forítás során utasítani lehet hogy az egyes program blokkokat egy egységként kezelje, aminek az eredménye, hogy a szorosan összetartozó object fájlokat már a fordítás során összelinkelni .a-fájlá. Az optimalizálás hatékonyabb, hogy ha két körösen fordítunk, ahol az első körben csak kielemzi az optimalizálási lehetőséget, majd második körben további optimalizációs lehetőségeket keres, majd fordít. Bár a tudásom megkopott, mert jó ideje nem kellett ezzel foglalkoznom.
Oke, nem vizsgaztatlak, csak irtam tippeket. A karaktertombos meg inkrementes dolog szerintem inkabb beugrokerdes, mint advanced C.
-
emvy
félisten
Valaki tud igazán durva C tesztet? Aminél még egy tapasztalt programozónak is vakarnia kell a fejét. Az a baj, hogy a neten találtam párat, de azok nem elég kemények. Lehetőleg ne a printf, fopen, fseek és társaira feküjdön rá, mert azt úgy sem használom, hanem a deklarálás, definiálás, inicializálás, pointerek legyenek lehetőleg.
Pointerek, inicializalas nem lehet tul kemeny.
- longjmp/setjmp-re adj pelda
- implementalj late bound funkciohivasokat C-ben
- meseld el, mi az az objekt file, hogy mukodik a linker -
emvy
félisten
-
emvy
félisten
-
emvy
félisten
Mert valojaban igy nez ki:
#include <stdio.h>
int main()
{
int a=4, b=9;
int c;
c=a; a=b;b=c;
printf("%d %d",a,b); // 9 4
return 0;
}Tehat nem tortenik fuggvenyhivas.
-
emvy
félisten
En eppen azon gondolkodom, h fogom a kovetkezo felevben a kalkulust applikalni, de ennek ellenére a gondolkodásmód elsajátítása miatt kell a matek.
Milyen programokat írtál amihez nem kell matek de mégis lefedi a programfajták nagy részét? Gondolom nem vállalatírányítási rendszert dobtál össze.
Tevedes ne essek, sok hulyeseget tanul az ember egyetemen is, de megegyszer mondom a matek: elsajatitando gondolkodasmod.
Netrol meg nem lehet megtanulni programozni, esetleg kódolni ami két igen különböző dolog. Programozni elobb tanulsz meg matekon. Ja es persze a netrol megtanult dologbol is inkabb ganyolas lesz, mint kódolás.
Modellezes alatt mit ertesz?
Ha esetleg megosztanad azokat a programokat, ha penzbe kerulnek akkor meg, hogy egyaltalan mit csinal akkor lehet h valtozik a velemenyem.
Regen en is igy gondoltam, de nem feltetlen szukseges a matektudas a programozashoz, ez a helyzet. Rengeteg programozasi feladat van, ahol az uzleti tudas joval fontosabb. (uzleti = domen specifikus)
Szerk.: bazz, beneztem a datumot

Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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!
- Fogyjunk le!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kormányok / autós szimulátorok topikja
- Robotporszívók
- Samsung Galaxy S24 - nos, Exynos
- Motoros topic
- Battlefield 6
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- One otthoni szolgáltatások (TV, internet, telefon)
- Bambu Lab 3D nyomtatók
- További aktív témák...
- Teljesen ÚJ - iPhone 17 Pro 256 GB Kártyafüggetlen - Fóliás - 0 ciklus - Apple garancia
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- RYZEN 7 5700X3D (8 mag/16 szál, 96MB L3 cache)! GARANCIA/SZÁMLA (a Te nevedre kiállítva)!
- Intel Core i3-4160, 16GB DDR3 félkonfig - Alaplap, CPU, RAM, SSD, hűtő
- 2 darab Metalica VIP Superior 2 napos jegy csere 4 darab egynaposra
- 2000GB Gen5x4 NVMe SSD, 1 év gar GEN V!!! SK Hynix 2048GB PCB01 kb. 14GB/s / 12GB/s
- 5G Lenovo ThinkPad P14s Gen 3 Intel Core i7-1280P Nvidia T550 32GB 512GB FHD+ IPS 1 év gar
- MacBook Pro 14" 2024 M4 Pro 24GB RAM, 10 CORE CPU, 10 CORE GPU, 1TB SSD, Space Black 27% Áfa, 0459AR
- Bomba áron dobozos Hp Laptop! /AMD Ryzen 5-7520U/8 GB/256 SSD/FHD/Garancia
- Samsung PM9C1b 1TB M.2 PCIe Gen4 SSD! 7.100-6.700MB/s
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



, de nem tudok ezzel vitatkozni.

. Milyen nyelv ez egyáltalán?
), mas nyelvekben lattam hasonlot, de nem volt extra szenvedes, ez teny. (Es 40 agas switch/case szerkezetekkel se sokat talalkoztam, ez is teny; nem tudom, hogy ez szerencse, vagy tapasztalatlansag
.)




Jó lenne,ha most sikerülne!


