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.

×
×
  • Sukurti naują...

Svarbi informacija

Informuojame, kad šiame puslapyje naudojami slapukai (angl. cookies). Sutikdami, paspauskite mygtuką „Sutinku“ arba naršykite toliau. Savo duotą sutikimą bet kada galėsite atšaukti pakeisdami savo interneto naršyklės nustatymus ir ištrindami įrašytus slapukus.