C programozás alapismeretek

 ( s-kami | 2019. május 23., csütörtök - 11:40 )

A C programozás iránt érdeklődőknek, kezdőknek és kalandoroknak indítottam egy kis alapozót.
Jelenleg videó csak az első 9 témakörhöz érhető el, de folyamatosan fogom készíteni a többi bejegyzéshez is és akkor vesszük betűről betűre, hogy mit is csinál minden egyes példa program.

Fogadjátok nagy szeretettel, én is azzal készítettem:
https://skamilinux.hu/phpBB3/viewforum.php?f=66

Videók:
https://www.youtube.com/playlist?list=PLTwvqf_atuc2Mcvgi8wTwPLBM-8r7xudq

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

bookmark

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

+1

+1

+1

+1

köszi, megnézzük
--
Én TUDOM, hogy igazam van. És ha nincs is, akkor is NEKEM van igazam, mert én vagyok az Admin. Ennyi!

Ha jöhet konstruktív kritika, akkor azt javasolnám, hogy egy más platformot használj a tutorialhoz, ne egy phpBB-s fórumot, amit nem erre találtak ki. Először is a leckék sorrendje kb. véletlenszerű, mert az utolsó aktivitás szerint rendezi a fórum, nem ahogy logikailag egymásra épülnének. Ezen felül a forráskódhoz nincs színezés és csak egy kis ablakban jelennek meg, görgetni kell őket, nem lehet egyben átlátni.

Alkalmasabb lenne akár simán a githubot használni erre: egy markdown fájl egy lecke, rendes színezéssel, a repó elején meg a tartalomjegyzék. A forráskódok meg ott lennének közvetlen a lecke mellett egy klónozásra. (Bónuszként egy-egy lecke lehetne a gitről és a githubról/gitlabról/stb). De lehet akár egy minimál (opcionálisan statikusan generált) weboldal is, ahol tudnál már rendes forráskód színezést használni, de emellett be tudod rakni a videókat/reklámokat is, amit a github saját oldalára nem lehet.

Na igen, ha a topicok sorrendje fix lenne, akár jó is lehetne, mert úgy lehet, hogy nem lennék lusta regelni és hozzászólásként javaslatokat tenni, hogy mire érdemes figyelni a kódokban (ami egyébként pedagógiai szempontból is előnyös lehet: ha elsőre a javított kód lesz ott, akkor a miért-ek nagy része eltűnik, viszont így, hogy van egy kód, azt meg lehet vitatni, így fokozatosan követhető, hogy hogyan lesz egyre jobb).

Pl. a "Maximum érték meghatározása - FOR és IF használata" kódnál az "int"-re felhívni a figyelmet majd a maximum=0 kezdőértékre, hogy akkor ez a kód csak addig jó, amíg csak pozitív számokat kap inputnak.

De a sorrend tényleg problémás.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Nagyon szépen köszönöm mindenkinek a hozzászólásokat!
Igen, erre nagyon jó lenne valamit kitalálni, viszont a fórum mindenképpen kell, hiszen ezért indítottam egyesével az adott témakörökhöz az adott programokat, hogy egy adott feladat, mint a dobókocka program teljesen saját szálat kap, így végig lehet beszélgetni az a lehetőségeket, variációkat és a problémákat.

Minden eset konkrét kibeszélési lehetőséget kap, viszont ez a színezés tényleg gond, ez jó lenne máshogy....

Egyelőre akkor megcsinálom a sorszámokat az adott témakörökhöz és aztán kitalálunk valamit a forráskódok minőségi megjelenítéséhez az olvashatóság javítására....


Puppy linux, mert megérdemlem. http://skamilinux.hu

mondjuk lehetne azzal kezdeni, hogy megnezed valamelyik opensource projekt syntax guidejat, es azt koveted, mert a mostani kod eleg ronda (es nem a phpBB miatt)?

olyan ez mint a zongora: lehet szar tartassal is kezdeni meg hogy az ujjaid rosszul csinaljak a dolgokat, akkor is el fogsz pompogni valamit, de nem a legjobb.

A kommentben azt irtad, hogy uj szamot huzol, de nem latom az ujrahuzast a kodban.

Valoszinuleg en igy oldanam meg:

int main(){
    // ...
    for(int i = 0; i < 5; i++) {
        do {
            huzas = (rand() % 90) + 1;
        } while (bennevan(huzas, lottoszam, i))
        lottoszam[i] = huzas;
    }
    // ...
}

bool bennevan(int szam, int[] tomb, int hossz) {
    for(int i = 0; i < hossz; i++) {
        if (tomb[i] == szam) return true;
    }
    return false;
}

disclaimer: regen irtam C kodot telefonon, lehetnek benne hibak. ;)
---
Lambda calculus puts the fun into functional programming

Bookmark, köszönöm.

Én is könyvjelzőzöm, köszi!

---
| Dropbox |

A 19-es lottósnál van egy ilyen rész:

for (j=0; j<=i; j++) //megnézzük,...

helyette lehetne:

vane=0;
for (j=0; j<i; j++) //megnézzük,...

A 17-esben:

    printf("\n\t Szia! Mi a beceneved ?  ", becenev);

helyett:

    printf("\n\t Szia! Mi a beceneved ?  ");

Fúúú...
Köszi, a 17 -es javítva !

A 19 -es téma teljesen elvadult ötlet volt bevezetni egy plusz változót, teljesen fölösleges eltárolni azt, hogy van e már ilyen szám kihúzva.
Egyszerűen ha van, akkor húzunk másikat "oszt kész" :)


Puppy linux, mert megérdemlem. http://skamilinux.hu

A mostani állapot szerintem nem tökéletes, ugyanis most nincs benne duplaszűrés, simán kijöhet pl. 14, 14, 14, 14, 14
https://skamilinux.hu/phpBB3/viewtopic.php?t=759

Köszi, javítva! ;)


Puppy linux, mert megérdemlem. http://skamilinux.hu

Ilyesmit lehetne belőle csinálni:

        lottoszam[i]= huzas;
        i++; // ezt még esetleg vissza kell vonni
        for (j=0; j<i-1; j++) //megnézzük, hogy volt-e már, ha igen, akkor ez nem vált be
        {
            if(lottoszam[j]==huzas)
            {
                i--;
                break;
            }
        }

De inkább a legelső állapotot kellene visszaállítani, azzal a javítással, amit először írtam.

esetleg valamelyik online compilert nem akarod "bevetni"?

azt ne kérdezd, hogy melyiket javaslom a kismillió közül, mert annyira nem ismerem őket,

én a "fapados" ideone.com-ot szoktam néhanapján használni, a hátrányai: 1 "fájlba" kell írni mindent, parancssori argumentumokat nem kezel, nincs interaktív stdin ("textarea-ból olvas"), ..., de kis kódokra szerintem jól használható,

a repl.it-nél több fájlból is lehet "épitkezni", fájlból is tud olvasni, sőt írni is, van automatikus kódkiegészítés, de ha jól értem/látom, akkor a megosztáshoz be kell jelentkezni (google/github/facebook account valamelyikével), és csak a fizetős verziónál lehet privát kódot írni...

meg persze van csillió másik, most csak ezt a kettőt néztem...

Még a telefont szoktam bevetni, de az online fordítókat, amikből tényleg sok van azért,
mindenképpen meg kell említeni, hiszen sokan nem is gondolnak rá, hogy van lehetőség ilyesmire is.
Köszi, jó ötlet!

A telefon:


Puppy linux, mert megérdemlem. http://skamilinux.hu

Sok munkád lehet benne. Köszönjük!
Hátha tudod használni, a Rust egyik oktatóvideó sorozata jó vázat adhat a C oktatófilmjeid témájához.

C esetén egy egyszerű Makefile bemutatása és vele együtt a több fájlba szervezett programírás is hasznos lehet.

Köszönöm szépen, az életben még nem hallottam róla, több ilyen téma kellene, talán többen rákapnának, ha tudnák, hogy van.


Puppy linux, mert megérdemlem. http://skamilinux.hu

Amikor tanultam valamikor C-ben programozni, az alábbi segítségek voltak:
Debian/Ubuntu: apt install manpages-dev glibc-doc gcc-doc make-doc

A header fájlokat kevésbé kell bújni, a man lapokban szépen le van írva minden.

Például:
$ man 3 printf
$ man 2 poll

További segítség:
$ info libc - PDF-ben
$ info make - PDF-ben
$ info gcc - PDF-ben

bug report: A 19-nel irod, hogy kinezhetne rondan formazva is.
Szerintem a C eloforditok a #-kal kezdodo parancsokat csak sor elejen hajlandoak megenni, a tobbit meg eldobjak. GCC is szol miatta (warning: extra tokens at end of #include directive). Emiatt a main is eltunik a forditaskor, es a 2. sor elejere mar szintaktikai hibat okoz.
Ha az include-os sorokat kulonveszed, es a maint is uj sorban kezded, mar mukodik.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Köszönöm szépen a kód javítva és hiba nélkül lefutott !

https://skamilinux.hu/phpBB3/viewtopic.php?f=66&t=759&p=8082#p8082


Puppy linux, mert megérdemlem. http://skamilinux.hu