Главная страница

Язык Си. Алгоритм Свойства алгоритма дискретность состоит из отдельных шагов (команд) понятность


Скачать 4.66 Mb.
НазваниеАлгоритм Свойства алгоритма дискретность состоит из отдельных шагов (команд) понятность
Дата05.02.2023
Размер4.66 Mb.
Формат файлаppt
Имя файлаЯзык Си.ppt
ТипПрограмма
#921318
страница7 из 11
1   2   3   4   5   6   7   8   9   10   11

Цикл с переменной





Задача: вывести кубы натуральных чисел от 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 и наоборот возможна всегда!


!

1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта