Pereiti prie turinio

FPS užduotis žaliam


Rekomenduojami pranešimai

Sveiki. Nepasakojęs situacijos noriu paprašyti, kad padarytumėt užduotį arba bent jau paaiškintumėt, kodėl ir ką reikia rašyti.

Yra daug įvairaus dydžio stačiakampio gretasienio formos dėžių. Jos naudojamos

kamuoliams supakuoti dedant į vieną dėžę po vieną kamuolį (kamuolys neturi išsikišti iš dėžės).

Vidiniai dėžių matmenys pateikiami centimetrais. Visų kamuolių skersmuo vienodas ir lygus D cm.

Parašykite programą, kuri nustatytų, kiek tarp turimų dėžių yra tinkamų duotiems kamuoliams

pakuoti.

Duomenys pateikiami byloje Duom1.txt. Pirmoje eilutėje įrašytas kamuolio skersmuo, antroje –

dėžių skaičius n. Tolesnėse n eilučių yra po tris skaičius, kurie reiškia dėžės matmenis centimetrais.

Visi duomenys pateikiami sveikaisiais skaičiais.

Rezultatus reikia surašyti į bylą Rez1.txt.

Pirmoje eilutėje reikia įrašyti sakinį Tinkamų dėžių yra: ir rastų dėžių skaičių.

Antroje – sakinį Mažiausia dėžė: ir tris skaičius, reiškiančius tokios dėžės matmenis. Jeigu

tinkamų dėžių nėra, reikia spausdinti vieną žodį: Nėra.

Duom1.txt

11

8

13 11 11

4 19 25

36 40 50

11 13 11

16 11 12

11 10 13

19 17 8

13 9 19

Rez1.txt

Tinkamų dėžių yra:4

Mažiauria tinkama dėžė: 11

Suprantu tik funkcijas ir pačią programos dalį. Procedūros - kosmosas.

Ačiū labai už bet kokią naudingą informaciją.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kažką panašaus turiu kompe, žiūrėk gal tiks :)

 

program Dezutes;
type
   TDeze = record
     aukstis,
     plotis,
     ilgis   :integer
    end;

   TMas = array [1..100] of TDeze;
{------------------------------------------------------------------------------}
procedure Skaitymas(var Dezes :TMas; var D, H, n, kiek :integer);
var i, a, b, c :integer;
   F :text;
begin
Assign(F,'Duom1.txt');
Reset(F);
ReadLn(F,D,H);
ReadLn(F,n);
for i := 1 to n do
 begin
  Read(F,a,b,c);
  if (a > H) and (b > D) and (c > D)
   then
    begin
     kiek := kiek + 1;
     Dezes[kiek].aukstis := a;
     Dezes[kiek].plotis  := b;
     Dezes[kiek].ilgis   := c;
    end;
  ReadLn(F);
 end;
Close(F);
end;
{------------------------------------------------------------------------------}
function Maziausia_deze(A :TMas; n :integer) :integer;
var i    :integer;
   Deze :TMas;
   min  :integer;
begin
min  := 1;
Deze := A;
for i := 2 to n do
 if (A[i].aukstis < Deze[min].aukstis) and (A[i].plotis < Deze[min].plotis)
    and (A[i].ilgis < Deze[min].ilgis) then min := i;
Maziausia_deze := min;
end;
{------------------------------------------------------------------------------}
function Maziausiu_deziu_kiekis(A :TMas; n :integer; D :TDeze) :integer;
var i, kiek :integer;
begin
kiek := 0;
for i := 1 to n do
 if (A[i].aukstis = D.aukstis) and (A[i].plotis = D.plotis)
    and (A[i].ilgis = D.ilgis) then kiek := kiek + 1;
Maziausiu_deziu_kiekis := kiek;
end;
{------------------------------------------------------------------------------}
procedure Rezultatai(D :TDeze; a, b :integer);
var F :text;
begin
Assign(F,'Rez1.txt');
Rewrite(F);
WriteLn(F,'Tinkamų dėžių yra: ',a);
if a <> 0 then WriteLn(F,'Mažiausia tinkama dėžė: ',D.aukstis:6,D.plotis:6,D.ilgis:6)
          else WriteLn(F);
WriteLn(F,'Mažiausių tinkamų dėžių yra: ',b:6);
Close(F);
end;

var Dezes  :TMas;
   D,                                         //skersmuo
   H,                                         //aukstis
   n,                                         //deziu skaicius
   kiekis,i :integer;
begin
 Skaitymas(Dezes,D,H,n,kiekis);
 Maziausia_deze(Dezes,kiekis);
 Rezultatai(Dezes[Maziausia_deze(Dezes,kiekis)],kiekis,
            Maziausiu_deziu_kiekis(Dezes,kiekis,
            Dezes[Maziausia_deze(Dezes,kiekis)]));
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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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