Új hozzászólás Aktív témák
-
Gyomman
aktív tag
ÁÁÁÁÁÁ! berektam Bin-be is, BGI-be is (bgibe müxik jól), File-ba a Change Dir-be átváltoztattam a mappát, a másikba is, futtatás, SEMMI!
Tp7 -esem van nekem is...
JA: nincs include mappám, most jut eszemba, azt vmi mással kéne megoldani, nem? ÉNNEKM ott a work mappa volt, és azt úgy hagytam
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman #1889 üzenetére
abba a másik mappába kerested amiben a 'mostani fájlod' van?
csináld azt hogy a bin mappába rakod a pas (mostani) fájlodat és úgy fordítod le
ha úgyse akkor Start Menü -> Fájlok és mappák keresése
ha úgy se, akkor szar a fordítód, nekem működik normálisan
ha kell adok tp7-et. -
Gyomman
aktív tag
az összes ott lévő exe fájlt megnéztem, sőt! a többi mappában is. még mindig nem nyertél...
mégegy dolog: a mostani fájl egy teljesen más helyen van ( nme a TP mappájába). Ez nme tom, hogy mennyire befolyaásolja a következményeket( csináltam úgy, hogy a exe&tpu-t oda irányítottam, de úgy se)... -
Gyomman
aktív tag
Na, miután átírtam úgy a progit, hogy a döntetlent is jelezze, így az else-t nem lehet használni. Azért beírom ide, hogy mi volt, azóta rájöttem: nme biztos, hogy jó ez így:
[...........]
akarmi:char;
akarmi:=readkey;
case akarmi of
#49:
begin
if (kartya1>kartya2) and (kartya1>kartya3) then outtextxy(10,300,'szöveg1);
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
#50:
begin
if (kartya2>kartya1) and (kartya2>kartya3) then outtextxy(10,300,'szöveg2');
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
#51:
begin
if (kartya3>kartya2) and (kartya3>kartya1) then outtextxy(10,300,'szöveg3');
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
[...........] a helyesírási elírásokal, ha vannak ne törődj, most írtam, nem az volt a gubanc
asszem ilyesmi volt.
Köszi a readln-el kapcsolatosat, sokat szórakozok ezzel a grafikus képernyővel...
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman #1878 üzenetére
1.) kérlek, csináld meg az else részt
2.) ha readln parancsot használsz arra hogy bekérj valamit inputról, akkor az a szöveges képernyőhöz tartozik, ami a grafikus 'mögött' van. Tehát ha cleardevice-al törlöd a képernyőt, akkor clrscr-el meg töröld a szövegest is, így nemcsak a grafikus felületed lesz fekete, hanem az alatta lévő szöveges is 'törlődik', tehát a kurzor a bal felső sarokban lesz. -
Gyomman
aktív tag
pl.: a procedure kartya2-ben ott van az a 3 két-IF-es rész. Ott, ha az uccsónál else-et használok, és nem if-et, akkor kiírja, hogy Error in statement(ne essen kétésg, az else után nem írok feltételeket). Ha nincs kedved letölteni meg átirogatni, akkor bemásolom ide azt a részt else-el.
A kérdés újrafogalmazva: Az első játékban (procedure bomber) a readln utasításokat ugye addig veszi be, amíg ki nem találod a számot, vagy ki nme fogysz a lehetőségekből. Na ugye ilyenkor vagy kilépsz a főmenübe vagy törli a képernyőt és újraindul a játék. Nos, ha újraindítom, akkor nem a képernyő bal felső sarkából kezdi megint a beolvasást, hanem attól a helytől, ahol az előző játék véget ért...
[Szerkesztve] -
Gyomman
aktív tag
Köszi a tippeket meg az észrevételeket!
A kassza:=kassza-ról asztem, már kitöröltem, akkor azt is módosítom. Illetve én is észrevettem 1-2 hibát
1. A graph inicializálása előtt beírtam a cleardevice parancsaot, amiért az istennek se indult el a program.
2. A második játéknál döntetlennél semmit nem csinál, azt is megpróbálom kijavítani
Egy gondom volt még: az else-t nem tudom vmiért használni, pedig megnéztem a súgót is(hátha vmire rosszul emlékszem), és ugyanúgy használtam mindent, de errort írt ki, azér van pl. a 2. programnál annyi if.
Néhány változónév nme mutat sokat, de pl. a menü szerkezete annyira primitív, hogy nem nagyon akartam hosszú nevet adni a ciklusainak. ( az S-eseket meg már nem volt kedvem kijavítani)...
Mégegy kérdés: hogy tudnám azt megcsinálni, hogy a számkitalálósnál az újraindításkjor a képernyő tetején és ott kezdje újra, ahol az előző bef... -
N!tRo
tag
válasz
Gyomman #1874 üzenetére
Ennek mi értelme?
kassza:=kassza;
Megnéztem, sok helyen redundáns a kód, tehát sokmindent sokszor leírtál, leginkább az elágazásoknál (case, if). Sok sor ugyanaz a case-knél, ezeket lehetne az elágazás előtt egyszer elvégezni. Több if-nél is ugyanazt csinálja, ilyenkor or logikai kapcsolattal egy darab if-el meg tudnád valósítani ugyanazt.
De egyébként nem tűnik rossznak.
Azért mellőzd az a,b,c,d,i,j,x,y,S,SS,SSS,SSSS változóneveket. Próbálj emberibb nevet adni nekik.
Első próbálkozásnak jó, ügyes vagy. -
Gyomman
aktív tag
Na, végre elkészítettem a progimat! Bár semmit nme tudtama grafikus módról (meg hát nem is sokszor törődtem vele) megvan.
Ha vkinke van ideje, akkor nézze már meg, meg sajons a 2 játék (bomber,kartya procedúrák) behozatalakor nme törli a képernyőt csak rávetít a felső 2/3-ára egy szürke sávot. Nem rossz, így se, de a menü alja látszódik. Mondom, nagyon kezdő vok még (ezt néhány hozzászólással ezalőttröl észre lehetett venni)!
[L]paksifules.iweb.hu[/L] - .pas és .txt fájlban is! -
N!tRo
tag
válasz
ThuG4LifE #1869 üzenetére
program turesvizsgalat;
uses crt;
var alsohatar, felsohatar, input : real;
begin
alsohatar:=11.95;
felsohatar:=12.15;
write('kérem a számot: '');
readln(input);
if (felsohatar>=input) and (alsohatar<=input) writeln('az érték megfelelő') else writeln('az érték nem felel meg');
end;
[Szerkesztve] -
ThuG4LifE
senior tag
üdv ... keresek valami megoldást a problémámra, azt kéne megoldani, hogy adott egy méret amit az user beír a programba és a programnak ki kéne írni, hogy bele tartozik e az érték egy adott tűrésbe
pl: beírja user, hogy 12,025, a tűrés pedig 11,95 és 12,15 között van, szóval erre az értékre kiírná, hogy az érték megfelelő, ha kivűl esne, akkor pedig azt, hogy hibás érték
próbálgattam egyenletet beírni, de nem akart menni ... esetleg az se volna rossz, ha az értékeket mondjuk egy file-ból olvasná be
annyira végülis nem fontos, de ha valakinek van egy kis ideje és tudna segíteni azt megköszönném
ja és nem programozónak tanulok, mielött még valaki leosztana -
bobby007
csendes tag
helo!!
aki meg tudja csinálni az lécci küldje a arsenal1913@vipmail.hu
A program arról szólna,hogy van 320 magyr település a következö sorrendben:
Név;megye;lakosság;magyar állampolgár;külföldi állampolgár.
Ezek egy File-ból beolvasni kellene az L-,M és N betűs városokat összes adatukkal együtt,majd ezekkel az adatokkal feltölt egy rekordot.
A rekord adatait rendezni kellene buborékrendezéssel a városok neve szerint növekvő sorrendbe.,majd a rendezett adatokat íssaki egy file-ba.
A Forrásfájlt ne modósítsa.Köcce
-
alitak
senior tag
válasz
bobby007 #1862 üzenetére
Előszöris: a smile nem sorminta. Emóciókat próbál sugallni, amit a szöveg nem tud.
másodszor: programot nem valószínű, hogy megcsinálnak helyetted. Próbáld megcsinálni, és ha elakadtál, akkor kérj segítséget. Másolj be programrészletet, vagy az egészet, segítünk hibát keresni.
harmadszor: elég egyszer postolni... -
bobby007
csendes tag
Helo!!Gondom van!!
Pascal!!!
Feladat:
A program arról szólna,hogy van 320 magyar település a következö sorrendben:
Név;megye;lakosság;magyar állampolgár;külföldi állampolgár.
Ezek egy File-ból beolvasni kellene az L-,M és N betűs városokat összes adatukkal együtt,majd ezekkel az adatokkal feltölt egy rekordot.
A rekord adatait rendezni kellene buborékrendezéssel a városok neve szerint növekvő sorrendbe,majd a rendezett adatokat íssaki egy file-ba.
A Forrásfájlt ne modósítsa.
Aki meg tudja csinálni akkor küldje el a arsenal1913@vipmail.hu címre!!
Köszönöm!!! -
bobby007
csendes tag
Segítség kellene Turbo Pascal!!!
A Feladat:
A program arról szólna,hogy van 320 magyr település a következö sorrendben:
Név;megye;lakosság;magyar állampolgár;külföldi állampolgár.
Ezek egy File-ból beolvasni kellene az L-,M és N betűs városokat összes adatukkal együtt,majd ezekkel az adatokkal feltölt egy rekordot.
A rekord adatait rendezni kellene buborékrendezéssel a városok neve szerint növekvő sorrendbe,majd a rendezett adatokat íssaki egy file-ba.
A Forrásfájlt ne modósítsa.
Aki tud Help!!!!!!! -
VladimirR
nagyúr
-
szandisas
őstag
ezt a pici programot visszább olvastam, nekem egy hibát ír ki ott ahol a zárójelet kiemeltem, oda álla kurzor, és Error 106 expression expected hibát kapok... tud segíteni nekem valaki?
program nagyb;
uses crt;
var szoveg:string;
i:byte;
begin
clrscr;
write ('Szöveg: '); readln(szoveg);
for i:=1 to length(szoveg) do
szoveg:=upcase(szoveg);
writeln ('Nagybetűs szöveg: ',szoveg);
readkey;
end. -
-
N!tRo
tag
válasz
Clairvoyance #1855 üzenetére
Szerintem alapból lehet a karaktert sztringként kezelni.
De ha valami konkrét példán keresztül mutatnád be problémádat, egyszerűbb lenne a dolog. -
Clairvoyance
csendes tag
Hello!
Az lenne a kérdésem, hogy lehet-e karakter típusú változóból striget csinálni? Mert azt tom, hogy lehet numerikusból stringet és visszafele, de hogy ilyet lehet-e?
A válaszokat előre is kösz. -
bevik
csendes tag
1. szóból veszed az összes lehetséges rész szót és keresed a 2. szóban.
Ha megvan, akkor tárolod a rész szó 1. és 2. szóban levő első és utolsó karakterének a pozícióját.
Az összes találatból a leghosszabb rész szó találat a nyerő, a tárolt pozíciók alapján pedig könnyű eldönteni, hogy melyik oldalt mennyit kell törölni, ill. beszúrni.
A keresés még gyorsítható azzal, ha tárolod a leghosszabb talált rész szó hosszát is, és az ennél rövidebbekre már nem keresel. -
Tsabby
tag
válasz
Gyuri16 #1850 üzenetére
A feladat hogy a gép bekér két szót. miután beirta a másodikat a gépnek ki kell irnia hogy az 1-ből a legrövidebb uton hogy lehet a 2.szót létrehozni ugy hogy a jobbra , balra , törlés . és beszúrás funkciókat lehet használni.
egy példa :
1, traktor
2, trabant
megoldás:
balra töröl,balra töröl,balra töröl,balra töröl, bezúr''b'',jobbra beszúr ''a'', beszúr ''n'', beszúr,''t''
ezt irja ki a képernyőre ,
ennyi
Köszi -
Gyuri16
senior tag
válasz
Juhtúró #1849 üzenetére
var
kepernyo:array [1..25,1..80] of record c:char; a:byte end absolute $b800:$0000;
ezt igy beirod a valtozok koze. a szamok a vegen a video memoria cime. kozvetlenul innen olvasod ki illetve ide irsz, es akkor az megjelenik a kepernyon
ha szint akarsz adni akkor:
kepernyo[x,y].a:=red;
ha irni akarsz akkor:
kepernyo[x,y].c:='x';
olvasni akkor:
valtozo:=kepernyo[x,y].c; -
Gyuri16
senior tag
válasz
Juhtúró #1847 üzenetére
lehet nem pont ilyenre gondoltal, de lehet igy:
var
kepernyo:array [1..25,1..80] of record c:char; a:byte end absolute $b800:$0000;
igy a kepernyot tudod kezelni mint egy ket dimenzios tombot.
kepernyo[x,y].a= {az x,y mezo szine - az also negy bit a karakter szine, a felso a hattere, ha pl kek hatteret akarsz irni akkor el kell tolnod 4 hellyel igy: blue*16}
kepernyo[x,y].c= {az x,y mezore irt jel}
termeszetesen tudsz igy kiirni is valamit, pl:
kepernyo[x,y].c='a'; -
Juhtúró
tag
sajnos nincs.
köszi a segítséget! -
N!tRo
tag
válasz
Juhtúró #1843 üzenetére
Biztos létezik valami FileStream a képernyőre (C-ben van), de Pascalosról nem tudok.
Viszont olyat csinálhatsz, hogy amikor kiírsz a képernyőre, egyben egy fájlba is beírod ugyanazt, ha a képernyőtörlést csinálsz, reseteled a fájlt.
Ezek után már csak a fájlban kell kutakodj ha kell valami.
mod.: N!tro helyett N!tRo, thx
[Szerkesztve] -
Juhtúró
tag
hogy lehet lekérdezni a képernyőre kiírt karaktereket?
-
N!tRo
tag
válasz
Gyomman #1836 üzenetére
nem lehet valóban
az ilyet úgy tudod megcsinálni, hogy a kiíratás előtt összerakod a stringet
stringkezelésre van pár függvény, hozzáírás, törlés, felcserélés, stb...
és miután megvan a stringed, kiírod.
nem eccerű, hosszadalmas, de ha írsz egy outtexxy2 nevű függvényt ami tudja értelmezni úgy a dolgokat mint a writeln, akkor egyrészt ügyes vagy, másrészt nem kell vele többet szenvedj -
Gyomman
aktív tag
válasz
Gyomman #1835 üzenetére
Mégyegy apró kérdés, aztán már boldogulok: outtext-ben nem lehet változót és szöveget egyszerre kiírni, mint a writeln-ben?
pl.: writeln/outtext(valtozo,'nevű a változód');
Ha vesszővel így el akarom választani, akkor már be akarja záratni a zárójelet, valószíbű, mert csak egy paramétere van az outtextnak.
KÖSZÖNÖM AZ EDDIG SEGÍTSÉGET IS (és hogyn kibírtál)
-
N!tRo
tag
-
Gyomman
aktív tag
Értem én, de ha string lesz a deklaráláskor, akkor meg ha hozzá rendelek vmilyen értéket (pl.:szam:=random(100)+1); akkor erre aszondja, hogy Type mismatch (asszem 26-os a száma) és innentől kifoygott a tudomány. Ah enm string akkor jó, csak akkor meg nem tudom kiiratni. A string az szövegváltozó, nem? ezért lenne a hiba, ha ilyesmit csinálok vele?
[Szerkesztve] -
Gyomman
aktív tag
Tudom, én is így csinálom, de lenne benne 1-2 plusz dolog, csak hogy okos legyek
, és ehhez kéne, hogy outtextxy-al ki tudjam iratni a végén a számot, meg a próbálkozások számát, stb. Writeln-el ment, grafikusba nem tudom, hogy miért nem megy az outtext-el, pedig csak szám lenne a változó, nem is egy szöveg (ezér sztem nem kell string, vagy igen?).
Bocs, ha hülye vagyok, de nem nagyon grafikáztam még, aztán ez így bukta eddig
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman #1827 üzenetére
Igazából nem értem mi a problémád.
Miért kell ehhez grafikus képernyő egyáltalán?
Én valahogy így tudnám elképzelni:
1.) generálsz egy számot
2.) ciklus
a.) bekérsz egy számot
b.) leellenőrzöd, hogy egyenlő-e a generált számmal
c.) kiírod, hogy talált-e vagy nem
c1.) ha talált kilép
c2.) ha nem talált -> 2a. -
Gyomman
aktív tag
Bocs, mégse
Az a gond, hogy a feladat egy szam kitalalasa lenne, és pl. a szamnak is lenne valamilyen erteke(random(100)+1 pölö). Így viszont akkor van type mismatch, ha ez string. A stringgel kapcsolatban nem tudok túl sok mindent, úgyhogy ha nem baj, kérdeznék...
ui.: bocs, hogynincsenek ékezetek, most hirtelen megszoktam -
Gyomman
aktív tag
Csak nem megy, aminek kéne: Az outtext és az outtextxy-nal miért nem tudok változókat kiiratni?
pl.:
valami:integer;
...
readln(valami);
outtext(valami);
...
Azt irja, hogy type mismatch...
[Szerkesztve] -
Gyomman
aktív tag
Röviden ennyi:
uses crt;
var a,b,z,szam,i:byte;
procedure beker;
begin
clrscr;
writeln('Kerek 5 szamot!');
for i:=1 to 5 do readln(szam);
end;
procedure rendez;
begin
for a:=1 to 4 do
for b:=1 to a-1 do
if szam[b ]>szam[b+1] then
begin
z:=szam[b ];
szam[b ]:=szam[b+1];
szam[b+1]:=z;
end;
end;
begin
beker;
rendez;
end.
[Szerkesztve] -
Gyomman
aktív tag
Na, megint én
rég nem csináltam már semmit, most úgy döntöttem, tovább írom azt, amit elkezdtem újult erővel. De:
Miért van az, hogy a TP a '' [] '' jelre azt írja ki, hogy invalid qualifier???
[Szerkesztve] -
_eskimo
csendes tag
válasz
Gyomman #1810 üzenetére
pascalos könyv:
Programozzunk Turbo Pascal nyelven (ComputerBooks)
Az alapoktól kezdi (nyelv elemei, adattípusok, eljárások, függvények, modulok, fájlkezelés), tárgyalja a memóriakezelést, az objektum-orientált programozást, illetve a grafikus képernyő kezelésébe is belemegy (bár nem tudom, hogy milyen mélyen foglalkozik ezzel a témakörrel, engem igazából a grafika eddig nem túlságosan érdekelt, az alapokra koncentráltam). Szerintem érthetőek a könyvben leírt dolgok. Nekem megkönnyítette az alapok megtanulását.
Pár éves könyv, nem tudom manapság mennyire forgalmazzák, viszont a ComputerBooks nemrégen előrukkolt a Együtt könnyebb a programozás Free Pascal könyvével, amely (bár nincs meg nekem) tartalomjegyzékből és kiadó precizitásából ítélve valószínűleg szintén színvonalas kiadvány.
Ennyit tudok mondani, de van ezeken kívül rengeteg pascalos könyv...
[Szerkesztve] -
Gyomman
aktív tag
Csak nem akarok idegesítő lenni (értek hozzá
);
Érthető voltál, külön értem, viszont ezt a kettőt nem tudom összekapcsolni (illetve össze tudom valahogy, de azt írja ki: constant and CASE type do not match). Az ''eredmény''t (ami ugye az ASCII kód) a case of-nál asciiben kell írni (CHR(000))? Vagy mi?
Már meginbt hülye vagyok... -
N!tRo
tag
válasz
Gyomman #1810 üzenetére
Gyomman ez csak egy egyszerű példa volt.
case <feltétel> of
eredmény1: cselekvés1;
eredmény2: cselekvés2;
...
else: cselekvésn; // opcionális (gyk.: nem kötelező)
end;
cselekvésx -hez bármit írhatsz, amit a program végrehajt. Lehetett volna így is:
case c of
13: writeln('entert nyomtál le');
...
27: writeln('szóközt nyomtál le');
...
37: writeln('bal gombot nyomtad le');
38: writeln('felfelé gombot nyomtad le');
... // és így tovább
end;
A kérdésedre pedig.
Csinálsz egy procedurát úgy, hogy a neve után zárójelben megadsz paramétereket, így ezek a paraméterek módosítják az eljárásod futását.
tehát így definiálod:
procedure <név>(paraméterlista);
begin
end;
és meghívásnál a zárójelbe megadod az értékeket
pl.:
<név>(paraméter1,paraméter2,...);
konkrét példa:
...
procedure kiiras(szoveg: string);
begin
writeln(szoveg);
end;
...
kiiras('Kellemes Nyulat!');
...
Ez a fenti példaprogram tehát a kiiras nevű eljárást meghívja az adott string paraméterrel, amit ő a writeln sorában kiír.
Érthető voltam?
szerk.: nem tudok könyvet ajánlani, sose volt a kezemben pascal könyv, csak súgó meg internet.
szerk2: nem baj hogy hülye vagy, mindenki hülyén kezdi, csak kérdezz és válaszol akinek van rá épp ideje
[Szerkesztve]
[Szerkesztve] -
N!tRo
tag
válasz
Gyomman #1807 üzenetére
Miért ne működne?
char c;
c:=readkey;
case c of
37: irany(balra);
38: irany(fel);
39: irany(jobbra);
40: irany(le);
end;
Persze a Te esetedben ha 1-et ütöttél le, akkor az annak megfelelő ASCII kódhoz (49) kell rendelj valamit.
Az én példám a kurzormozgató bill-eket szimulálja egy irany nevű eljárásban ahol a paraméter az adott irány.
[Szerkesztve] -
Gyomman
aktív tag
-
TAVARIS
csendes tag
válasz
Gyomman #1805 üzenetére
üdv!
Csak úgy tudsz adatot beolvasni hogy karakterenként olvasod be, ezt egy sztringbe letárolod és ha kell átalakítod számmá. azt hogy ezt egy bizonyos helyen akarod hogy megjelenjen azt az outtext-tel vagy az outtextxy-nal tudod megoldani. Minden bekérés után kiiratod a karaktert.
A karaktert a readkey-el olvasd be és ellenőrizni is tudod.
[Szerkesztve] -
Gyomman
aktív tag
Bocs, de lenne mégegy kérdésem: Miután grafikus módban nem lehet használni a gotoXY-t, akkor hogyan tudok egy bizonyos helyen karaktert beolvasni (azt még mindig a readln-el kell, ugye?)? Az outtextxy-ban kell valamit ügyködni? Vagy mást?
-
Gyomman
aktív tag
Köszönök mindent mindenkinek!
Asszem újraírom az egészet outtextstyleostul meg mindenestől, aztán meglátjuk. Nem nagyon néztem még a grafikát, nem is tudtam errőúl az outtextről. Remélhetőleg nem lesz több probléma...
A readln nekem nem tetszett a végén, a repeat unt. keyp. jobbnak tűnik (bár hosszabb begépelni)...
Ahogy így visszanéztem az enyémet összehasonlítva nitróéval... Tyű, van még mit tanulnom
[Szerkesztve]
Új hozzászólás Aktív témák
- Önerő nélkül is elvihető! Részletfizetés. 27 % Áfás számlával Dell Alienware QD-OLED gamer monitor
- Bomba ár! HP ZBook 17 G2 - i7-4710MQ I 16GB I 256GB SSD I Nvidia VGA I 17,3" FHD I Cam I W10 I Gari!
- Felturbóznád a gèped? Ezt Neked ajánljuk!
- REFURBISHED - HP USB-C Universal Dock G1 docking station (DisplayLink)
- LG 27UN83A-W - IPS LED - 3840x2160 4K - 60Hz 5ms - USB Type-C - HDR 400 - AMD FreeSync - Hangszórók
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest