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.

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