218
Lécci, Lécci tanícsatok meg programozni
  • rushman
    #178
    milyen az a felsőfokú info érettségi? Eddig azt hittem, a szakmában ezt a titulust csak diplomával lehet elérni!
  • PetruZ
    #177
    Nem hinném, hogy egy abszolút kezdő, akinek lövése sincs a témához, az a C-t könnyebben felveszi, mint a Pascal-t.
    Egyébként a C nem minden modern nyelv alapja, inkább elsősorban a struktúrája (pl. a Delphi sem mondható C-gyökerűnek, mégis modern nyelv, a Borland C szintaktika meg el is tér a "másik" iránytól). De tudok olyan modern nyelvet, aminek még az sem: pl. a Visual Cobol, vagy az Oracle PL/SQL. :)
  • MacrosTheBlack
    #176
    Pászkál szuxx, C rulez. Ugyanolyan könnyű, és legalább egy normális nyelv, gyakorlatilag minden modern nyelv alapja. Nem érdemes a p-t erőltetni, felesleges időpazarlás, inkább C, és aztán ami kell.
  • ffxi
    #175
    Próbáld meg itt körülnézni.

  • blackgamer
    #174
    gondolom valami hivatalos oldalon van tételsor, de nem értek az éretségihez
  • mustar
    #173
    Hello!

    Kb. mennyi idő lenne egy felsőfokú infó érettségire felkészülni, úgy hogy még életemben nem programoztam? Honnan lenne érdemes tananyagot letölteni, vagy hogyan kezdjem el? Ja és 2006ban érettségizem.
  • PetruZ
    #172
    Lényegtelen. Ha megtanulod és megérted a 8086-os szintet, nem lesz gond a későbbiekkel. Ugyanez vonatkozik a különféle fordítókra is (pl. MAsm).
  • hano2
    #171
    Hmm, csak van egy bökkenő: nekem ezt "tanítják", és így a 8086/8088-ra szűkül le. A MASM32 v8.2 jó?
  • PetruZ
    #170
    Assembly-hez, ha semmit nem tudsz még belőle, ugyanolyan jó a TPascal is egy kezdő számára, ráadásul lehetővé teszi, hogy úgy összerakhatsz egy működő programot, hogy csak bizonyos részeket írsz gépi kódban, majd több és több eljárást írsz át, és vizsgálhatod a működését is. De először tanuld meg az x86 CPU és a memória működését, a regisztereket, a címzési típusokat és működésüket (nagyon fontos!), az egyszerűbb, alap 8086 kódkészletet, és ha már elengedett kézzel is megülöd a bilit, jöhetnek a bonyolultabb 286-os kódok, később a 386-tól kezdve a 32 bites regiszterek, majd szépen fokozatosan rátérhetsz az FPU működésének megismerésére is (sztem a 387-es előtti FPU-kkal nem érdemes foglalkozni), de ez annyira nem igazán fontos. Később jöhet pár 486-os kiegészítés, majd a Pentium korszaktól kezdve teljesen új dolgok is jönnek, amelyek felül fogják bírálni a korábbiakat.
    Ne akarj rögtön a közepébe vágni, biztos alapok nélkül egyszerűen nem fog menni. Ezt garantálom.
  • hano2
    #169
    Szertnék Assambly-t programozni (intel 8086/8088). Milyen programkörnyezetben tudok megírni egy assamblys programot? T.Pascal-ba is lehet, de gondok adódtak, mert ott 8086/8087 ill 80286/80287 utasítást lehet csak beszúrni...
    Honnan szerezhetnék olyan progit, ami jó, illetve hogyan kell használni?
    Köszi!
  • PetruZ
    #168
    Mindenképpen szükséges valami kis alapvető számítógép, számrendszer (2-es, 10-es, 16-os) és operációs rendszer (ez a fontosabb) működési ismeret, különben csak tákolás az egész. Tudni kell, hogy alapszinten mi, hogyan és miért úgy működik egy oprendszeren belül, mi az a fájl, mi egy fájl kezelése, egy oprendszer honnan tudja, hogy mit kell kezdenie vele, stb. Pl. sokszor olvasni itt, vagy a magyarítás/stb. topikokban, hogy mivel lehet megnyitni valamit? Akármivel. Amivel akarod, és tudod kezelni. Nincs 1:1 megfeleltetés, nincs univerzális gyógyszer, vagy válasz. Egy fájl kiterjesztése egy oprendszer számára csak azt mondja, hogy a hozzá társított szoftverrel próbálja meg megnyitni. De nem tudja, hogy mi van benne (pontosabban: általában nem tudja, de az ismertebb, gyakoribb fájloknál már ez is működik). Pl. előfordul, hogy valaki megpróbál egy ".qqtyin" fájlt átnevezni zip-re, hogy attól az zip lesz, pedig nem. A "qqtyin" struktúrája, meg a zip struktúrája teljesen más. A "qqtyin"-t az őt létrehozó/használó alkalmazás tudja kezelni, a zip-et meg kezdetben a pkzip, majd a winzip, most meg már az XP is oprendszer szintjén kezeli. Lehet, hogy ha a "qqtyin"-ra ránézel egy nézőkével, csak szövegfájlt látsz, de lehet, hogy valami teljesen elkódolt, teljesen egyedi struktúrával kialakított, röptében tömörített és cheksumokkal ellátott számhalmazt.
    Az exe és dll kérdés még ennyél is bonyolultabb. Ezekben - többnyire, de nem feltétlenül - befordított programkódok vannak, a programozási nyelvekkel leírt utasítások gépi kódú megfelelői. De ezeken felül lehetnek bennük egyéb resource adatok, szövegek, képek, ikonok, akármi. Ha szerencséd van, értelmesen látod, és szerkesztheted, ha nem, nem. De ez nem programozás. Csak nyers adatok nyers piszkálása. Ha nagyon ügyes vagy, és ismered a gépi kódú utasítások felépítését, kódjait, kódsorait, akkor persze hexa editálással elvileg programrészeket is át lehetne írni (a crack-ek része is ilyen), de ehhez már nagyon alapos tudás és több éves, mindennapos gyakorlat kell.
  • Ryleh
    #167
    Na most monolog következik.
    Speciel a programozás mint tevékenység nem vonz,DE!De a fene megesz amikor értetlenül állok..azaz álltam eddig pl: a hexaeditor elött...azota sikerült már belegányolnom egy játékba,és még müködik is a forditott szöveg:))
    Tulképpen a játékok honositásának buherálása(igen ez a jo szo)miatt vetödtem erre,mivel néha ,az esetek döntő többségében kell némi szoftveres tudás 1-2 file szerkesztéséhez.És ilyenkor értelemszerüen az emberfia kiváncsi:pl a dll.filé,ha már piszkálni kell..akkor miért is van?Tehát a szoftverek müködésének a folyamata érdekel..a mi-miért folyamat....Tudom..néhányatoknak szentségtörés a "tudatlanságom"..nos ez van...szoval a fenti okok miatt kérdeztem hogy célirányosan mellik téma felé kéne a kormányt tekernem...ismereteim bövitése miatt:)))...kb:ennyi lenne:)))
  • ffxi
    #166
    Sajna ez még csak 1 feladat, lesz még bőven :((((

  • PetruZ
    #165
    Mondtam, hogy nem vagyok C guru, de ha sikerült értelmezned az elvet, akkor jó. :)
  • ffxi
    #164
    Teljes egészében nem, de a logikáját felhasználva igen.

  • PetruZ
    #163
    Működött?
  • ffxi
    #162
    THX!!!!

  • PetruZ
    #161
    Az elsőre: hát... ez nem így működik, nagyon rosszul értelmezed a dolgokat. A miért kifejtése holnapra marad, mert nem két perc. Addig próbáld már magadban pontosan megfogalmazni, hogy mit is akarsz csinálni?

    A másodikra: magyarul csak egy regény jelent meg hivatalosan, ami egy trilógia első része volt, a többire már nem került sor (mondjuk nem is veszítettél sokat :) ). Hivatalos novellákról nem tudok, amatőr írások meg vannak nálam is... :)
  • Ryleh
    #160
    Hali!!
    A #154 bejegyzésedre tudnál vmi linket ajánlani?Mert a müszaki könyvesboltban dobtam 1 hátast a sokaságtol..illetve a pénztárcám laposságátol:))))
    Emellett garatula a Torment forditása miatt:))))))....2xorra játszom végig,és lehet nem utoljára a játékot....nem ide vág,de igy egy körben: Planescape témában jelent meg vmi magyarul???regényre,novellákra gondoltam.....mert asszem csak egy könyvet adtak ki Kishazánkban eddi...:(((

    Köszi!!
    Üdv
  • PetruZ
    #159
    Nem vagyok nagy C zseni (sőt, nagyon gyengén muzsikálok belőle), de van egy ilyen trükkje a dolognak, és talán működik:

    ...
    teljes_aron_eladott_darabok = (2*almak%3)>0 ? 2*alma/3+1 : 2*alma/3;
    felaron_eladott_darabok = almak - teljes_aron_eladott_darabok;
    ...

    Ez így ugyanis nem elágazás, hanem logikai kifejezés. :)
  • rushman
    #158
    go to prog.hu
  • ffxi
    #157
    C++! Help


    Kati néni egy kosár almát visz a piacra és

    darabonként árulja azokat. Amikor a készletnek már

    legalább a kétharmadát eladta, felére csökkenti az

    árat. Mennyi lesz a befolyt összeg, ha az utolsó

    almát is eladta. (megoldás: elágazás nélkül,

    maradékos osztást alkalmazva …)



    Így oldottam meg, talán elfogadja a tanár? Mert nem

    maradékos osztást nem tudtam. Hogyan kellett volna?

    THX!!!




    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    void main (void)
    {
    clrscr();
    int alma,ar,kethar,egyhar,ossz;
    printf("\nKos rban mennyi alma van? ");
    scanf("%d",&alma);
    printf("\nMennyi ft db-ja? ");
    scanf("%d",&ar);
    kethar=(alma/3*2)*ar;
    egyhar=(alma/3)*(ar/2);
    ossz=kethar+egyhar;
    printf("\nKati n‚ni nyeres‚ge: %dft",ossz);
    getch();
    }

  • blackgamer
    #156
    valamelyik könyvesboltban kezembe került egy crack-es könyv, abban voltak ilyenről leírások, címet sajna nem tudok :(
  • Ryleh
    #155
    Sziasztok!
    Én a "Hex editálás" rejtelmeibe akarnék belemélyedni...szimplán hobbyból,játékmagyarositás céljából.Milyen irányban kellene elindulnom hogy alapvető ismereteket szerezzek?thx:)))
  • PetruZ
    #154
    Szerintem meg először nyelvtől függetlenül az alapokkal kellene megismerkedni. Adatszerkezetek, típusok, változók, oprendszer alapjai, proc működése, memóriakezelés... Csupa fincsi téma, ezekben kell elkezdeni az olvasgatást. Alapok nélkül am blok nem érdemes belevágni semmilyen nyelvbe, mert berögzülhetnek a rossz megoldások, hiányosságok, aztán onnan nehéz lesz továbblépni.
  • Aquli
    #153
    Hello!
    Letölteni nem tudom honnan lehet, de szerintem Turbo Pascallal kezdj. Én googleval kerestem rá anno, és könnyen le tudtam vhonnan tölteni a 7-es verziót. Ezután valamilyen tutorialt kellene találnod, amiben az alapok le vannak írva. Ajánlom a http://prog.hu oldalt, ahol a cikkek között érdemes keresgélni, sok prognyelvhez van cikksorozat, ami az alapoktól indul, és jól lehet velük boldogulni.
    Hogyha nem jók, nekem van itthon cikksorozatom pascalhoz, c-hez, assemblyhez (régi PCX-Users számok), ha adsz egy ftp-t, feltöltöm, vagy (nem tudom mekkore) e-mailre is elküldöm.
    Márk
  • kállai
    #152
    valaki segítene nekem nagyon szeretnék megtanulni programozni de,hogyan kezdjem el? milyen program kell hozzá? honnan lehet letölteni stb légyszi segítsetek
  • blackgamer
    #151
    nincs HF, szeptembertől beindul a topic :)
  • Aquli
    #150
    nem megy a topik. ne csináljátok má
  • PetruZ
    #149
    Passz, nem értek a koprocesszor programozásához, sohasem használtam. Ha csak sima asm betét lenne, nem is lenne gond. :)
  • Aquli
    #148
    Hello! Nem tudja vki, hogy ez a két progi miért nem működhet?
    Ennek az első 100 négyzetszámot kéne kiírnia:
    {$N+}
    program negyzet;
    const n=100;
    var a : single;
    i,sz : integer;
    begin
    asm
    push di
    lea di,a
    finit
    mov cx, 1
    @cimke:
    mov si, cx
    fld Dword Ptr[si]
    fld Dword Ptr[si]
    fmul
    fadd
    inc cx
    cmp cx, 100
    jne @cimke
    fstp Dword Ptr ds:[di]
    pop di
    end;
    writeln('Az elso ',n,' négyzetszám összege asm-el : ',a);
    for i:=1 to n do sz:=sz+sqr(i);
    writeln('Az elso ',n,' négyzetszám összege: ',sz);
    end.

    Ennek meg 150-et kéne elosztania 10-el:
    {$N+}
    program mm_m;
    uses crt;
    var m : single;
    begin
    asm
    push es
    push di
    les di,m
    finit
    mov si,150
    fld Dword Ptr[si]
    mov si,10
    fld Dword Ptr[si]
    fdiv
    fstp Dword Ptr es:[di]
    pop di
    pop es
    end;
    writeln('150 dm= ',m);
    end.

    Meg tudnátok nézni miért nem jó?
    Márk
  • Aquli
    #147
    DirtyPio #123-as üzenetére írtam ezt válasznak, ott vannak a szabályok is, csak azt nem tudtam, hogy nála mi volt a pontos feladat. Amit én írtam, az folyamatosan jeleníti meg, hogy hogyan alakul a mátrix állapota.
  • blackgamer
    #146
    ilyen vírus fejlődéses dolgot csináltam régebben
    vannak szabályok amik szerint létrejön egy új helyen vagy elpusztul vagy nem csinál semmit
    egy mátrix tömbben elmented hogy az adott helyen van-e "vírus"
    és az egész táblát számold végig mielőtt a képernyőre írnád ki
  • Aquli
    #145
    Hello!
    Megpróbáltam megcsinálni ezt a vírusos dolgot, de nem tudom mi a feladat, egyszerűen megjeleníteni a képernyőn a virusok fejlődését? Na mindegy, itt van: ahol 1, ott van vírus, ahol 0, ott nincs:
    program virus;
    uses crt;
    const n=30;
    type nemzetseg = array [1..n, 1..n] of integer;
    var i,j : integer;
    virusok,kor : nemzetseg;
    function Szomszedok(tomb : nemzetseg; x,y : integer) : integer;
    var szam : integer;
    begin
    szam:=0;
    if not(x=1) then
    if tomb[x-1,y]=1 then szam:=szam+1;
    if not(x=n) then
    if tomb[x+2,y]=1 then szam:=szam+1;
    if not(y=1) then
    if tomb[x,y-1]=1 then szam:=szam+1;
    if not(y=n) then
    if tomb[x,y+1]=1 then szam:=szam+1;
    Szomszedok:=szam;
    end;
    BEGIN
    for i:=1 to n do begin
    for j:=1 to n do begin
    virusok[i,j]:=1;
    kor[i,j]:=0;
    end;
    end;
    repeat
    delay(500);
    clrscr;
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(virusok[i,j],' ');
    end;
    writeln;
    end;
    for i:=1 to n do begin
    for j:=1 to n do begin
    if virusok[i,j]=1 then begin
    if (szomszedok(virusok,i,j)<2)
    or (szomszedok(virusok,i,j)>3) then begin
    virusok[i,j]:=0; kor[i,j]:=0;
    end;
    if kor[i,j]>2 then begin
    virusok[i,j]:=0; kor[i,j]:=0;
    end;
    kor[i,j]:=kor[i,j]+1;
    end;
    if virusok[i,j]=0 then begin
    if (szomszedok(virusok,i,j)=2)
    or (szomszedok(virusok,i,j)=3) then begin
    virusok[i,j]:=1;
    end;
    end;
    end;
    end;
    until keypressed;
    end.


    De lehet hogy nem ez a feladat.
  • PetruZ
    #144
    Küldjed, de csak akkor, ha bírod a kritikát. :-) (Ld. itt pár korábbi dolgot. ;-) )
  • Aquli
    #143
    blackgamer köszi szépen az nagyon jó lenne.
    vmark.freemail.hu (no spam)
  • blackgamer
    #142
    nekem 1-2 szám megvan, most épp a 1999 április van a kezemben, ha kell átküldhetem mailben, illetve a pascalos részt egy az egyben megtalálod itt
  • Aquli
    #141
    Hello!
    Valaki nem tudja, hogy honnan lehetne letölteni a régen PC-X ujság mellékletében lévő PC-X User számait? Programozási melléklet volt, de jó nagyon. csak nekem kevés van meg. plz help.
  • Aquli
    #140
    Köszi a segítséget, azóta sikertül, annyi volt, hogy szöveges fájl, aztán:
    readln(lottosz,temp[1],temp[2],temp[3],temp[4],temp[5]);
    és így egy sorban lévő 5 számot beolvassa a tömb megfelelő helyeibe.

    Most egy olyan kérdésem lenne, hogy nincsen közöttetek info-tanár, vagy esetleg olyan ember, aki ráérne, és megnézné nekem a mostmár kész emeltszintű-érettségi prog. feladatot? Olyan dolgok is érdekelnének, hogy mit lehetett volna könnyebben, strukturáltabban megcsinálni. Ha valaki ráérne, akkor elküldöm a .past.
  • hiftu
    #139
    Tipusos fájlnál nem az ascii alakot írja ki/olvassa be a pascal, hanem ugye
    a 16/32 bites számot (ez pedig 2/4 bájtot foglal.)
    Probáld ki, hogy csinálsz egy tipusos állományt, abba kiirsz egy számot.
    Megnézed, hogy miként néz ki. Aztán megcsinálod ezt szöveges állományként is.


    Én a helyedben szöveges állományként kezelném. (Mert tipusosként nem fog összejönni a fenti probléma miatt.)
    Beolvasnám a program elején az összes adatot egy stringekből álló tömbbe.
    Illetve írnék egy átalakító fv.-t ami a space-knél darabolja a stringet és
    átnyomja egy integer tömbbe. Szerintem.