Új hozzászólás Aktív témák
-
alitak
senior tag
Én is megcsináltam:
program elso;
var szam:integer;
begin
writeln('Adj meg egy szamot, eldontom paros-e: ');
readln(szam);
if szam mod 2 = 0 then writeln('Ez a szam paros!')
else writeln('Ez a szam paratlan');
readln;
end.
Na hát ennyi! Mondjuk én is idén keztem, de nekem teccik. Főleg hogy megszoktam a ;-őt soronkéntNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
-
alitak
senior tag
válasz emitter #1113 üzenetére
ujszoveg := copy(szoveg, 1, 2) //ez másolja az első 2 karaktert
Ez télleg az első két karaktert másolja, de nem azért, mert 1,2,... hanem mert az 1. karaktertől számítva 2 karaktert másol. Legalábbis úgy emléxem.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz emitter #1117 üzenetére
Hát igen, mire jó a net
Nekünk suliban nagyon nyomják a Pascalt, azért tudom. Idén meg évfolyammunkát kell írni. Szépen hangzik, de nem tudom, hogy mikor és hogyan fog elkészülni a programom. Tuti fogok párat kérdezni ittNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz emitter #1119 üzenetére
Azt mindenki maga választja, lényeg hogy nagyob kaliber legyen. Legalábbis a tanár ezt mondta. Régen sokat olvastam kalandjáték könyveket, és én azt fogom megcsinálni gépre. Jó sok gépelés lesz, de ez van. Már valami alapom van, régebben nekiálltam, de abbahagytam, mert át kellett volna írnom a motrot és arra nem volt hangulatom.
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz emitter #1121 üzenetére
Annál jóval eccerűbb.
===========================================
=_______==______________________________________=
=_______==______________________________________=
=_______==______________________________________=
=_______==______________________________________=
=========______________________________________=
===========================================
Valami ilyesmi képernyő, balra saját adatok, jobbra a történések. Csak szöveg lesz, semmi grafika. Olyan ősrégi RPG, de ha olvastál kalandjáték-könyveket, akkor tudod. Amúgy kb egy hónap van rá. Alapom van, már régebben nekiálltam, csak mostmár be is kell fejezni.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz VladimirR #1123 üzenetére
Régebben nagy divat volt az ún. lapozgatós kalandjátékkönyv. Ugye volt egy kiló fejezet, aminek a végén eldönt¨tted, hogy mit csinálsz/merre mész tovább, és ott volt a fejezetszám. Akkor átlapoztál oda.... Na egyik ilyen könyvet írom át, bár egy kicsit egyszerűsíteni fogok rajta, mert még nem vagyok olyan nagyon nagy programozó. Bár már gondoltam rá, hogy nekiállok a Diablo 3-nak
Az általad említett címeket nem ismerem, de szerintem ugyanarra gondoltunk.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz VladimirR #1125 üzenetére
ÁÁÁÁ... Amint rányomtam a linkekre, rájöttem, hogy igen ezt játszottam régen. Pedig még csak 17 múltam De szerintem az én játékom ezt sem fogja megütni. Majd meglátjuk, mit tudok kihozni belőle. Valahova majd tuti felrakom. Tegnap este nézegettem a már meglévő forráskódot, és bizony már a motrot is nekiáltam átítrni régebben. Csak az a gáz, hogy már nem nagyon tudom, hogy melyik változó mi, melyik jel mit jelent, meg ilyenek. De majd kitalálom.
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Na elkezdtem írni azt a retvás programot. Crt unitban van olyan parancs, hogy megállapítsa, hol a kurzor? Kiír egy kiló szöveget, utána valamelyik sorban véget ér, és hogy annak a helynek a koordinátáit megállapítsa.
Vladi: a sulit már végignyomtamNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
HI!
Assembly-ben van egy olyan parancs, hogy NOP (No OPeration)--> nem csinál semmit. Pascalban van ilyen, vagy hasonló?Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Gondoltam a procedúraírásra énis, ésha nincs semmi ''beépített'', akkor maradok annál.
Vladi: Nagyon soxor jól jött volna már, és mindig ráment egy kiló időm, hogy valahogyan máshogyan oldjam meg. Egyébként nekiálltam annak a retkes programnak, és kész van egy rész, akkor lefuttatom. Csak még nincs meg a lehetmenu procedúra és az helyett kellene például a NOP.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Jujjj, erre én is rájöhettem volna
Egyébként nem ez volt a tökéletes példa, de volt már rá eset, hogy egy feladatban ha A esemény bekövetkezik, akkor ne csináljon semmit. Ha találok konkrét példát, akkor szólok.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
ESC-nek mi az ASCII kódja?
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Hi!
Van egy fájl, amiből beolvas a program string formátumba szöveget. Kérdés az, hogyha beolvas egy ilyen sort: f133, akkor azt hogyan tudom megoldani, hogy levágja az elejéről az ''f'' betűt, és a tömbbe csak a 133 kerüljön.
Egy kicsit egyszerűbben: hogyan lehet a string első betűjét levágni?Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz Gyuri16 #1274 üzenetére
Cső Varázsló
a 2es kérdésedet nem lehet úgy megoldani, hogy crt unitban nyitsz egy ablakot, és aztán abba rajzolsz? Bár graph unithoz olyan nagyon nem értettem, szerintem a pascalos ''grafika'' egy picit ööö... öregecske.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
A programomban van egy parancs, amivel a jel nevű char típusú változóba egy gombot vára progi. Ugy az ESC kódja 27, de mikor megnyomom, és utólag megnézem, akkor a jel-be 13-as kerül, holott entert nem is nyomok sehol.
Ez az a rész:
jel:=readkey;
if jel=#80 then o:=o+1;{fel}
if jel=#72 then o:=o-1;{le}
if jel=#27 then begin szoveg:='';exit;end; {esc}
Miután lenyomom az ECS-pet, akkor nem kilép a procedúrából, hanem újra elindul. 5lete vkinek?Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Beírtam azt a részt, amit javasoltál, de a problémát nem oldotta meg. Az ESC lenyomása után ismét a #13 került a változóba.
Steppel azért nem tudtam megnézni, mert az egész alprogramban van, és nem tudom, hogy ott hogyan lehet step-pelni.
A programot feltettem, de még nincs kész! Az említett rész a ''lehetmenu'' procedurában van.
Program: [link]
Hozzá a szöveg fájl: [link]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Hát én itt már semmit sem értek. Mielőtt beolvassa a jelet, kinulláztatom, utána while keypressed do readkey; jel:=readkey; if jel:=#0 then jel:=readkey;
Elindítom, előtte nem nyomok entert, bejön a szöveg, ESC, kidob, és a jelben #13 vanNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Egyébként lefuttattad a programot?
Mert amikor kiírja a fejezet szövegét, akkor ugye lehet lépegetni a lehetőségek közt. Oda kéne az ESC, hogy a menübe ki tuggyak lépni. De ha ott ESC-t nyomsz, akkor újra elindítja a lehetmenu procedúrát, amit szintén nem értek. Erre 5let?Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Viszont ezt a tömb-túlindexelést nem nagyon értem. Ha jól emléxem akkor összesen két tömböt használok, amikbe 5-5 adat fér. A ciklus, ami ezeket feltölti az max 5-ig megy, ugyanis 0,6,7 esetén már más részt futtat a progi.
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Néztem a progit, de semmi más hibajelentés nem jött.
Az esc-re itt vár a progi:
jel:=#0;
while keypressed do readkey;
jel:=readkey;
if jel=#0 then jel:=readkey;
if jel=#80 then o:=o+1;{fel}
if jel=#72 then o:=o-1;{le}
if jel=#27 then exit; {esc}
Sajnos nem tudom, hogy itt hol olvas be szöveget a fájlból.
Ha megoldaható vegyél fel MSN-re, lenne még pár kérdésem, meg problémám. De télleg csak ha nem zaklatlak ezzel a szarral. Előre isNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
A problémás rész az volt bizony.
Nagy segítség volt, hogy észrevetted a két helyen is előforduló exitet, azt jó eséllyel suliban is beleírtam, és elfeledtem.
case jel of
#80: begin
o:=o+1; {fel}
textbackground(white); gotoxy(2,y+oe); write(lehet[oe]); {elozo atfestese}
textbackground(blue); gotoxy(2,y+o); write(lehet[o]); {uj atirasa}
end;
#72: begin
o:=o-1; {le}
textbackground(white); gotoxy(2,y+oe); write(lehet[oe]); {elozo atfestese}
textbackground(blue); gotoxy(2,y+o); write(lehet[o]); {uj atirasa}
end;
Ezzel az a baj, hogy ha az o értéke kiesik a 0-3 intervallumból, akkor is kirajzolja, és csak utána korrigálja az o értékét.
#13: case o of
1..5: fej:=lehetfej[o];
end;
Ez világmegváltás volt, thx érte
Lefutattam F7-ttel az egész szart, és arra jutottam, hogy mikor megnyomom az ESC-pet, akkor a jel-be bekerül a #27, és ott is marad, amíg ki nem lép a procedúrából. Utána már rejtélyesen az #0 értéket veszi fel. Ezért az egész menübe kilépést megoldottam egy boolean változóval. Ami legalább műxik. Viszont onnan meg nem működik rendesen a menu procedura, de az már a holnap munkája lesz.
ui.: Sokat segítettél, köszi. És én is Attila vagyok
mod: frissítettem a változatot, amit nemrég linkeltem.
[Szerkesztve]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Na megvan a hiba Gyuri 5lete beigazolódott. Viszont annyira banális, hogy le sem merem írni
Na jó mégis: A jel nevű változóm deklarálva volt a főprogramban. Meg az alprogramban is Inentől nem részletezem tovább...
Viszont mindenkinek köszönöm a kitartó hiba-lehetőség szórásokat.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Na már megint én vagyok
A programomban rengeteg helyen kéne dobókockával dobni, és ezt úgy oldottam meg, hogy random(6)+1. Viszont gondoltam kéne írni egy function-t, vagy valami hasonlót, hogy ne kelljen beírnom mindenhova azt hogy random(6)+1, csak azt hogy pl. kocka. Problémám az, hogy functionról semmit sem tudok Szóval ha valaki elmondja, hogy hogyan működik, azt megköszönném.
[Szerkesztve]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Mindkettőtöknek köszi a helpet, sikerült megértenem
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Nagyon gyors help kéne: Fájlból olvasok be, változó mennyiségű adatot. Úgy tudom, hogy van valamilyen parancs, ami azt figyeli, hogy mikor van vége a fájlnak. Na ez a parancs(?) kéne.
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Up bizony!
Na úgy néz ki, hogy elkészült a programom első bétája, amiben már minden műxik, remélhetően jól. Ha lesz még kedvem valaha, akkor biztos lesz még bővítve: pl varázslás, tárgyak...
Szóval ha esetleg valaki kipróbálná, esetleg véleményezné, akkor küldöm. Csak még várom haverom, hogy befejezze a könyv gépelését...Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Itt van minden fájl, de a szöveg még nem teljes. Amint megvan, azt is frissítem.
[link]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Az a kérdésem, hogyha a programomban crt unitot használok, akkor megoldható-e, hogy közben a képernyő másik részén graph unit van használtban?
Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
-
alitak
senior tag
Én már végeztem a programommal, bár szerintem a nyáron megpróbálom majd átírni graphra, és akkor képek is lehetnek majd benne.
Viszont a játékhoz tartózó text.txt-t is át kéne nézni, biztos vannak benne hibák, csak nekem nincs rá erőm. Szóval ha esetleg akar valaki segíteni ebben az ízig-vérig pascalos problémában, akkor jelentkezzenNec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Át kéne olvasni, helyesírást kijavítani. Az is előfordulhat, hogy hiányzik 1-2 fejezet, át kéne nézni, hogy különleges eseményeknél helyesen vannak beírva az adatok. Kb. ennyit.
Frissítettem a legfrisebb verzióra: [link]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
válasz Wizardmon #1447 üzenetére
Na nézegettem a problémát, és kitúrtam a polcomról egy öröknaptárt. Megírtam hozzá a programot:
program oroknaptar;
uses newdelay,crt;
var datum:record
ev,honap,nap:integer;
end;
x,kodszam:integer;
nap:string;
begin
clrscr;
datum.ev:=0;datum.honap:=0;datum.nap:=0;x:=0;kodszam:=0;
writeln('Add meg a szuletesed datumat, a honapot szammal add meg!');
write('Ev: ');readln(datum.ev);
write('Honap: ');readln(datum.honap);
write('Nap: ');readln(datum.nap);
if (datum.honap=1) or (datum.honap=2) then datum.ev:=datum.ev-1;
x:=trunc(datum.ev/100);
case x of
15,19,23,27,31:kodszam:=kodszam+1;
16,20,24,28,32:kodszam:=kodszam+0;
17,21,25,29,33:kodszam:=kodszam+5;
18,22,26,30,34:kodszam:=kodszam+3;
end;
x:=datum.ev mod 100;
case x of
0,28,56,84,6,34,62,90,17,45,73,23,51,79:kodszam:=kodszam+0;
1,29,57,85,7,35,63,91,12,40,68,96,18,46,74:kodszam:=kodszam+1;
2,30,58,86,13,41,69,97,19,47,75,24,52,80:kodszam:=kodszam+2;
3,31,59,87,8,36,64,92,14,42,70,98,25,53,81:kodszam:=kodszam+3;
4,32,60,88,10,38,66,94,21,49,77,27,55,83:kodszam:=kodszam+5;
5,33,61,89,11,39,67,95,16,44,72,22,50,78:kodszam:=kodszam+6;
9,37,65,93,15,43,71,99,20,48,76,26,54,82:kodszam:=kodszam+4;
end;
case datum.honap of
10:kodszam:=kodszam+0;
1,5:kodszam:=kodszam+1;
8:kodszam:=kodszam+2;
3,11:kodszam:=kodszam+3;
6,2:kodszam:=kodszam+4;
9,12:kodszam:=kodszam+5;
4,7:kodszam:=kodszam+6;
end;
case datum.nap of
1,8,15,22,29:kodszam:=kodszam+1;
2,9,16,23,30:kodszam:=kodszam+2;
3,10,17,24,31:kodszam:=kodszam+3;
4,11,18,25:kodszam:=kodszam+4;
5,12,19,26:kodszam:=kodszam+5;
6,13,20,27:kodszam:=kodszam+6;
7,14,21,28:kodszam:=kodszam+0;
end;
while kodszam>7 do kodszam:=kodszam-7;
case kodszam of
1:nap:='vasarnap';
2:nap:='hetfo';
3:nap:='kedd';
4:nap:='szerda';
5:nap:='csutortok';
6:nap:='pentek';
0:nap:='szombat';
end;
writeln;
write(datum.ev,'. ',datum.honap,'. ',datum.nap,'-ika ',nap);
end.
A matematikai részét ne kérdezzétek, mert nem tudom, nem én találtam ki a naptárat, csak megírtam rá a programot. Viszont 1582. október 15-étől működik, egészen 3499 december 31-éig. És jól!Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
1) 6.9
Asszem csak így megy
2) Hát ha versenyzőnként van egy név+pont akkor így deklarálnám:
player:array[1..100] of record
_____________________nev:string;
_____________________pont:integer;
____________________end;
Aztán jön egy for ciklus, amiben beolvassa a player.nev változóba a nevet, majd a pontokat a player.pont változóba.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Hát ha nem ismered sem a tömböt (array), sem a record-ot, akkor úgy nehéz lesz.
Az a:array[1..100] of integer parancs 100 darab integer típusú változót hoz létre, amikre a[1], a[2], ..., a[100] címen hivatkozhatsz. A recordot szerintem ne erőltessük.
Próbáld így deklarálni:
nev:array[1..100] of string;
pont:array[1..100] of real;
És a nev[5] játékos pontja a pont[5] lesz. Remélem így érthető.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Itt komplett progit nem valószinű, hogy kapsz. Itt van segítség:
feltöltéshez lesz ciklus a ciklusban, két számlált menetű ciklus, 1-től 100-ig.
A random(101)+100 függvény 100-200 közötti számot ad vissza majd.
Menüt nem tudom milyen komolyat kell, tehát kurzorbillentyűkkel-lépegetős, egérrel, vagy elég csak a menüpont előtti számot beírni.
Mindenképpen lesz egy repeat...until, egy billentyűbekérés.
1: a legkisebb elemre: ismét ciklus a ciklusban, berakod az [1,1] elemet egy változóba. megnézed az [1,2] elemet, ha ez kisebb, akkor berakja az előbbi változóba.
2: megintcsak ciklus a ciklusban, eredmény=eredmény+tömb[1,1]. Aztán eredmény=eredmény+tömb[1,2]... A végén kiírod az eredményt.
3: oszlop ugyanaz mint a sor.
4: létrehozol egy b tömbböt, ami 1-től lesz 100ig. Megnézed az kétdimenziós tömb első elemét. Ha pl 135, akkor növeli az értékét a b tömb 35-ik elemének. A végén kiíratod.
5:re pedig kilép a repeat-until ból.Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw
-
alitak
senior tag
Időközben megírtam a programot, de csak azért, mert soha nem jön rosszul a gyakorlás, pláne a holnapi infó miatt. Sokat nem vacakoltam a progival, de meg. A kiírtaáson kéne dolgozni, hogy két oszlopba írja, nekem nincs már rá hangulatom.
program asdf;
uses newdelay,crt;
var tomb:array[1..100,1..100] of integer;
b:array[1..100] of integer;
i,j,x,eredmeny,val:integer;
procedure menu;
begin
clrscr;
writeln('1: legkisebb elem');
writeln('2: sorok osszege');
writeln('3: oszlopok osszege');
writeln('4: elemek szama');
writeln('5: kilepes');
write('Valassz:');read(val);
end;
procedure kis;
begin
x:=tomb[1,1];
for i:=1 to 100 do
for j:=1 to 100 do if tomb[i,j]<x then x:=tomb[i,j];
clrscr;
write('A tomb legkisebb eleme: ',x);
readln;readln;
end;
procedure sor;
begin
clrscr;
for i:=1 to 100 do begin
eredmeny:=0;
for j:=1 to 100 do begin
eredmeny:=eredmeny+tomb[i,j];
end;
writeln(i,'. sor adatainak osszege ',eredmeny);
end;
readln;readln;
end;
procedure oszlop;
begin
clrscr;
for i:=1 to 100 do begin
eredmeny:=0;
for j:=1 to 100 do begin
eredmeny:=eredmeny+tomb[j,i];
end;
writeln(i,'. oszlop adatainak osszege ',eredmeny);
end;
readln;readln;
end;
procedure elemek;
begin
for i:=1 to 100 do
for j:=1 to 100 do
inc(b[tomb[i,j]-100]);
for i:=1 to 100 do writeln(i,' elemek szama ',b);
readln;readln;
end;
begin
clrscr;
for i:=1 to 100 do b:=0;
randomize;
for i:=1 to 100 do
for j:=1 to 100 do
tomb[i,j]:=random(101)+100;
repeat
menu;
case val of
1:kis;
2:sor;
3:oszlop;
4:elemek;
end;
until val=5
end.
mod: smile off
[Szerkesztve]Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw