Programavimo pamokėlės

pamokelesm

Mokymų ciklas „Programavimo pamokėlės" skirtos visiems, kurie nori išmokti programuoti.

IT galvosūkiai

itgalvosukiai

Konkurso tikslas – skatinti moksleivius domėtis IT sprendžiant įvairiausius galvosūkius.

Informikas

informikasm

Konkurso tikslas – supažindinti moksleivius su menu informacinėse technologijose ir mūsų talismanu.

Dr. J. P. Kazicko konkursai

kkonkursai

Žemaitijos, Aukštaitijos, Suvalkijos ir Dzūkijos regionuose vykdomas IT konkursas.

       

Programuotojai sprendžia daug uždavinių, kuriuose reikia atlikti dalybos veiksmus su sveikaisiais skaičiais. Dalijant sveikuosius skaičius galima vartoti dvi dalybos operacijas.

Jei sveikąjį skaičių dalijame iš sveikojo ir norime gauti tik sveikąją dalmens dalį, tai vartosime operaciją /, jei norime gauti tik liekaną, vartosime operaciją %. Pvz.:

13 / 5 = 2; 13 % 5 = 3; 25 / 8 = 3; 25 % 8 = 1.

Jei a < b, tai a / b = 0, o a % b = a.

Jeigu yra daugiau nei viena dalybos ir daugybos operacija, tai jos atliekamos iš kairės į dešinę nuosekliai. Nei viena operacija neturi pirmenybės. Pvz.:

19 % 5 / 2 = 4 / 2 = 2; 14 / 3 % 2 = 0; 15 * 2 / 6 % 7 = 30 / 6 % 7 = 5 % 7 = 5.

Jei be dalybos ir daugybos operacijų yra sudėtis ir atimtis, tai tuomet reiškinys išskaidomas į du dėmenis. Pvz.:

10 / 6 % 3 + 4 * 3 % 5 = (10 / 6 % 3) + (4 * 3 % 5) = (1 % 3) +(12 % 5) = 1 + 2 = 3.

10 / 6 % 3 – 4 * 3 % 5 = (10 / 6 % 3) - (4 * 3 % 5) = (1 % 3) - (12 % 5) = 1 - 2 = -1.

Jei reiškinyje yra skliaustai, pirmiausiai atliekami veiksmai skliaustuose.

Rezultatas tokiais atvejais (čia I – sveikojo tipo kintamasis, R – realiojo tipo kintamasis):

Išnagrinėkime pavyzdį. Parduotuvėje pardavėja grąžą g litų (g – sveikasis skaičius) nori pirkėjui atiduoti 100, 50, 20, 10 Lt nominalo banknotais ir 5, 2, 1 lito monetomis jų nominalų mažėjimo tvarka. Reikia parengti programą, skaičiuojančią kiek kokio nominalo banknotų ir monetų pardavėja turės atiduoti pirkėjui. Pvz., jei pardavėja pirkėjui turi atiduoti g = 75 Lt grąžą, tai jai reikės vieno 50 Lt, vieno 20 Lt banknotų ir 5 Lt monetos.

Užduotis sprendžiama taip: pirmiausia imamas didžiausio nominalo banknotas (100 Lt), grąža dalijama iš 100 ir imama sveikoji dalmens dalis. Gautas rezultatas yra 100 Lt nominalo banknotų skaičius k100. Tada skaičiuojama, kokia pinigų suma liko neatiduota: grąža dalijama iš 100 ir imama dalmens liekana. Grąža gali būti skaičiuojama ir kitaip: g = g – k100*100. Veiksmai kartojami su visų nominalų banknotais ir monetomis.


Programa, skaičiuojanti pirkėjo grąžą.

//Grąža
#include 
using namespace std;
int main ()
{
    int g;
    int k100, k50, k20, k10, k5, k2, k1;
    cout << "Įveskite pirkėjo grąžą: "; cin >> g;
    k100 = g / 100; g = g % 100;
    k50  = g / 50;  g = g % 50;
    k20  = g / 20;  g = g % 20;
    k10  = g / 10;  g = g % 10;
    k5   = g / 5;   g = g % 5;
    k2   = g / 2;   g = g % 2;
    k1   = g;
    cout << "Pardavėja grąžą atiduos taip:" << endl;
    cout << "-----------------------------" << endl;
    cout << "100 Lt ------> " << k100 << endl;
    cout << " 50 Lt ------> " << k50 << endl;
    cout << " 20 Lt ------> " << k20 << endl;
    cout << " 10 Lt ------> " << k10 << endl;
    cout << "  5 Lt ------> " << k5 << endl;
    cout << "  2 Lt ------> " << k2 << endl;
    cout << "  1 Lt ------> " << k1 << endl;
    cout << "-----------------------------" << endl;
    return 0;
}

Įvykdę programą ir įvedę pradinius duomenis, ekrane matysite:

 

Į viršų