- eBay
- XPEnology
- Videó stream letöltése
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Sweet.tv - internetes TV
- Otthoni hálózat és internet megosztás
- Xiaomi AX3600 WiFi 6 AIoT Router
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen switch-et vegyek?
- Linux kezdőknek
Új hozzászólás Aktív témák
-
-
tototos
őstag
Van különbség a két sor között?.
char** tokens;
free(*(tokens + i));
vs.
free(tokens[i]); -
buherton
őstag
válasz tototos #4252 üzenetére
Nincs. Teljesen azonos a kettő, és mivel azonos a kettő, ezért a fordító ezt is elfogja fogadni:
free([i]tokens);
mert ezt így fogja feloldani:
free(*(i + tokens));
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
Sziasztok!
Egy újabb érdekes esettel fordulok hozzátok.
A split függvény helyett, egyik kollégám ajánlotta a sscanf függvényt, ami nekem pont tökéletes, lenne ha működne úgy ahogy szeretném.Adott a következő char[80] line = "48,8,10;\n\000\000age\000\070\000\060\000;\n\000\000;\n\000\000;\n\000\065,51;\r\n21,52;\r\n1, ..."
ebből s zámomra szükséges rész az ez: 48,8,10;\n\0
na ezt szeretném beolvasni így:
ret = sscanf(line,"%hhu%*1c%hhu%*1c%hhu;\n",&frameID,&frameLength,&frameDelay);
a ret értéke 3, de a frameID és a frameLength 0 a frameDelay az 10.Már próbáltam többféle képpen de egyszerűen nem akar jó lenni :S
-
erahurka
félisten
Sziasztok!
Félévi feladatot csinálok suliba, de elakadtam. Az az alapvető probléma, hogy külső fájlból szeretnék adatokat beolvasni, de amíg nincs létrehozva a külső fájl hibát dob (segmentation fault (core dumped)).
Van valami megoldás arra, hogy amíg nincs külső fájl addig ugorja át a beolvasást? Egy if-fel esetleg lehet-e ellenőrizni hogy megvan-e ez a fájl, vagy valami hasonló egyszerű dolog?
Ha más ötletetek van arra is vevő vagyok, csak értsem is (nem vagyok nagy c guru).
-
addikt
Üdv, láncolt listába szeretnék beolvasni fájlból.
Így néz ki a struktúra:
typedef struct Kerdes{
int szint;
char *ker, *a, *b, *c, *d;
char valasz;
struct Kerdes *kov;
} Kerdes;és a függvény:
Kerdes* beolvas(Kerdes *lista){
FILE *fp;
Kerdes *uj;
char c;
uj=(Kerdes*) malloc(sizeof(Kerdes));
lista=(Kerdes*) malloc(sizeof(Kerdes));
char tempk[256], tempa[50], tempb[50], tempc[50], tempd[50];
fp = fopen("loim.txt", "rt");
if (fp == NULL) printf("Nem sikerült megnyitni!");
else{
while(!feof(fp)){
fscanf(fp, "%d %s %s %s %s %s %c\n", &uj->szint, tempk, tempa, tempb, tempc, tempd, &uj->valasz);
uj->ker=(char*) malloc(strlen(tempk)*sizeof(char));
strcpy(lista->ker,tempk);
uj->a=(char*) malloc(strlen(tempa)*sizeof(char));
strcpy(lista->a,tempa);
uj->b=(char*) malloc(strlen(tempb)*sizeof(char));
strcpy(lista->b,tempb);
uj->c=(char*) malloc(strlen(tempc)*sizeof(char));
strcpy(lista->c,tempc);
uj->d=(char*) malloc(strlen(tempd)*sizeof(char));
strcpy(lista->d,tempd);
uj->kov=lista;
lista=uj;
}
}
fclose(fp);
return lista;
}és így hívnám meg main-ben:
Kerdes *lista=NULL;
beolvas(lista);Hiba nélkül lefut, de amint elindul, le is fagy. Mi lehet a gond?
(életem első fájlból olvasása lenne C-ben. korábban csináltam már C#-ban, de ott ugye nem kellett a dinamikus dolgokkal szórakozni. amúgy azt az infót kaptam, hogy ha így elszáll, akkor az pointerek miatt van, de fogalmam sincs hogy hol.)[ Szerkesztve ]
-
gygabor88
tag
válasz 0xmilan #4261 üzenetére
Ket hibat latok elsore. Az egyik, hogy az "uj" char* elemeinek foglalsz helyet mallockal, de a "lista" inicializalatlan elemeibe probalsz masolni strcpyvel. A masik, hogy az ilyen inicializalasoknal
uj->ker=(char*) malloc(strlen(tempk)*sizeof(char));nem veszed figyelembe, hogy majd a lezaro \0-nak is kellene egy hely a karakterlanc vegen.
+ nincs ertelme NULL-lal meghivni a beolvas fuggvenyt, bar ebben az esetben nem emiatt mukodik rosszul a kod.
[ Szerkesztve ]
-
addikt
válasz gygabor88 #4262 üzenetére
Tényleg, köszi! Nem is a listaba, hanem az uj-ba kellett volna beolvasnom, meg strcpy-zni aztán onnan meg a lista=uj és akkor elvileg az elejére fűződik.
átírtam az adott részt így:
uj->ker=(char*) malloc((strlen(tempk)+1)*sizeof(char));
lista->ker=(char*) malloc((strlen(tempk)+1)*sizeof(char));
strcpy(uj->ker,tempk);
uj->ker[strlen(tempk)+1]='\0';
uj->a=(char*) malloc((strlen(tempa)+1)*sizeof(char));
lista->a=(char*) malloc((strlen(tempk)+1)*sizeof(char));
strcpy(uj->a,tempa);
stb
.
.és akkor a végére mindig be kéne szúrni a \0-t így?:
uj->ker[strlen(tempk)+1]='\0';Ha jól tudom azért kell NULL-lal hívni, mert akkor az lesz a vége és így tudom bejárni, hogy a nullpointer a kilépési feltétel.
(ja amúgy ugyanúgy lefagy)
[ Szerkesztve ]
-
gygabor88
tag
válasz 0xmilan #4263 üzenetére
uj->ker[strlen(tempk)+1]='\0';
Ezeken a helyeken tulindexeled a tombot. Ha a tomb strlen(tempk) + 1 elembol all, akkor az utolso elemre az strlen(tempk) indexszel tudsz hivatkozni. Amugy a fenti explicit \0 iras nem szukseges, mert az strcpy a lezaro \0-t is atmasolja. Tovabba, ha mar ismert elore a stringek maximalis hossza, mint a temp valtozoid eseten, akkor erdemes lenne fix hosszal tarolni oket a struct-ban es egybol ezekbe olvasni. Igy megkimelned magad egy csomo pointerezestol es masolgatastol.
+ erdemes lenne megismerkedned valami debuggerrel, amivel sorrol sorra lepkedve tudnad futtatni a programodat, hogy az ilyen programmeghalos hibakat konnyebben megtalald. Kezdetben boven eleg lesz egy alap gdb tutorial a break, c, n, s parancsokkal -
addikt
válasz gygabor88 #4264 üzenetére
Ezer köszi segítséget!
A túlindexelést egy levlistán olvastam, aztán bele se gondoltam, hogy hülyeség.
..Pont az a baj, hogy nem ismert a stringek hossza, és - bár megadhatnék egy max. hosszt - , a lényeg, hogy egy bájttal se használjak több memóriát, mint amennyi tényleg kell.Kösz a tippet a dubeggerre. Korábban már használtam, de elszoktam tőle, aztán megmutatta, hogy működik a beolvasás, csak nem úgy, ahogy én azt gondoltam.
tempk-ba egy kérdést várnék (legyenönismilliomost írok), amiben ugye több szóköz van, én meg azt hittem, hogy majd kitalálja meddig tart a kérdés. Így utólag elég hülyének érzem magam.
Szóval elkezdte szépen bepakolni a kérdés egyes szavait a válaszok sztringjeibe.
Ezek szerint itt az fscanf nem is használható..? Mindenképpen karakterenként kéne beolvasni?Olyat tudok, hogy karaktert vizsgálni, azon belül meg stringet olvasni?
pl így:while (fgetc(fp) != '9'){ - elvileg a TAB kódja
fscanf(fp, "%s", &tempk);
...+ mindig hozzáfűzögetni az új szavakat;
} -
randi
újonc
Üdv mindenkinek!
Ebben az évben kezdtem foglalkozni C programozással, és a legutolsó házimmal nem boldogulok. A feladat a következő:
"Írjon cenzúrázó programot. A program beolvas egy mondatot, majd egy tiltott karaktersorozatot. A mondatban kicseréli a karaktersorozat minden előfordulását 3 csillag karakterre (a cenzúrázott szó helyett három csillagot rajzol). Végül kiírja a cenzúrázott mondatot.A feladat megoldása közben csak a gets, scanf és a prinf függvények használhatók. NEM szabad előre megírt stringkezelő függvényeket használni.
Például:
Miben cenzurazzak?
Az ipafai papnak fapipaja van, tehat az ipafai papi pipa papi fapipa.
Tiltott szo? pa
A cenzurazott mondat:
Az i***fai ***pnak fapi***ja van, tehat az i***fai ***pi pi*** ***pi fapi***.
Press Enter to return to Quincy..."
Odáig eljutottam, hogyha megtalálja a tiltott szót, akkor a karaktereket csillagra cseréli. Sőt a mondatot is arrébb tudtam másolni. Csak az a baj, hogy annyi csillagot ír, ahány karakterből áll a tiltott szó, és nem - a feladatban megadott - hármat.
Ha valaki tudna segíteni, annak nagyon megköszönném. Ja, és nem vagyok már mai csirke -
buherton
őstag
Nem tudom, hogy hogyan működik a programod, de talán jó irány lenne, ha egymásik karaktertömbbe rakosgatnád át pl. strncat-el, úgy hog ha "pa" van, akkor "***" teszel a helyére. Így a karaktertömbös shiftelést megúszoda, ami összességében több időbe kerül.
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... !!!
-
addikt
válasz skylaner #4269 üzenetére
Köszi, jogos.
Megnéztem egy régebbi példát, és annak mintájára külön függvénnyel fűztem a lista elejére.
Most így néz ki a működő verzió:
...
while(!feof(fp)){
fgets(temp, 256, fp);
sscanf(temp, "%d %[^\t] %[^\t] %[^\t] %[^\t] %[^\t] %c", &szint, &tempk, &tempa, &tempb, &tempc, &tempd, &valasz);
lista=elejere(lista, szint, tempk, tempa, tempb, tempc, tempd, valasz);
}
}
...
Kerdes* elejere(Kerdes *lista, int szint, char* tempk, char* tempa, char* tempb, char* tempc, char* tempd, char valasz){
Kerdes *uj;
uj=(Kerdes*) malloc(sizeof(Kerdes));
uj->szint=szint;
uj->ker=(char*) malloc((strlen(tempk)+1)*sizeof(char));
strcpy(uj->ker,tempk);
uj->a=(char*) malloc((strlen(tempa)+1)*sizeof(char));
strcpy(uj->a,tempa);
uj->b=(char*) malloc((strlen(tempb)+1)*sizeof(char));
strcpy(uj->b,tempb);
uj->c=(char*) malloc((strlen(tempc)+1)*sizeof(char));
strcpy(uj->c,tempc);
uj->d=(char*) malloc((strlen(tempd)+1)*sizeof(char));
strcpy(uj->d,tempd);
uj->valasz=valasz;
uj->kov=lista;
return uj;
}Most fgets-szel beolvasok egy sort, aztán sscanf-fel meg tabulátoronként darabolom és aztán rakom új listaelembe.
A listának meg nem is kellett volna helyet foglalni, mert az csak egy pointer..
Még egyszer kösz a segítséget mindenkinek! -
maathe
senior tag
Lenne itt egy kis program: [link]
A gondom az, hogy ha üres sort ütök, akkor ugye kiírja, hogy: Üres sort ütött, vége a bekérésnek.
Viszont ki írja azt is, hogy: A pontszamnak [%d, %d] intervallumban kell elhelyezkednie.Valaki megtudná mondani, hogy miért?
-
axioma
veterán
Ha jol ertem, akkor a fejedben nem az a tabulalas van meg, amit a programnak adtal. Vagyis a 45. sorban levo "else" kene legyen a tenyleges feldolgozo a'g, csak nem raktad ki a zarojeleket, es az egyedul az ott kezdodo if-re vonatkozik. Ami veget er a 48.-ban, tehat a 49.-ben levo me'g ures sor eseten is vegrehajtando.
Rakd ki az else utan a blokk-kezdest, ami vegzodik a while vege elott, a 60. sornal.
Valoszinuleg az "osszenott" else if okozta, hogy nem latod pontosan a strukturat. Ilyen egybeirt else if -et en csak akkor szoktam csinalni, ha tobb darab, 1 sorba befero rovid vizsgalat es 1 soros rovid blokk tartozik hozza, szinte egy switch tipusu egymas melletti esetfelsorolas lenne, csak mas tipusu a feltetelem. Mondjuk ilyenkor annak megfeleloen is tabulalom, tehat minden else if blokkja az egybeirastol fuggetlenul uj szintre kerul be. Minden mas esetben hasznos, ha minden nagyobb else-hez kirakod a sajat kezdo-zaro parjat. Szigorubb coding standard szerintem alapbol meg is koveteli.[ Szerkesztve ]
-
zoli03
őstag
Hogy tudnék egy tömbből adott feltételnek (pl adott betű, vagy szám) megfelelő elemet törölni a rá következő elemek balra tolásával? Próbálgattam, de eddig sehogy se jött össze.
-
Jester01
veterán
Csinálsz egy ciklust ami végigmegy a tömbön (ez lesz a forrás pozíció) és egy változót ami a cél pozíciót tárolja. Ha az adott elemet meg kell tartani, akkor a forrásból a célba másolod és növeled a cél pozíciót, különben nem.
dst = 0;
for(src = 0; src < len; src++) {
if (!pred(a[src])) a[dst++] = a[src];
}[ Szerkesztve ]
Jester
-
Peter789
senior tag
Sziasztok!
Hogyan lehet egy float változót egy string-be átrakni megformázva? Valami hasonlót keresek, mint amit itt csinál a printf, de egy karakterlánc string-be kellene kerülnie az eredménynek amit utána fel tudok használni pl egy fájlnév megadásánál az open függvényben...
float ftmp = 19.52466;
printf("%.1f",ftmp);kimenet: 19.5
Előre is köszönöm a választ!
----------------------------------------------------------------------------------------------------------------- AquAgorA ...Pál apostol nyomában: http://fleettracker.eu/index.php/component/aquagora
-
Peter789
senior tag
válasz skylaner #4280 üzenetére
Köszi, ez volt amit kerestem...
Közben felmerült egy másik kérdés is: van elegánsabb/gyorsabb megoldás több fájl egyidejű törlésére, mint a system("rm valami*") ? Vagy ki kell listázni, szűrni és egyesével törölni? A platformfüggőség nem katasztrófa, lévén hogy ez a program kizárólag openwrt-n fog futni és a fejlesztés is ubuntun zajlik, viszont az erőforrásigényt jó lenne minimalizálni amennyire lehet...
----------------------------------------------------------------------------------------------------------------- AquAgorA ...Pál apostol nyomában: http://fleettracker.eu/index.php/component/aquagora
-
superfinest
tag
Üdv!
A C++ nyelvvel szeretnék foglalkozni, azonban nem tudom honnan kellene elkezdeni ezt az egész dolgot. Nagyon alap programokat össze tudok dobni, de ennél többre nem futja. pl.:#include <stdio.h>
void main(){
int a, b, c;
printf("Kerek egy szamot: ");
scanf("%d", &a);
printf("Kerek meg egy szamot: ");
scanf("%d", &b);
c = a + b;
printf("A számok osszege: ");
printf("%d", c);
}Esetleg tudtok-e olyan magyar nyelvű oldalakat, ahonnan lehetne bővíteni/fejleszteni a tudásom.
A válaszokat előre is köszönöm!
-
kingabo
őstag
válasz superfinest #4282 üzenetére
Hali!
Ez a C és nem a C++ topik. Másrészt felül a téma összefoglalóban könyveket, oldalakat is ajánlanak.
[ Szerkesztve ]
-
Korcsii
őstag
válasz superfinest #4284 üzenetére
Két külön nyelv a kettő. Más kérdés, hogy a megfelelő headerek behívásával lehet használni a C-s függvényeket is C++ alatt. Éppen emiatt a fejlesztőkörnyezetek is általában támogatják mindkettőt.
Az általad írt példakód egyértelműen C.
Milyen megfontolásból szeretnél elkezdeni C nyelven tanulni?
[ Szerkesztve ]
-
buherton
őstag
válasz superfinest #4284 üzenetére
Ebben nagyon is tévedsz. Az egy dolog, hogy a C++ visszafelé kompatibilis a C-vel, de ezzel nagyjából be is fejeződött a kapcsolat/hasonlóság. Döntsd el, hogy C-ben vagy C++-ban szeretnél-e megtanulni programozni, és a jövőben ne keverd a kettőt. Ha komolyan akarsz programozni, akkor a C++-t érdemes megtanulni.
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... !!!
-
kispx
addikt
válasz superfinest #4284 üzenetére
Nem egy a kettő, sok különbség van.
-
superfinest
tag
Üdv!
Elég sok szabad időm van. C-ben szeretnék megtanulni programozni, mivel úgy gondolom, hogy ez jó alapot ad az egyszerűbb nyelvekhez. pl. Java, Lua, Python-hoz
Programozni csupán hobby-ból szeretnék, mivel eléggé megtetszett ez az egész dolog. Olvastam pár elméleti dolgot a C-vel kapcsolatban, csupán a gyakorlatba vannak gondok amikor el kell kezdeni tényleges programozni. Jelenleg ezeket tanulmányozom:Magyarázatot elolvasom és logika/megjegyzés alapján próbálom gyakorlatba csinálni a leírtakat.
Plusz egy-két könyvet is fogok kölcsönözni az alapok megtanulásához.
Csak el kellene kezdenem, valahol. De minden kezdet nehéz ugyebár.[ Szerkesztve ]
-
buherton
őstag
válasz superfinest #4288 üzenetére
Miért nem kezdesz akkor Java-val? Nem sok hasonlóság van a C és a Java nyelv között se. Ha megtanulod a C-t, akkor a Java-nál újra kell tanulnod még egyszer annyit, de inkább többet, mert teljesen más a paradigma. Bocsi de szerintem teljesen logikátlan, amit csinálsz. Ráadásul olyannal nyelvvel kezded, amire 99% az esély nem kell majd neked.
Én C-t tanultam, mert abban szerettem volna programozni, és abban is kell programoznom a munkahelyen.
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... !!!
-
superfinest
tag
válasz buherton #4289 üzenetére
Igazából nekem 1-2 dologhoz kellene a programozás. pl.: San Andreas Multiplayer scripteléshez és/vagy Java alapú dolgok programozásához, úgyhogy tényleg hasznosabb lenne a Java, Pawno. Nemtudom, hogy ezt a 2 nyelvet lehet-e párhuzamosan tanulni.
Azért gondoltam először a C nyelvet tanulom, mert ez sok nyelv alapja "elvileg", javíts ha rosszul tudom. -
axioma
veterán
válasz superfinest #4290 üzenetére
Hiaba alap, a rae'pules pont azert van, mert pluszt nyujtanak a tovabbi nyelvek. Csak egy tokegyszeru pelda: dinamikus (futas kozben valtozo hosszu) tomb, lista, vagy barmi megvalositasa. Ha ansi C-ben megirod nullarol, megtanulsz egy csomo alacsonyabb szintu kezelest es kezdokent ve'rt izzadsz hogy jol kovesd le, jol foglalj helyet es szabadits fel stb. mig java-ban meg letrehozol egy (mondjuk) ArrayList-et, azt annyi. Nem beszelve arrol, hogy ha C-ben levo kodot kell egy nem kimondottan szepen kodolo embertol visszafejtene'd, az megint egy nyomozassal feler (persze java-ban is lehet ilyet elkovetni, foleg ha 2-3 betus valtozoneveket es/vagy mas nyelvu roviditeseket hasznal - multkor neztem egy ruszki programozo versenymegoldasat ahol ugye nincs ido csicsazni, eleg erdekes volt visszafejteni a core algot, de C-ben pont a nagyon nagy rugalmassag miatt nagyon nagy randasagot is el lehet kovetni ugy, hogy helyes, csak attekinthetetlen).
[ Szerkesztve ]
-
Ereshkigal
őstag
válasz superfinest #4290 üzenetére
Ha belátható időn belül "csak" kedvtelésből akarsz programozgatni, akkor én személy szerint a Java-t vagy a C#-ot javaslom neked. Csomó mindent "elébed tesznek", csak használni kell. Könnyebben, gyorsabban fogsz leprogramozni olyan dolgokat, amikkel C-ben rengeteg időd elmenne...
Nem elfogultságból ajánlom ezt, mert az én szívem a C és a C++ felé húz, na de én sejtautomatákat programozok + sokat számolok. -
fordfairlane
veterán
válasz superfinest #4290 üzenetére
Azért gondoltam először a C nyelvet tanulom, mert ez sok nyelv alapja "elvileg", javíts ha rosszul tudom.
Inkább csak hasonló szintaktikájúak bizonyos vezérlési szerkezeteket illetően. Jobban jársz magasabb szintű programnyelvvel, szerintem, hacsak nem hardverközeli programozást szeretnél megtanulni, mert akkor a gépközelibb C a jobb választás.
[ Szerkesztve ]
x gon' give it to ya
-
kingabo
őstag
válasz superfinest #4288 üzenetére
A C-hez és a Javahoz gyakorlatilag teljesen másmilyen gondolkodás mód szükséges, hiába vannak közös nyelvi elemek. Ahogy már mások is írták, emiatt nem lesz sok előnyöd a C megtanulása után ahhoz képest, aki egyből a Javaval kezd, viszont sok időd elmehet vele és valószínű vért fogsz izzadni. Ráadásul sok a kezdők szemében "hibára" vagy nehézségre a java már vagy tartalmaz valamilyen nyelvi elemet, vagy megoldást, amikkel az általad kitűzött célokat könnyebben és gyorsabban el tudod érni.
-
bucsupeti
senior tag
válasz superfinest #4290 üzenetére
Ahogy a többiek írták, rosszul gondolkodsz a dologról. Olyan mintha szeretnél egy sportautóval megtanulni száguldani, de előtte a biztonság kedvéért veszel egy markológépet amivel tök sok mindent meg lehet csinálni, és azon kezdesz tanulni vezetni, hiszen annak is négy kereke van.
Ha modern dolgokat akarsz akkor valamilyen objektum orientált nyelvet válassz, amihez van valamilyen jó framework. Ilyen nyelvek/környezetek a Java, C#, és a C++ is, de előtte keményen oop elméletet kell elsajátítani.
Ha rendszerprogramozás a cél akkor tökéletes a C.Ha egyszerüen csak meg akarod tanulni a programozás alapjait, vezérlési szerkezeteit, akkor jó lehet a Pascal.
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
alapz@j
tag
válasz bucsupeti #4295 üzenetére
Programozást nulláról tanulni szerintem az interpretált nyelvek a legjobbak, mert nem kell a fordítás nyűgjével és az esetleges hibák komolyabb következményivel foglalkozni: Python, Perl, Ruby, Lua, bár ez utóbbi kettő nem feltétlenül jó kezdőnyelv. Esetleg JavaScript és akkor egyből GUI is van
Ha az alapok megvannak, akkor lehet abban gondolkodni, hogy a kitűzött célhoz melyik nyelv illene e legjobban.
-
bucsupeti
senior tag
válasz alapz@j #4296 üzenetére
Én azt vettem észre hogy akik programozást kezdenek tanulni azok közül sokan nem tudják hogy mi is az a program, hogyan készül, mi van az egész programozás mögött. Annyit látnak hogy begépelik a programsorokat, jó esetben tudják a programnyelv elemeit használni és azt tudatosan teszik, de sajnos azzal hogy a forráskód megírása után mi is történik, miért szükséges fordítani (vagy egy virtuális gépnek átadni, esetleg egy interpreterrel feldolgoztatni) arról nincs fogalmuk.
Egy képletes példa: A király elhatározza hogy palotát épít, olyat amilyet még nem látott a világ. Az utazók kíváncsian fogják felkeresni a várost, hogy csodájára járjanak majd ennek a nem mindennapi építmények. A kőfejtőben, ahol a palotához hasítják a kőtömböket, megkérdeznek két munkást hogy mit gondolnak, mit csinálnak itt egész nap.
Az első azt mondja: Egész nap izzadok, fejtem a követ itt a koszos, poros bányában. Nem tudom meddig bírom, már nagyon unom az egészet, lehet hogy más munka után nézek.
A második ezt mondja: Én palotát építek!A tanmesének vége. A lényeg hogy ha tudja az ember hogy mit csinál, sokkal nagyobb kedvvel, elhivatottsággal, lelkesedéssel, izgalommal telve végzi a munkáját.
Így van ez a programozással is. Kell hogy a programozó tisztában legyen a háttérben zajló dolgokkal, mert sokkal izgalmasabb lesz az egész programozás ettől! Akkor is ha interpretert használ, akkor is ha köztes bájtkódot és akkor is ha gépikódra fordított programot készít."Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
alapz@j
tag
válasz bucsupeti #4297 üzenetére
A konklúzióval egyetértek, de a folyamattal nem. Egy programozást, mint hobbit megtanulni vágyó embernek soha nem kezdeném azzal az oktatását, hogy na, van a compiler, ami az "elso_valtozom = 0" programsorodat valami olyasmivé alakítja majd át, hogy "mov [elso_valtozom], 0", csak éppen binárisban, de előtt még írjál köré olyanokat, hogy "int main()" és "return 0".
[ Szerkesztve ]
-
bucsupeti
senior tag
válasz alapz@j #4298 üzenetére
igazad van. én sem kezdeném így. Azt viszont elmondanám hogy van a processzor, meg a memória stb. Aztán van egy olyan hogy oprendszer, ami müködteti az egészet. a programok hogyan hová töltődnek és hogy indulnak el stb... Ez nélkül nehéz elképzelni hogy valaki jó programozó lesz...
[ Szerkesztve ]
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
axioma
veterán
válasz bucsupeti #4299 üzenetére
Ez azert olyan 20 evvel ezelott keringi "Az igazi programozo" c. irasra emlekezteto fordulat volt... szerintem ez egy kicsit generacios kerdes is. A gyerekemnek mar az lesz trivialitas, hogy leir (ha egyaltalan szo szerint iras lesz az me'g) egy kodsort es mar a masik ablakban fut is a modositott program. Az en szuleim korosztalyaban (o"k konkretan nem) levo, korai programozok viszont felvezeto szinten, nand kapukra felbontott logikai kifejezesek nelkul nem tudta elkepzelni, hogy valaki programozni fog tudni. [En valahol a ketto kozott vagyok.] Es ez me'g csak nem is azert van, hogy mi volt az elterjedtseg akkor, es mi most. Vagy hogy milyen a fejlesztokornyezet, es milyen most. Egyszeruen bovult az egesz "programozas" fogalom, es egyben specializalodott is. Egy magasszintu program megirasahoz szerintem nem alapveto tudas a forditas miertjenek melyrehatobb (meddig melyre?) ismerete, csak a szuksegessege es a modja (mondjuk ha ide vesszuk az internetet meg az rtfm-et is, akkor inkabb csak a szuksegesseg ismerete). Viszont mindig lesz olyan, aki meg hw-kozeli dolgokat csinal, es adott esetben aka'r lenezi a magas szinten programozokat, akik egy chip labait se tudjak megkulonboztetni egymastol, vagy nem tudja megmondani, hogy adott asm kod hany usec nagysagrendig fut.
Szerintem minden nagyon mulik a feladatokon, amiket meg kell oldani, nem lehet azt mondani hogy ez vagy az nelkul nem lehet programozni. Legfeljebb a programozas bizonyos alfaja't nem konnyu nelkule muvelni.
Ú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!
- Házimozi haladó szinten
- eBay
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- PlayStation 5
- Ukrajnai háború
- Redmi Note 12 4G - valaki fizetni fog
- MIUI / HyperOS topik
- Battlefield 3
- Amlogic S905, S912 processzoros készülékek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...