Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
а и п СИ.doc
Скачиваний:
57
Добавлен:
07.06.2015
Размер:
2.32 Mб
Скачать

Алгоритм работы оператора цикла for ():

  1. Вычисляется первое выражение (если оно присутствует).

  2. Вычисляется второе выражение (если оно присутствует), проверяется условие окончания цикла:(<выражение 2>= = “ Ложно ”) т.е. Если оно не равно (“Истинно”) – происходит переход к пункту 3, иначе выход из цикла.

  3. Исполняется тело цикла.

  4. Вычисляется третье выражение, если оно присутствует.

  5. Переход к пункту 2.

Появление в любом месте тела цикла оператора continue - приводит к прекращению выполнения операторов в теле цикла 4 немедленному переходу к шагу 2.

Выход из цикла возможен аналогично while с помощью операторов break, goto, return.

Пример 1 (вариант 1) (вариант 2)

#include <stdio.h>

void main (void)

{// Программа выводит четные числа

//в диапазоне от 100 до 0, в порядке // убывания.

for (int i=100;i>=0;i-=2) printf("\n%d",i);

} i - =2

f r (i=100; i>=0; i--)

if (i%2= =1) continue;o // оператор

// continue прерывает текущую

// итерацию

else printf("\n%d",i);

Для демонстрации гибкости оператора for перепишем пример в следующем виде (вариант 3):

for(int i=100;i>=0; printf("\n%d",i), i - =2);

              1. Пример

/* ЗАНЯТИЕ N 4

Разработал ...........

Cтрока символов записывается в обратном порядке с

применением различных операторов организации циклов */

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

# define N 23

main()

{int t,b;

char string[]="\"Инициализация строки\"";

char m;

clrscr();

// Цикл for -с предусловием

printf("Вывод исходной строки\n");

for (t=0;t<N;t++)

printf("%c ",string[t]);

for (t=0,b=N-2;t<(N-1)/2;t++,b--)

{m=string[t];

string[t]=string[b];

string[b]=m;

}

printf("\nВывод строки в обратном порядке\n");

for (t=0;t<N;t++) printf("%c ",string[t]);

printf("\nВвод новой строки -y, нет-n:\t");

m=getche();

if(m!='n')

new_str: scanf("%s",string);

else printf("\n");

// Цикл while -с предусловием

t=0;

while(string[t]!='\0')

{printf("%c",string[t]);

t++;

}

printf("\nКоличество символов =%2d\n",t);

// Цикл d0...while -с постусловием

printf("Вывод строки в обратном порядке\n");

b=t-1;t=0;

do

{m=string[t];

string[t]=string[b];

string[b]=m;

t++;b--;

}while(t<b);

printf("%s ",string);

printf("\nВвод новой строки -y, нет-n:\t");

m=getche();

if(m=='y') goto new_str; //new_str -метка

else getch();

}

/* Вывод исходной строки

" И н и ц и а л и з а ц и я с т р о к и "

Вывод строки в обратном порядке

" и к о р т с я и ц а з и л а и ц и н И "

Ввод новой строки -y, нет-n: n

"икортс яицазилаицинИ"

Количество символов =22

Вывод строки в обратном порядке

"Инициализация строки"

Ввод новой строки -y, нет-n: y

qwert12345

Количество символов =10

Вывод строки в обратном порядке

54331trewq

Ввод новой строки -y, нет-n: n */

              1. Ход работы

  1. По индивидуальному заданию преподавателя составить программу с различными вариантами применения операторов цикла: while, do… while, for. Предусмотреть дополнительные возможности выхода из циклов (операторы break, goto).

  2. Набрать программу на компьютере, выявить и устранить ошибки.

  3. Ознакомиться с работой операторов цикла в языке С.

  4. Получить результаты работы программы.

  5. Оформить отчет и сделать выводы о проделанной работе, изучив контрольные вопросы по теме.

Соседние файлы в предмете Алгоритмизация и программирование