Язык Си. Алгоритм Свойства алгоритма дискретность состоит из отдельных шагов (команд) понятность
Скачать 4.66 Mb.
|
Цикл с переменнойЗадача: вывести кубы натуральных чисел от 1 до 8. main() { int N, cubeN; N = 1; while ( N <= 8 ) { cubeN = N*N*N; printf("%4d\n", cubeN); N++; } } N = 1; N <= 8 N++; 3 действия с N Алгоритм (с блоком «цикл») начало N, cubeN конец cubeN = N*N*N; N = 1,8 блок «цикл» тело цикла Программа main() { int N, cubeN; for (i=1; i<=8; i++) { cubeN = N*N*N; printf("%4d %4d\n", N, cubeN); } } for (N=1; N<=8; N++) { cubeN = N*N*N;; printf("%4d %4d\n", N, cubeN); } переменная цикла начальное значение конечное значение изменение на каждом шаге: i=i+1 ровные столбики цикл работает, пока это условие верно цикл начало цикла конец цикла заголовок цикла for (N=1; N<=8; N++) cubeN = N*N*N; printf("%4d %4d\n", N, cubeN); тело цикла Цикл с уменьшением переменной Задача. Вывести на экран кубы целых чисел от 8 до 1 (в обратном порядке). Особенность: переменная цикла должна уменьшаться. Решение: for ( ) { cubeN = N*N*N; printf("%4d %4d\n", N, cubeN); } N = 8; N >= 1; N -- Цикл с переменной for (начальные значения; условие продолжения цикла; изменение на каждом шаге) { // тело цикла } Примеры: for (a = 2; a < b; a+=2) { ... } for (a = 2, b = 4; a < b; a+=2) { ... } for (a = 1; c < d; x++) { ... } for (; c < d; x++) { ... } for (; c < d; ) { ... } Цикл с переменной Особенности:
изменения (третья часть в заголовке) выполняются в конце очередного шага цикла; если условие никогда не станет ложным, цикл может продолжаться бесконечно (зацикливание) если в теле цикла один оператор, скобки {} можно не ставить: for(i=1; i<8; i++) { i--; } for (i = 1; i < 8; i++) a += b; Не рекомендуется менять переменную цикла в теле цикла! ! for (i=8; i>=1; i--) printf("Привет"); printf("i=%d", i); Цикл с переменной Особенности:
for (i=1; i<=8; i++) printf("Привет"); printf("i=%d", i); i=9 i=0 Сколько раз выполняется цикл? a = 1; for(i=1; i<4; i++) a++; a = 4 a = 1; b=2; for(i=3; i >= 1; i--)a += b; a = 7 a = 1; for(i=1; i >= 3; i--)a = a+1; a = 1 a = 1; for(i=1; i<= 4; i--)a ++; зацикливание a = 1; for(i=1; i<4; i++) a = a+i; a = 7 Замена for на while и наоборот for( i=1; i<=10; i++) { // тело цикла } i = 1; while ( i <= 10 ) { // тело цикла i ++; } for ( i=a; i>=b; i--) { // тело цикла } i = a; while ( i >= b ) { // тело цикла i --; } В языке Си замена цикла for на while и наоборот возможна всегда! ! |