Pereiti prie turinio

Informatikos VBE 2014


Rekomenduojami pranešimai

Sveiki, kaip sekasi pasiruošimas informatikos VBE? :)

Aš susidūriau su keliomis kliūtimis programavime, gal galit kas įkelti 2013m egzamino užduotį "Apskritys" ant pascalio? :)

Nesuprantu kodėl, bet nureadinus failą visi skaičiai normalūs, bet vietoj "8001" lieka "81" ir vietoj "5027" lieka "527", skaitau į longint kintamajį.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Radau visą sprendimą :) Siųlau visiems laikantiems išsispręsti viską patiems, nes greičiausiai panaši užduotis bus egzamine :)

program Apskritys;
Type miestai=record
           vardas:string[20]; //Miesto vardas
           aps:string[13]; //Apskrities pavadinimas
           kiek:longint; //Gyventojų skaičius
       end;
   apskritis=record
           vardas:string[13]; //Apskrities vardas
           maz:longint; //Mažiausio apskrities miesto gyventojų skaičius
           viso:longint; //Apskrities gyventojų kiekis
       end;
   masmiest=array[1..100] of miestai;
   masapskr=array[1..100] of apskritis;
//Pagal salygą, Lietuvoje yra 10 apskričių, tad:
const apskriciukiekis=10;
//Skaitymo procedūra------------------------------------------------------------
Procedure skaitymas(var a:masmiest; var n:integer);
var i:integer; fd:text;
   begin
       Assign(fd, 'U2.txt'); reset(fd);
       Readln(fd, n);
       For i:=1 to n do Readln(fd, a[i].vardas, a[i].aps, a[i].kiek);
       close(fd);
   end;
//Apskričių radimas-------------------------------------------------------------
//a-miestų masyvas, b-apskričių masyvas, k-duotų apskričių kiekis, n-miestų kiekis
Procedure apskriciuieskojimas(var b:masapskr; a:masmiest; var k:integer; n:integer);
var i,j,x:integer;
   begin
       k:=1;
       For i:=1 to n do
           begin
               x :=0;
               For j:=1 to apskriciukiekis do if b[j].vardas=a[i].aps then x:=1;
               If x=0 then
                   begin
                       b[k].vardas :=a[i].aps;
                       k:=k+1;
                   end;
           end;
       k:=k-1;
   end;
//Mažiausio miesto radimas ir priskyrimas apskričiai----------------------------
Procedure maziausias(var b:masapskr; a:masmiest; n,k:integer);
var i,j:integer;
   Begin
       For i:=1 to k do b[i].maz:=maxlongint;
       For i:=1 to n do
           begin
               For j:=1 to k do
                   begin
                       If a[i].aps=b[j].vardas then b[j].viso :=b[j].viso+a[i].kiek;
                       If (a[i].aps=b[j].vardas) and (b[j].maz>a[i].kiek) then b[j].maz :=a[i].kiek;
                   end;
           end;
   end;
//Apskričių išrikiavimas pagal mažiausio miesto gyventojų kiekį ir jų išvedimas į rezultatų failą--------------
Procedure rikiavimasisvedimas(b:masapskr; k:integer);
var i,j:integer; fr:text; x:apskritis;
   begin
       Assign(fr, 'U2rez.txt'); rewrite(fr);
       For i:=1 to k do
           begin
               For j:=i to k do
                   begin
                       If b[i].maz>b[j].maz then
                           begin
                               x:=b[i];
                               b[i]:=b[j];
                               b[j]:=x;
                           end
                       else if (b[i].maz=b[j].maz) and (b[i].vardas>b[j].vardas) then
                           begin
                               x:=b[i];
                               b[i]:=b[j];
                               b[j]:=x;
                           end;
                   end;
           end;
       Writeln(fr, k);
       For i:=1 to k do Writeln(fr, b[i].vardas, b[i].maz, ' ', b[i].viso);
       close(fr);
   end;
//Pagrindinė programa --------------------------------------------------------
var a:masmiest; b:masapskr; k,n:integer;
begin
 skaitymas(a,n);
 apskriciuieskojimas(b,a,k,n);
 maziausias(b,a,n,k);
 rikiavimasisvedimas(b,k);
end.

Redagavo -LeXas-
Nuoroda į pranešimą
Dalintis kituose puslapiuose
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ą...