Új hozzászólás Aktív témák
-
c4-eXp
aktív tag
Na látom, közben beelőztek.
-
c4-eXp
aktív tag
Hali!
Nos, van rekurzív megoldás is, de én inkább az egyszerűbbet fogom leírni (ciklussal).
program nfact;
uses crt;
var i, n, osszeg : integer;
begin
osszeg:=1;
writeln('Kerem a szamot: '); readln(n);
for i:=1 to n do
osszeg:=osszeg*i;
writeln(n,' faktorialisa ',osszeg);
readkey;
end.
Már rég pascaloztam, szóval nem garantálok semmit a kód működőképességével kapcsolatban. -
s1ny1
tag
-
almi
senior tag
Sziasztok!
Valaki meg tudna nekem írni egy olyan progit ami kiszámol n faktoriálist?N et én adom meg!
És 25! is elég lenne
Holnap kell dogába de az istennek sem jövök rá.Vagy legalább segítség.
Köszi. -
Kephamos
addikt
Hali!
Alapfogalmakat keresek, szerdán dogát írok, s a pascallal kapcsolatos jegyzetszerűséget keresek, amiben mindenféle fogalom benne van, egészen az algoritmus fogalától a csillagos égig. -
Koosh_ALi
csendes tag
koszi szepen!
Leszedtem, elegge erdekesen fut, sztem a forditojaval lehetnek nemi gondok, de azert tobbe kevesbe uzemel.
Koszi -
-
Koosh_ALi
csendes tag
hi all!
Az lenne a kérdésem, hogy pascalt tudok e vmien modon 64bites xp alatt futtatni valamien amulatorral, vagy esetleg van valamien masik pascal fejlesztoi kornyezet. Ha igen akkor lecci segitsetek ebben!
Köszi -
VladimirR
nagyúr
kodot nem irok, mert egyreszt ugy nem tanulsz, masreszt lusta vagyok eloturni a pascalt (ez a nyomosabb ok)
a lenyeg az, hogy elindulsz a kep bal felso sarkabol, a jobb also fele, es vegignezel minden pixel-t, a kovetkezokeppen:
-ha az adott pixel tavolsaga az x1,y1 ponttol kisebb, mint r1 (ahol x1,y1 az elso kor kozeppontja, r1 annak sugara)
-es ha az adott pixel tavolsaga a x2,y2 ponttol kisebb, mint r2 (ahol x2,y2 az elso kor kozeppontja, r2 annak sugara)
akkor:
-az adott pont-ot fessuk valamilyen szinure
-noveljuk a szamlalot
ez azt eredmenyezi, hogy azok a pontok, amik mindket korben benne vannak kapnak egy szint, illetve tudni fogod ezen pontok szamat
remelem tudtam segiteni -
Geli
senior tag
hello!
segitségre lenne szükségem! info tanár bevágta a durcit,fogta a kis kalapját,belevagta a papirjait és körbevitte,hogy mindenki huzzon egyet!én meg jól belenyúltam...
rajzolj két,egymást átfedő üres kört,majd a közös területet DEMO-szerüen fesd ki egy színnel!Számoltasd ki és írd ki,hány pixel kellett a kifestéshez!
nah,én itt tartok:
program elso_grafikus_program;
uses crt; graph;
var videokartya,grafikusmod:integer;
begin
videokartya:=Detect;
initgraphvideokartya,grafikusmod,'e:\program files\tp\bgi');
setcolor(10);
setbk(9);
circle(320,240,150);
circle(340,240,150);
readln;
end.a többi dologból nem tudok semmit,mert nem is tanultuk!most vettük azt hogy kell vonalat huzni....
vki tudna nekem segiteni?
-
gabor907
tag
ezer köszönet
-
gabor907
tag
hello
pascalt veszünk most és jó lenne vki segítsége:
olyan programot kell írni amiben a képernyő 20oszlop 10sor ában egy 10*10-es nyégzet pályán lépeget egy csillag na és ebben kérném segítségeteket!!!
nagyon-nagyon köszi ha vki tudja és biztos jó akkor lécci priviben küldje már el! -
Szenty
tag
Huh, elég nehéz volt megértenem, hogy mi is a feladat.
A feladat egyáltalán nem tűnik bonyolultnak, nem kell sokat gondolkozni.
Így adunk Pascal-ban értéket egy változónak:
v := 1200;
z := 'Kovács Béla';
w := 1200.0; {nem muszáj kiírni a .0-t}
Változók deklarációja:
var v,w : real; {racionális számok}
z : string;
Gyökvonásra példa:
writeln( sqrt(49) ); { az eredmény 7 lesz }
Ezek után keresd meg a string kezelő függvényeket, ott megtalálod, ami neked kell!
Egy kicsit Te is gondolkodj, tegyél az ügy érdekében!
[Szerkesztve] -
Gulka
csendes tag
Sziasztok.
Valaki meg tudná csinálni ezt a programot
Lécci segítsetek
Deklaráljon változókat az áalábbi adatok tárolására
1200 változó neve: EE
Kiss Erzsébet változó neve: KK
1200.00 Változó neveC
értékadással adjon mértékeket a változóknak!
Vonjon gyököt az 1200-at tart6almazó változóból!
Képezze az egész részét a CC-nek
Függvény segítségével állapítsa meg a KK-ban tárolt adat hosszát!
Másolja ki egy KKK nevű változóba a KK-ban tárolt névből a vezeték nevet!
Eljárás segítségével szúrja be a vezeték és a keresztnév közé az Edit nevet!
Sürgős lenne.Előre is köszi -
Szenty
tag
Hali mindenkinek! De rég jártam már erre...
-
b14
senior tag
válasz
Egyik(Ember) #877 üzenetére
2003 óta szerintem már meg tudta oldani
-
Egyik(Ember)
csendes tag
Lehet,hogy ez még 2003-ban volt, de szerintem így van
Program paros;
Uses crt;
Var szam:Integer
Begin
Write('Kérem a számot');
ReadLn(szam);
If szam mod 2=0 Then WriteLn('A szám páros')
Else WriteLn('A szam paratlan');
Repeat Until keypressed;
End.
Habár amikor az eredeti programot néztem...Hát nem a legprofibb! -
c4-eXp
aktív tag
válasz
Darth_Revan #875 üzenetére
Nincs mit. Természetesen a matrix_feltoltese helyére még be kell írni valami kódot, ami feltölti a mátrixot. Pl.:
randomize;
for i:=1 to n do
for j:=1 to m do
matrix[i,j]:=random(100);
Na ez így elvileg jó. -
nixor
csendes tag
Hej!
Valaki megmondaná nekem miért nem olvas be a Versenyzo tömbe semmit!
ELőre is kösz!
program verseny;
uses crt{,newdelay};
const MaxN=100; {resztvevok max szama}
MaxM=10; {versenyek maximalis szama}
type Nevek=Array[1..MaxN] of String[25];
Valtozo=Array[1..MaxN,1..MaxM] of String[2];
var Resztvev:Nevek;
Versenyzo:Valtozo;
N:Integer;
M:Integer;
procedure beolvasas(var Resztvev:Nevek;
Versenyzo:Valtozo;
N:Integer;
M:Integer);
var
i:Integer;
j:Integer;
k:Integer;
fnev:String;
fajl:text;
be:String;
benev:String;
begin
repeat
clrscr;
writeln ('A program megkeresi ‚s kiˇrja azoknak a versenyz‹knek a nev‚t akik CSAK egy versenyen vettek r‚szt!');
writeln;
writeln ('Adja meg az adatbevitel modjat!');
writeln ('0 fajlbol');
writeln ('1 kezzel');
readln (k);
until ((k=0) or (k=1));
if k=1 then
begin
for i:=1 to MaxN do
begin
writeln ('Adja meg a(z) ',i,'-dik versenyz‹ nev‚t!');
writeln ('(šss”n SPACE -t, ha v‚ge a beolvas snak!)');
writeln ('N‚v (Max. 20 karakter):');
readln (benev);
if benev=' ' then break;
Resztvev:=benev;
for j:=1 to MaxM do
begin
writeln('Adja meg a(z) ',j,'-dik verseny eredm‚ny‚t!');
writeln('(šss”n SPACE -t, ha befejezi a versenyz‹h”z tartoz˘ bevitelt! 00 -t ,ha nem vett r‚szt a versenyen!):');
writeln('Erdm‚ny (0-99):');
readln (be);
if be=' ' then break;
Versenyzo[i,j]:=be;
end{for2};
end{for1};
end{begin}
else
begin
clrscr;
writeln('Adja meg a fajl nevet:');
readln(fnev);
assign (fajl, fnev);
{$I-}
reset(fajl);
if ioresult<>0 then
begin
writeln(#7'Allomanyhiba');
halt;
end;{ioresult}
{$I+}
i:=0;
while not seekeof(fajl) do
begin
inc(i);
readln(Resztvev);
j:=0;
while not seekeoln(fajl) do
begin
inc(j);
read(fajl, Versenyzo[i,j]);
end;{while2}
readln(fajl);
end;{while1}
close(fajl);
end;{else}
end;{beolvas}[Szerkesztve]
-
berkine
csendes tag
if z<z[minindex] sorbol kimaradt az elso z utan [ i ] nem tudom, miert nem latszik..
-
berkine
csendes tag
hali!
itt az átlós program. Igaz, hogy csak a főátló, de az is jobb,. mint a semmi. Remélem.
ja igen ez a*a-s mátrix de a betük nem olyan fontosak
program matrixatlo;
uses crt;
var a,i,j,k,minindex:integer;
Type Mtomb=array[1..10,1..10] of integer;
var x :Mtomb;
z:array[1..10]of integer;
begin
clrscr;
writeln('mekkora matrix?'); readln(a);
For i:= 1 to a do
for j:=1 to a do
begin
writeln('k‚rem az ',i,'. sor',j,'. elemet!');
readln(x[i,j]);
end;
for i:=1 to a do
begin
for j:=1 to a do
write(x[i,j]:10);
writeln;
end;
for i:=1 to a do
for j:=1 to a do
if i=j then
begin
z:=x[i,j];
writeln(z);
end;
minindex:=i;
for i:= 1 to a do
begin
if z < z[minindex] then minindex:=i;
end;
writeln('az atlo legkisebb eleme:', z[minindex]);
repeat
until keypressed;
end.[Szerkesztve]
-
Turmoil
senior tag
uses math; //Asszem ebben van a min függvény
const
N : integer = 20;
var
matrix: array[1..N,1..N] of integer;
i, min1, min2, reslt: integer;
begin
min1:=matrix[1,1];
min2:=matrix[1,N];
for i:= 2 to N do
begin
min1:=min(min1,matrix[i,i]);
min2:=min(min2,matrix[i,N-i+1]);
end;
reslt:=min(min1,min2);
end;
Szóval az átlókban tálálható legkisebb szám pl. így jöhet ki.
Értéke a reslt változóban. Ha csak az egyik átlóé kell, akkor a min1 (\), vagy min2 (/) értéke kell.
De mint ismeretes, minden problémára legalább 10 féle megoldás létezik... -
mager
csendes tag
1, Papíron felvázolod a matematikai megoldás lényegét
2, Elindítod a szövegszerkesztőt
3, Megírod a programot
4, Lefuttatod
5, Ha jó, beadod, ha nem, akkor a 3, ponthoz vissza
viccen kívül, mire gondolsz? arra, hogy mi a szukcesszív aproximáció? Szerintem az benne van a jegyzetedben. -
Lali87
csendes tag
Sziasztok!
Egy proginak kellene sűrgősen a megoldása! Probáltuk már megcsinálni,de nem akar működni, és nagyon sürgős lenne...itt a feladat:
Adott egy N*N -es mátrix határozuk meg az átlók legkisebb elemét!
Nagyon fontos lenne, ezért aki tud segíteni az segítsen.. -
metaldog
senior tag
Na meg még annyi hogy flash oktatásából írom a diploma munkám és nincs valakinek 50 oldalnyi anyaga hozzá? Vagy valami ilyesmi?
-
c4-eXp
aktív tag
Ja, szerintem is jók a Computerbooks könyvek, elég érthetőek. Nekem ebből a pascalosból még egy ősrégi kiadás van meg, jó sokat olvasgattam.
Szóval alapszintű tanuláshoz teljesen jók ezek a könyvek, viszont ha valaki mesterszinten akarja elsajátítani pl. a c++-t, akkor már érdemes valami Kiskapu kiadványt megvenni.
-
metaldog
senior tag
Na meg még annyi hogy flash oktatásából írom a diploma munkám és nincs valakinek 50 oldalnyi anyaga hozzá? Vagy valami ilyesmi?
-
metaldog
senior tag
Hi van egy kis gondom 3 hét múlva lesz egy programozás szigorlatom és csak turbó pascal van benne hogy kéne arra gyorsan felkészülni mert ez a pascal valahogy nem fekszik nekem.
-
berkine
csendes tag
ahh, dehogy. Mindenestere tanultam az esetből. Legközelebb a dátumot nézem meg először
-
berkine
csendes tag
Na eljött az idő, hogy nevet váltsak.
Psszt...a többieknek egy szot se.... -
berkine
csendes tag
hali mindenkinek!
Az előző hozzászólásomat lehetne valahogy törölni?
Megnyitottam a forumot, belelkesültem, hogy meg tudom csinálni a feladatot, és meg is csináltam..Csak azt nem figyeltem, hogy ezzel indult a forum...
Na ekkorát sem égtem még. -
c4-eXp
aktív tag
válasz
Darth_Revan #847 üzenetére
program valami;
uses crt;
const n=valamennyi, m=valamennyi, l=valamennyi;
var matrix : array[1..n,1..m] of integer;
i, osszeg : integer;
begin
osszeg:=0;
matrix_feltoltese;
for i:=1 to n do
osszeg:=osszeg+matrix[i,l];
writeln(osszeg);
readln;
end.
Jó régen pascaloztam már, de asszem valahogy így lesz. -
Darth_Revan
veterán
Sziasztok!
Kaptam 1 jó kis házit progiból,mégpedig hogy 1 programot kellene írni pascalbanSajnos progi nem az erőségem,így segítséget kérnék. Az alábbi feladathoz kellene program (forrás nyelvben),valamint 1 kis leírás,hogy ez miért vban itt,az miér van ott,stb. (Hogyha belekérdez,akkor ne süljek bele)
A feladat:
Adott NxM-es mátrix és egy L egész szám L<=M. Írassuk ki az L-edik oszlop összegét.
Előre is kszönöm a segítséget!! -
Drótszamár
őstag
Const n = sok;
type matrix = array[1..n,1..n] of integer, word, mindegy;
var
m : matrix;
min : integer, word, mindegy
helyx : integer;
helyy : integer;
begin
feltöltés;
min:=m[1,1];
helyx:=1;
helyy:=1;
for i:=1 to n do
Begin
if m[i,i]<min
Then
Begin
min:=m[i,i];
helyx:=i;
helyy:=i;
End;
if m[n-i+1,i]<min
Then
Begin
min:=m[n-i+1,i];
helyx:=n-i+1;
helyy:=i;
End;
End;
writeln(''A legkisebb elem: ''+szöveggéalakítás(min)+'' ''+inttostr(helyx)+''. sor, ''+inttostr(helyy)+''. oszlop'');
end;
Ha hibás, akkor az azért van, mert másnapos vagyok, és csak 4 órát aludtam.
A kilógó sor: writeln('A legkisebb elem: '+szöveggéalakítás(min)+' '+inttostr(helyx)+'. sor, '+inttostr(helyy)+'. oszlop');[Szerkesztve]
-
Lali87
csendes tag
Sziasztok!
Egy proginak kellene sűrgősen a megoldása! Probáltuk már megcsinálni,de nem akar működni, és nagyon sürgős lenne...itt a feladat:
Adott egy N*N -es mátrix határozuk meg az átlók legkisebb elemét!
Nagyon fontos lenne, ezért aki tud segíteni az segítsen..[Szerkesztve]
-
bosi84
tag
Sziasztok!
MÉG MINDIG
Az alábbi feladatra kérnék tőletek segítséget:
Készítsen Pascal függvényt vagy eljárást, amely meghatározza
szukszcesszív approximációval az
x1 = -1,5 + 0,5*x2 - 0,5*x3
x2 = 0,2 + 0,6*x1 + 0,4*x3
x3 = -0,1*x1 + 0,4*x2
egyenletrendszer x1, x2, x3 megoldásait eps-nál kisebb hibával.
Eps értékét a főprogramban olvassa be a standard inputról.
Ha valaki el tudná küldeni a megoldási menetet, megköszönném. -
bosi84
tag
Sziasztok!
Az alábbi feladatra kérnék tőletek segítséget:
Készítsen Pascal függvényt vagy eljárást, amely meghatározza
szukszcesszív approximációval az
x1 = -1,5 + 0,5*x2 - 0,5*x3
x2 = 0,2 + 0,6*x1 + 0,4*x3
x3 = -0,1*x1 + 0,4*x2
egyenletrendszer x1, x2, x3 megoldásait eps-nál kisebb hibával.
Eps értékét a főprogramban olvassa be a standard inputról.
Ha valaki el tudná küldeni a megoldási menetet, megköszönném. -
czappa
aktív tag
Létezik olyan függvény, amely egy STRING-et megfordítva ad vissza (PASCAL -> LACSAP)?
Régről úgy emlékszem van ilyen, de nem találom.
Előre is köszönöm! -
czappa
aktív tag
válasz
Jester01 #837 üzenetére
Köszönöm a válaszaid
.
Most így néz ki a rendez eljárás:
procedure rendez(var vektor: tomb; n: integer);
label kesz;
var i,j, k: integer;
begin
writeln('Rendezes...');
for i:=0 to n-2 do
begin
csere:=false;
for j:=0 to n-2-i do
begin
if vektor[j] > vektor[j+1] then
begin
csere:=true;
k:=vektor[j+1];
vektor[j+1]:=vektor[j];
vektor[j]:=k;
end;
end;
if csere=false then goto kesz;
//writeln('i= ',i); leellenorizheto, hogy tenyleg kilep a ciklusbol
// ha nem volt csere.
end;
kesz:
end;
c-ben van lehetőség kiugrani a ciklusból, talán pascalban is csak én nem tudok róla, ezért használtam goto-t.
(Amikor bemásolom a kódot, akkor még jól néz ki, de aztán minden sor kezdete egy oszlopba kerül - átláthatatlan lesz.)
Mégegyszer köszi. -
Jester01
veterán
Egyáltalán ez a buborékos rendezés?
Igen.
lehet e gyorsabban csinálni (még mindig buborékos rendezésnél maradva)
Igen. Ellenõrzöd, hogy a belsõ ciklusban volt-e csere, mert ha nem, akkor már kész vagy.
ehh, az egészet dőlt betűsként írja ki, talán a copy&paste miatt??
Bugos a fórummotor, az elõzõ hozzászóló nem zárta le az i taget, és ez továbbterjed.
MOD: Hiába is próbálom javítani a dõlt betûket...
[Szerkesztve] -
czappa
aktív tag
Hi! Pascal guruk segítségét szeretném kérni, írtam egy programot (delphi console application - tehát gyak. pascal), ami a buborékos rendezést reprezentálja:
program buborekos_r;
{buborék rendezés, mert az jó
osszehasonlitjuk az 1. ket elemet, és ha az 1. nagyobb,
akkor csereljuk. Majd a 2. és 3. elemet vizsgaljuk, stb.
}
{a ''rendez'' eljarasrol:
az n elemu dinamikus tomb 0-tol (n-1)-ig szamozza az elemeket
Mivel egy elemet mindig az utana kovetkezovel vizsgalunk, így
n-1 ellenorzesre van szuksegunk, ezért menne a belso ciklus 0-tol
(n-2)-ig. Mivel azonban a belso ciklus elso lefutasakor a legnagyobb
elem a helyere kerult, így a masodik lefutaskor az utolso ellenorzest
nem kell elvegezni, igy a belso ciklus
0-tol (n-2-i)-ig megy (kezdetben i=0)
}
{$APPTYPE CONSOLE}
uses
SysUtils;
type
tomb = array of integer;
var
n: integer;
vektor: tomb;
procedure beolvas(var vektor: tomb; n: integer);
var i,szam: integer;
begin
for i:=0 to n-1 do
begin
write('A(z) ',i,'. elem: ');
readln(szam);
vektor:=szam;
end;
end;
procedure kiir(var vektor: tomb; n: integer);
var i: integer;
begin
writeln('A tomb elemei: ');
for i:=0 to n-1 do
begin
writeln('A(z) ',i,'. elem: ',vektor);
end;
end;
procedure rendez(var vektor: tomb; n: integer);
var i,j, k: integer;
begin
writeln('Rendezes...');
for i:=0 to n-2 do
begin
for j:=0 to n-2-i do
begin
if vektor[j] > vektor[j+1] then
begin
k:=vektor[j+1];
vektor[j+1]:=vektor[j];
vektor[j]:=k;
end;
end;
end;
end;
begin
write('Hany elemu legyen a tomb: ');
readln(n);
setlength(vektor, n); //dinamikus tomb hosszanak beallitasa
beolvas(vektor, n); //ertekadas a tomb elemeinek
//kiir(vektor, n);
writeln;
rendez(vektor, n); //a rendezes; a program lenyege
kiir(vektor, n); //a rendezett tomb kiirasa
readln;
end.
A program olyan értelemben jó, hogy lefut és megcsinálja, a kérdésem az lenne, hogy lehet e gyorsabban csinálni (még mindig buborékos rendezésnél maradva), vagy ez a max. , amit ki lehet hozni belőre. Egyáltalán ez a buborékos rendezés?
(nyilván a kérdésemmel kapcsolatban a ''rendez'' eljárás a lényeg a többi csak sallang)
szer.: ehh, az egészet dőlt betűsként írja ki, talán a copy&paste miatt?? Mind1.
[Szerkesztve] -
driver18
tag
válasz
Drótszamár #833 üzenetére
A type-hoz azt írja ki, hogy Error113: error in statement.
-
Barca01
csendes tag
SEGÍTSÉG!!!
Sziasztok!
A matematikai programozás tantárgy beadandó feladataiból egy feladattal nem bírok. (nem tudok határértéket számolni)
Íme ez a borzasztó feladat:
5. SOROZATOK HATÁRÉRTÉKE
A sorozat olyan függvény, amelynek értelmezési tartománya a pozitiv egész számok halmaza.
Egy an sorozat konvergens, és határértéke az a szám, ha tetszőleges pozitív y-hoz (y>0) található egy N küszöbindex, úgy hogy ha n>N, akkor |n - a|<y .
lim an
Jelölése: ----------------- =a
n → végtelen
Cauchy - féle konvergencia kritérium
Egy an sorozat akkor és csak akkor konvergens, ha tetszőleges pozitív y-hoz (y>0) található egy N küszöbindex, úgy hogy ha n>N és m>N, akkor Ian – amI<y .
Ez tehát azt jelenti, hogy tetszőleges pozitív y (y>0) esetén (ez egy nagyon kis szám, a határértéktől való eltérés pontossága, pl. 0.000001) ha két egymás utáni közelítés különbsége abszolút értékben kisebb mint y, akkor az adott y pontossággal bármelyiket elfogadhatom határértéknek!
Feladat:
Olvassuk be y-t. Határozzuk meg a következő sorozat határértékét epszilon (y) pontossággal!
2n négyzet +3n-2
an=--------------------------
4n négyzet -5n+1
Segítsetek légyszi, előre is köszi, csao -
Drótszamár
őstag
válasz
Drótszamár #832 üzenetére
Nem vagy fenn msn-en.
10.2 Típusos file-ok
A típusos file-ok alkalmazásával olyan adathalmazokat is létrehozhatunk, melyek sorai azonos típusú (nem kizárólag szöveges) elemeket tartalmaznak. Az ilyen állományok deklarációjában azt kell megadni, hogy a file soraiban tárolt adatok milyen típusúak legyenek. A file típusa lehet egyszerû vagy összetett, de nem lehet file vagy objektum típus. Például:
var f1:file of integer;
f2:file of real;
Azonban gyakrabban használunk összetett típusokat egy file típusaként.
type tanulotipus=record
neve:string[25];
osztalya:string[5];
atlaga:real;
end;
var f_iskola:file of tanulotipus;
Az f_iskola azonosítóhoz rendelt állomány minden sora egy-egy tanulo rekord lesz, és így az iskola összes tanulójának adatait egyetlen file-ban tárolhatjuk. A file megnyitására a már ismert eljárások használhatók (kivéve Append):
Reset(f_iskola); {létezõ file}
Rewrite(f_iskola); {lehet nem létezõ is}
A szöveges állományoktól eltérõen, a Reset-tel történõ megnyitás után nem csak olvashatunk a file-ban, hanem írhatunk is hozzá. A Rewrite használatával is elvégezhetjük mind a két tevékenységet, de ha már létezõ file-t nyitunk meg így, akkor a tartalma elvész. A file-ba írás (Write, Writeln) ill. az abból való olvasás (Read, Readln) a szöveges állományoknál ismertetett módon történik. A típusos file-okban tetszés szerint mozoghatunk, ehhez a következõ parancsot használjuk:
Seek(file_valtozo, index);
A Seek eljárás paramétereként meg kell adni annak az állománynak az azonosítóját, amelyben mozogni akarunk, és annak a sornak a számát, ahová a file-mutatót állítani akarjuk. Fontos tudni, hogy a file elsõ sorának indexe 0, a másodiknak 1, és így tovább. Ahhoz, hogy az indexben megadott sorszám biztosan elérhetõ sort jelöljön, tudnunk kell a file pontos méretét, vagy a file-mutató aktuális helyét.
FileSize(file_valtozo) {file mérete}
FilePos(file_valtozo) {aktuális pozíció}
A FileSize függvény visszatérési értéke egy longint típusú szám, mely a file-ban található sorok száma (az utolsó sor indexe).
Ha az állomány üres, akkor a függvény értéke 0. A FilePos függvény eredménye egy longint típusú szám, mely a file aktuális sorának indexe. Ha a file-mutató az elsõ sorra mutat, akkor a függvény értéke 0. Ha az aktuális pozíció a file vége, akkor a függvény értéke megegyezik a FileSize függvény értékével. A Seek eljárásban az index helyén is alkalmazhatók ezek a függ- vények.
Ha az állományunk utolsó soraiban olyan adatok vannak, melyeket törölni akarunk a file-ból, akkor a file végét egy- szerûen levágjuk a Truncate paranccsal:
Truncate(file_valtozo);
Az eljárás a file-mutató aktuális pozíciójától csonkolja a file-t, az utolsó sor az aktuális pozíció lesz. Készítsünk egy programot, mely egy már létezõ file-ban keres!
[link]
Ezeket kell eltárolni: minden futtatás idejét, a mátrix 12. sorát, és négyzetösszegét.
Tehát
type
matrixsor : array[1..11] of integer;
egyadat : record
ora = Byte;
perc = Byte;
sor = matrixsor;
osszeg = Word;
end;
var
f = file of egyadat;
m = egyadat;
begin
...
m feltöltése;
assign(f,'matrix.dat');
{$I-} reset(f); {$I+}
If IoResult<>0
Then
Begin
rewrite(f); //nem létezik a file, létrehozod újra
End;
seek(f,(filesize(f)-1);
write(f,m);
...
end.
[Szerkesztve] -
Barca01
csendes tag
válasz
Drótszamár #829 üzenetére
Drótszamár!
Köszi szépen, működik.
Csao. -
Drótszamár
őstag
var
a : array[1..sok] of típus;
b : array[1..sok] of típus;
e : array[1..sok] of típus;
i : integer;
begin
...
for i:=1 to sok do
Begin
kiírás.
bekérés.
End;
for i:=1 to sok do
Begin
kiírás,
bekérés.
e((i)):=a((i)) művelet b((i));
end;
for i:=1 to sok do
Begin
kiírás e((i));
End;
...
[A (( helyett [, a )) helyett ] értendő. Sajnos hiába kattintottam a ne konvertáljon-ra, eltüntette a [ i ] -ket. - peterkeT] -
Barca01
csendes tag
Sziasztok!
Kaptam egy szép feladatot, és nem bírok vele, segítsetek légszi. Köszi.
Íme:
Két vektor elemeit ciklusban kérem be, melynek során a második vektor bekérésekor elvégzem az eredmény-vektor elemeinek meghatározását. Ezt követően szintén ciklusban iratom ki az eredmény-vektor elemeit. -
driver18
tag
Sziasztok!
Az M mátrixnak 7 sora, és 11 oszlopa legyen, (0, 1111) intervallumon generáljon véletlen számokat, a vektor számain végezzen oszthatósági vizsgálatot, 5-tel való oszthatóságra, ezt egy függvényben tegye meg. Írjon eljárást úgy, hogy az hívja meg az oszthatósági függvényt és számolja ki ezeknek a számoknak a négyzetösszegét. Tárolja típusos fájlban minden futtatás idejét, a mátrix 12. sorát, és négyzetösszegét. Listázza azokat a sorokat a fájlból, ahol a futtatás és az előtti futtatás ideje között több idő telt el, mint a bekért idő.
Szóval nekem ilyen gondjaim vannak.
Addig eljutottam, hogy ki van íratva a négyzetösszeg, de a tárolás már nem megy. Aki tud segíteni, légyszi keressen meg mail-ben vagy MSN-en (mindig elérhető vagyok).
Elég sürgős lenne a feladat, mert ez egy házi doga, fősulira!
Köszi -
GodHeart
senior tag
lenne egy olyan problémám, hogy a pascalom nem akar fordítani. azaz a meglévő progit ő lefuttatja, de exe-re nem fordítja le. Már újratettem, de most sem csinálja meg. Van esetleg valami más program, amivel lelehet fordítani a pas fájlt exe-re!?
-
GodHeart
senior tag
válasz
Drótszamár #815 üzenetére
no writeln-okat visszacseréltem write-ra viszont a két bekérű de és dv-t readln-re csérltem és így megy!
-
GodHeart
senior tag
válasz
Drótszamár #815 üzenetére
megy.. dehogy mér?!
Nem értem.. az ln a végén végülis az csak azt jelenti, hogy új sorban kezdni... Ezt most tényleg nem vágom. Mindegyik végére tettem egy ln-t és megy.. -
Jester01
veterán
válasz
GodHeart #813 üzenetére
Vagy nem
Nincs kéznél pascal, de szerintem itt a hiba:read(de);
Ha úgy mûködik mint más környezetben szokás, akkor ez nem olvassa be a sorvég jelet.
Igy amikor areadln(dv);
részhez ér, az rögtön beolvassa a pufferben maradt sorvég jelet. Persze lehet, hogy tévedek.
MOD:
Mármint az üres stringet olvassa be a readln, mert a sorvége jelig adja vissza (de azt is beolvassa). Innentõl gondolom az Assign az üres stringre stdtout-ot adj ezért jelenik meg kétszer a képernyõn a file tartalma. Megoldás: a read(de) helyére readln(de).
[Szerkesztve] -
GodHeart
senior tag
válasz
Drótszamár #810 üzenetére
ohh szal ha ilyen izékbe teszem a programot, akkor is lefuttatja, ha azthiszi, hogy rosz!?
Tök jóó!
--------
nah ezt viszont enmértem!program adatcucc;
uses crt;
type
tipfile = file of integer;
fajl = file;
szovegfajl = text;
var
f1 : tipfile;
f2 : szovegfajl;
f3 : szovegfajl;
de,dv,q : string;
a : string;
begin
clrscr;
writeln('Melyik f jlt szeretn‚ beolvasni!?');
writeln('A fajl belesz irva egy m sik f jlba!');
Writeln('Adja meg a beolvasand˘ f jl hely‚t!');
read(de);
Assign(f3,de);
reset(f3);
read(f3,a);
close(f3);
writeln('A f jl tartalma: ',a);
writeln('Hova szeretn‚ a f jl tartalm t ˇrni: ');
readln(dv);
Assign(f2,dv);
rewrite(f2);
write(f2,a);
close(f2);
readkey;
end.
A program a ''readln(dv);'' sort kihagyja, kiírja újra a ''a'' változó tartalmát, és egy gombnyomásra kilép. magyarul nem kéri be a dv-t, és az a-t így nem is írja ki a tetszőleges fájlba. miért?Nah ezt most nem értem... Amíg nem változóval adtam meg a dv-t hanem konkrét fájlt írtam oda, addig okés volt. most nem értem.
ui. változókba fenn sok sületlenség van, nem kell nézni, más próbálkozásból maradt ott -
Drótszamár
őstag
válasz
KőkorSzaki #809 üzenetére
Saját programokba hüje a programozó üzi szerepelt a leg gyakrabban
Teljeskörű IO hibakezelés -
Drótszamár
őstag
válasz
GodHeart #808 üzenetére
Az assign-ot direkt hagytam ki, az nem tartozik szorosan a hibaellenőrző részhez.
{$I-} kikapcsolja az input output műveletek ellenőrzését. tehát a program nem lép ki hibaüzivel. ezzel te tudod lekezelni a hibát. Hogy történt e hiba azt az IoResult függvény adja vissza. Ha 0-val tér vissza akkor nincs hiba.
{$I+} visszakapcsolja az ellenőrzést, mert a későbbiekben szükség lehet rá.
egyébként ezt fordítási direktívának hívják ha jól emléxem
{$R-} a határértékeket vizsgálatát szünteti meg. ha ki van kapcsolva akkor felül lehet indexelni tömböt, és ezzel komoly esélyed lessz a teljes gép lefagyasztására
A progi viszont nem fog Range Check error-t dobálni. -
KőkorSzaki
tag
válasz
Drótszamár #807 üzenetére
Tehát ha bármi gond van, beleértve azt hogy a programozó elfejeti az assign-t, akkor 'hiba van vazze. szar a zixszpé'. Vagány I/O hiba diagnózis.
-
GodHeart
senior tag
válasz
Drótszamár #807 üzenetére
a teljesség igényével az elején lemarad egy:
Assign(f,'fájl_név');
/no nem kötekedekedésnként, tényleg nagyon hálás vagyok, hogy mindenki ilyen segítőkész!
Ha nem írnátok, nem is tudom, honnan kérnék segítséget, mert, hogy suliból nem az tuti...
/
Had kérdezzem meg az a {$I-} ez mit takar? Mert az egy dolog, hogy oda írom, de érteni is szeretném a dolgokat! -
Drótszamár
őstag
válasz
GodHeart #803 üzenetére
{$I-} Rewrite(f); {$I+}
If IoResult<>0
Then
Begin
writeln('hiba van vazze. szar a zixszpé');
End
Else
Begin
writeln('nincs hiba...');
End;
ezzel kikapcsolod a hibaellenőrzést amíg a megnyitás zajlik. Ekkor nem kifagy, hanem üzit ír a képernyőre (ha reset-et használsz, akkor így lehet ellenőrizni, hogy a fájl létezik e) -
GodHeart
senior tag
válasz
KőkorSzaki #804 üzenetére
jójójó, csak úgy élt az emlékezetemben, hogy mivel nem létezik a fájl így hozzárendelni se tudom! Most már rájöttem tévedtem. Sajnálom
-
GodHeart
senior tag
válasz
Drótszamár #802 üzenetére
az agyam eldobom
Tényleg megy!
Bocs DiskCopy! akkor lehet, hogy én nem rewrite-al, hanem reset-tel írtarm még akkor anno! -
GodHeart
senior tag
válasz
Drótszamár #802 üzenetére
Nah most kirpróbálom, mert ha már valami két ember mond, abban lehet valami
-
Új hozzászólás Aktív témák
- Honor Magic6 Lite 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- XBOX Series X + dokkoló // SZÁMLA // GARANCIA //
- GYÖNYÖRŰ iPhone 14 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3162, 100% Akkumulátor
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Samsung Galaxy S23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest