Pereiti prie turinio

Užduotis. Loterija. Free pascal


Rekomenduojami pranešimai

Užduotis. Loterija.

Optimistas n kartų pirko loterijos bilietų, tikėdamasis pralobti. Skrupulingai vedė užrašus: kiekvieną kartą rašėsi, kiek pinigų išleido bilietams ir kiek išlošė.

Parašykite programą, kuri pasakytų, kiek iš viso pinigų buvo išleista bilietams ir kiek pinigų išlošta. Taip pat pasakytų, koks didžiausias laimėjimas ir ar galutinis rezultatas buvo nuostolingas, pelningas ar nulinis, t.y. kiek išleista, tiek ir išlošta.

Pirmoje duomenų failo eilutėje parašytas skaičius n (n > 0). Toliau sekančiose n eilučių yra po du skaičius: pirmasis reiškia, už kiek pinigų pirkta loterijos bilietų, o antrasis – kiek laimėta. Visi skaičiai sveikojo duomenų tipo.

Rezultatų faile pirmoje eilutėje parašykite du skaičius. Pirmasis skaičius – už kiek pinigų pirkta bilietų. Antrasis skaičius – kiek pinigų laimėta. Antroje eilutėje pateikite didžiausio laimėjimo vertę. Trečioje eilutėje parašykite galutinį rezultatą: žodį Nuostolis, jeigu išleido pinigų daugiau nei laimėjo, ir nuostolio dydį – praloštų pinigų skaičių; žodį Pelnas, jeigu išlošta daugiau, nei išleista pinigų bilietams, ir koks gautas pelnas. Jeigu pinigų išlošta tiek, kiek išleista bilietams pirkti, tuomet tik žodį Lygiosios.

a. Parašykite funkciją, kuri nuskaitytų į du skaičių masyvus.

b. Parašykite funkciją, kuri suskaičiuotų išleistų pinigų sumą.

c. Tą pačią funkciją naudokite laimėtų pinigų sumai rasti.

d. Parašykite funkciją, kuri rastų didžiausią laimėjimą.

e. Rezultatus į rezultatų failą įrašykite iš pagrindinės programos.

Pradiniai duomenys

Rezultatai

6

16 5

4 0

10 45

100 2

2 0

8 2

140 54

Didžiausias laimėjimas: 45

Nuostolis: 86

 

 

Gal kas galetu padet padaryt?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Užduotis. Kalbos

Pasaulyje yra k populiarių kalbų, kuriomis kalba n milijonų žmonių. Žinoma, kiek žmonių kalba

kiekviena populiaria kalba.

Parenkite programą, kuri apskaičiuotų, kiek procentų p visų žmonių kalba kiekviena kalba ir kiek

žmonių nn ta kalba nekalba.

Pirmoje pradinių duomenų failo Duomenys.txt eilutėje įrašytas populiarių pasaulio kalbų skaičius

k ir jas vartojančių žmonių skaičius - n milijonų. Tolesnėse k eilučių įrašyta po vieną sveikąjį

skaičių kn – kiek milijonų žmonių vartoja kiekvieną iš kalbų.

Į rezultatų failą Rezultatai.txt surašykite, kiek procentų žmonių p kalba kiekviena kalba ir kiek

žmonių nn ta kalba nekalba. Vienai kalbai skirkite vieną eilutę.

Nurodymai:

 Programoje naudokite funkciją void, skaičiuojančią p ir nn reikšmes.

 

Pradiniai duomenys Rezultatai

16 4092

512

245

211

498

391

125

75

71

78

160

1000

192

77

280

100

77

12.51% 3580

5.99% 3847

5.16% 3881

12.17% 3594

9.56% 3701

3.05% 3967

1.83% 4017

1.74% 4021

1.91% 4014

3.91% 3932

24.44% 3092

4.69% 3900

1.88% 4015

6.84% 3812

2.44% 3992

1.88% 4015

 

arba sita uzduoti,kai ta void suprast,nes niekad nedares ;p

 

Ką siūlai?

 

pasiulyt galiu teigiama atsiliepima :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

kai ta void suprast,nes niekad nedares ;p

 

 

paskalyje void funkcija yra procedūra (procedure pavadinimas(argumentai))

Šitoje užduotyje tau reikia naudoti kažką panašaus: procedure(<argumentai, su kuriais skaičiuos.*>, var p : Integer, var nn : Integer)

{ Čia tavo procedūros „body“ ( http://en.wikibooks.org/wiki/Pascal_Programming/Syntax_and_functions ) }

// * – galima naudoti globalius kintamuosius (tai nėra gera praktika) ir nesiųsti procedūrai kitų kintamųjų, tik p ir n.

// Prieš baigdamas procedūrą, nustatai p ir nn reikšmes ir tada tos reikšmės paskeis pagrindinėje programoje. Čia irgi gali naudoti globalius kintamuosius ir nepassinti nieko tai procedūrai

 

Edit: be code tagų gal geriau.

Redagavo kashiukas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Noname0;
type masyvas = array[1..100] of integer;
 var d,r:text;
     i,n,isleistaIsViso,laimetaIsViso:integer;
     isleista,laimeta:masyvas;

/////// nuskaitymas
procedure nuskaitymas(var isleista,laimeta:masyvas);
begin
   assign(d,'duomenys.txt');
   reset(d);
   readln(d,n);
   for i:=1 to n do
   readln(d,isleista[i],laimeta[i]);
   close(d);
end;

/////// funkcija randanti pinigu suma (sudedanti masyvo elementus)
function suma(var mas:masyvas; n:integer):integer;
var laikina:integer;
begin
   laikina:=0;
   for i:=1 to n do
   laikina := laikina + mas[i];
   suma:=laikina;
end;

////// funkcija randanti max
function max(var mas:masyvas; n:integer):integer;
var didz,i:integer;
begin
   didz := 1;
   for i:=2 to n do
       if mas[i] > mas[didz] then
       begin
           didz := i;
       end;
   max:=mas[didz];
end;

/////// rasymas i faila
procedure rasymas(var isleista,laimeta:masyvas);
begin
   assign(r,'rezultatai.txt');
   rewrite(r);
   Writeln(r,suma(isleista,n),' ',suma(laimeta,n));
   Writeln(r,'Didziausias laimejimas: ',max(laimeta,n));
   if suma(laimeta,n) > suma(isleista,n) then
   begin
       Writeln(r,'Pelnas: ',suma(laimeta,n)-suma(isleista,n));
   end
   else Writeln(r,'Nuostolis: ',suma(isleista,n)-suma(laimeta,n));
   close(r);
end;

begin
 nuskaitymas(isleista,laimeta);
 rasymas(isleista,laimeta);
end.

 

Laukiu gero atsiliepimo ! :D

Klausk jei kas neaišku :)

Redagavo Nully
Nuoroda į pranešimą
Dalintis kituose puslapiuose

program Noname0;
type masyvas = array[1..100] of integer;
 var d,r:text;
     i,n,isleistaIsViso,laimetaIsViso:integer;
     isleista,laimeta:masyvas;

/////// nuskaitymas
procedure nuskaitymas(var isleista,laimeta:masyvas);
begin
   assign(d,'duomenys.txt');
   reset(d);
   readln(d,n);
   for i:=1 to n do
   readln(d,isleista[i],laimeta[i]);
   close(d);
end;

/////// funkcija randanti pinigu suma (sudedanti masyvo elementus)
function suma(var mas:masyvas; n:integer):integer;
var laikina:integer;
begin
   laikina:=0;
   for i:=1 to n do
   laikina := laikina + mas[i];
   suma:=laikina;
end;

////// funkcija randanti max
function max(var mas:masyvas; n:integer):integer;
var didz,i:integer;
begin
   didz := 1;
   for i:=2 to n do
       if mas[i] > mas[didz] then
       begin
           didz := i;
       end;
   max:=mas[didz];
end;

/////// rasymas i faila
procedure rasymas(var isleista,laimeta:masyvas);
begin
   assign(r,'rezultatai.txt');
   rewrite(r);
   Writeln(r,suma(isleista,n),' ',suma(laimeta,n));
   Writeln(r,'Didziausias laimejimas: ',max(laimeta,n));
   if suma(laimeta,n) > suma(isleista,n) then
   begin
       Writeln(r,'Pelnas: ',suma(laimeta,n)-suma(isleista,n));
   end
   else Writeln(r,'Nuostolis: ',suma(isleista,n)-suma(laimeta,n));
   close(r);
end;

begin
 nuskaitymas(isleista,laimeta);
 rasymas(isleista,laimeta);
end.

 

Laukiu gero atsiliepimo ! :D

Klausk jei kas neaišku :)

 

dėkui labai,man va su tuo max nesusimaste,o gal zinot,kodel man neleidzia atsiliepimo palikti??

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