Программирование на языке 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.