|
Паскаль тілінде программалау
|
бет | 4/8 | Дата | 25.01.2017 | өлшемі | 131,77 Kb. | | #7898 | түрі | Программа |
| - Тақырып 5. Шартты циклдер
- Қадамдар саны белгісіз цикл
- Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?
- Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың санын анықтау.
- Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз.
- Мәселе: неше қадам жасау керектігі белгісіз.
- Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0" болғанша орындай беру керек.
- count := count + 1;
- n := n div 10;
- цифрлардың санаушысын нөлге теңестіру
- “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;
- "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;
- a := 4; b := 6;
- while a < b do a := a + b;
- a := 4; b := 6;
- while a > b do a := a + 1;
- a := 4; b := 6;
- while a < b do b := a - b;
- 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, …
-
- Есеп: модулі бойынша 0,001-ден асып түсетін
- тізбектегі барлық элементтердің қосындысын табу:
- Тізбек элементтері (№2-ден бастап ):
- S := 0; b := 1; c := 2; z := -1; a := 1;
- a := z*b/c;
- b := b + 1; c := 2*c; z := -z;
- 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), ондағы цифрлардың санын анықтау.
- Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай қадағалауға болады?
- Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді енгізу үшін кері оралу (цикл!).
- Ерекшелігі: Цикл денесі кемінде бір рет орындалады. => шартын тексеруді циклдың соңында орындау керек. (соңғышартты цикл).
- Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады.
- Соңғышартты цикл: алгоритм
- program qq;
- var n: integer;
- begin
- repeat
- writeln('Введите положительное число');
- read(n);
- until n > 0;
- ... { негізгі алгоритм }
- end.
- repeat
- writeln(‘Оң сан енгіз');
- read(n);
- until n > 0;
- Ерекшеліктері:
- цикл денесі кемінде бір рет орындалады
- until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады
- Цикл неше рет орындалған?
- a := 4; b := 6;
- repeat a := a + 1; until a > b;
- a := 4; b := 6;
- repeat a := a + b; until a > b;
- a := 4; b := 6;
- repeat a := a + b; until a < b;
- a := 4; b := 6;
- repeat b := a - b; until a < b;
- 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 қайталанады Қайталану жоқ.
Достарыңызбен бөлісу: |
|
|