Паскаль тілінде программалау


Паскаль тілінде программалау



бет4/8
Дата25.01.2017
өлшемі131,77 Kb.
#7898
түріПрограмма
1   2   3   4   5   6   7   8

Паскаль тілінде программалау

  • Тақырып 5. Шартты циклдер
  • Қадамдар саны белгісіз цикл
  • Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?
  • Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың санын анықтау.
  • Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз.
  • Мәселе: неше қадам жасау керектігі белгісіз.
  • Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0" болғанша орындай беру керек.
  • n
  • count
  • 123
  • 0
  • 12
  • 1
  • 1
  • 2
  • 0
  • 3
  • Алгоритм
  • басы
  • count
  • соңы
  • жоқ
  • иә
  • n <> 0?
  • count := 0;
  • count := count + 1;
  • n := n div 10;
  • цифрлардың санаушысын нөлге теңестіру
  • енгізу n
  • n <> 0“ болғанша орындай беру
  • Программа
  • program qq;
  • var n, count: integer;
  • begin
  • writeln(’Бүтін сан енгіз’);
  • read(n);
  • count := 0;
  • while n <> 0 do begin
  • count := count + 1;
  • n := n div 10;
  • end;
  • writeln( ’cанында’,count, ’цифр табылды’);
  • end.
  • while n <> 0 do begin
  • count := count + 1;
  • n := n div 10;
  • end;
  • , n1: integer;
  • n1 := n;
  • n1,
  • "n <> 0“ болғанша орындай беру
  • Шартты цикл
  • while <шарт> do begin
  • {цикл денесі}
  • end;
  • Ерекшеліктері:
    • күрделі шарттарды қолдануға болады:
    • егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
  • while (a
  • {цикл денесі}
  • end;
  • while a < b do
  • a := a + 1;
  • Шартты цикл
  • Ерекшеліктері:
    • циклге кірген сайын шарт есептеліп отырады
    • егер шарт циклге кіруде жалған болса, цикл бірде-бір рет орындалмайды
    • егер шарт түбінде жалған болмайтын болса, программаның жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)
  • a := 4; b := 6;
  • while a > b do
  • a := a – b;
  • a := 4; b := 6;
  • while a < b do
  • d := a + b;
  • Цикл неше рет орындалған?
  • a := 4; b := 6;
  • while a < b do a := a + 1;
  • 2 рет
  • a = 6
  • a := 4; b := 6;
  • while a < b do a := a + b;
  • 1 рет
  • a = 10
  • a := 4; b := 6;
  • while a > b do a := a + 1;
  • 0 рет
  • a = 4
  • a := 4; b := 6;
  • while a < b do b := a - b;
  • 1 рет b = -2
  • a := 4; b := 6;
  • while a < b do a := a - 1;
  • дағдарысқа ұшырау
  • For-ны while-ға ауыстыру және керісінше
  • for i:=1 to 10 do begin
  • {цикл денесі}
  • end;
  • i := 1;
  • while i <= 10 do begin
  • {цикл денесі}
  • i := i + 1;
  • end;
  • for i:=a downto b do
  • begin
  • {цикл денесі}
  • end;
  • i := a;
  • while i >= b do begin
  • {цикл денесі}
  • i := i - 1;
  • end;
  • while-ды for-ға , циклдегі қадамдар саны алдын ала белгілі болған жағдайда ғана ауыстыруға болады.
  • for-ны while –ауыстыруға қашанда болады.
  • Тапсырмалар
  • "4": Бүтін сан енгізіп, ондағы цифрлардың қосындысын табу.
  • Мысал:
  • Бүтін сан енгіз:
  • 1234
  • 1234 санындағы цифрлардың қосындысы 10-ға тең.
  • "5": Бүтін сан енгізіп, оның жазылуында бірдей цифрларлардың бар-жоғын анықтау.
  • Мысал:
  • Бүтін сан енгіз: Бүтін сан енгіз:
  • 1234 1224
  • Жоқ. Бар.
  • Тізбектер
  • Мысалдар:
    • 1, 2, 3, 4, 5, …
    • 1, 2, 4, 7, 11, 16, …
    • 1, 2, 4, 8, 16, 32, …
  • an = n
  • a1 = 1, an+1 = an+1
  • a1 = 1, an+1 = an + n
  • an = 2n-1
  • a1 = 1, an+1 = 2an
  • b1 = 1, bn+1 = bn+1
  • c1 = 2, cn+1 = 2cn
  • Тізбектер
  • Есеп: модулі бойынша 0,001-ден асып түсетін
  • тізбектегі барлық элементтердің қосындысын табу:
  • Тізбек элементтері (№2-ден бастап ):
  • n
  • 1
  • 2
  • 3
  • 4
  • 5
  • ...
  • b
  • 1
  • 2
  • 3
  • 4
  • 5
  • ...
  • c
  • 2
  • 4
  • 8
  • 16
  • 32
  • ...
  • z
  • -1
  • 1
  • -1
  • 1
  • -1
  • ...
  • b := b+1;
  • c := 2*c;
  • z := -z;
  • Алгоритм
  • басы
  • S
  • соңы
  • жоқ
  • иә
  • |a| > 0.001?
  • S := S + a;
  • S := 0; b := 1; c := 2; z := -1; a := 1;
  • бастапқы мәндер
  • a := z*b/c;
  • b := b + 1; c := 2*c; z := -z;
  • бірінші элемент
  • a := 1;
  • S := 0;
  • жаңа элемент
  • өзгеріс
  • Қайта қою керек пе?
  • ?
  • Программа
  • program qq;
  • var b, c, z: integer;
  • S, a: real;
  • begin
  • S := 0; z := -1;
  • b := 1; c := 2; a := 1;
  • while abs(a) > 0.001 do begin
  • S := S + a;
  • a := z * b / c;
  • z := - z;
  • b := b + 1;
  • c := c * 2;
  • end;
  • writeln('S =', S:10:3);
  • end.
  • z := - z;
  • b := b + 1;
  • c := c * 2;
  • S := 0; z := -1;
  • b := 1; c := 2; a := 1;
  • бастапқы мәндер
  • қосындының артуы
  • тізбек элементін есепке алу
  • Тапсырмалар
  • "4": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :
  • Жауап:
  • S = 1.157
  • "5": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :
  • Жауап:
  • S = 1.220
  • Соңғышартты цикл
  • Есеп: Бүтін оң сан енгізіп(<2000000), ондағы цифрлардың санын анықтау.
  • Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай қадағалауға болады?
  • Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді енгізу үшін кері оралу (цикл!).
  • Ерекшелігі: Цикл денесі кемінде бір рет орындалады. => шартын тексеруді циклдың соңында орындау керек. (соңғышартты цикл).
  • Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады.
  • Соңғышартты цикл: алгоритм
  • басы
  • соңы
  • иә
  • жоқ
  • n > 0?
  • цикл денесі
  • ШЫҒУДЫҢ шарты
  • «типтік процесс» блогі
  • енгізу n
  • Программа
  • program qq;
  • var n: integer;
  • begin
  • repeat
  • writeln('Введите положительное число');
  • read(n);
  • until n > 0;
  • ... { негізгі алгоритм }
  • end.
  • repeat
  • writeln(‘Оң сан енгіз');
  • read(n);
  • until n > 0;
  • until n > 0;
  • ШЫҒУДЫҢ шарты
  • Ерекшеліктері:
    • цикл денесі кемінде бір рет орындалады
    • until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады
  • Цикл неше рет орындалған?
  • a := 4; b := 6;
  • repeat a := a + 1; until a > b;
  • 3 рет
  • a = 7
  • a := 4; b := 6;
  • repeat a := a + b; until a > b;
  • 1 рет
  • a = 10
  • a := 4; b := 6;
  • repeat a := a + b; until a < b;
  • Мүдіріп қалу
  • a := 4; b := 6;
  • repeat b := a - b; until a < b;
  • 2 рет
  • b = 6
  • a := 4; b := 6;
  • repeat a := a + 2; until a < b;
  • Мүдіріп қалу
  • Тапсырмалар (бұрыс енгізуден қорғау)
  • "4": Натурал сан енгізіп, сол сандағы цифрлардың қосындысы 10-ға тең екендігінің дұрыстығын анықтау.
  • Мысал:
  • >= 0 сан енгіз: >= 0 сан енгіз:
  • -234 1233
  • Оң сан енгізу керек. Жоқ
  • >= 0 сан енгіз:
  • 1234
  • Иә
  • "5": Натурал сан енгізіп,қандай цифрлардың бірнеше рет кездесетіндігін анықтау.
  • Мысал:
  • >= 0 сан енгіз: >= 0 сан енгіз:
  • 2323 1234
  • 2, 3 қайталанады Қайталану жоқ.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет