Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, norėčiau, kad jūs ištaisytumėt mano padarytas klaidas programose. Pateiksiu ir išeities tekstus ir užduotis su pavyzdžiais. Ačiū visiems padėjusiems. Beje, būtų labai ačiū, jeigu netik kodą ištaisytumėt, bet dar ir pakomentuotumėt, kas per bėdos buvo. :) Salygos pridėtame pdf

 

2. Kalendorius

program Kalendorius;
   Procedure dienos31 (metai, menuo, diena: integer);
   var Rezultatai : text;
       rezul : string;
       begin
        rezul := 'rezultatai.txt';
       Assign (Rezultatai, rezul);
       Rewrite (Rezultatai);
           diena := diena + 1;
           if diena > 31 then
               begin
                   if menuo = 12 then
                       begin
                           diena := diena - 31;
                           menuo := menuo - 11;
                           metai := metai + 1;
                       end
                   else begin
                       diena := diena - 31;
                       menuo := menuo + 1;
                   end;
               end;
       end;
   Procedure dienos30 (metai, menuo, diena:integer);
   var Rezultatai : text;
       rezul : string;
       begin
        rezul := 'rezultatai.txt';
       Assign (Rezultatai, rezul);
       Rewrite (Rezultatai);
           diena := diena + 1;
           if diena > 30 then
               begin
                   diena := diena - 30;
                   menuo := menuo + 1;
               end;
       end;
   Procedure Vasaris (metai, menuo, diena:integer);
   var Rezultatai : text;
       rezul : string;
       begin
       rezul := 'rezultatai.txt';
       Assign (Rezultatai, rezul);
       Rewrite (Rezultatai);
       diena := diena + 1;
       if metai mod 4 = 0 then
           if diena > 29 then
               begin
                   diena := diena - 29;
                   menuo := menuo + 1;
               end
           else if diena > 28 then
               begin
                   diena := diena - 28;
                   menuo := menuo + 1;
               end;
               writeln (Rezultatai, metai, menuo, diena);
       end;
   var metai, menuo, diena, i, n: integer;
       Pradiniai, Rezultatai: text;
       duomenys, rezul: string;
begin
   rezul := 'rezultatai.txt';
   duomenys := 'duomenys.txt';
   Assign (Pradiniai, duomenys);
   reset(Pradiniai);
   Assign (Rezultatai, rezul);
   rewrite (Rezultatai);
   read (Pradiniai, metai, menuo, diena);
   n := 12;
   if menuo = 2 then Vasaris (metai, menuo, diena)
   else begin
       if menuo = 1 then dienos31(metai, menuo, diena)
       else begin
   for i := 1 to n do
   begin
   if menuo = 2 then Vasaris (metai, menuo, diena)
   else
       begin
       if i <=7 then
           if i mod 2 = 0 then
               if menuo = i then dienos30(metai, menuo, diena)
               else dienos31(metai, menuo, diena);
       if i > 7 then
           if i mod 2 = 0 then
               if menuo = i then dienos31 (metai, menuo, diena)
               else dienos30(metai, menuo, diena);
               end;
           end;
       end;
   end;
   readln;
end.

 

3. Slaptažodis

program slaptaodis;
   procedure ilgis(slaptazodis:string; var ats1 : boolean);
       var s : integer;
       begin
       s := Length(slaptazodis);
       if (s >= 5) and (s <= 20) then ats1 := true
                                 else ats1 := false
       end;
   procedure raides (slaptazodis: string; var ats2 : boolean);
       begin

       end;
   procedure simboliai (slaptazodis : string; var ats3 : boolean);
   var s, i :integer;
       begin
       s := length(slaptazodis);
        for i := 1 to s-1 do
           begin
               if slaptazodis[i] = slaptazodis[i+1] then ats3 := false
                                             else ats3 := true;
           end;
       end;
   var duomenys, rezultatai:text;
       slaptazodis, rezult: string;
       ats1, ats2, ats3 : boolean;
begin
   Assign (duomenys, 'duomenys.txt');
   Reset (duomenys);
   Assign (rezultatai, 'rezultatai.txt');
   Rewrite (rezultatai);
   Read (duomenys, slaptazodis);
   ilgis (slaptazodis, ats1);
   simboliai (slaptazodis, ats3);
   if (ats1 = true) and (ats2 = true) and (ats3 = true)
       then writeln (rezultatai, 'TAIP')
       else writeln (rezultatai, 'NE');
end.

2008_I_etapas_jau.pdf

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas.

 

Slaptažodžio programoje, kaip matau, pagrinde pritrūkai vienos procedūros, kaip patikrinti, ar yra ir skaičius, ir didžioji, ir mažoji raidė slaptažodyje. Tai turėtų atrodyti maždaug taip:

procedure raides (slaptazodis: string; var ats2 : boolean);
var didzioji, mazoji, skaicius: boolean;
s, i: integer;
begin
didzioji := false;
mazoji := false;
skaicius := false;
s := length(slaptazodis);
for i := 1 to s do
	begin
		if (slaptazodis[i]>='0') and (slaptazodis[i] <='9')
			then skaicius := true;
		if (slaptazodis[i]>='A') and (slaptazodis[i] <='Z')
			then didzioji := true;
		if (slaptazodis[i]>='a') and (slaptazodis[i] <='z')
			then mazoji := true;
	end;
if (skaicius and didzioji and mazoji) then ats2 := true
									  else ats2 := false;
end;

Šiaip būčiau rašęs funkciją, bet kadangi Tu visur rašei procedūras, tai ir aš tokiu stiliumi padariau. :)

 

Ir dar pora smulkių klaidelių ten buvo:

- tikrindamas ilgį tikrini (s >= 5) and (s <= 20), nors pagal sąlygą maksimumas 12. :)

- neuždarai duomenų failų. Inputo neuždarymas šiaip nieko labai baisaus (nors vistiek būtų geriau uždaryti), tačiau neuždaromas outputas dažniausiai net neįrašo rezultatų, tad čia jau reikia nepamiršti close(rez); parašyti. :D

 

Pirmos programos tiesą sakant nelabai supratau. Kažkaip per sudėtingai ten Tu viską tikrini, per daug kartų į rezultatų failą įrašinėji... :(

 

P.S. Pasižiūrėk vyresnių klasių užduotis. Ten pats kodas ko gero lengvesnis dar turėtų gautis, labiau ant mąstymo užduotis paremtos, o šiaip į 10-20 eilučių visas sprendimas sutelpa. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Supranti Rimai, yra tokia bėda, kad man kažkodėl vykdant programą su kalendorium meta klaidą, kad negali įrašinėt į failą.. Man tai ir yra svarbiausia..

 

nes neuzdarai failo pabaigoj, ar nea?

 

as tai ir pamenu, kai kazkada reikejo rasyt programa, viskas veike, poto netycia nutryniau pabaiga.. tai nezinau kiek laiko ieskojau, vos neperasiau koda, kol supratau, kad failo neuzdarau..

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