Grauznis Ierakstīts Augusts 16, 2014 Share Ierakstīts Augusts 16, 2014 Uzdevums : Sastādīt programmu, kas atrod dotā naturālā skaitļa ciparu summu; pēc tam – iegūtāskaitļa ciparu summu utt. Līdz palicis viens cipars. Mana programma: Program skaitlis; Var a : longint; Function sk( x : longint) : longint; Var t :longint; Begin t := 0; Repeat t := t + ( x mod 10); x:= x div 10; until x = 0; if (t < 10) then sk := t else sk(t); End; Begin readln(a); writeln(sk(a)); End. Programma drabojas skaitļiem, kā 25 , bet ievadot skaitli 976 izvada 0. Vai kāds varētu paskaidrot kāpēc tā? Pareizo rezultātu izdevās izvadīt ar šadu programmu : Program skaitlis; Var a : longint; Function sk( x : longint) : longint; Var t :longint; Begin t := 0; Repeat t := t + ( x mod 10); x:= x div 10; until x = 0; if (t < 10) then begin writeln(t); halt; end else sk(t); End; Begin readln(a); sk(a); End. Kāpēc pirmā programma nedarbojas nedorbojas? Link to comment Share on other sites More sharing options...
marrtins Augusts 16, 2014 Share Augusts 16, 2014 if (t < 10) then sk := t else sk(t); if (t < 10) then sk := t else sk:=sk(t); Link to comment Share on other sites More sharing options...
Grauznis Augusts 16, 2014 Author Share Augusts 16, 2014 Paldies! Nepamanīju. Link to comment Share on other sites More sharing options...
AndrisBB Augusts 16, 2014 Share Augusts 16, 2014 (labots) Neko nezinu par paskalu, bet man izskatas ka tu te neko neatgriez, ja izpildas ELSE if (t < 10) then sk := t else sk(t); Manuprat vajadzetu kka ta: if (t < 10) then sk := t else sk := sk(t); .... oi, sorry izskatas ka pa lenu domaju un rakstu Labots Augusts 16, 2014 - AndrisBB Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!