Pereiti prie turinio

Narysx

Patvirtinti nariai
  • Pranešimai

    1.457
  • Užsiregistravo

  • Lankėsi

  • Laimėta dienų

    2
  • Atsiliepimai

    100%

Narysx Pranešimai

  1. -taškai už darbą su ekranu :|

    Na taip, čia tiesiog neduos to vieno taško (paskutinio punkto). Bet ar tuos 9 gausiu, kur parašiau? :)

     

    Atsakykit į klausimą dėl ats

    2, manau, D.

    Tai nulups taškų, aišku :D Jau šito testo pradino, galima sakyt, nepraeini. Neaišku, kaip su kitais duomenimis bus.

  2. Iš tikrųjų tai lengva ta antra užduotis buvo, bet sugebėjau ir aš susimaut... Jau buvau sugalvojęs, kaip viską padaryti, bet pastrigau ties tuo, kaip išrinkti tas tris apskritis iš visų esamų. Sukau ciklus, ir taip, ir taip bandžiau, galiausiai susinervinau ir išvis nieko gero ten nepadariau toj programoj. Visgi, kaip suprantu, turėčiau 9 taškus gauti? Štai "programa":

     

    program Miestai;
    
       Type irasas = record
           miestas : string[20];
           apskritis : string[13];
           gyv : 100..600000;
       end;
    
       Type irasasa = record
           pav : string[13];
           maz : integer;
           viso : integer;
       end;
    
       var duom, rez : text;
       n, i, j, apskriciu : integer;
       irasai : array[1..103] of irasas;
       apskritys : array[1..10] of irasasa;
       apskr : string;
       uztenka : boolean;
    
    begin
    
       assign(duom, 'U2.txt');
       reset(duom);
       Readln(duom, n);
    
       for i := 1 to n do
       begin
           Read(duom, irasai[i].miestas, irasai[i].apskritis, irasai[i].gyv);
           Readln(duom);
       end;
       close(duom);
    
       apskriciu := 0;
       for i := 1 to n do
       begin
           uztenka := false;
           apskr := irasai[i].apskritis;
           for j := 1 to 10 do
           begin
               if (apskritys[j].pav <> apskr) AND (length(apskritys[j].pav) = 0) then
               begin;
                   Writeln(apskr);
                   if uztenka = false then
                   begin
                       {apskritys[apskriciu+1].pav := apskr;}
                       uztenka := true;
                       apskriciu := apskriciu + 1;
                   end;
               end;
           end;
       end;
       Writeln(apskriciu);
    
    
    
     WriteLn(apskriciu);
     Readln;
    end.

     

    5t. už "Teisingai skaitomi duomenys iš failo" ir 4t. už "Teisingai aprašyti ir naudojami įrašo duomenų tipai"? Ar ne taip suprantu vertinimą?

  3. Turiu klausimą. Mokytoja sakė, jog būtina ne tik f-jas, procecūras komentuot, bet ir kintamuosius. Tarkim, aš juos užrašau taip:

     

    var duom, rez : text;
    n, i, x : integer;
    e : string;

     

    Tai kaip man juos komentuot? Kiekvieną dėt į atskirą eilutę ir šalia rašyt komentarą?

     

    var duoom : text; ///bla
    rez : text; ///bla
    n : integer; ///bla
    i : integer; ///bla
    .........

  4. Kokia prasmė sukti tuos ciklus(*), jei gali tiesiog nurodyti skaičiaus formatą pvz. sk:5 :unsure:

    Nelabai supratau, apie ką kalbi :) Aš taip įpratęs dirbt su ciklais, man gerai :P

     

    EDIT: dabar jau supratau, apie ką kalbi. Nepagalvojau apie šį variantą, ačiū :)

  5. Dalinuosi žvejų programa. Parašiau per maždaug 30min. Pastangos atrodo nepraėjo veltui, pats jaučiu, kad improvinau nemažai per pastarąsias dienas. :D

     

    program Bevardë22;
    
       Type irasas = record
           vardas : string[10];
           dienos : 1..30;
           karosu : integer;
           karpiu : integer;
           kuoju : integer;
           isvis : integer;
       end;
    
       var duom, rez : text;
       n, i, j, kuris : integer;
       zvejai : array[1..100] of irasas;
       karos, karp, kuoj : 0..300;
       karosS, karpS, kuojS, isvisS : string;
    
    
       procedure skaitymas;
       begin
           assign(duom, 'C:\U2.txt');
           reset(duom);
           Readln(duom, n);
    
           for i := 1 to n do
               begin
               Read(duom, zvejai[i].vardas);
               Read(duom, zvejai[i].dienos);
               Readln(duom);
               for j := 1 to zvejai[i].dienos do
               begin
                   Read(duom, karos);
                   Read(duom, karp);
                   Read(duom, kuoj);
                   Readln(duom);
                   zvejai[i].karosu := zvejai[i].karosu + karos;
                   zvejai[i].karpiu := zvejai[i].karpiu + karp;
                   zvejai[i].kuoju := zvejai[i].kuoju + kuoj;
                   zvejai[i].isvis := zvejai[i].isvis + karos + karp + kuoj;
               end;
           end;
           close(duom);
       end;
    
    
       function daugiausiai(kiek : integer) : integer;
       begin
           daugiausiai := 1;
           for i := 1 to kiek do
           begin
               if zvejai[i].isvis > zvejai[daugiausiai].isvis then
               daugiausiai := i;
           end;
       end;
    
       procedure irasymas;
       begin
    
           assign(rez, 'C:\U2rez.txt');
           rewrite(rez);
    
           for i := 1 to n do
           begin
               Write(rez, zvejai[i].vardas);
               Str(zvejai[i].karosu, karosS);
               Str(zvejai[i].karpiu, karpS);
               Str(zvejai[i].kuoju, kuojS);
    
               for j := 1 to 5 - length(karosS) do
               Write(rez, ' ');
               Write(rez, zvejai[i].karosu);
    
               for j := 1 to 5 - length(karpS) do
               Write(rez, ' ');
               Write(rez, zvejai[i].karpiu);
    
               for j := 1 to 5 - length(kuojS) do
               Write(rez, ' ');
               Write(rez, zvejai[i].kuoju);
    
               Writeln(rez);
           end;
    
           Write(rez, zvejai[kuris].vardas);
           Str(zvejai[kuris].isvis, isvisS);
           for i:= 1 to 5 - length(isvisS) do
           Write(rez, ' ');
           Write(rez, zvejai[kuris].isvis);
    
           close(rez);
    
       end;
    
    begin
    
       skaitymas;
       kuris := daugiausiai(n);
       irasymas;
    
    end.

  6. pvz 2012 pirma užduotis nerašo, bet be recordo sunkiai padaryčiau

    Iš ėsmės po... ką jie ten rašo :) Svarbu padaryt programą veikiančią. Tada praeini visus testus ir gauni vos ne visus taškus (20/25). Tai nematau jokių problemų, taip ir darysiu. Svarbu, kad veiktų, o jei liks laiko, bandysiu paredaguot pagal nurodymus. :)

  7. Galima su dvimačiu, 1 vietoj skaičius, antroj kiek kartų kartojasi, jei su vienmačiu tai a gali būti kiek kartojasi, o i tas skaičius, bet yra kabliukų tokiu būdu, galima su įrašais.

    Pasidariau pats :)

       tikraskiek := 0;
       kiek := 0;
       for i := 1 to 7 do
       begin
           narys := mas[i];
           for j := 1 to 7 do
           begin
               if narys = mas[j] then
               kiek := kiek + 1;
           end;
           if kiek > tikraskiek then
           begin
               tikraskiek := kiek;
               kuris := i;
           end;
           kiek := 0;
       end;
       Writeln(kuris, ' ', tikraskiek);

  8. Visą nukopijuoju, tame pačiame aplankale sukuriu du failus txt bet išmeta rinkmena nerasta.

    O šią eilutę gali paaiškint: "e := 'eilutė bla bla';", nes jei su integer tai rašo, kad nederami tipai.

    Na, jei integer darai, tai turi pakeist tą e blabla į, tarkim, e := 5;

    Turi kode pakeist failų pavadinimus (nurodyt tokius pat, kaip tavo sukurti)

  9. Visą kodą jei galima, nes man nesigauna :/

     

    program Bevardė20;
    
       var duom, rez : text;
       e : string; ///jei tavo faile failas.txt bus skaičius, tai keisk į integer tipą
    
    begin
    
       assign(duom, 'failas.txt');
       reset(duom);
       Readln(duom, e);
       Writeln(e);
       close(duom);
    
       assign(rez, 'failas2.txt');
       rewrite(rez);
       e := 'eilutė bla bla';
       Writeln(rez, e);
       close(rez);
    
    end.

     

    programą išsaugok tame pačiame aplankale, kur ir failai, o tada testuok

  10. Galit gal kas įkelt paprastą kodą skaitymo iš failo, kurį spausdina į ekraną. Ir kitą kurį spausdina į failą. Būtų didelis ačiū.

     

    assign(duom, 'failas.txt');
    reset(duom);
    Readln(duom, e);
    Writeln(e);
    close(duom);
    
    assign(rez, 'failas2.txt');
    rewrite(rez);
    e := 'eilutė bla bla';
    Writeln(rez, e);
    close(rez);

  11. Mano sprendimas su maršrutais (gal kas esat darę):

     

    program Bevardė19;
    
       Type irasas = record
           numeris : integer;
           tipas : string[14];
           stoteles : integer;
           atstumai : array[1..49] of integer;
       end;
    
       Type irasas2 = record
           skaicius : integer;
           ilgis : integer;
       end;
    
    
       var duom, rez : text;
       n, i, j, priemone, ilgis, ilgiausias, ilgiausioilgis, trumpiausias, trumpiausioilgis : integer;
       marsrutai : array[1..100] of irasas;
       tarpas : char;
       rezultatai : array[1..3] of irasas2;
       tipas, ilgiausiotipas, trumpiausiotipas : string;
    
    
    begin
       ///////////////////////////////////////////////////////////////////Skaitymas iš failo, duomenų rašymas į masyvą
       assign(duom, 'C:\DuomenysMarsrutai.txt');
       reset(duom);
       Readln(duom, n);
    
       for i := 1 to n do
       begin
           Read(duom, marsrutai[i].numeris, tarpas);
           Read(duom, marsrutai[i].tipas, marsrutai[i].stoteles);
           for j := 1 to marsrutai[i].stoteles - 1 do
           Read(duom, marsrutai[i].atstumai[j]);
           Readln(duom);
       end;
       close(duom);
    
       /////////////////////////////////////////////////////////////////Apskaičiuoja kiekvienos transp. priemonės maršrutų skaičių ir bendrą ilgį, išsaugo į masyvą
       for i := 1 to n do
       begin
           tipas := Copy(marsrutai[i].tipas, 0, 4);
    
           if tipas = 'auto' then
               priemone := 1 else if tipas = 'mikr' then
                   priemone := 2 else
                       priemone := 3;
    
           for j := 1 to marsrutai[i].stoteles - 1 do
           begin
               ilgis := ilgis + marsrutai[i].atstumai[j];
           end;
    
           rezultatai[priemone].skaicius := rezultatai[priemone].skaicius + 1;
           rezultatai[priemone].ilgis := rezultatai[priemone].ilgis + ilgis;
           ilgis := 0;
    
       end;
    
       /////////////////////////////////////////////////////////////////Apskaičiuoja ilgiausią maršrutą
       ilgiausias := marsrutai[1].numeris;
       ilgiausioilgis := 0;
       for i := 1 to marsrutai[1].stoteles - 1 do
       ilgiausioilgis := ilgiausioilgis + marsrutai[1].atstumai[i];
       ilgiausiotipas := marsrutai[1].tipas;
    
       ilgis := 0;
       for i := 1 to n do
       begin
           for j := 1 to marsrutai[i].stoteles - 1 do
               begin
                   ilgis := ilgis + marsrutai[i].atstumai[j];
               end;
           if ilgis > ilgiausioilgis then
           begin
               ilgiausias := marsrutai[i].numeris;
               ilgiausioilgis := ilgis;
               ilgiausiotipas := marsrutai[i].tipas;
           end;
    
       ilgis := 0;
       end;
    
       /////////////////////////////////////////////////////////////////Apskaičiuoja mažiausią atstumą
       trumpiausias := marsrutai[1].numeris;
       trumpiausioilgis := marsrutai[1].atstumai[1];
       trumpiausiotipas := marsrutai[1].tipas;
       for i := 1 to n do
       begin
           for j := 1 to marsrutai[i].stoteles - 1 do
           begin
               if marsrutai[i].atstumai[j] < trumpiausioilgis then
               begin
                  trumpiausias := marsrutai[i].numeris;
                  trumpiausioilgis := marsrutai[i].atstumai[j];
                  trumpiausiotipas := marsrutai[i].tipas;
               end
           end;
       end;
    
    
       /////////////////////////////////////////////////////////////////Išsaugo rezultatus
       assign(rez, 'C:\RezultataiMarsrutai.txt');
       rewrite(rez);
    
       if rezultatai[1].skaicius = 0 then
       Writeln(rez, 'autobusas      nėra') else
       Writeln(rez, 'autobusas      ', rezultatai[1].skaicius, ' ', rezultatai[1].ilgis);
    
       if rezultatai[2].skaicius = 0 then
       Writeln(rez, 'mikroautobusas nėra') else
       Writeln(rez, 'mikroautobusas ', rezultatai[2].skaicius, ' ', rezultatai[2].ilgis);
    
       if rezultatai[3].skaicius = 0 then
       Writeln(rez, 'troleibusas    nėra') else
       Writeln(rez, 'troleibusas    ', rezultatai[3].skaicius, ' ', rezultatai[3].ilgis);
    
       Writeln(rez, ilgiausiotipas, ' ', ilgiausias, ' ', ilgiausioilgis);
       Writeln(rez, trumpiausiotipas, ' ', trumpiausias, ' ', trumpiausioilgis);
    
       close(rez);
    end.

     

    Kaip galvojat, ar įmanoma gauti 20/25 taškų, jei palieki tokį plain kodą - be funkcijų, procedūrų ir pan? Vertinime rašo, kad duoda 20 taškų, jei programa pateikia teisingus visų testų rezultatus.

  12. Jei aš gerai supratau tavo užduotį, tai tarkim taip. Eilutė duomenų faile:

    Eilutespavadini 14      132    8       61    18   4

    Tai tuomet skaitai eilutę taip:

    read(duom, pavadinimas);  //pavadinimas string[15] tipo 
    for i := 1 to 6 do
     read(duom, mas[i]);  // mas - integer tipo masyvas
    

    Ačiū, bereikalo aš žaidžiau su tais tarpais visada, dabar supratau, kad galima daug paprasčiau užduotis išspręsti. :)

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