Hirdetés
- Milyen TV-t vegyek?
- Kormányok / autós szimulátorok topikja
- Versenybe hozta magát az új Xeonnal az Intel
- OLED TV topic
- AMD GPU-k jövője - amit tudni vélünk
- RAM topik
- Teljesen AI-alapon jön a FidelityFX Super Resolution 4.0
- Vezetékes FEJhallgatók
- Apple notebookok
- Titan Army P27GR monitor: hogy tud ilyen olcsó lenni?
Hirdetés
-
Versenybe hozta magát az új Xeonnal az Intel
ph A Granite Rapids AI-ban kifejezetten erősnek tűnik, bár még nincs a piacon az a konkurens platform, amivel versenyezni fog.
-
Hivatalosan is bejelentették a Horizon Zero Dawn Remasteredet
gp A felújított kiadást kedvezményes áron kapják meg azok, akik rendelkeznek az eredeti változattal.
-
Billentyűzettel autóznék újra, van még ilyen gém?
lo Régebben voltak billentyűzettel jól irányítható "árkád" autós játékok, most csak két ilyet ismerek:...
Új hozzászólás Aktív témák
-
Pcmagicnet
csendes tag
válasz Szőkecica #2382 üzenetére
Köszi. siker. Köszönöm mindenkinek a segítséget és bocsi hogy ilyen későn válaszolok de nem voltam itthon egy darabig.
Még egy olyan kérdésem lenne hogy tud-e valaki ajánlani C tanulásához valami jó tutorialt, vagy doksit, vagy jegyzeteket vagy bármit, amiből teljesen az elejétől meg tudnám tanulni a C-t. Ami tényleg értelmesen, részletesen elmagyaráz meg leír mindent.
BRIAN W. KERNIGHAN – DENNIS M. RITCHIE könyve megvan, amiből el is kezdtem már tanulni, de már az elején ad olyan feladatokat, amit előtte nem magyaráz el, és azt sem értem hogy mit kellene vagy hogy csinálni.
Ezért szeretnék egy olyan könyvet vagy az is jó ha valamilyen egyetemi jegyzete megvan valakinek amiből tanult, ami értelmesen elmagyaráz meg illusztrál átláthatóan mindent.
Így is a függvényhívások értékátadására magamtól kellett rájönnöm, de még mindig nem tudok normális függvényeket írni. Pl: a visszatérési érték típus konverziója nem sikerült, és nem értem hogy miért. A tömbök kezelését sem írja le rendesen a könyv. Az a baj hogy nem illusztrálják így nehéz vizuálisan elképzelni, hogy hogyis tárolódnak az adatok a tömbben.
Meg sok minden van még amit nem értek és, nagyon szeretném megtanulni. Eddig amit tanultam html, css, javascript, php, mysql. Szeretnék egy komoly nyelvet megtanulni (főleg a PIC programozáshoz) ezért választottam a C-t. Aztán majd később C++.
Ha tudtok segítsetek.Előre is köszönöm mindenkinek
-
Sk8erPeter
nagyúr
válasz Szőkecica #2382 üzenetére
Könyörgöm, használjátok már a "Programkód" gombot kód bemásolásakor, arra való, hogy ne egy okádék legyen a hozzászólásban, hanem valami átláthatónak tűnő kód...
Kódodat kijelölöd, majd megnyomod a Programkód gombot, voilá, máris átláthatóbb.
Ha nagyon nem megy, ott van a Pastebin is.Nem csak rád vonatkozik, de nagyon zavaró, hogy ennyien másoltok be ide formázás nélküli kódokat, utólag a topic és a konkrét kódok olvashatatlanok lesznek.
Legalábbis én ilyenkor úgy vagyok vele, hogy meg sem próbálom megérteni a kódot (akár segítségkérés, akár válasz), van jobb dolgom is.
Ne vegye senki bántásnak, inkább jótanács+kérés.[ Szerkesztve ]
Sk8erPeter
-
kingabo
őstag
válasz Szőkecica #2406 üzenetére
Ki kell jelölni a forráskódot és utána megnyomni a programkód gombot.
A for helyett inkább egy while ciklus kéne: kiírod az adatokat 1 oldalra egy for-ral, bekérsz addig amíg az előre/visszalépés gombját meg nem nyomják, aztán megvizsgálod, hogy merre kell lapozni és ehhez állítod a for alsó felső határát ugrás a while elejére. (pl)
-
kingabo
őstag
válasz Szőkecica #2410 üzenetére
Előjeles szám a legfelső biten tárolja az előjelet, de ezzel egy hasznos bitet elvesztünk az előjel nélkülihez képest. Vagyis az előjelnélküli által tárolt legnagyobb max szám az a duplája az előjeles által tárolt max-nak.
Az azt jelenti, hogy az a változó 0 és 255 közötti értékeket vehet fel.
Itt jól megfigyelhető a signed és az unsigned által tárolható min és max értékek: [link] (c#-ról van szó, de ez ne zavarjon meg
-
kingabo
őstag
válasz Szőkecica #2412 üzenetére
"Azt hittem hogy az ami előtt van egy - jel :-)"
De kell valahogy azt a '-' jelet tárolnod. Akkor próbálom visszafelé. Van a "sima" char, ami -128 és 127 közötti értéket vehet fel. Ez binárisan úgy van megvalósítva (nagy vonalakban, részletesebben kettes komplemens szám ábrázolás), hogy van 8db bited, az első bit elmegy az előjel bitnek, a maradék 7 biten pedig lehet tárolni 2^7 értéket vagyis 128-at (a pozitív oldalon azért csak 127-ig megy, mert a 128-adik érték a 0 ). Ha a char elé odaírod, hogy unsigned, vagyis unsigned char ertek;, akkor előjel nélküli változót deklarálsz. Ekkor az előjelnek fenntartott bit is felhasználható értékes bitként, vagyis 2^8-an számot tudsz tárolni. Mivel mindkét esetben 8biten vagyis 1 byte-on tárolod az adatokat, ezért a sizeof ugyanazt a méretet fogja megadni. Ugyanez érvényes az pl az int-nél is, csak ott 1byte, helyett ált 4byte-on tárolod az adatokat.Ha próbálgatni akarsz: deklarálj egy előjeles és egy előjel nélküli char-t. Az előjelesnek adj egy pozitív számot értékül, aztán kasztolással* add értékül a változót az előjel nélkülinek. Ugyanezt próbáld ki negatív számmal is, aztán szerep cserével, 127-nél nagyobb értéket adj az előjel nélkülinek és ezt a változót add értékül az előjelesnek. Ja és természetesen minden értékadás pár után írasd is ki, hogy lásd a különbségeket.
*kasztolás: egy adott típusú változót "átalakítani" másik típusúvá. (kisebb-ről nagyobbra, tehát pl: char-ról int-re megkötés nélkül lehet, de visszafelé nagy valószínűséggel adat vesztés lesz, mivel az int-be jóval nagyobb számok is beleférnek)
Pl: char elojeles = -5;
unsigned char elojelnelkuli = =(unsigned char) elojeles;Bocs ennél érthetőbben nem tudom elmagyarázni. Ha valami kimaradt, vagy nem érthető, akkor kérdezz nyugodtan.
-
Sk8erPeter
nagyúr
válasz Szőkecica #2417 üzenetére
Érdemes inkább egy header fájlba belerakni a deklarációkat, és a header-fájlt include-olni.
Általában úgy van a fejlesztőkönyezeteknél megoldva, hogy ha berakod a header-fájlok közé a valami.h-t, és a projekt source fájljai között ott van a valami.c, akkor az #include "valami.h" (valami.h-ban vannak a deklarációk!) sor hatására (ezt a main() elé teszed természetesen) látni fogja a függvénydefiníciót (ami a valami.c-ben van).Most meg megmutatom, hogy végre hogyan használd a Programkód gombot, felhasználva a Te kódodat, kicsit átalakítva.
A main-nek mindig legyen int a típusa, és mindig legyen visszatérési értéke, ami problémamentes lefutás esetén az általános programozási gyakorlat szerint a main()-ben 0, hiba esetén 1 vagy ettől eltérő szám.#include <stdio.h>
#include "valami.h"
#define TOL 1
#define IG 10
int main()
{
int i;
for(i=TOL; i<=IG; ++i)
{
printf(" %d kobe => %d\n", i, kob(i) );
}
return 0;
}1.) Kijelölöd, a kódrészletet.
2.) Rákattintasz a "Programkód" gombra.
3.) Kész.Remélem nem olyan bonyolult ezek után...
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Szőkecica #2419 üzenetére
#include <stdio.h>
int main()
{
int bytes_read;
int nbytes = 100;
char *my_string;
puts ("Please enter a line of text.");
/* These 2 lines are the heart of the program. */
my_string = (char *) malloc (nbytes + 1);
bytes_read = getline (&my_string, &nbytes, stdin);
if (bytes_read == -1)
{
puts ("ERROR!");
}
else
{
puts ("You typed:");
puts (my_string);
}
return 0;
}"The getline function reads an entire line from a stream, up to and including the next newline character. It takes three parameters. The first is a pointer to a block allocated with malloc or calloc. (These two functions allocate computer memory for the program when it is run. See Memory allocation, for more information.) This parameter is of type char **; it will contain the line read by getline when it returns. The second parameter is a pointer to a variable of type size_t; this parameter specifies the size in bytes of the block of memory pointed to by the first parameter. The third parameter is simply the stream from which to read the line."
Sk8erPeter
-
Lortech
addikt
válasz Szőkecica #2419 üzenetére
Ha windowson vagy, akkor a nem szabvány gnu kiterjesztés getline problémás lesz, meg lehet, hogy a főiskolán, egyetemen se fogadják el.
Egyébként a programkód megnyomása ennyit szúr be a szövegdobozba, ha kézzel bemásolod:
[M][ C ][ /C ][/M]
S így használhatod:
[M][ C ]formázandó programkód[ /C ][/M]A [ C ]-knél a space-t ki kell venni.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
Sk8erPeter
nagyúr
válasz Szőkecica #2431 üzenetére
A Monospace betűtípus is fontos, ettől válik áttekinthetővé, hogy rögzített szélességű karakterek láthatók a kódban, lásd pl. Courier New.
Ezt pedig a [M][/M] jelöli.
A [ C ][ /C ] (szóközök nélkül a szögletes zárójelben) pedig azt jelöli, hogy a szöveg konvertálatlan formában kerül kiírásra, nem lesz levágva a sok szóköz egyetlen szóközzé, stb.
A Programkódnál pedig így néz ki a szövegformázás: [ M ][ C ]#include <stdio.h>...[ /C ][ /M ] (megint szóközök nélkül a szögl. zárójelben), tehát vonatkozik rá a Monospace és Konvertálatlan gomboknál (ilyen is van!) elérhető beállítás is.
Remélem egy kis PH!-lecke után már érthető.---
...és nem egyenlőre, hanem egyelőre.[ Szerkesztve ]
Sk8erPeter
-
j0k3r!
senior tag
válasz Szőkecica #2435 üzenetére
"Hogy érted hogy ez nem jó ez a getline() függvény?"
szerintem arra gondolhatott a kollega, hogy az a getline, amit te hasznalsz az nem a korabban linkelt getline, hanem egy altalad implementalt sajat fuggveny, aminek szinten getline a neve.
some men just wanna watch the world burn...
-
Lortech
addikt
válasz Szőkecica #2435 üzenetére
A C getline függvény ahogy linkelték korábban, egy függvénykönyvtárnak a része (GNU C kiterjesztés), tehát nem fog _bárhol_ lefordulni neked egy standard c fordítóval, standard libekkel.
Ha olyan környezeten vagy, ahol nem áll rendelkezésre ez a kiterjesztés, ott az általad is írt hibát kapod (undefined reference to 'getline').
Nyilván, ha te magad definiálsz egy ilyen nevű függvényt, mint ahogy tetted azzal, hogy bemásoltad a getline függvény egy megvalósítását, akkor azt használhatod, de ettől az még nem ugyanaz a függvény, amit ajánlottak korábban, de nincs ezzel baj, számodra lehet jó megoldás. Nem azt írtam, hogy nem jó, hanem azt, hogy nem ugyanaz.
Talán még annyit érdemes megjegyezni, hogy olyan környezeten, ahol viszont rendelkezésre áll a GNU C könyvtár, ott esetleg nem fogod tudni lefordítani a programodat, mert két getline függvény is lesz (a sajátodat érdemes máshogy elnevezni).szerk: j0k3r! kolléga megelőzött közben, jól megírta a lényeget.
[ Szerkesztve ]
Thank you to god for making me an atheist
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ÚJ, bontatlan Apple Watch ULTRA 2 (2024) fekete titántok, fekete óceánszíj! 1 év Apple garancia!
- Xiaomi Mi 11 Lite 5G NE 8/128GB, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Apple iPhone 11 Pro 512GB, Akku: 93%, Megkímélt, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- GAINWARD RTX 2060 SUPER 8GB GDDR6 GHOST Eladó! 57.000.-
- Romoss PMT60 /100 watt usb-c / LiFePo4 / 60000mAh /192 Wh/ lámpa/ powerbank
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen