Pereiti prie turinio

Rekomenduojami pranešimai

Gal galit padėt, nerandu kur klaidą padariau.

Užduotis: Studentai planuoja vasarą keliauti po Europą greitaisiais traukiniais. Saityne jie pateikė užklausą ir pagal gautus rezultatus sudarė kelionės maršrutą. Jį sudaro keletas tarpinių etapų su ekskursijomis po miestus. Žinomas kiekvieno etapo traukinių išvykimo ir atvykimo į kitą miestą laikas. Vieno etapo kelionė traukiniu trunka ne ilgiau kaip parą, ekskursijoms taip pat skiriama ne daugiau kaip para. Parenkite programą, kuri apskaičiuotų, kiek laiko studentai praleis kiekviename traukinyje ir po kiek laiko pasieks galutinį maršruto miestą.

Pirmoje pradinių duomenų failo Duomenys.txt eilutėje nurodytas kelionės etapų skaičius n. Tolesnėse n eilučių nuosekliai pagal suplanuotą maršrutą surašyti kiekvieno etapo duomenys: pavadinimas (skiriama 20 pozicijų), traukinio išvykimo iš pradinės padėtes stoties laikas (valandos ir minutės) ir atvykimo į galutinę stotį laikas (valandos ir minutės). Vienam maršruto etapui skiriama viena eilutė. Kelionė gali baigtis ir kitą dieną.

Rezultatų failo Rezultatai.txt atskirose eilutėse pateikite maršruto kiekvieno etapo pavadinimą ir kelionės trukmę valandomis ir minutėmis. Paskutinėje rezultatų failo eilutėje įrašykite visos kelionės (įskaitant ekskursijas) trukmę.

Nurodymai:

* naudokite įrašus ir masyvus, kurių elementai yra įrašo tipo;

* sukurkite pradinių duomenų skaitymo procedūrą;

* sukurkite funkciją, skaičiuojančią kelionės trukmę;

* sukurkite rezultatų rašymo į failą procedūrą.

Programa:

program studentai;
type trunkah = array [1..50] of integer;
    trunkam = array [1..50] of integer;
    laikas = record
    mars : string [20];
    isvh : integer;
    isvmin : integer;
    atvh : integer;
    atvmin : integer;
end;
 mas = array [1..50] of laikas;
procedure skaitymas (var n : integer; var laiks : mas);
 var i : integer;
     duom : text;
begin
 Assign (duom, 'duomenys.txt');
 Reset (duom);
 Readln (duom, n);
   For i := 1 to n do
     Readln (laiks[i].mars, laiks[i].isvh, laiks[i].isvmin, laiks[i].atvh, laiks[i].atvmin);
 Close (duom);
end;
function trukme (n : integer; laiks : mas): integer;
begin
 trukme := n * 24 * 60 + (laiks[n].atvh - laiks[1].isvh) * 60 + (laiks[n].atvmin - laiks[1].isvmin);
end;
procedure rasymas (trukme, n : integer; mash : trunkah; masm : trunkam; laiks : mas);
var i : integer;
   rez : text;
begin
 Assign (rez, 'rezultatas.txt');
 Rewrite (rez);
   For i := 1 to n do
     Writeln (rez, laiks[i].mars, mash[i], masm[i]);
 Writeln (rez, trukme);
 Close (rez);
end;
 var laiks : mas;
     mash : trunkah;
     masm : trunkam;
     n, trukmee, i : integer;
begin
 skaitymas (n, laiks);
 trukmee := trukme (n, laiks);
   For i := 1 to n do
     begin
       mash[i] := laiks[i].atvh - laiks[i].isvh;
       masm[i] := laiks[i].atvmin - laiks[i].isvmin;
     end;
 Rasymas (trukmee, n, mash, masm, laiks);
end.

Duomenų failas:

3
Varšuva-Praha       09 34 17 48
Praha-Viena         12 04 18 08
Viena-Budapeštas    09 54 12 32

Taip turi atrodyti rezultatų failas:

Varšuva-Praha       8 14
Praha-Viena         6 04
Viena-Budapeštas    2 38
50 58

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ą...