Turbo Pascal

Oldal 1 / 6Következő →

Jelentkezz be a hozzászóláshoz.

Dj Faustus
#271
Elfogtam egy levelet:
"Üdv. Köszönöm az eddigi segítségedet, de szeretném a segítséged kérni megint. Biztos furcsának fogod gondolni a kérdésem, meg hülyeségnek, de érdekel a dolog. Hisz hátha mûködik mivel ilyen egyszerû lenne. A lényeg, hogy ezeknél a rulett számítógépes játékoknál bizonyítottan, a számok nem véletlenül követik egymást. Meghatározott szisztémát követ az új szám, ami az elõtte lévõ 1.-2- számból kerül ki más alakban vagy valamilyen matematikai azonosságnak, mûveletnek, kifejezésnek, stb köszönhetõen. Nem igazán értek még sem a rulett programokhoz sem a programozáshoz, mind2-vel kapcsolatban kezdõ vagyok. Arra gondoltam, hogy ha a rulett program álrandom számokat generál egy bizonyos kezdõértékbõl, ami az elõtte lévõ 1.-2. szám, akkor ha egy másik programban ezt a számot megadom kezdõ értékként, és lefuttatok vele pár variációt(mondjuk 15öt) akkor a között a 15 random szám között amiknek ugyanaz volt a kezdõértékük ott kellene lennie nagy valószínûséggel annak a számnak amit majd a rulett program is "kitalálna", megjelenítene új számként. Szerinted ez mennyire butaság? Vagy más algoritmust használ mind2 program így lehetetlen lenne ezt meghatározni? Válaszod elõre is köszönöm, remélem nem gondolsz hülyének 😄"
Nos, ha profi a program, akkor egyedi véletlenszám-generálást végez. Persze ennek mûködését (már ha a véletlenszám-generálást a gépen végzi) némi visszafejtegetéssel (lásd: #267-es hozzászólásom utolsó bekezdése) ki lehetne silabizálni.

Ha ez valami online szolgáltatás, az is elképzelhetõ, hogy külsõ hardvert (lásd #270-es hozzászólásom) használnak, vagy valós eseményt (a valódi rulett-tárcsa alatt vannak érzékelõk) közvetítenek. Persze ezekben is lehet némi szabályszerûség, de matematikus legyen a talpán, aki ezt "visszafejti".

Dj Faustus
#270
Itt láthattok az elõzõ hozzászólásomban említett hardverre egy példát.

Dj Faustus
#269
Vegyük az alábbi egyszerû programkódot:
program random;


BEGIN
writeln (randseed);
randomize();
writeln (randseed);
END.


Ennek a kimenete pár másodpercenkénti futtatás után (Free Pascal 2.4.0-ban fordítottam le, Linux alatt):
# ./random
0
1323981023
# ./random
0
1323981024
# ./random
0
1323981025
# ./random
0
1323981026

Tehát a randomize az idõbõl generálja le a randseed értékét, a random ezt az értéket használja fel a véletlenszám generálásánál.

Ha neked ez nem tetszik, akkor neked kell megadnod a randseed értékét, amit generálhatsz bármibõl. Akár az idõbõl, egyedi algoritmus alapján; vagy mondjuk egy üres csatornára állított rádió kimenetét (ami fehérzajt fog szolgáltatni) kötöd rá analóg-digitál konverteren keresztül a párhuzamos portra és annak értékét olvasod le, stb...

#268
A randseed-el mûködik, köszönöm. Viszont azt, hogyan tudnám beállítani, hogy ugyanazzal a kezdõértékkel ne csak azt az 1 számot dobja ki folyamatos frissítésnél, hanem mondjuk 10szeres kiíratásnál másik számot is kiadjon? Az idõ-vel kell valamit kezdeni vagy a válasz máshol keresendõ?
Dj Faustus
#267
RYO21: Nem a Random fügvénnyel van Razputyn-nak baja, hanem a véletlengenerátor inicializálásával. Pascalban ezt a Randomize végzi, C-ben/C++-ban az srand.

Razputyn: ha jól emlékszem, neked a RandSeed nevû változóra lesz szükséged.
A Randomize az aktuális idõbõl hozza létre a kezdõértéket - Itt láthatod visszafejtve, Assemblyben.

#266
Read(x);
y:=(Random(100)+x);
Writeln(y);

Lehet, hogy zárójel nem kell. Rég pascaloztam már, így nem nagyon emlékszem rá. Lehet, hogy nem is mûködik az, amit írtam.

#265
Sziasztok, szeretnék egy olyan programot készíteni a Turbo Pascallal, aminél megadok egy kezdõértéket, és az alapján ír ki random számokat. Olvastam, hogy a gép csak álvéletlen számokat tud generálni, a randomize parancs ad meg csak egy véletlen kezdõértéket ami alapján számolja a random parancs valamilyen algoritmus alapján a többi számot. Na most meglehetne azt oldani, hogy amit a randomize ad meg véletlen kezdõértéket, azt én adjam meg? Vagyis mondjuk randomnál beállítom, hogy 0-99-ig adhat random számot. A randomize generál egy számot ami alapján a random kiszámolja a "véletlen számot" na de hogy oldhatnám meg, hogy a randomize helyett én adjam meg azt a kezdõértéket. Remélem érthetõen írtam, és tudtok segíteni. A lényeg, hogy, nekem 0 és 99 között kell, amihez a Random(100)-kell. Ezt értem, nekem az kellene, hogy a randomize helyett mást használjak. Mert ha nem használok randomizet akkor mindig ugyanazokat adja ki. Na de én úgy szeretném, hogy én adok meg a randomize helyett egy kezdõértéket ami alapján számolja ki a random számokat 0 és 99 között. Köszi elõre is.
Looooser
#264
adott szöveget kell kiírni?
write('-aposztrófok közé jön a szöveg a sima write az elõzõ után azonos sorba fojtatólagosan írja ki a szöveget-');
vagy
writeln('-ez is az elõzõ kiírás után írja a szöveget, csak új sorba kedi el-');

ha egy változót is megszeretnél jeleníteni akkor
a:=1
write('szöveg ',a,' szöveg');

program futtatásnál meg így néz ki:
szöveg 1 szöveg

      pumpált πna... a legjobb...     lvl 500-as ork paladin, +80 Ininity Rod 90 spell power 120000/sec meele hit... jah ez nem az a játék

#263
Üdv! Hogyan tudnám megoldani, hogy egy karakter vagy szám helyett több soros szöveget írjon ki a program?

#262
Üdv!

segítséget szeretnék kérni, egy sorsoló programot szeretnék írni pascalban. Tehát tegyük fel beírok 4 szöveget/számot és akkor 2esével véletlenszerûen párosítja õket (csapatsorsoláshoz kéne).

Pl. 1-2 , 4-6

bardocz
#261
valami:=kiir(szamol(a, r1), r2), ahol kiir egy procedura szamol meg egy függvény?

Hogy tudnám ezt mûködõképesre megírni?
bardocz
#260
Mi ilyennel nem foglalkoztunk, rögtön szövegben lévõ mással meg magánhangzók számolásával kezdtük illetve másodfokú megoldóképlettel😄 Meg elõtte átnéztünk különbözõ függvényeket(ord, succ, pred, anyámkínja).
kispeki
#259
nekem az elsõ a Write("Hello Világ!"); volt 😄 aztán jöttek a további alapok, mint például számológép, stb és végül a nehezebb feladatok 😊

SoF II: C4z0rla

bardocz
#258
Elsõ programozásbeli sikerem :o)
#257
Mûködik thx! Kicsit átírtam 97+25-re hogy kis betûk legyenek.

bardocz
#256
65-tõl 90-ig vannak a nagybetûk kódjai. chr(random(25)+65) így elvileg csak betûket adna.
#255
Sziasztok engem egy feladat megoldása érdekelne: 1, Kétszínezés irányítatlan gráfban. Ezt onnan ismered fel, hogy a feladatod neve ketszin.x ahol x egy 1 és 20 közötti egész szám. Itt a megoldás egyrészt vagy a "kétszínezhetõ" vagy a "nem kétszínezhetõ" válaszból áll, másrészt az elsõ esetben az 1-es csúccsal azonos színû csúcsok közül a 20-nál kisebb sorszámúak felsorolása, a második esetben pedig egy legfeljebb 15 hosszú páratlan kör csúcsainak kiíratása ciklikus sorrendben.
Ehhez van egy bemeneti file. Ami egy gráf éllistával megadva.
Valaki tud segíteni?
Elõre is köszönettel!
#254
Üdv!

Még nagyon kezdõ vagyok, és lenne pár kérdésem.

Lehet valahogy random betû generátort csinálni? Szóval hogy meghatározott karakterekbõl álljon A-tól Z-ig?
Randomszámgenerátort tudok csinálni, sõt random karaktert is (chr(random(255));. Csak így mindenféle karakterek szerepelnek, nekem pedig csak az abc betûi kellenének.

Illetve a másik kérdésem, hogy, hogy lehet azokat a spéci karaktereket legépelni (kiíratni)? Smiley és stb-re gondolok.

bardocz
#253
Lazarus totál meghalt... A tiéddel semmit sem csinál, az enyém viszont totál eltûnt. Kezd a tököm telelenni, nem elég, hogy én is béna vagyok, de erre még a program is rátesz egy lapáttal.
#252
Jaj, az SG motor benyeli a tömbindexelést... na mindegy, itt a kód:
katt

#251
Nincs most idõm ezeket átnézni, bocs... itt a két függvény, amit én írtam régen. 10-bõl tetszõlegesbe, és tetszõlegesbõl 10-esbe (de 10-nél nagyobb sz.r-re nem mûködik):

function ten_to_base(n:longint; base:byte):longint;
var q,r:integer;
num,szorzo:longint;
begin
num:=0;
szorzo:=1;
while n>0 do
begin
r:=n mod base;
n:=n div base;
num:=szorzo*r+num;
szorzo:=szorzo*10;
end;
ten_to_base:=num;
end;


function base_to_ten(n:longint; base:byte):longint;
var s:string;
i,akt:byte;
num:longint;
code:integer;teszt:longint;
begin
num:=0;
str(n,s);
akt:=0;
for i:=length(s) downto 1 do
begin
val(s,akt,code);
num:=num+akt*pow(base,length(s)-i);
end;
base_to_ten:=num;
end;

bardocz
#250
const aa : string<16> = '0123456789ABCDEF';

function ten2x( x,i : integer) : string;
var j : integer;
begin
Result := '0';
if x=0 then exit;
j := x mod i;
if (x div i) > 0 then Result := ten2x((x div i), i) + aa
else Result := aa;
end;

function x2ten( const x : string ; i : integer) : integer;
var j : integer;
begin
Result := 0;
if x='' then exit;
j := pos(uppercase(copy(x,length(x),1)),aa);
if j<=0 then exit;
if length(x)>1 then result := j-1 + i*x2ten(copy(x,1,length(x)-1),i)
else result := j-1;

end;


Itt van még ez, na ezt még mûködésre sem tudom bírni. Totál hülye vagy én ehhez.
bardocz
#249
program konverter;
uses crt;
var be : real;
bin : string;

Function forgat(s : string):string;
var i : longint;
tar: string;
begin
tar:='';
if length(s)>1 then
begin
for i:=0 to length(s)-1 do
begin
tar:=tar+copy(s,length(s)-i,1);
end;
end else tar:=s;
forgat:=tar;
end;

function hatvanyoz(alap : longint; kitevo : longint):longint;
var i: longint;
szam : longint;
begin
if kitevo=0 then hatvanyoz:=1;
if kitevo=1 then hatvanyoz:=alap;
if kitevo>1 then
begin
szam:=alap;
for i:=1 to kitevo-1 do
begin
szam:=szam*alap;
end;
hatvanyoz:=szam;
end;
end;

function dec2bin(szam:real):string;
var bintar : string;
egesz : real;
tizedes : real;
begin
bintar:='';
szam:=int(szam);
repeat
egesz:=int(szam/2);
tizedes:=frac(szam/2);
if tizedes>0 then
begin
bintar:=bintar+'1';
end else bintar:=bintar+'0';
szam:=egesz;
until egesz<1;
//bintar:=bintar+'1';
dec2bin:=forgat(bintar);
end;

function bin2dec(szam:string):longint;
var i : longint;
szamolt : longint;
begin
szamolt:=0;
for i:=0 to length(szam)-1 do
begin
if copy(szam, length(szam)-i, 1)='1' then
szamolt:=szamolt+hatvanyoz(2,i);
end;
bin2dec:=szamolt;
end;

begin
clrscr;
writeln('Kérek egy egész számot : ');
readln(be);
writeln(dec2bin(be));
writeln('Kérek egy bináris számot : ');
readln(bin);
writeln(bin2dec(bin));
end.


Magamtól nem megy, de ezt találtam, és mûködõképesre átírtam. Így lazarus alatt mûködik. Mit kell átalakítani ahhoz, hogy delphiben is mûködjön?
bardocz
#248
Azt hiszem ezt értem, holnap nekiállok majd. Elõször megpróbálom a fõprogamban, azt meg megcsinálni függvény ként.
#247
Ami itt van, az tetszõlegesbõl tetszõlegesbe mûködik, viszont 10-esnél magasabbra nincs felkészítve (legalábbis ami programot én írtam). Ha csak 10-esbõl kettesbe kell, az tökegyszerû (megint csak másolgatok, nem én írtam):

"2.) 10esbol pedig tetszolegesbe ugy kell, hogy ciklikusan osztogatod a forrasszamot a szamrendszer alapjaul szolgalo szammal, es a maradek adja a kiirando karaktert.Minden egyes lepes utan a forrasszamot fel kell cserelni
a forrasszam (1/szamrendszer alapja szam) szeresevel!"

bardocz
#246
Tehát minden számjegy értékét egy ord függvénnyel kell megnéznem, ez szorzódik a helyiértékével(pl 16^3), és utána ezt leosztani mondjuk 2-vel? Azt viszont nem tudom, hogy hogyan tudok számjegyrõl számjegyre menni.
#245
Ez most copy-paste lesz:

"Az összes ilyen számrendszer átváltás logikája:

A bemenõ "számot" karaktersorozatnak veszed.

Felveszed a számrendszer alapszámát (pl. nálad 9) (Pl. most "Alap"-ként jelölöm)
Felveszed az 1-et. (pl. most "aktuális"-ként jelölöm)
Felveszed a 0-t ("eredmény")


Veszed a legkisebb helyiértéken lévõ számot (legjobboldalibb számjegyet) ("szám")

Cikluskezdet:
A "Szám"-ot valódi számmá alakítod. (A 48-as kód, az ugyebár 0, de pl. egy 16-os számrendszernél a 65-ös kód ugyebár "A", tehát 10-es.)
A kapott számot megszorzod az "Aktuális" értékéve, az eredményt hozzáadod az "eredmény"-hez
Az "aktuális"-t szorzod az "alap"-al.
Veszed a jobbról következõ karakteres "számjegyet" -> Ez lesz az új "Szám"
Visszamész a "cikluskezdet"-hez
Ezt ismételgeted, amíg az összes számjegyen végig nem mentél.


Ezzel a bekért számod számolható formában van.


Most jön a másik számrendszerre váltás

Van a számod ("eredmény")
Felveszed a számrendszer alapszámát ("alap") ez most nálad a 15.


Cikluskezdet:
A számot ("eredmény") elosztod az "alap"-al. A maradékot átalakítod (0 érték -> 48-as kód, 10->A), és megjegyzed (tárolod) (jobbról ez lesz az 1., majd a következõ a 2. ... jegy).
Az osztás eredménye lesz az "eredmény"
Ha az eredmény nem nulla, akkor vossza a ciklus cikluskezdethoz."

Ha nem megy, segítek.

bardocz
#244
Tízesbõl kettesbe, meg 16osba elsõ körben.
Papíron annyira egyszerû, meg fejben, de gõzöm sincs, hogy hogyan tudnám ezt leprogramozni.
#243
Holnap tudok ebben segíteni, ha ismét a saját gépemnél leszek. Megmutatom hogy kell csinálni, ha nagyon nem megy, megkapod a teljes progit 😄 Csak írj még a topikba reggelig, hogy ne felejtsem el.

kispeki
#242
melyik számrendszerek között?

SoF II: C4z0rla

bardocz
#241
Sziasztok, segítség kéne a házimhoz.
Pascalban kéne írnom egy programot, amivel számrendszerek között tudok átváltani, de gõzöm sincs, hogy hogyan csináljam meg. Neten sem nagyon találtam semmit, vagy amit találtam, azt nem tudom használni.
#240
Mutatsz egy kódot?
#239
Tudom, hogy ez nem Free Pascal fórum, de hátha tudtok seghíteni, mert olyan sehol nem találtam. Eredeti alapterv ilyen õsrégi ufó játékos korszakból jött, jobbról jönnek a ganék és ha veled egy oszlopba érnek game over némi nehezítés bele hogy ha egy sorban vagy velük és lenyomod a space-t akkor eltûnik jobb oldaról az "ufó"és még némi nehezítés bele (legalábbis a programíró részére) hogy véletlenszerûen dobálja jobbra az ufókatamik jelen esetben barna, sárga és egyéb színû karakterek lettek volna csak egy gondom van vele nem tudom megoldani hogy mindegyik karakter egyszerre mozogjon jobbról. Valaki tudna segíteni?
#238
...mármint úgy értem: mindent megvalósítottak, amit a Turbo Pascal tud, sõt többet, és nagyon jó dokumentáció van hozzá
#237
A FreePascal is jo egyebkent, mert most mar mindent implementaltak, amit a Pascal.
Sajnos bug-os a fejlesztokornyezet, neha nem forditja le a programot, akkor ujra kell inditani.
kispeki
#236
ment privi 😊

SoF II: C4z0rla

#235
Turbo Pascal 7. Keresd meg neten, ha nem találod, elküldöm. Felejtsd el a könyveket, teljesen feleslegesek, keress tutorialokat neten. A legfontosabb hogy gyakorolj, és tanulj meg algoritmikusan gondolkodni. Nyugodtan kérdezz itt amennyit akarsz, én mindig válaszolok, nagyon sokat programoztam pascalban.

kispeki
#234
Köszönöm, a prog-hu-s cikkek jók lesznek, plusz azóta én is keresgettem, és nagy nehezen találtam egy érthetõ e-könyvet... 😊 A fejlesztõi környezetet nem tudom még, melyiket használjam, bár a freepascal-org-ra gondoltam, "Free Pascal Compiler" néven. Még azt kérdezném, hogy ez jó-e, vagy sem, és ha nem, akkor melyik lenne a legmegfelelõbb WinXP-n 😊

SoF II: C4z0rla

Dj Faustus
#233
Ajánlom figyelmedbe az sg.hu könyvesboltját.
Ott elérhetõ - többek között - egy kétkötetes mû - nekem ilyesmibõl tanítottak anno (mondjuk addigra nagy részét már autodidakta módon elsajátítottam):
Angster Erzsébet - Programozás tankönyv I.
Angster Erzsébet - Programozás tankönyv II.

Másrészt vannak cikksorozatok például a prog.hu oldalon, vagy a sajnos már megszûnt codexonline.
Ott van a pascal.lap.hu.
Ott a Google

kispeki
#232
Sziasztok! Nem ismerem még se a Pascal-t, se a Turbo Pascal-t, most akarok elkezdeni programozni, és sokan ajánlották a Pascal-t mint kezdõ programozási nyelvet. (Késõbbiekben C és C++-al szeretnék foglalkozni) Azonban sehol nem találok a neten e-könyv formájában letölthetõ anyagot a Pascal nyelvrõl. Ebben szeretném segítségeteket kérni, egy könyvet, vagy forrást szeretnék kérni, amibõl a lehetõ legkönnyebben meg lehet tanulni a Pascal nyelvet. Elõre is köszönöm :-)

SoF II: C4z0rla

#231
Nemtudjátok hogy lehet a Turbo Pascal minden funkcióját használni, fõleg a grafikus részt, 64 bites windows 7-esen, próbáltam a dosbox-ot de nem müködött.

Looooser
#230
jah igen a program itt egy 30 rekordból álló tömböt olvas be, a rekordok tartalmazzák az autók gyártási évét, összes futott km, és rendszámukat

      pumpált &#960;na... a legjobb...     lvl 500-as ork paladin, +80 Ininity Rod 90 spell power 120000/sec meele hit... jah ez nem az a játék

Looooser
#229
Programok felépítése kiegészitések stb 😉

A turbo pacalban egyes karakterek fontos jelentéssel rendelkeznek
ezek:

; -sorokat zárunk le, fontos hogy a legtöbb sort lezárjuk, pl paraméterek és ciklusokat
+,-,*,/ -ezek a mûveleti jelek az általános matematika elve alapján mûködtetik a programokat
<,>,= -a válozók közti össze függését lehet meghatározni a programban a relációs jelekkel
{ } -ha valamiféle megjegyzést szeretnénk a programba fûzni, akkor kapcsos zárójelbe eszük, így azzal a program nem foglalkozik
. -fontos jel a program végét jelzi
: -változóknál alkalmazzuk meghtározásra, és a megjelenítésnél is lehet használni pl:
write(változó:3:2) <-- ez azt jelenti hogy a tizedes vesszõ elött 3 számot majd a vesszõ után 2 számot jelenít meg
:= -változók érték adásához hazsnáljuk
( ) -kiíráshoz elkülönítéshez használjuk


Fontosab szavak a pacalban

begin, end -a program fõbb ciklusait, részeit beginnel kezdjük, majd az end szóval zárjuk, fontos hogy a end után ; álljon
var -a variable azaz változó szó rövidítése, e után a szó után tudjuk megadni a változókat, és azok típusát
uses crt -monitor használatot engedélyez
clrscr -képernyõ törlés
if -pontosan as "ha"-t jelenti cikluzst indítunk belõle
else -máskülönben, az if fügyvény elágazását lehet irányítani
for....to....do -ez egy számolást indít növekvõ sorrendben
for....downto....do -az elõzõ ellentéte, tehát csökkenõ számolást hjt végre
write -kiiratás a sorban ha a változót akaruk kiírni:
pl: write(változó neve);
ha szüveget akarunk, akkor azt ' közé kell írni
pl: write('ezt a szöveget jelenítse meg');
; -vel zárni kell
writeln -ugyan azt csinálja mint az elõzõ, csak új sorba írja ki a kiírandó szöveget
readln -gmbnyomásig megjelenítve tartja az adtokat
readkey - két funciója van ezek:
1 gombnyomásig vár
2 (és ez a fontosabb!!!) kézi adat bevitel engedélyez, használata {legjobb emlékeim szerint ha nem jól tudom szólj}
readln(változó neve);
randomize -random adatokat ad meg, a program elején kell beírni, ;-vel zárni
random -órajel szerinti ciklikusan változó adatokat ad meg a ciklusokban
repeat....until -ismétel.... addig, ez a ciklust ismétli addig vagy teljesül, a feltétel, vagy nem 😄
inc - növeli a változó értékét, használata: inc(változó neve), asszem az ellentéte a dec, de nem fix :S
procedure -alprogramot lehet képezni vele, könnyebb elkülönítés érdekében jó ha használja asz ember jobban átlátható lesz


változótípusok

elõször az egyszrûek:
számok:
byte - 0 <-> 255
integer - -32768 <-> +32768
longint - 4 byte-nyi hosszúságon képes számot megjeleníteni {az annyit tesz hogy 4*8=32 karakter tehát qrva sok }
word - 0 <-> 65535
real - valós számok
szöveg:
char
string
boolean
text

És az összetettek
tömb
egy dimenziós
array<1..Elemszám> of adattípus
több dimenziós
array<1..sorokszama;1..oszlopokszáma> of adat típus
rekordok megadása
type azonosító=record {itt nincs pontos vesszõ}
mezöneve1:adattípus;
mezoneve2:adattípus; stb


Külsõ adatok behozatala
elõször is kell egy text típusú változó {tváltozó}
és egy szám változó {szváltozó}
utána
assign(tváltozó,'fájl'); - it az a lényeg hogy az f, változóhoz hozzá rendeli a filet, ha a program ugyan abban a mappában van mint a file akkor nincs baj, has másikbasn van, akkor meg kell addni az elérési utat
reset(tváltozó); -ehhez nem took hhozzá fûzni kommenetet kell és kész
readln(tváltozó,szváltozó); -ehez sem took mit hozzá fûzni kell és kész
close(tváltozó) -beolvasás vége


nah és akkor egy kis példa program magyarázatokkal



program autokkkk; {program neve}
uses crt; {monitor engedélyezés}
type auto=record {a rekordok meghatározása}
gyev:word;
futkm:longint;
rendszam:string<8>;
end;
var z:byte; {változók és a tömb megadása}
kocsik:array<1..30> of auto;

procedure beolvas;
{ var i:byte; {ezzel a program részlettel
begin kézzel adunk meg adatokat,
clrscr; de ez nem kell nekünk most
writeln('ird be a gyev , futkm, rendszamot! '); ez csak gyakorlás volt}
for i:=1 to 10 do begin
readln(kocsik.gyev);
readln(kocsik.futkm);
readln(kocsik.rendszam);

end;} {eddig}
var i,N:byte;
f:text;
begin
clrscr;
Writeln('beolvasás fájlból'); {itt kezdõdik a fájlból történõ
assign(f,'AUTO.TXT'); beolvasás}
reset(f);
readln(f,N);
for i:=1 to N do begin
readln(f,kocsik.gyev,kocsik.futkm,kocsik.rendszam); {ez adja meg az adatokat}
delete(kocsik.rendszam,1,1); {mivel a txtbõl hoztuk az adatokat a rendszámból törölni kellett a szóközt}
if i=15 then readln;
writeln(kocsik.gyev:5,kocsik.futkm:8,kocsik.rendszam:8);
end;



close(f);
write(N);
readln;
end;
{------------------------------------}
procedure feladatkiir(szam:byte); {ez egy mellékes kis formalitás a
begin megjelenítéshez}
writeln('---- ',szam,'. feladat ----');
end;
{------------------------------------}
procedure legtobbkm;
var i,maxos:byte;
begin
maxos:=1;
for i:=2 to 30 do
if kocsik.futkm>kocsik.futkm
then maxos:=i;



writeln('a leg több km-t futott autó adatai: ',kocsik.gyev,' ',kocsik.futkm,' ',kocsik.rendszam);
readln;
end;
{------------------------------------}
procedure csokkeno;
var i,j:byte;
seged:auto;
begin
for i:=1 to 29 do begin
for j:=i+1 to 30 do begin
if kocsik.futkm<kocsik.futkm
then begin
seged:=kocsik;
Kocsik:=kocsik;
kocsik:=seged;
end;
end;
end;
for i:=1 to 30 do begin

writeln(kocsik.gyev:5,kocsik.futkm:8,kocsik.rendszam:8);
if i mod 10=0 then
readln;
end;
readln;
end;
{------------------------------------}
procedure kettoszaz;
var i:byte;
begin
i:=0;
repeat
inc(i);
until kocsik.futkm>200000;
writeln(i,'.kocsi a megfejtés, adatai: ',kocsik.gyev:5,kocsik.futkm:8,kocsik.rendszam:8);

end;
{------------------------------------}
procedure atlag;
var i:byte;
kor:integer;

begin
kor:=0;
for i:=1 to 30 do
kor:=kor+(2010-kocsik.gyev);
writeln(kor/30:8:3,' az autok atlag eletkora');

end;
{------------------------------------}
procedure osszeg60;
var i:byte;
km:longint;
begin
km:=0;
for i:=1 to 30 do
if (kocsik.gyev>1959) and (kocsik.gyev<1970)
then
km:=km+kocsik.futkm;
writeln(km,' a 60-as ‚vekben gy rtottak ”sszes futottja');

end;
{------------------------------------}
procedure kisebb80;
var i,j:byte;
begin
j:=0;
for i:=1 to 30 do begin
if kocsik.futkm<80000 then
inc(j);
end;
writeln(j,' kocsi futott kevesebbet mint 80000km!!! XD 😊 😄 XD');

end;
{------------------------------------}
{A-terv}
procedure otvenelott;
var i,j:byte;
begin
j:=0;
for i:=1 to 30 do begin
if (kocsik.futkm=50000) and (kocsik.gyev<1980) then
inc(j);
end;
if j>=1 then writeln('van olyan tütü')
else writeln('nincs olyan tütü');


end;
{B-terv}
procedure vane;
var i,db:byte;
tul:boolean;
begin
tul:=false;
i:=0;
repeat
inc(i);
if (kocsik.futkm=50000) and (kocsik.gyev<1980) then tul:=true;
until (i<31) or (tul);
if i=30 then writeln('van')
else writeln('nincs');


end;
{------------------------------------}
{fõprogram kezdõdik}
begin
clrscr;
beolvas;
feladatkiir(1);
legtobbkm;
feladatkiir(2);
csokkeno;
feladatkiir(3);
beolvas;
kettoszaz;
feladatkiir(4);
atlag;
feladatkiir(5);
osszeg60;
feladatkiir(6);
kisebb80;
feladatkiir(7);
writeln('A-Terv');
otvenelott;
writeln('B-Terv');
vane;

readln;
end.

      pumpált &#960;na... a legjobb...     lvl 500-as ork paladin, +80 Ininity Rod 90 spell power 120000/sec meele hit... jah ez nem az a játék

#228
Mivel most sem írtál semmi konkrétan, ezért feladom, így nem lehet segíteni. Mondom, a példalinkben ott van egy komplett program, amiben talán két sort kell kicserélni...

#227
Azokat vágom,hogy Ciklus meg Változó!
Csak ezt tanultuk utoljára ezt a fáljból való kiiratást ez nem megy😞
#226
De mégis hol akadtál el? Nem írsz semmi konkrétat. Elolvastad amit linkeltem? Ott egy komplett példaprogram, gyakorlatilag csak a fájlnevet kell kicserélni benne........ mit nem értesz?

Egyáltalán mennyit értesz a pascalhoz, programozáshoz? Az alapok (ciklusok, változók) megvannak? Ha igen, ennek nem szabadna gondot okoznia. Nem akarok bunkó lenni, de ha ennyire nem megy akkor ne erõltesd az egészet.

#225
Már ott elakadok beolvasás!Ezt kellene beolvasni txt fileból és kiíratni!
Név Szept Okt Nov Dec
Albert 3000 2800 2300 4100
Arany 3000 2900 3400 2900
Arva 3000 3800 2800 1700
Azsok 3000 3100 3300 2900
#224
Ok!Köszi!Amit adtál jó !Thanks!
#223
A lényeg ugyanaz, ha programozást tanulsz, akkor azzal fogsz továbbmenni, szóval semmi értelme "csalni". Itt egy jó kis leírás (gugli elsõ találat), ebbõl csak meg tudod csinálni.

#222
Nem fakon vagyok ebbe a félévbe volt csak jó lenne ha nem ezen a szép Pascalon hasalnék el!!!
Oldal 1 / 6Következő →