Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Теоретическая часть. 4.1.1. Циклические алгоритмы




4.1.1. Циклические алгоритмы.

 

Цикл – это последовательность действий, которая может выполняться более одного раза.

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Имеется 3 вида циклов:

- цикл с предусловием;

- цикл с постусловием;

- цикл со счетчиком (счетный цикл).

Если выполнение цикла связано с каким-либо логическим условием, то используются циклы с предусловием или с постусловием.

Циклы со счетчиком представляют такой класс, в котором выполнение тела цикла должно повторяться заранее определенное число раз.

Блок-схемы циклических алгоритмов выглядят следующим образом:

1. Цикл со счетчиком.

2. Цикл с предусловием. 3. Цикл с постусловием.

4.1.2 Операторы цикла в языке программирования C++.

 

В C++ для каждого вида цикла имеется соответствующий оператор:

- цикл типа while (с предусловием);

- цикл типа do…while (с постусловием);

- цикл типа for (счетный).

 

1.Оператор цикла типа while

Форма записи:

while (условие) оператор;

где: (условие) – логическое выражение;

оператор – выполняемый в цикле оператор или тело цикла.

Если тело цикла представляет собой составной оператор, то его нужно заключить в операторные скобки{...}:

while (условие)

{

группа операторов

}

Схема работы такого цикла: пока условие является истинным (true), выполняется тело цикла и снова проверяется условие и т.д. Когда условие станет ложным (false) цикл завершает работу.

2. Оператор цикла типа do…while

Форма записи:

do

оператор;

while (условие);

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

Если тело цикла представляет собой составной оператор, то, как и для цикла с предусловием, его нужно заключить в операторные скобки{...}:

do

{

группа операторов

}

while (условие);

3. Оператор цикла типа for

Форма записи:

for (A;B;C)

оператор;

A – начальное выражение, которое задает начальные значения параметру цикла и при необходимости начальные значения другим параметрам. Например:

i=0, x=0.5, p=1, s=0

B – условное выражение, которое проверяет условие продолжения работы цикла. Например:

x<=5

C – выражение приращения, которое задает приращение параметру цикла и при необходимости другим параметров, тогда они записываются списком. Например: x+=0.1, i++

4.1.3 Пример составления алгоритма и программы на языке C++ для циклического вычислительного процесса.

Задание:

Вычислить значение выражения:

b – исходная величина, ее значение вводятся с клавиатуры и не изменяется;

a – изменяется в диапазоне [0;10] с шагом 1;

y – результат, его значения выводятся на экран.

Решение.

Исходя из условия задания переменная a является целочисленной, поэтому может быть использована в качестве счетчика в счетном цикле.

Блок-схема алгоритма решения данной задачи с использованием счетного цикла выглядит следующим образом:

Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом:

#include <conio.h>

#include <math.h>

#include <stdio.h>

int main()

{ int a;

float b,y;

clrscr();

printf(“Введите b: “);

scanf(“%f”,&b);

printf(“ a y\n”);

for (a=0;a<=10;a++)

{

printf(“%3d”,a);

if (a>b)

{

y=1.2*a+3*b;

printf(“%8.2f\n”,y);

}

else

{

if (a>0)

{

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

}

else printf(“ y не существует\n”);

}

}

getch();

return 0;

}

 

Блок-схема алгоритма решения данной задачи с использованием цикла с предусловием выглядит следующим образом:

Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом:

#include <conio.h>

#include <math.h>

#include <stdio.h>

int main()

{ int a;

float b,y;

clrscr();

printf(“Введите b: “);

scanf(“%f”,&b);

a = 0;

printf(“ a y\n”);

while(a<=10)

{

printf(“%3d”,a);

if (a>b)

{

y=1.2*a+3*b;

printf(“%8.2f\n”,y);

}

else

{ if (a>0)

{

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

}

else printf(“ y не существует\n”);

}

a=a+1;

}

getch();

return 0;

}

 

Блок-схема алгоритма решения данной задачи с использованием цикла с постусловием выглядит следующим образом:

 

 

Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом:

#include <conio.h>

#include <math.h>

#include <stdio.h>

int main()

{ int a;

float b,y;

clrscr();

printf(“Введите b: “);

scanf(“%f”,&b);

a = 0;

printf(“ a y\n”);

do

{

printf(“%3d”,a);

if (a>b)

{

y=1.2*a+3*b;

printf(“%8.2f\n”,y);

}

else

{ if (a>0)

{

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

}

else printf(“ y не существует\n”);

}

a=a+1;

}

while(a<=10);

getch();

return 0;

}

 




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 477; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.