271
Turbo Pascal
  • skristof
    #31
    könyvesbót
  • thhommy
    #30
    és ha lehet legyen nagyon szájbarágos THX
  • thhommy
    #29
    hy tud vki egy leirást amiből meg lehet tanulni bánni a pascallal ha lehetne legyen magyar de az angol se gáz
  • xtimer
    #28
    A suliban kaptam egy érdekes feladatot, amit sehogy nem bírtam megoldani.
    A feladat: Írj egy programot ami ezek tudja:
    -az összes *-ot, + jelre cseréli
    -minden kisbetűt nagybetűre cserél
    -balra igazítja a sort
    -minden olyan A-t amely szókör után van azt le kell törölni
    -minden 'szép' szót 'gyönyörű'-re kell cserélni


    na én addig eljutottam hogy a *-ot +ra, a szépet gyönyörűre cseréli, de azt is csak az első szép-et és az első csillagot, tehát ha több van benne akkor azokat nem cseréli, a többihez meg hozzá se tudtam nyulni :(
    szal ha van valakinek valami ötlete, akkor ez közölhetné velem, előre is köszönöm
  • vin3553
    #27
    Szeretnék írni egy progit aminek az a tartalma, hogy ÍRD BE A KÓDOT...vagy akármi..
    erre ő beírja, és amit beír azt kellene lementeni...

    Na ezt hogy tudnám lérni??..
  • DirtyPio
    #26
    ok kosz.
  • PetruZ
    #25
    Jól van, ez egyre jobb... Az elejéről hagyd le azt a felesleges courier blokkot.
  • PetruZ
    #24
    Fene, megint ez a r*hadt zárójelezés...

    [courier}
    program sesz2;
    uses crt;
    var
    be, ki: text;
    s : string;
    i, j : integer;
    begin
    assign(be, 'be.txt'); reset(be);
    assign(ki, 'ki.txt'); rewrite(ki);

    readln(be, s);
    i:=1;
    while(s[ i ])=' ') do inc(i);
    j:=pos(' ', copy(s, i, 255));
    if j=0 then j:=length(s)-i+2;
    writeln(ki, copy(s, i, j-1));

    while not eof(be) do begin
    readln(be, s);
    writeln(ki, s);
    end;
    close(be);
    close(ki);
    end.
    [/courier]
  • PetruZ
    #23
    Jól értem, hogy ez egy szövegfájl első sorából levágja az első szót, kiírja, majd a többi sort egyben átmásolja? Ha igen, van erre sokkal egyszerűbb megoldás is, de a hibát elsősorban a harmadik while előtti close(g); reset(g); okozza. Textfájlról van szó, nem típusos állományról, ergo a reset() csak olvasásra nyitja meg, az írási műveletek hibát fognak okozni. Ha létező textfájlhoz akarsz hozzáfűzni vmit, akkor az append() kell neked. Eleve hülyén is működne, ha lezárod, majd reset()tel újra megnyitod, mert ilyenkor a file pointer a fájl elejére mutat vissza és felülírnád az előzőleg kiírt adatot.

    Szóval az egyszerűbb megoldás:
    [courier]
    program sesz2;
    uses crt;
    var
    be, ki: text;
    s : string;
    i, j : integer;
    begin
    assign(be, 'be.txt'); reset(be);
    assign(ki, 'ki.txt'); rewrite(ki);

    readln(be, s);
    i:=1;
    while(s[i])=' ') do inc(i);
    j:=pos(' ', copy(s, i, 255));
    if j=0 then j:=length(s)-i+2;
    writeln(ki, copy(s, i, j-1));

    while not eof(be) do begin
    readln(be, s);
    writeln(ki, s);
    end;
    close(be);
    close(ki);
    end.
    [/courier}

    (Remélem, működik, mert nem próbáltam ki. :) ).
  • DirtyPio
    #22
    Udv. Van egy olyan problemam, hogy amikor lefuttatom a progit kiirja, hogy not run dos error=2, de azert lefut a progi, mert probaltam mar siman egy sozveges file-ot kiiratni, es az ment es a vegen ugyanezt az uzit kaptam. Szoval ez nem ir ki semmit, legyszi talaljatok meg a hibat, mielott vki megkerdezne, megvannak a szoveges fileok.

    program sorokelsoszava;
    uses crt;
    var f,g:text;
    c:char;
    begin
    assign(f,'be.txt');
    assign(g,'ki.txt');
    reset(f);
    rewrite(g);
    while not(eof(f)) do
    begin
    read(f,c);
    if c<>' ' then while c<>' 'do
    begin
    write(g,c);
    read(f,c);
    if c=' ' then
    begin
    writeln(g);
    readln(f);
    end;
    end;
    end;
    close(g);
    reset(g);
    while not(eof(f)) do
    begin
    read(f,c);
    write(g,c);
    end;
    close(f);
    close(g);
    readln;
    end.


  • rriicchhiiee
    #21
    hali
    nincs vkinek ez a tétel kidolgozva?:A Graph modul (TG) felépítése; leíró és állapottáblája; InitGraph és CloseGraph szerepe

    OKJ vizsgára kéne....
  • nemcsakfeel
    #20
    c ben hogy tudok int et char ra konvertálni?
    (char)valtozot
    nem fogadja el
  • nemcsakfeel
    #19
    nagy tökre átirtam a programot, erre nem forudl le mert nem találja a gcpp-t

    uses crt;

    const
    n=3;

    type rek = record
    x, y : real;
    end;

    var
    i,j,k, egyvonal, esz, derek:longint;
    atl:longint;
    m2,m1, m:longint;
    szam, dszam:longint;
    xatl, xq :real;
    xi:Array[0..3000] of real;
    d2:array[0..3000] of real;
    szoras2, szoras, szumma:real;
    r1, calpha, cbeta, cdelta: real;
    r: array[1..3]of rek;
    o: array[1..3]of real;
    kiiras, fajlba : boolean;
    szoveg, szovegszor: text;
    ch: char;

    function ksz(x,y:real):real;
    begin
    ksz:=(x-y)*(x-y);
    end;

    begin
    randomize;
    szam:=0;
    dszam:=0;
    esz:=0;
    egyvonal:=0;
    clrscr;
    writeln;
    writeln(' *---------------------------------------------------------------------------*');
    writeln(' A programot irta : Borsody Peter G2In3. ');
    writeln;
    writeln(' A program feladata: ');
    writeln(' Becsulje meg , mi annak a valoszinusege , hogy az egysegnegyzet');
    writeln(' hataran valasztott harom pont tompaszogu haromszoget alkot .');
    writeln(' Van-e , es ha igen , milyen befolyasa a kiserleti adatok megvalasztasanak');
    writeln(' a szamitas hatekonysagara .');
    writeln(' *---------------------------------------------------------------------------*');
    writeln;
    write(' * Kerem adja meg, hogy hanyszor vegezzem el a szimulaciot.(max 3 ezer) :');
    readln(M2);
    if M2>3000 then exit;
    write(' * Kerem adja meg, hogy hany kiserletet vegezzek szimulacionkent (max 100 )');
    readln(M1);
    if M1>100 then exit;
    M:=M1*M2;
    writeln;
    write(' * Az eredmenyeket szeretne a kepernyon latni (i/n) ?');
    readln(ch);
    if ch='i' then kiiras:=true else kiiras:=false;
    ch:='n';
    write(' * Az eredmenyeket szeretne fajlba (haromszog.txt,szoras.txt) iratni (i/n) ?');
    readln(ch);
    if ch='i' then begin fajlba:=true;
    assign(szoveg,"haromszog.txt");
    rewrite(szoveg);
    assign(szovegszor,"szoras.txt");
    rewrite(szovegszor);
    end
    else fajlba:=false;

    writeln;
    writeln(' * Vegzem a kiserleteket! kerem varjon.');
    writeln;

    for k:=1 to M2 do
    Begin

    for j:=1 to M1 do
    Begin
    for i:=1 to 3 do
    Begin
    r1:=random(4000)/1000;
    if kiiras then write(' ',r1:3:4);
    if (r1<4) and (r1>=3) then begin r[i].x:=0; r[i].y:=r1-3; end ;
    if (r1<3) and (r1>=2) then begin r[i].x:=r1-2; r[i].y:=1; end ;
    if (r1<2) and (r1>=1) then begin r[i].x:=1; r[i].y:=r1-1; end ;
    if (r1<1) and (r1>=0) then begin r[i].x:=r1; r[i].y:=0; end ;
    End;
    o[1]:=sqrt( ksz(r[1].x,r[2].x)+ksz(r[1].y,r[2].y) );
    o[2]:=sqrt( ksz(r[3].x,r[2].x)+ksz(r[3].y,r[2].y) );
    o[3]:=sqrt( ksz(r[3].x,r[1].x)+ksz(r[3].y,r[1].y) );
    egyvonal:=0;
    if o[1]+o[2]<=o[3] then egyvonal:=1;
    if o[1]+o[3]<=o[2] then egyvonal:=1;
    if o[3]+o[2]<=o[1] then egyvonal:=1;
    if egyvonal=1 then begin
    esz:=esz+1;
    if kiiras then writeln(" - a haromszog csucsai egyvonalra esnek ! ");
    if fajlba then write(szoveg,"-1;");
    end
    else Begin
    calpha:=( o[1]*o[1] + o[3]*o[3] - o[2]*o[2] ) / ( 2 * o[1] * o[3] );
    cbeta:=( o[1]*o[1] + o[2]*o[2] - o[3]*o[3] ) / ( 2 * o[1] * o[2] );
    cdelta:=( o[3]*o[3] + o[2]*o[2] - o[1]*o[1] ) / ( 2 * o[2] * o[3] );
    if (calpha<0) or (cbeta<0) or (cdelta<0) then begin
    dszam:=dszam+1;
    if kiiras then writeln(" - a haromszog megfelelo - ");
    if fajlba then write(szoveg,"1;");
    end;
    End;
    if kiiras then readln;
    End;
    if fajlba then writeln(szoveg,"");
    Xi[k]:=dszam/M1;
    szam:=szam+dszam;
    dszam:=0;
    End;
    writeln;
    if fajlba then close(szoveg);
    writeln(' * Osszesites kiiratasahoz kerem nyomja meg az ENTER-t *');
    readln;
    clrscr;

    gotoxy(2,6);
    writeln(' ',M,' kiserletbol ',szam,' -szor lett tompa szogu.');
    writeln(' Ez ',(szam/(M1*M2))*100 :3:4 ,' szazalekot jelent.');
    writeln;
    szumma:=0;
    Xatl:=Szam/M;
    for k:=0 to M2 do
    d2[k]:= (Xi[k] - Xatl)*(Xi[k] - Xatl);
    for k:=0 to M2 do
    szumma:=szumma+d2[k];
    szoras2:=szumma/M2;
    szoras:=sqrt(szoras);
    writeln(' ',M2,' darab szimulaciobol, ',M1,' elemu probabol szamitott szoras:',szoras :4:5);
    if fajlba then begin
    writeln(szovegszor, M2);
    writeln(szovegszor, szoras);
    close(szovegszor);
    end;

    writeln(' es a szoras-negyzet:',szoras2 :4:5);
    szumma:=0;
    for k:=0 to M2 do
    szumma:=szumma+Xi[k];
    writeln(' Az Xatlag=',szumma/M2 :4:5);
    writeln;
    readln;
    readln;


    end.
  • zsomborm
    #18
    ha készitettem egy programot, megvan az exe fájl annak hogy lehet ikont rakni? hogy valami szép ikonja legyen?
  • AtomHeart
    #17
    http://www.freepascal.org/, de ha ennyire nem jottel ra...:^\...hat nem is tudom
  • zsomborm
    #16
    A freepascal-t honnan tudom letölteni?
  • Baz
    #15
    Hali! Ha valakit érdekel a progim, az küldjön egy mailt a [email protected]. Pascalban írtam!
  • nemcsakfeel
    #14
    uses crt;
    const
    N = 3;
    M1 = 1; { ******************** =100 ***********}
    { Mm2 = 1000;}
    type rec = record
    x , y : real;
    End;

    var i,j,k,egyvonal,esz,derek:LongInt;
    atl:LongInt;
    M2,M : LongInt;
    szam,dszam: longint;
    Xatl,Xq : real;
    Xi:Array[0..3000] of real;
    d2:Array[0..3000] of real;
    szoras2,szoras,szumma:real;
    r1,calpha,cbeta,cdelta:real;
    r : array[1..3] of rec;
    o : array[1..3] of real; { oldalak hossza }
    ch : char;
    kiiratas, fajlba : boolean;
    t :text;

    function ksz(x,y:real) : real;
    Begin
    ksz:=(x-y)*(x-y); { ket koordinata kulonbsegenek negyzete }
    End;

    Begin
    randomize;
    szam:=0;
    dszam:=0;
    esz:=0;
    egyvonal:=0;
    // clrscr;
    writeln;

    writeln;
    writeln(' A programot irta : Borsody Péter G 2In3');
    writeln(' A program feladata: ');
    writeln(' Becsulje meg ,mi annak a valoszinusege, hogy az egysegnegyzet');
    writeln(' hataran valasztott harom pont tompaszogu haromszoget alkot.');
    writeln(' Van-e, es ha igen, milyen befolyasa a kiserleti adatok megvalasztasanak');
    writeln(' a szamitas hatekonysagara.');
    writeln;
    writeln(' Keram adja meg, hogy hanyszor vegezzem el a kiserletet.(max 3 ezer)');
    readln(M2);
    if M2>3000 then exit;
    M:=M1*M2;

    writeln(' A generalt adatok kepernyore kiiratasahoz, kerem nyomja meg az "1" gombot, majd az "ENTER"-t !');
    writeln(' A generalt eredmenyek fajlba iratasahoz, kerem nyomja meg az "2" gombot, majd az "ENTER"-t !');
    readln(ch);
    if ch='1' then kiiratas:=true else kiiratas:=false;
    if ch='2' then fajlba:=true else fajlba:=false;
    assign(t,'eredmeny.txt');
    rewrite(t);
    writeln;
    writeln('Vegzem a kiserleteket! kerem varjon.');
    if kiiratas then writeln(' veletlen szam ');
    atl:=round(int( M2 / 20 ));
    for k:=0 to M2 do
    Begin
    for i:=1 to 3 do
    Begin
    r1:=random(4000)/1000;
    // if kiiratas then writeln(' ',r1);
    if (r1<4) and (r1>=3) then begin r[i].x:=0; r[i].y:=1-r1; end ;
    if (r1<3) and (r1>=2) then begin r[i].x:=1-r1; r[i].y:=1; end ;
    if (r1<2) and (r1>=1) then begin r[i].x:=1; r[i].y:=r1; end ;
    if (r1<1) and (r1>=0) then begin r[i].x:=r1; r[i].y:=0; end ;
    End;
    o[1]:=sqrt( ksz(r[1].x,r[2].x)+ksz(r[1].y,r[2].y) );
    o[2]:=sqrt( ksz(r[3].x,r[2].x)+ksz(r[3].y,r[2].y) );
    o[3]:=sqrt( ksz(r[3].x,r[1].x)+ksz(r[3].y,r[1].y) );
    egyvonal:=0;
    if o[1]+o[2]<=o[3] then egyvonal:=1;
    if o[1]+o[3]<=o[2] then egyvonal:=1;
    if o[3]+o[2]<=o[1] then egyvonal:=1;
    if egyvonal=1 then begin esz:=esz+1;
    if kiiratas then writeln(' a haromszog csucsai egy vonalra esnek !!!!');
    // writeln(t,'-1');
    end;
    else Begin
    calpha:=( o[1]*o[1] + o[3]*o[3] - o[2]*o[2] ) / ( 2 * o[1] * o[3] );
    cbeta:=( o[1]*o[1] + o[2]*o[2] - o[3]*o[3] ) / ( 2 * o[1] * o[2] );
    cdelta:=( o[3]*o[3] + o[2]*o[2] - o[1]*o[1] ) / ( 2 * o[2] * o[3] );
    if (calpha<0) or (cbeta<0) or (cdelta<0) then begin
    dszam:=dszam+1;
    writeln(' a haromszog nem derekszogu ');
    //writeln(t,'0');
    end else
    //writeln(t,'1');
    writeln('** a haromszog tompaszogu **');
    End;
    writeln(t,calpha:8,';',cbeta:8,';',cdelta:8,';');
    Xi[k]:=dszam/M1;
    szam:=szam+dszam;
    dszam:=0;
    End;
    close(t);
    writeln;
    writeln(' A szimulacio vege. Nyomja le az ENTER-t!');
    readln;
    // clrscr;

    // gotoxy(2,6);
    writeln(M,' kiserletbol ',szam,' -szor lett tompa szogu.');
    writeln('Ez ',(szam/(M1*M2))*100 :3:4 ,' szazalekot jelent.');
    { writeln;
    writeln('Ha a haromszoget nem alkoto pontokat nem szamoljuk akkor:');
    writeln(M - esz,' kiserletbol ',szam,' -szor lett tompa szogu.');
    writeln('Ez ',(szam/(M - esz))*100 :3:4 ,' szazalekot jelent.');
    writeln;
    writeln('Mert ',esz,' -szer nem alkotott haromszoget.');
    writeln(' ez ',100*esz/M :3:4,' -szazalekot jelent.');

    szumma:=0;
    Xatl:=Szam/M;
    for k:=0 to M2 do
    d2[k]:= (Xi[k] - Xatl)*(Xi[k] - Xatl);
    for k:=0 to M2 do
    szumma:=szumma+d2[k];
    szoras:=sqrt(szumma/M2);
    writeln(M2,' darab ',M1,' elenu kiserletbol szamitott szoras:',szoras :4:5);

    szumma:=0; A szorasnegyzet szamitasa:
    for k:=0 to M2 do
    szumma:=szumma+Xi[k]*Xi[k];
    Xq:=sqrt(szumma/M2);
    szoras2:=Xq*Xq-Xatl*Xatl;
    writeln('es a szoras-negyzet:',szoras2 :4:5);
    szumma:=0;
    for k:=0 to M2 do
    szumma:=szumma+Xi[k];
    writeln('Az Xatlag=',szumma/M2 :4:5);
    writeln;
    writeln(' Tehat a kiserletek szamanak novelese nagymertekben csokkenti ');
    writeln('a szorast es a szorasnegyzetet.');
    repeat until keypressed;
    readkey; }
    readln;
    End.
  • nemcsakfeel
    #13
    Free pascalt-töltsél le, az jogtiszta, és még fut is!
  • Adam II
    #12
    Letöltöttem a Turbo Pascal 7.0át. WinXPm van és nem akar rajta elindulni.Bármelyik alkalmazást próbálom elindítani mindig azt írja ki ,hogy az autoexec.nt-nek nem felel meg (hogy az a 8 lábú büdöstalpú marsi pillangó ene rá)
    Mit csináljak? A fájlt már letöröltem és de mégis ugyanazt a hibát írja ki.
  • Baz
    #11
    Köff mindenkinek! Soha nem fogom Delphiben megírni!!!
    AMúgy már megvan (44 képet kezelek). Látogassatok el a linuks.try.hu címre és ott megtalálhatjátok a progiaimat (ez a progi most nincs ott!). De figyelmeztetlek, ne kattintsatok a nekattints ide ikonra!!!!
    Üdv:B@z from the Linuks Team
  • PetruZ
    #10
    Ez Pascal alól nem fog ilyen könnyen működni, a kívánt memória meghaladja az alap Pascal képességeit. Ha csak sima, 8 bites képeket tárolsz a pointereken, akkor is képenként 22,5 k memória kell neki, ami 70 darabnál már majdnem másfél mega. Ennyit nem tud neked a heap-ból sem kiadni. Két megoldás lehet:
    1. A programodat Delphi-ben írod. Ott full 32 bites hozzáférésed van a memóriához, nem lesz ilyen limit (gyakorlatilag a Win által megcímezhető összes memóriát lefoglalhatod, beleértve a swap-et is). Írd konzol alkalmazásként, úgy 99%-ban ugyanaz a forráskód, itt-ott kell csak módosítani (de ezek apróságok).
    2. Szerzel egy XMS kezelő unit-ot - aminek használata sajnos nem annyira egyszerű. Ráadásul használata Win-es környezetben nem túl biztonságos. Az NT/2K/XP vonalon nemigen lesz baja, de a 9x rendszerek hanyatt eshetnek tőle.
  • blackgamer
    #9
    mondanám, hogy csináld Delphiben, vagy másképpen Pascalban
    esetleg írd körül mit is akarsz csinálni akkor tudunk talán ötletet adni a kivitelezéshez
    de adok egy liket ahol biztos találsz segítséget: prog.hu-->pascal a tudástártémákban is keress rá
  • Baz
    #8
    Hali! Ért itt valaki a memóriakezeléshez?? Mert nekem problémám van vele! Két tömböm van, 35 elemű, pointer típusú. Ezt Getmem eljárással feltöltöm, a size = Imagesize(1,1,150,150) és Pascalos környezetben, ha mindent minimumra leveszek, akkor a 22.-ig jut el, ha megcsinálom exe-be, akkor a második tömb 10. eleméig jut el, aztán kifagy! Most ne azzal gyertek, hogy ne csináljak 70 pointert, mert szükséges! Valahogy ki kéne bővíteni a memóriát!
    Üdv:B@z from the Linuks Team
    röff:Heap overflow
  • Rigley
    #7
    Sikerült megcsinálni , ahogy mondtad, köszi !
  • Pheel
    #6
    Hívhatod TRUE-val vagy FALSE-szal. Előbbinél kirakja, utóbbinál elrejti. Amúgy nagyjából igen.
  • Rigley
    #5
    Köszi , otthon majd kipróbálom... nagyon lamer vagyok programozas-hoz.... szoval ez egy "sima" procedure, amit ., ha a foprogramba berakok, akkor eltunik a cursor ?
  • Pheel
    #4
    Kimaradt a speckó :)

    ------------------

    Procedure {Public}
    Cursor(Switch:Boolean);

    ------------------

    Ez ugye egy Unitból (TPU) lett kimásolva.
  • Pheel
    #3
    Gondolom TEXT mode-ban kellene, mert grafikusan alapból nem is látszik :)

    -------------------------

    Procedure
    Cursor;
    Const
    Cur:word=$0607;
    Var
    R:Registers;
    Begin
    Case Switch Of
    False:Begin
    With R Do
    Begin
    AH:=3;
    BH:=0;
    Intr($10,R);
    Cur:=CX;
    AH:=1;
    CX:=$2000;
    Intr($10,R);
    End;
    End;
    True:Begin
    R.AH:=1;
    R.CX:=Cur;
    Intr($10,R);
    End;
    End{Case};
    End{Proc};

    -------------------------
    Remélem érthető!
  • O0D:
    #2
    Nem gondolod hogy pontosítanod kéne a problémádat?
    Mert sztem nem ártana.
  • Rigley
    #1
    Hogyan lehet eltüntetni egy programban a cursor-t ?
    kösz a segítséget