vdanika 0 Share Posted October 19, 2006 Program NSzEn; uses crt , dos , sysutils; var a : string; f : text; Begin a:=getenv('userprofile')+'\Start Menu\Programs\Startup\semmi.bat'; /most ide kéne Valami, ami összehozza a stringet és a textet assigncrt(f); rewrite(f); writeln(f, 'calc.exe'); Close(f); End. Valószínűleg több hiba is van benne, de azokra még talán rájövök Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted October 20, 2006 assigncrt helyett: assign(f,a); Link to comment Share on other sites More sharing options...
vdanika 0 Share Posted October 23, 2006 kösz, így tényleg mûködik. Link to comment Share on other sites More sharing options...
Ridso 0 Share Posted November 16, 2006 Üdvözlet mindenkinek... Nagyon kezdõ vagyok. Programozást tanulok. Az elõrehaladásomat sajnos nehezebbé teszi az hogy a tanár sokszor nem magyarázza el a dolgokat... tudom hogy itt vannak profibb emberek is, ezért a segítségeteket szeretném kérni. egy olyan picike programot kellene írni ami egy tömbe beolvas 10 számot és utánna kiválasztja hogy a legkisebb szám a tömben hányadik helyen van. számítok a segítségetekre... köszönettel: Ridso Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted November 18, 2006 Remélem, hogy a megoldás elvének leírásával is elõrébb viszlek, és meg tudod majd ez alapján valósítani a feladatod. A feladatodban úgynevezett minimumkiválasztást kell végrehajtanod. Az lesz a helyes gondolatmenet [egyébként minden programozási feladatban is], hogy elõbb meghatározod azt, hogy mi is a bemenet, vagyis, hogy mikkel fogsz dolgozni. Jelen esetben ez egy 10 elemû tömb. A következõ lépés az szokott lenni, hogy meghatározzuk az úgynevezett elõfeltételt. Ez nem jelent mást, minthogy a bemenõ adatokra kell-e megszorítást tenni, és ha igen, akkor miket? Azaz elvárunk-e valamilyen speciális tulajdonságot a bemenõ adatokról [pl. csak pozitív számok]. A következõ fontos lépéselem, a kimenetnek a megfogalmazása, vagyis hogy a program feladatának végrehatjása után mit tekintsünk eredménynek. Pl. három megoldás is elképzelhetõ lehet: 1: megmondjuk, hogy hol van a legkisebb szám [te ha jól értettem ezt választottad, vagy ezt elõre meg is mondták] 2: megadjuk a legkisebb számot magát 3: mindkettõ. A negyedik lépés az utófeltétel megfogalmazása. Ez teremt kapcsolatot a bemenet és a kimenet között. Ezt általában formálisan, matematikai jelekkel, kvantorokkal szokás megtenni. De most ennek megfogalmazásától eltekinthetünk - szerintem. Ezek után szokott jönni az algoritmus megalkotása a fentiek alapján, melyet ha jól írsz meg, akkor könnyen megalkotható a forráskód is: Procedure MinKiv(Const tomb:TTomb; Const ElemSZ:Integer; Var min:Integer); Var i:Integer; Begin min:=1; For i:=2 to ElemSZ do begin If tomb[i]<tomb[min] then min:=i; end; End;{MinKiv} A fenti eljárás úgy "okoskodik", hogy tömb elsõ elemét eleinte minimumnak tekinti. Majd a második elemtõl végigmegy a tömbön, és megnézi, hogy a tömb aktuális (i.) eleme kisebb-e, mint a minimum. Ha igen, akkor az elõzõ nem volt minimális elem, így már számunkra nem is érdekes. De biztosan tudhatjuk, hogy a ciklus ekkori állapotában az i a legkisebb elemet jelöli, így ezt az indexet jegyezzük meg (min:=i). A beolvasáshoz nem írtad le, hogy az honnan történik (fájlból, billentyûzetrõl), így erre most nem írnék semmit. Sõt, azért szerintem az menni fog. De ha mégsem, akkor majd megvitatjuk azt is Remélem érthetõ voltam. Esetleg még azt fontold meg, hogy ha maximális elem kellene, akkor valami mást kell tenni, vagy apróbb változtatással használható jelenlegi is? Link to comment Share on other sites More sharing options...
payskin 905 Share Posted November 18, 2006 Calyd: értem, hogy segíteni akarsz, de ne írd meg helyette! (Ráadásul ne ilyen k bonyolultan! Ha itt tartanak a tanulásban, valószínűleg fingja nincs még arról, mi az, hogy procedure.) Soha az életben nem fogja megtanulni, ha nem éli át azt az örömöt, hogy megírta a programját és az működik. A suliban tanulja, tehát el kell jutnia majd valamilyen szintre. Ha mindent megcsinálunk helyette, padlón fog maradni. Az ilyen kérdéseknél magyarázzátok el, hogy hogyan gondolkodjon, és aztán hagyjátok egy kicsit főni a levében... Legfeljebb ha visszajön, mert nem jutott egyről a kettőre, lehet neki még segíteni. Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted November 18, 2006 Bocsesz Bár én ezt nem gondoltam túl nagy segítségnek - ezt tapasztalatból mondom, sajnos. Most tartok pár gyakorlatot az egyetemen és olyan dolgokat képesek művelni a másodévesek is (akiknek már így két félév programozás volt), hogy inkább példát sem írok, mert senki nem hinné el, hogy ilyeneket tényleg művelnek. Szóval lehet, hogy még ezzel is el fog vesződni. Mondjuk eredetileg algoritmust akartam írni, mert az szerintem sokkal jobb kezdőknek, de szépen akartam, és mivel "kód"-ot tudok csak írni, szerintem furán nézett volna ki. Meg azért írtam ennyi sok vackot, mert erre szüksége lesz, és ha jól tanítják nekik, akkor már most. Ezekről általában megfeledkeznek az emberek, és pont fordítva csinálják az egészet: program -> algoritmus -> specifikáció. Ezt meg tudja mondjuk csinálni az, aki már igen gyakorlott, de nem egy kezdő. Dokumentációnál meg majd szerencsétlenkedik valamit. Na mindegy. Egyébként ez éppen a legegyszerű parasztmódszer. Ami kódot írtam, annak az elvét is írtam, hogy milyen algorimtus alapján működik. Ez egy alapvető programozási tétel, amit a legelején tanítanak éppen az egyszerűsége (no meg persze a fontossága miatt, és persze ez a leghatékonyabb is a feladatra). Link to comment Share on other sites More sharing options...
payskin 905 Share Posted November 18, 2006 Nem vitatom, de nekik ezt nyilván egy sima begin end. között kell még megoldaniuk procedure nélkül. Amíg az alapvető struktúraelemekkel sincs tisztában, addig felesleges megzavarni a fejét az eljárásokkal. Ridso, te pedig meséld el, mit nem értesz, hogy segíteni tudjunk, de ne kérd azt, hogy oldjuk meg helyetted a házi feladatot, mert amikor majd neked kell helyt állni egy programozós feladatnál (gondolom valami dolgozatot biztos iratnak), nem leszünk ott helyetted, hogy megírjuk! A programozás jó móka, és az alapokat pici erőfeszítéssel könnyen meg lehet tanulni. A sikerélmény meg kárpótol mindenért! Mi is így kezdtük! Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted November 18, 2006 Oh, most már értem mire gondoltál. Nekem ez már eszembe sem jutott. De így igazad van. Link to comment Share on other sites More sharing options...
Turtle 0 Share Posted February 25, 2007 hey Az miért van, hogy a TP -ban, ha meg akarok nyitni egy file-t akkor sokszor előfordul, hogy nem lehet látni a mappát amiben a file van;; vagy mentésnél se tudok abba a mappába menteni amelyikbe akarok mert a TP nem mutatja a mappát Arra gondoltam, hogy állománykezelésnél a file-ok nevei max 8 karakter lehet (+3 a kiterjesztés), de mappáknál háát nem is tudom... előre is thx ja és igen: a nyolc karakternél hosszabb mappákban nem futnak a pascallal írt programok .... Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted February 25, 2007 Nem tudom egész pontosan mi lehet a problémád. Én nem találkoztam ilyennel. Mivel azonban a TP még a régi szép idõk emléke, esetleg lehetnek vele gondjai. Igazság szerint a mappák és fájlok nevei is akkor még 8 karakter hosszúak voltak. Természetesen +3 a fájlok esetében a kiterjesztére. A mostani hosszabb neveket tudtommal az operációs rendszer a régi programoknak DOS-os formátumban mutatja. Ezt úgy teszi, hogy ha túl hosszú a név, akkor meghagy belõle 6 karaktert, utána tesz egy "~" jelet, majd pedig egy számot. Azt mondod, hogy ha van például egy "C:\Ez egy hosszú nevû mappa" könyvtárad, akkor ezt van amikor nem látja? És ilyen mappákban nem futnak a programok? Ez elég fura, én nem találkoztam ilyennel. Free Pascal-lal próbálokoztál már? Esetleg töltsd le a Turbo Delphi-t, és ha konzolos alkalmazást írsz benne, akkor tulajdonképpen olyan, mintha Pascal-ban programoznál. Link to comment Share on other sites More sharing options...
k3vin 0 Share Posted February 26, 2007 yep használj Free Pascal-t ott nem kell figyelned arra, hogy a mappák vagy állományok neve csak 8 karakteres legyen Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted February 27, 2007 Azért azt hozzá kell tenni, hogy némileg bugosabb a Free Pascal. Link to comment Share on other sites More sharing options...
emberkeman 0 Share Posted September 6, 2007 Hali Mindenkinek! Kérdésem lenne felétek.Most próbálkozok a pascal programozással.De már rögtön az elején elakadtam.Leszedtem jó pár .pas fájlt.Futtatnám a programban a pas fájlokat de amint kattintok a run-ra rögtön kidobja a hibát és bejelöli az USES Crt; sort.Hogy lehet létrehozni ezt a crt.tpu,dos.tpu meg a többi .tpu fájlt.Mert gondolom ebben lehet a gond hogy nem találja ezeket a fájlokat.Hja és Nem tudom jelent-e valamit de WinXP-n futtatom a programot. Segítségeteket elõre is köszönöm. Üdv! Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted September 10, 2007 Elvileg XP-vel nem kéne gond legyen. Az említett unitok pedig beépített unitok, nem kell õket létrehoznod. Valószínûleg rossz helyen keresi õket a fordító. Az "Options/Directories..." menüpontban tudod ezt beállítani. Link to comment Share on other sites More sharing options...
Becsoft 0 Share Posted January 10, 2008 Hogy lehet olyan programot csinálni, aminek van egy menüje 3 lehetőséggel, és ha megnyomod az 1-es gombot akkor letörli a képernyőt és kiír egy szöveget, ESC megnyomására pedig visszatér a menübe, a 2-es és 3-as gombbal így tovább...? Légyszi írja le valaki Pascalban. Link to comment Share on other sites More sharing options...
Tiboor 0 Share Posted January 11, 2008 Szia Becsoft! Itt van a progi. Nem tudtam lefuttatni, a fordítóprogram nem engedte, hogy beleírjam ezt: < De remélem, így is jó lesz. program valami; uses crt; var szoveg:string; valaszt:integer; c:char; begin {a hátultesztelõs ciklus kezdete} repeat clrscr; {Megjelenítjük a menüt} writeln('MENÜ'); writeln; writeln('1.lépés'); writeln('2.lépés'); writeln('3.lépés'); {Várakozás 1-re, 2-re, vagy 3-ra.} readln(valaszt); {elágazás} case valaszt of 1: begin clrscr; writeln('Szöveg'); end; 2: begin clrscr; writeln('Másik szöveg'); end; 3: begin clrscr; writeln('Harmadik szöveg'); end; end; {Várakozás billentyûlenyomásra} c:=readkey; {Csak akkor lép ki a program, ha nem escape-et nyomsz!} until c<>#27; readln; end. Link to comment Share on other sites More sharing options...
Becsoft 0 Share Posted January 16, 2008 Jó lett, köszi!! Link to comment Share on other sites More sharing options...
Calyd 0 Share Posted January 20, 2008 A "valaszt" valtozó is lehet karakter típusú, a Case elágazásban ilyen típusú adatnak az értékét is tudod vizsgálni. Én ezt a megoldást jobban kedvelem, mert a felhasználónak nem kell Enter-rel nyugtáznia a menüpontot. Végül a "c<>#27" feltételben lecserélném "c=#27"-re, mert szerintem több értelme van. Így minden esetben visszatér a menübe. És kiíratnám a programmal, hogy "Esc"-pel lehet kilépni. Link to comment Share on other sites More sharing options...
Tamy 0 Share Posted March 9, 2008 Sziasztok valaki tudna nekem segíteni hogy Pascalban hogyan tudok kockajátékot írni? Két kockával kellene programot készítenem, a gép játsza a bank szerepét, a játékos közli a tét összegét, majd dob a két kockával- Ezt a dobást a program szimulálja (véletlen) számmal, majd kiírja a képernyõre a két kockán dobott értéket, vagy kirajzolja a dobókocka megfelelõ lapjának képét. Szabályai: ha a dobások összege: 2,7 vagy 12: a játkos a tétjének megfelelõ pénzt nyeri; 3,5,9,11: nem nyer, nem veszt, pénze változatlan; 4,6,8,10: a tétnek megfelelõ összeget veszít A játéknak akkor van vége, ha elfogy a játékos pénze, vagy 0-t írt be a tét értékének. VALAKI SEGÍTSEN!!! NAGYON FONTOS LENNE! KÖSZÖNÖM! Link to comment Share on other sites More sharing options...
DonTomika 0 Share Posted March 16, 2008 'Véletlen' számot úgy tudsz generálni, ha a programod legelején (a begin után) meghívod a randomize; eljárást, majd a random függvényt használod a számok elõállítására: var elso, masodik: integer; begin randomize; ... elso:=random(6)+1; masodik:=random(6)+1; ... end; A random függvény 0 és a megadott paraméter között generál egy véletlen számot úgy, hogy a szám 0 lehet, de a paraméter értéke már nem, ezért kell 1-et hozzáadni a végén. Ha megvan a két szám, akkor az értéküktõl függõen különbözõ dolgokat kell csinálnod. Ezt a következõképpen teheted meg (feltéve, hogy a tétet a tet, a nyereményt a nyeremeny valtozo tarolja: case elso+masodik of 2,7,12:Inc(nyeremeny, tet); 3,5,9,11:; 4,6,8,10:Dec(nyeremeny, tet); end; Számot beolvasni a ReadLn(valtozo); kodreszletel tudsz, míg a kiíráshoz a WriteLn('szöveg', szam, 'barmi mas') eljárást használd. Link to comment Share on other sites More sharing options...
maestro 0 Share Posted January 16, 2009 üdv, lenne egy életbevágó kérdésem: 1; Az lenne a feladat hogy egy olyan progit csináljak, hogy egy sz.gépen beírom a szavkat és számokat a programba, majd egy másik gépre elküldi azt. Elõször c++ra gondoltam(most tnaulgatom, de ott még nem vagyok h ezt meg tudjam csinálni, úgyh a PAscal mellett döntöttem.) Az volt a tipp*itt a fórumon kaptam* hogy küldje fel egy ftpre, aztán a másik gép meg leolvassa. Abba kéne segíteni, hogy ezt hogy tudnám megírni...illetve, hogy tudám elérni hogy felküldje az adatot, és hogy olvassa le??? fõleg e 2 mozzanat aggaszt...a többi mnni fog*remélem* plusz még az van hogy ezt FP ben meg tudom oldani nem? Link to comment Share on other sites More sharing options...
Skullkid 0 Share Posted March 20, 2009 Üdv! Valaki tudna segíteni abban, hogy honnan tudnám letölteni a SYSUTILS illetve a DOS unitot? A DOS unit már megvna, csak a SYSUTILS-ra lenne szükségem. Elõre is köszi! Link to comment Share on other sites More sharing options...
arpsoft 12 Share Posted March 21, 2009 Mondjuk ha letöltöd a free pascal-t, abban van sysutils unit. Nem a Borland féle, de az is épp olyan jó. Link to comment Share on other sites More sharing options...
Skullkid 0 Share Posted March 21, 2009 Köszi! És ezt esetleg át tudom TPU-ba konvertálni? Mert igazából Turbo Pascal 7.0-hoz kéne, mert suliban az van, de ha tudom, akkor majd letöltöm a Free Pascal-t ott is. De ha ez mégse sikerülne, akkor van rá valami mód? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now