Программирование на языке 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Информационные технологии и защиты данных. Методы защиты информации. Виды информационной безопасности и умышленные угрозы. Программирование на языке Turbo Pascal. Типы числовых данных. Функции ввода и вывода. Логические операторы, символьные переменные.
курсовая работа [1,7 M], добавлен 16.05.2016Предназначение цикла for - оформление циклов (набора действий) с заданным количеством повторений. Пример программы, выводящей на экран все целые числа от 0 до 99. Решение задачи с помощью двух алгоритмов, используя известные функции ввода-вывода.
лабораторная работа [35,1 K], добавлен 15.07.2009Изучение подсистемы ввода-вывода и файловой системы ОС семейства Windows NT. Анализ особенностей работы приложения TotalCommander и его взаимодействия с файловой системой и подсистемой ввода-вывода. Взаимодействие TotalCommander с сетевыми адаптерами.
лабораторная работа [1,1 M], добавлен 12.06.2012Создание программы, вычисляющей значение функции, заданной таблично при помощи интерполяционного полинома Лагранжа на языке Pascal с комментариями. Диалоговое взаимодействие пользователя с программой, модули для ввода и вывода данных и основных действий.
курсовая работа [49,2 K], добавлен 02.11.2011Основные сведения о языке программирования Pascal. Листинг программы с комментариями. Диагональ элементов вектора и матрицы. Использование команд ввода-вывода информации. Быстродействие выполнения программы при компиляции. Отражение процессов вычисления.
курсовая работа [1,9 M], добавлен 05.05.2009Понятие программы и ее основные составляющие. Операторы ввода и вывода. Разветвляющиеся алгоритмы. Цикл как многократное выполнение одинаковых действий. Особенности использования оператора выбора. Графики функций и системы координат. Рекурсия и анимация.
презентация [663,7 K], добавлен 24.12.2010Составление алгоритмов и программ для вычисления значений неизвестных: программирование формул; операторы ввода и вывода; условный оператор; цикл с предусловием и с постусловием, с заданным числом повторений; графические средства; тестирование программы.
курсовая работа [1,5 M], добавлен 13.03.2011Элементарные конструкции языка ПАСКАЛЬ: имена, числа и строки. Стандартные типы данных. Организация ввода и вывода данных с терминального устройства. Разработка программы, изменяющей первоначальную матрицу по заданной схеме и выводящей ее на экран.
курсовая работа [68,6 K], добавлен 09.07.2015Введение в API-программирование. Структура API-программ. Организация ввода-вывода в консольном приложении Windows. Организация низкоуровнего консольного ввода-вывода. Расширенная поддержка клавиатуры в консоли. Поддержка работы с мышью в консоли.
курсовая работа [91,0 K], добавлен 10.02.2015Основные понятия объектно-ориентированного программирования, особенности описания функций и классов. Разработка программы для работы с универсальной очередью установленного типа, добавления и удаления ее элементов и вывода содержимого очереди на экран.
курсовая работа [187,2 K], добавлен 27.08.2012