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

(pow(x,2)+pow(y,2)>=l&&pow(x,2)+pow(y,2)<=9&&x<=0)||

(х>=0&&х<=1&&у<=-1&&у>=-3) || (х>=1&&х<=2&&у<=0&&у>=-3); cout<<"\n"<<Ok;

Тесты:

Квадрант

Исходные

Результат (ОК)

данные (X; Y)

 

 

I

0.2; 0.2

0

I

0.7; 0.5

1

II

-0.5; 0.5

0

II

-2.0; 0.0

1

III

-0.5; -0.5

0

III

-2.0; -1.0

1

IV

0.5;-0.5

0

IV

1.5; -1.0

1

Центр системы

0.0; 0.0

0

координат

 

 

11.2. Программирование арифметических циклов

Для арифметического цикла заранее известно, сколько раз вы­ полняется тело цикла.

Задача № 2. Дана последовательность целых чисел из п элемен­ тов. Найти среднее арифметическое этой последовательности.

#include ciostream.h> #include <math.h> void main()

{

int a,n,i;

double s=0; /^инициализируем переменную на­

чальным значением*/

c o u t < < " \ n E n t e r n";

cin>>n; /^вводим количество элементов в по­

следовательности */

for(i=l;i<=n;i++)// цикл выполняется п раз

{

cout«"\nEnter а";

cin>>a; // вводим переменную s+=a;/^добавляем значение пере­

менной к сумме*/

 

}

 

 

 

 

 

 

 

 

s = s / n ; //н а х о д и м

с р е д н е е ариф м етическое

 

c o u t c c " Х псреднее

ар и ф м ети ч еско е

р а в -

HO=,f« s « ,f\ n ff ;

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

Задача № 3. Найти значение S = l + 2

+ 3 + 4 + . .. + N

 

 

# i n c l u d e c i o s t r e a m .h >

 

 

 

 

 

# i n c l u d e < m a th .h >

 

 

 

 

 

 

v o id

m a in ()

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

/ * о п исы ваем

перем енны е и

и ни ц иализи руем

s

на­

чальны м

з н а ч е н и е м * /

 

 

 

 

 

 

i n t n , i , s = 0 ;

 

 

 

 

 

 

c o u t< < " \ n E n t e r n " ;

 

 

 

 

 

c in > > n ; /^ в в о д и м к о л и ч е с т в о

элем ен то в

в

по­

с л е д о в а т е л ь н о с т и * /

 

 

 

 

 

 

f o r ( i = l ;

i< = n ;

i + + ) + + )/* ц и к л

вы полняется

п р а з * /

 

 

 

 

 

 

 

 

s + = i;

//д о б а в л я е м

зн а ч е н и е

перем енной к

сумме

c o u t< < " \n S = ”« s « " \ n ,f ;

11.3. Программирование итерационных циклов

Для итерационного цикла должно быть известно условие выпол­ нения цикла. При использовании цикла с предусловием (w h ile) тело цикла может не выполняться ни разу, если сразу же не выполняется условие цикла. При использовании цикла с постусловием тело цикла будет выполнено хотя бы один раз. И в том, и в другом случае ис­ пользуется условие выполнения цикла.

Задача № 4. Дана последовательность целых чисел, за которой следует 0. Найти минимальный элемент этой последовательности.

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

# i n c l u d e c i o s t r e a m .h >

# i n c l u d e < m a th .h > v o id m a in ()

{

int a,min; cout«"\nEnter a";

cin»a; //вводим первое число min=a;//присваиваем переменной min начальное

//значение

while(а!=0)//цикл с предусловием

{

cout«"\nEnter а"; cin>>a;//вводим следующее число

/^сравниваем с нулем, т.к. 0 не входит в по­ следовательность и не может быть минимальным и с минимальным значением*/

if (а!=0&&a<min)

min=a; //запоминаем в min новое значение

}

cout<<,f\nmin=Tf<<min<<,f\n,f;//вывод результата

Тесты:

а

2

55 | -3 | -10 | 0 |

min

-10

 

а

12

55 | 4 | 27 | 0 |

min

4

 

а

-6

 

min

-10

 

Для решения этой же задачи можно написать программу с ис­ пользованием цикла с постусловием.

#include <iostream.h> #include <math.h> void main()

{

int a,min; cout«,f\nEnter a";

cin»a; //вводим первое число min=a;//присваиваем переменной min начальное

//значение

do //цикл с постусловием

{

cout<<"\nEnter ам;

cin»a; //вводим следующее число

if (а==0)break;// выход из цикла, если ввели О if (a<min)//сравниваем а с текущим min

min=a; //запоминаем в min новое значение

}

//бесконечный цикл, т.к. выход осуществляется //с помощью break

whiled) ;

cout<<,dnmin=,,<<min<<n\n";//вывод результата

}

Эту же задачу можно решить с помощью цикла for:

#include ciostream.h>

#include <math.h> void main()

{

int a,min; cout<<M\nEnter a";

cin>>a; //вводим первое число min=a;//присваиваем переменной min начальное

//значение

for(;а !=0;)//цикл используется как цикл //с предусловием

{

cout<<"\nEnter а”; cin»a;//вводим следующее число

/*сравниваем с нулем, т.к. 0 не входит в по­ следовательность и не может быть минимальным и с минимальным значением*/

if (а!=0&&a<min)

min=a; //запоминаем в min новое значение

}

cout«"\nmin="«min«n\n";//вывод результата

}

Задача № 5. Найти сумму чисел Фибоначчи, меньших задан­ ного числа Q. Числа Фибоначчи - это последовательность чисел: 1, 1, 2, 3, 5, 8, 13, , т.е. каждое следующее число - это сумма двух предыдущих.

#include<iostream.h> void main()

{

int a=l,//первое число b=l,//второе число s=2,//сумма чисел Фибоначчи

Q,

с;//следующее число cout«"\nEnter Q”; cin»Q;//вводим число Q

if (Q<=0) cout«f,Error in Q"; else

/*если Q=l, то сумма тоже будет 1 (первое

число)*/

if ( Q = = l) s = l; e l s e

{

c=a+b;//вычисляем следующее число while(c<Q)

{

s+=c;//вычисляем сумму

a=b;//меняем первое число на второе

Ь=с;//меняем второе число на текущее

с=а+Ь;//вычисляем текущее число Фибоначчи

cout<<"\nS=fl<<s<<"\n";//выводим результат

}

Тесты:

Q

S

-1

Error in Q

0

Error in Q

1

1

2

2

10

20

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