Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Блок – схема.

Читайте также:
  1. Схема. Пример поэтапного развития проекта Фестиваля
  2. Транспортная схема.

Оглавление

Оглавление

Задание. 2

Краткое описание. 4

Алгоритм работы программы. 5

Блок – схема. 6

Листинг. 7

Скриншот программы. 8

Список литературы. 9

 

 


Задание.

Составить программу, которая работает следующим образом: пользователь вводит натуральное число n(n >= 5). После работы программы на экран дисплея выводятся все пятерки натуральных чисел x1, x2, x3, x4, x5 такие, что x1 >= x2 >= x3 >= x4 >= x5 и (x1 + x2 + x3 + x4 + x5) = n.


Краткое описание.

Данная задача была выполнена на языке C++, в среде программирования Dev-C++.

В данной программе были использованы 2 стандартные библиотеки для работы с потоками ввода/вывода(iostream.h) и для управления программой(conio.h).

 

В программе созданы и использованы 2 пользовательские функции: drawResult для вывода данных на экран и check для проверки выполнения условий задачи.

 

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

 

Для ускорения циклов на каждом шаге цикла выполняется следующая проверка(функция check): если сумма чисел больше n, цикл прерывается. Это позволяет избежать лишние циклы.

 

По условию задачи программа выводит результат на экран.


Алгоритм работы программы.

Подключаем библиотеки для работы с потоками ввода/вывода(iostream.h), для управления программой(conio.h).

 

Начало главной функции main. С самого начала программы, каждый раз выполняем очистку экрана после предыдущих запусков программы.

 

Создаем прототип функции drawResult.

Создаем прототип функции check.

 

Инициализируем глобальные переменные:

«int x1, x2, x3, x4, x5» - натуральные числа

«int n» - число вводимое пользователем

 

Начало главной функции:

Чистка экрана.

Вывод на экран надпись «Enter the number:» и ждем ввода числа.

После ввода числа выполняем перенос строки и обнуляем переменные.

 

Стартуем первый цикл для числа x5. Начальное значение n. Цикл убывающий. На каждом шаге цикла проверяем выполнения условия x1+x2+x3+x4+x5=n, это выполняет функция check.

Стартуем второй цикл для числа x4, цикл вложенный. Начальное значение x5. Также выполняется проверка функцией check. Тоже самое выполняется для еще для 3 циклов.

 

В пятом(последнем) цикле выполняется проверка выполнения условий задачи. И вывод результатов на экран если условия выполняются.

 

После завершения всех циклов программа ждет нажатия клавиши(getch) и заканчивает свою работу.


Блок – схема.

 


Листинг.

#include <iostream.h>//функция вывода на экран cout

#include <conio.h>//getch() - пауза

 

void drawResult();//прототип функции, которая выводит на экран результат

int check();// проверка суммы числе, если сумма больше n возвращает 0, иначе возвращает 1

 

int x1, x2, x3, x4, x5, n;//числа

 

int main(){

system ("cls");//чистка экрана

 

cout << "Enter the number: ";

 

cin >> n;//число n

 

cout << endl;//перенос строки

 

x1 = x2 = x3 = x4 = x5 = 0;//обнуляем переменные

 

for(x5 = n; x5 > 0; x5--){//первый цикл для x5

if(check()==0)

continue;

for(x4 = x5; x4 > 0; x4--){//второй цикл для x4

if(check()==0)

continue;

for(x3 = n; x3 > 0; x3--){//третий цикл для x3

if(check()==0)

continue;

for(x2 = x3; x2 > 0; x2--){//четвертый цикл для x2

if(check()==0)

continue;

for(x1 = x2; x1 > 0; x1--){//пятый цикл для x4

if(check()==0)

continue;

//проверка условия задачи

if(x1 < x2 && x2 < x3 &&

x3 < x4 && x4 < x5 &&

((x1 + x2 + x3 + x4 + x5) == n)) {

drawResult();//выводим результат

}

 

}

}

}

}

}

 

getch();//ждем нажатия клавиши, только потом завершается программа

}

 

void drawResult(){

cout << "x1 = " << x1 << "; x2 = " << x2 << "; "

<< "x3 = " << x3 << "; x4 = " << x4 << "; "

<< "x5 = " << x5 << endl;

}

int check(){

if((x1 + x2 + x3 + x4 + x5) > n){

return 0;

}

return 1;

}


Дата добавления: 2015-11-30; просмотров: 48 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.01 сек.)