Pereiti prie turinio

Problemele su delfinu


Rekomenduojami pranešimai

Sveiki. Iki rytojaus turiu padaryti sia programa, taigi prasau jusu pagalbos, jei reikes atsilyginsiu.

 

1programos uzduotis: Duotas realių skaičių masyvu A(m). Rasti masyvo teigiamų elementų vidurkį ir jį įrašyti vietoje visų nulinių masyvo elementų. Duomenys į masyvą įvedami iš tekstinio duomenų failo, pasirenkamo dialogo būdu. Rezultatų faile ‘Rezultato.txt’ spausdinti masyvą prieš ir po pertvarkymų stulpeliu, nurodant indeksą ir masyvo elemento reikšmę

 

2 programos uzduotis: Duoti sveiku skaiciu masyvai A(m) ir B(n). Rasti kuriame masyve yra daugiau nuliniu elementu. Sukeistu masyvu pirmus ir paskutinius elementus vietomis. Duomenys i masyvus ivedami is tekstinio duomenu failo, pasirenkamo opendialog budu. Rezultatu faile spausdinti masyvus pries ir po pertvarkymu stulpeliu, nurodant indeksus ir masyvu elementu reiksmes.

 

Tai va, turiu sia programa perdaryti i kita(tai programa pagal pirmaja uzduoti), padaryciau pats, bet niekaip nesumastau kaip perskaityti 2 masyvus is vieno failo....

 

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

Masyvas = array [1..50] of real;

TForm1 = class(TForm)

Button1: TButton; // 'Skaičiuoti'

Button2: TButton; // 'Baigti'

Button3: TButton; // 'open'

OpenDialog1: TOpenDialog; // open dialogas

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

m:integer; // dokumente esančių skaitmenų kiekis

A:Masyvas; // Skaičiai

procedure nuskaityti(var m:integer);

procedure rasti(m:integer; var x:integer);

procedure suma(m:integer; var r:real);

procedure vidurkis(r:real; x:integer; var d:real);

procedure yrasyti(m:integer; d:real);

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

{rezultatų įrašymas į tekstinę bylą}

procedure tform1.yrasyti(m:integer; d:real);

var i:integer; E:textfile;

begin

Assignfile(E, 'Rezultatai.txt');

Rewrite(E);

writeln(E, 'PRADINIAI DUOMENYS:');

writeln(E, '');

for i:=1 to m do

begin

writeln(E, 'A','[',i,']',' = ',A:1:1);

end;

writeln(E, '');

writeln(E, 'PERTVARKYTI DUOMENYS:');

writeln(E, '');

for i:=1 to m do

begin

if A <> 0 then

writeln(E, 'A','[',i,']',' = ',A:1:1) else

writeln(E,'A','[',i,']',' = ',d:1:2);

end;

closefile(E);

end;

{procedūra skirta apskaičiuoti teigiamų skaičių vidurkiui}

procedure tform1.vidurkis(r:real; x:integer; var d:real);

begin

d:=r/x;

end;

{procedūra skirta teigiamų skaičių sumos apskaičiavimui}

procedure tform1.suma(m:integer; var r:real);

var n:integer;

begin

r:=0;

for n:=1 to m do

begin

if A[n] > 0 then

r:=r+A[n];

end;

end;

 

 

{procedūra skirta rasti teigiamus skaičius}

procedure tform1.rasti(m:integer; var x:integer);

var n:integer;

begin

x:=0;

for n:=1 to m do

begin

if A[n] > 0

then

x:=x+1;

end;

end;

{procedūra skirta nuskaityti pradinius duomenis}

procedure tform1.nuskaityti(var m:integer);

var F:textfile;

begin

assignfile(F, 'duomenys.txt');

Reset(F);

m:=0;

while not eof(F) do

begin

m:=m+1;

Read(F, A[m]);

end;

closeFile(F);

end;

{kreipiniai į procedūras}

procedure TForm1.Button1Click(Sender: TObject);

var x,m:integer; r,d:real;

begin

nuskaityti(m);

rasti(m,x);

suma(m,r);

vidurkis(r,x,d);

yrasyti(m,d);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

form1.Close;

end;

{open dialogas}

procedure TForm1.Button3Click(Sender: TObject);

var ss:string;

begin

opendialog1.Filter := 'Txt(*.txt)|*.txt';

if opendialog1.Execute then

begin

ss := opendialog1.FileName;

end;

end;

 

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Būtų daug lengviau jeigu prisegtum tuos failus. O skaityt du masyvus taip turėtų eiti :lol:

i:=1
while not Eol(failas) do
begin
read(failas, masyvas1[i]);
i := i + 1;
end;
readln(failas);
i:=1;
while not Eol(failas) do
begin
read(failas, masyvas21[i]);
i := i + 1;
end;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...