Программирование на языке C++
Стандартные библиотеки для работы с потоками ввода/вывода (iostream.h) и для управления программой (conio.h). Пользовательские функции: drawResult для вывода данных на экран и check для проверки выполнения условий задачи. Алгоритм работы программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 03.12.2013 |
Размер файла | 310,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство общего и профессионального образования Российской Федерации
Казанский национально исследовательский технологический университет
Кафедра Автоматизации и информационных технологий
Курсовая работа
Программирование на языке C++
Выполнил:
студент гр. 812121
Алмаз Шакиров
Проверил:
доцент Герке А.Р.
Казань 2013
Задание
Составить программу, которая работает следующим образом: пользователь вводит натуральное число 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;
}
Скриншот программы
Список литературы
программа пользовательский экран
1. Лекции по программированию.
2. http://code-live.ru/post/cpp-loops/ Циклы.
3. http://cppstudio.com/uchebniki/yazyk-programmirovaniya-s/cikl-for-v-c/ Циклы.
4. http://book.mql4.com/ru/operators/if оператор условия if.
5. http://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE%D0%BA-%D1%81%D1%85%D0%B5%D0%BC%D0%B0 блок схема.
6. http://www...ru/algorithms/thread116008.html правила составления блок схем.
7. http://code-live.ru/post/cpp-functions/ функции, урок 6.
Размещено на Allbest.ru
Подобные документы
Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.
лабораторная работа [40,4 K], добавлен 06.07.2009Функции ввода с клавиатуры и вывода на экран, алгоритм вывода чисел. Генерация звуковых сигналов в ПЭВМ. Принципы работы видеосистемы: адресация и режимы работы адаптера CGA, режим работы дисплея. Таблица векторов прерываний в работе клавиатуры.
отчет по практике [700,4 K], добавлен 23.11.2010Программирование линейных алгоритмов. Процедуры ввода READ и READLN и вывода WRITE и WRITELN. Примеры решения задач на языке Паскаль. Оператор присваивания и выражения. Основные способы формирования структурных операторов. Операторы вызова процедур.
курсовая работа [44,3 K], добавлен 18.03.2013Общие сведения о языке С++. Операции и выражения, стандартные функции и структура программы. Использование функций при программировании на С++. Основные алгоритмы обработки массивов. Статические и динамические матрицы. Организация ввода-вывода в C++.
учебное пособие [6,7 M], добавлен 28.03.2014Особенности вывода на экран содержимого файла BAZA.txt. Анализ функций вывода информации о количестве каждой марки машин. Рассмотрение способов проектирования тестов программы методами черного ящика. Проблемы программирования на языке высокого уровня.
контрольная работа [1,6 M], добавлен 04.01.2015Организация и назначение консольного ввода-вывода, необходимые для этого функции и их применение. Библиотеки, организующие функционирование потокового ввода-вывода, выполняемые операции. Арифметические операции и математические функции в среде С++.
лабораторная работа [33,8 K], добавлен 15.07.2009Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.
лабораторная работа [62,0 K], добавлен 15.07.2010Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.
курсовая работа [711,4 K], добавлен 27.07.2014Классификация периферийных устройств ввода и вывода данных для обмена информацией между компьютером и внешним миром. Системы распознавания магнитных знаков, символов. Принцип работы мониторов и принтеров. Вид манипуляторов для управления курсором.
реферат [272,7 K], добавлен 01.04.2014Программирование ввода-вывода на основе потоков в Java. Классы для работы с потоками символов. Характеристика базовых классов. Пример чтения сетевого ресурса. Коллекции как расширение возможностей массивов. Работа с ассоциативными массивами HashMap.
лекция [630,1 K], добавлен 01.05.2014