Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
27.11.2024
Размер:
543.53 Кб
Скачать

Министерство образования и науки Российской Федерации Саратовский государственный технический университет им. Ю.А. Гагарина

Балаковский институт техники, технологии и управления

СИ: РАБОТА С ЦИКЛАМИ

Методические указания к выполнению практической работы по курсу

«Языки программирования» для студентов направления «Информационные системы и технологии» для всех форм обучения

Одобрено редакционно-издательским советом Балаковского института техники,

технологии и управления

Балаково 2015

ЦЕЛЬ РАБОТЫ Овладение практическими навыками разработки и реали-

зации циклических алгоритмов на языке Си

ОБЩИЕ ПОНЯТИЯ

Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного ис-

полнения набора инструкций. Также циклом может называться любая много-

кратно исполняемая последовательность инструкций, организованная любым способом (например, с помощью условного перехода).

Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла. Однократное выполнение тела цикла называется итерацией. Выражение определяющее, будет в очередной раз вы-

полняться итерация, или цикл завершится, называется условием выхода или

условием окончания цикла (либо условием продолжения в зависимости от того,

как интерпретируется его истинность — как признак необходимости завершения или продолжения цикла). Переменная, хранящая текущий номер итерации,

называется счѐтчиком итераций цикла или просто счѐтчиком цикла. Цикл не обязательно содержит счѐтчик, счѐтчик не обязан быть один - условие выхода из цикла может зависеть от нескольких изменяемых в цикле переменных, а может определяться внешними условиями (например, наступлением определѐнного времени), в последнем случае счѐтчик может вообще не понадобиться.

Исполнение любого цикла включает первоначальную инициализацию пе-

ременных цикла, проверку условия выхода, исполнение тела цикла и обновление переменной цикла на каждой итерации. Кроме того язык программирования Си предоставляет средства для досрочного завершения цикла, то есть выхода из цикла независимо от истинности условии выхода.

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

2

Цикл с предусловием — цикл, который выполняется, пока истинно неко-

торое условие, указанное перед его началом. Это условие проверяется до выпол-

нения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В языке программирования Си цикл с предусловием ре-

ализуется оператором while.

На рис.1 приведена блок-схема цикла с предусловием.

ложь

условие

истина

действие

Рис. 1. Блок-схема цикла с предусловием Оператор while имеет следующий формат: while(выражение)

{

тело цикла;

}

Схема выполнения оператора while следующая:

1.Вычисляется выражение.

2.Если выражение ложно, то выполнение оператора while заканчива-

ется и выполняется следующий по порядку оператор. Если выраже-

ние истинно, то выполняется тело оператора while.

3.Процесс повторяется с пункта 1.

Цикл с постусловием

Цикл с постусловием — цикл, в котором условие проверяется после вы-

полнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один

раз.

3

В трактовке условия цикла с постусловием в разных языках есть разли-

чия. В языке Си и его потомках условие такого цикла трактуется как условие продолжения (цикл завершается, когда условие ложно, такие циклы иногда называют «цикл пока»). В языке Си цикл с постусловием реализуется с помо-

щью операторов do-while.

На рис.2 приведена блок-схема цикла с предусловием.

 

действие

 

ложь

условие

истина

 

 

Рис. 2. Блок-схема цикла с постусловием Формат оператора do-while имеет следующий вид:

do

{

тело цикла;

} while(условие);

Схема выполнения оператора do-while:

1. Выполняется тело цикла (которое может быть составным операто-

ром).

2.Вычисляется выражение.

3.Если выражение ложно, то выполнение оператора do-while заканчи-

вается и выполняется следующий по порядку оператор. Если выра-

жение истинно, то выполнение оператора продолжается с пункта 1.

Цикл с заданным количеством итераций

Цикл с заданным количеством итераций (цикл со счѐтчиком) — цикл, в

4

котором некоторая переменная изменяет своѐ значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз. В языке Си реализуется опе-

ратором for, в котором указывается счѐтчик (так называемая «переменная цик-

ла»), требуемое количество проходов (или граничное значение счѐтчика) и шаг, с

которым изменяется счѐтчик.

На рис.3 приведена блок-схема цикла с заданным количеством итераций.

Нач;Кон;Шаг

действие

Рис. 3. Блок-схема цикла с заданным количеством итераций Синтаксис организации оператора цикла for:

for(выражение1; выражение2; выражение3)

{

тело цикла;

}

Выражение1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение2 - это выражение, определяю-

щее условие, при котором тело цикла будет выполняться. Выражение3 опреде-

ляет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

Оператор for имеет следующую схему выполнения:

Вычисляется выражение1.

Вычисляется выражение2.

Если значения выражения2 отлично от нуля (истина), выполняется опера-

5

тор, вычисляется выражение3 и осуществляется переход к пункту 2, если выра-

жение2 равно нулю (ложь), то оператор цикла завершается и управление переда-

ется на оператор, следующий за оператором for.

Пример программы вычисления факториала числа

#include <stdio.h> void main()

{

int factor, digit, count; printf(“Введите целое число:”); scanf(“%d”, &digit);

factor = 1;

for(count = 1; count < factor; count++)

{

factor *= count;

}

printf(“Факториал числа %d равен %d”, digit, factor);

}

ТЕХНОЛОГИЯ РАБОТЫ Применение цикла с заданным количеством итераций

Написать программу, которая выводит таблицу значений функции

y 2.4x 2 5x 3 в диапазоне от -2 до 2, с шагом 0,5. Рекомендуемый вид экрана

во время работы программы:

 

x

y

-2

-22.60

-1.5

-15.90

-1

-10.40

-0.5

-6.10

6

0 -3.00

0.5 -1.10

1

-0.40

1.5

-0.90

2

-2.60

Составим блок схему решения данной задачи, приведенную на рисунке 4.

1 начало

2 x=-2,2,0.5

3 x

4 y 2.4x2 5x 3

5 y

6 конец

Рис. 4 – блок схема решения задачи при помощи цикла с заданным количеством итераций

В данной блок схеме:

Блок 1 – Начало алгоритма.

Блок 2 – Начало цикла с заданным количеством итераций, переменная цикла х меняется от -2 до 2 с шагом 0.5.

Блок 3 – Вывод текущего значения переменной цикла х на экран.

7

Блок 4 – Вычисление значение функции у в зависимости от текущего значения х.

Блок 5 – Вывод полученного значения функции у на экран.

Блок 6 – Конец алгоритма.

Запустить MS VS 2005 (Пуск - Microsoft Visual Studio 2005), создать но-

вый проект для этого:

1.В диалоговом окне Начальная страница (Start Page) нажать кнопку Create Project.

2.В появившемся диалоговом окне New Project выполнить следующие дей-

ствия:

В поле Name задать имя создаваемого проекта,

В поле Location установить папку для размещения файлов проекта ;

В области Project Types выбрать вариант Visual C++ Projects,

В области Templates выбрать вариант Win32 Console Application.

Нажать кнопку ОК

Ввести программный код на языке программирования СИ:

//таблица функции

#include <stdio.h> #include <conio.h>

#define

LB -2.0 //нижняя граница диапазона изменений аргумента

#define

HB

2.0 //верхняя граница диапазона изменений аргумента

#define

DX

0.5 //приращение аргумента

void main()

 

 

 

{

 

 

 

 

float x,y; //аргумент и значение функции

 

int n; //количество точек

 

 

int i; // счетчик циклов

 

 

n=(HB-LB)/DX+1;

 

 

x=LB;

 

 

printf (―----------------------------

\n―);

8

printf (―

x

|

y\n‖);

 

printf (―----------------------------

 

 

 

\n―);

for (i=1; i<=n; i++)

 

 

{

 

 

 

 

y=-2.4*x*x+5*x-3;

 

printf (%6.2f

|

%6.2f\n‖,x,y);

x+=DX;

 

 

 

}

 

 

 

 

printf (―----------------------------

 

 

 

\n―);

printf (―\nДля завершения нажмите <Enter>‖); getch ();

}

Запустить программу нажатием кнопки Start или F5. Если в программном коде не обнаружено ошибок, получим искомый результат.

Применение цикла с предусловием

Составить программу, которая выводит на экран таблицу значений функции y 2x 2 5x 8 в диапазоне от -4 до 4. Шаг изменения аргумента 0,5.

Составим блок схему решения данной задачи, приведенную на рисунке 5.

9

1 начало

2 x1=-4

3x2=4

4dx=0.5

5x=x1

6

x<=x2

нет

 

да

 

7

x

 

8 y 2x 2 5x 8

9 y

10 x+=dx

11 конец

Рис. 5 - блок схема решения задачи при помощи цикла с предусловием В данной блок схеме:

Блок 1 – начало алгоритма.

Блок 2 – определение начального значения переменной х.

10

Соседние файлы в папке 2к3с Языки программирования