6. Skaičiaus skaitmenys | |||
Kompiuteryje skaičiai koduojami dvejetaine skaičiavimo sistema, todėl skaičiai būna sudaryti iš skaitmenų 0 ir 1. Norint nagrinėti dešimtainėje skaičiavimo sistemoje užrašytų skaičių skaitmenis, tenka naudotis div ir mod operacijomis. Uždaviniai, kuriuose atliekami veiksmai su skaičiaus skaitmenimis, lavina algoritminį mąstymą ir sudaro didelę grupę klasikinių mokomųjų programavimo uždavinių. Pastebėkime tokias operacijų div ir mod savybes:
Išnagrinėsime programą, kuri skaičiuoja skaičiaus skaitmenų sumą. Su operacija mod 10 atskirsime skaičiaus skaitmenis, sumuosime, o su operacija div 10 atmesime jau susumuotus skaitmenis.
program sksum;
var n, sum, sk : integer; begin sum := 0; read(n); while n > 0 do begin sk := n mod 10; sum := sum + sk; n := n div 10 end; writeln ('sum = ', sum) end. 1 tikrinamasis darbas Pvz. 6.2 Sudėtingesnis pavyzdys, nors pati programa trumpa ir aiški. Parašykime programą, kuri rastų bet kokio skaičiaus pirmą ir paskutinį skaitmenis.
program pirmpassk;
var n, pirm, pask : integer; begin read(n); pask := n mod 10; while n > 9 do n := n div 10; pirm := n; writeln ('pirm = ', pirm, ', pask = ', pask) end. Užduotys Nr. 1 Pakeiskite pvz. 6.1 programą, kad ji skaičiuotų visų skaičiaus skaitmenų sandaugą. Nr. 2 Parašykite programą, kuri skaičiuotų:
Parašykite programą, kuri rastų, kiek įvestas skaičius turi skaitmenų ir apskaičiuotų jų sumą bei sandaugą. Nr. 4 Parašykite programą, kuri rastų įvesto skaičiaus pirmo ir paskutinio skaitmenų sumą bei sandaugą. Nr. 5 Parašyta programa, kuri duotą skaičių užrašo atbulai (pvz. iš duoto skaičiaus 4798 gauna 8974). Sutvarkykite ją ir išbandykite.
program atbulas; var ..., atb : longint; begin read(...); atb := ...; while n > 0 do begin atb := atb * ... + ... mod 10; n := ... div ... end; writeln( atb = , ...) end. Nr. 6 Parašykite programą, kuri sudėtų skaičių su skaičiumi, gautu jį užrašius atbulai (pvz. duotą skaičių 4798 sudeda su skaičiumi 8974). |
|||