Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование программ и программирование на С++ Часть 1. Структурное.pdf
Скачиваний:
18
Добавлен:
15.11.2022
Размер:
3.8 Mб
Скачать

f o r (d = 1 0 0 .0 ; d < 1 5 0 . 0 ; d * = l . 1 ) /^ к о р р е к ц и я с по­

мощью ум н ож ени я*/

 

{

 

 

о п е р а т о р ;

 

}

 

 

5 .

 

 

f o r

(x = l;y < = 7 5 ;y = 5 * (x + + )+ 1 0 )/^ к о р р е к ц и я

с по­

мощью

ар и ф м е ти ч ес к о го вы раж ен и я*/

 

{

 

 

о п е р а т о р ;

 

}

 

 

6 .

 

 

f o r

(х= 1, у= 0 ; х < 1 0 ; х++; у+=х) ; ^ и с п о л ь з о в а н и е

н е с к о л ь к и х корректирую щ их выраж ений, тел о

цикла

о т с у т с т в у е т * /

 

 

10.6. Операторы перехода

Операторы перехода выполняют безусловную передачу управления.

b r e a k - оператор прерывания цикла.

{

 

 

о п е р а т о р ;

 

i f

(<вы раж ение__условие>)

b r e a k ;

о п е р а т о р ;

 

}

 

 

Таким образом, оператор b r e a k

целесообразно использовать, ко­

гда условие продолжения итераций надо проверять в середине цикла.

/* Н ай ти

сумму

ч и с е л ,

ч и с л а

в в о д я т с я

с клави а­

туры

до

т е х

п о р ,

п о ка не

б у д е т

в вед ен о

100 чисел

или

0 . * /

 

 

 

 

 

f o r ( s = 0 ,

i = l ;

i< 1 0 0 ;i+ + )

 

 

{

 

 

 

 

 

 

c in > > x ;

 

 

 

 

 

i f (

x==0) b r e a k ; /* е с л и в вел и 0, то

суммирова­

ние

з а к а н ч и в а е т с я * /

 

 

 

s+ = x ;

}

t i n u e

- переход к следующей итерации цикла. Он ис­

пользуется, когда тело цикла содержит ветвления.

 

//Н а й т и

к о л и ч еств о и сумму

полож ительных

чисел

f o r (

k=0, s = 0 , х =1 ; х !=0;)

 

 

{

 

 

 

 

 

 

c in > > x ;

 

 

 

 

i f

(x<=0)

c o n tin u e ;

 

 

k++;

s+=x;

 

 

 

}

 

 

 

 

 

 

g o to

<метка> - передает управление оператору,

который

содержит метку.

 

 

 

В

теле

той

же функции должна

присутствовать конструкция

< м етк а> : о п ер ат о р ;

 

 

Метка - это обычный идентификатор, областью видимости кото­ рого является функция. Оператор g o to передает управления операто­ ру, стоящему после метки. Использование оператора g o to оправдано, если необходимо выполнить переход из нескольких вложенных циклов или переключателей вниз по тексту программы или перейти в одно место функции после выполнения различных действий.

Применение g o to нарушает принципы структурного и модуль­ ного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и только один выход.

Нельзя передавать управление внутрь операторов i f , s w itc h и циклов. Нельзя переходить внутрь блоков, содержащих инициали­ зацию, на операторы, которые стоят после инициализации,

i n t

к;

g o to

ш;

int a=3,b=4;

к=а+Ь;

m: int с=к+1;

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

• r e t u r n - оператор возврата из функции. Он всегда заверша­ ет выполнение функции и передает управление в точку ее вызова.

Вид оператора:

r e t u r n [вы р аж ен и е];

11. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ОСНОВНЫХ ОПЕРАТОРОВ C++

Решение задач по программированию предполагает выполнение ряда этапов:

1. Разработка математической модели. На этом этапе определя­ ются исходные данные и результаты решения задачи, а также мате­ матические формулы, с помощью которых можно перейти от исход­ ных данных к конечному результату.

2.Разработка алгоритма. Определяются действия, выполняя ко­ торые можно будет от исходных данных придти к требуемому ре­ зультату.

3.Запись программы на некотором языке программирования. На этом этапе каждому шагу алгоритма ставится в соответствие конст­ рукция выбранного алгоритмического языка.

4.Выполнение программы (исходный модуль -» компилятор ->

-> объектный модуль —>компоновщик —> исполняемый модуль).

5. Тестирование и отладка программы. При выполнении про­ граммы могут возникнуть ошибки трех типов:

-синтаксические - исправляются на этапе компиляции;

-исполнения программы (деление на 0, логарифм от отрица­

тельного числа и т.п.) - исправляются при выполнении программы;

- семантические (логические) ошибки - появляются из-за не­ правильно понятой задачи, неправильно составленного алгоритма.

Чтобы устранить эти ошибки, программа должна быть выполне­ на на некотором наборе тестов. Цель процесса тестирования - опре­ деление наличия ошибки, нахождение места ошибки, ее причины и соответствующие изменения программы - исправление. Тест - это набор исходных данных, для которых заранее известен результат. Тест, выявивший ошибку, считается успешным. Отладка программы заканчивается, когда достаточное количество тестов выполнилось неуспешно, т.е. программа на них выдала правильные результаты.

Для определения достаточного количества тестов существует два подхода. При первом подходе программа рассматривается как «черный ящик», в который передают исходные данные и получают результаты. Устройство самого ящика неизвестно. При этом подходе, чтобы осуществить полное тестирование, надо проверить программу на всех входных данных, что практически невозможно, поэтому

Математическая модель:

Ок=1 || II || III || VI, где I, II, III, IV - условия попадания точки в заштрихованную область для каждого квадранта.

Квадрант I: Область формируется прямыми ОХ и 0Y, прямой, проходящей через точки (0, 1) и (1, 0) и прямой, проходящей через

точки (0, 3) и (2, 0).

Необходимо определить уравнения прямых у = ах + Ь. Решаем

две системы уравнений:

 

1 )

1 = а - 0 + Ь ;0 = а

1 +Ь;

2 )

2 = а*0 + Ь ;0 = а

3 + Ь;

Из этих систем получаем следующие уравнения прямых:

У= -1 х + 1;

у= -2/3 х + 1;

Тогда условие попадания точки в I квадрант будет выглядеть сле­ дующим образом:

у>=-х+1&&у<=-2/Зх+2&&у>=0&&х>=0.

Квадранты II и III: Область формируется прямыми ОХ и 0У

и двумя окружностями, описываемыми формулами х2 + у2

1,

х2 + у2- 9 .

Тогда условие попадания точки во II и III квадранты будет вы­ глядеть следующим образом:

х2+у2>=1&& х2+у2<=9&&&&х<=0.

Квадрант IV: Область формируется двумя прямоугольниками. Точка может попадать либо в первый прямоугольник, либо во второй.

Условие попадания точки в IV квадрант будет выглядеть сле­ дующим образом:

(х>=0&&х<= 1&&у<=-1 &&у>=-3)|| (х>=1&&х<=3&&у<=0&&у>=-3).

Программа:

#include ciostream.h> #include <math.h>

void main()

{

float x,y; cout<<"\nEnter x, y"; cin>>x»y;

bool Ok=(y>=-x+l&&y<=2/3*x+2&&x>=0&&y>=0) II

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]