Генератор простых чисел

Страуструп начал работать над «Си с классами» в 1979 году. Идея создания нового языка берёт начало от опыта программирования Страуструпа

Генератор простых чисел

Курсовой проект

Компьютеры, программирование

Другие курсовые по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
названием C++09 (ранее известный как C++0X), который должен выйти в 2009 году.

С++ - это универсальный объектно-ориентированный язык программирования. С++ представляет гибкие и эффективные средства определения новых типов, используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции.

Выбран был именно он, потому что в нём заложено максимальное количество удобных инструментов для программиста. Дело в том, что C++ является языком "общения" человека с компьютером. Основным "читателем" текстов на языке C++ является транслятор. Это особая программа, в обязанности которой входит проверка правильности текста программы и его последующий перевод на язык процессора - основного устройства ЭВМ, который и обеспечивает выполнение программы. У процессора свой взгляд на программу. Он не имеет никакого представления о содержательной стороне описываемых алгоритмов. Процессору важны адреса, регистры, прерывания.

Язык программирования С++ позволяет описывать алгоритмы и данные. Однако его выразительные возможности не исчерпываются множеством содержательных алгоритмов и связанных с ними структур данных. Даже самые абсурдные с точки зрения программиста, реализующего сколько-нибудь значимый алгоритм, предложения языка остаются абсолютно правильными и корректными для транслятора. Примеры, основанные на содержательных алгоритмах, неизбежно оставляют за рамками изложения множества предложений, на которых, порой, и выявляются характерные черты языка.

Язык "C", родитель языка "C++", первоначально предназначавшийся для написания операционной системы "UNIX", был разработан и реализован на этой системе Деннисом Ричи. Операционная система, компилятор с языка "C" и по существу все прикладные программы системы "UNIX". "C" показал себя приятным, выразительным и разносторонним языком на широком множестве разнообразных программ. Его легко выучить, и он не теряет своих качеств с ростом опыта программиста.

Именно поэтому этот язык и был выбран для написания программы.

 

Алгоритм решения задачи

 

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

Рис. 1 - Основной алгоритм работы приложения

 

Эскизный проект

Программа рассчитана на обычного пользователя, т.е. пользователя с начальным уровнем подготовки работы за компьютером, поэтому она должна быть проста в использовании. И в связи с этим для написания проекта используется консольное приложение, а сам проект относится к Windows Console Application.

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

Основные понятия

Алгоритм - это конечная последовательность действий, преобразующая исходные данные в результат.

Алгоритмы составляют основу компьютерных наук, они являются основными объектами изучения во многих, если не в большинстве ее областей. Одну и ту же задачу можно решить разными методами, используя различные алгоритмы. Предпочтение отдается тем из них, которые обеспечивают наименьшее время исполнения компьютерной программы. Существует наука, изучающая алгоритмы. Она называется «Теория алгоритмов» и является частью математики. Достижения этой науки используются для разработки эффективных алгоритмов. Созданием и развитием теории алгоритмов занимались европейские ученые: голландец Лейтзен Эгберт Ян Брауэр (1881-1966), немец Герман Вейль (1885-1955), англичанин Алан Матисон Тьюринг (1912-1954) американские - Алонзо Черч (родился в 1903), Эмиль Леон Пост (1897-1954) и Стивен Коул Клини (р. 1909), русские ученые Андрей Андреевич Марков (р. 1903) и Андрей Николаевич Колмогоров (р. 1903).

Переменная - это место в оперативной памяти компьютера, где можно размещать хранимое значение, а затем извлекать его.

Функция - это блок кода программы, который выполняет одно или несколько действий. Обычно функцию вызывает другая функция или оператор

Структурное программирование - методология разработки программного обеспечения, предложенная в 70-х года XX века Дейкстрой и разработанная и дополненная Виртом.

Основная цель структурного программирования - создать программу с минимальными взаимосвязями между ее модулями. В идеале каждый модуль должен иметь один вход и один выход.

Опыт использования методов структурного программирования позволяет сделать следующие выводы:

) структурное программирование упрощает процесс создания сложных программ и способствует значительному уменьшению количества ошибок в них;

) использование модулей небольших размеров позволяет упростить и ускорить процессы их отладки;

) при использовании структурного программирования значительно сокращается трудоемкость разработки технической документации, т.е. в качестве документации на каждый модуль используется только описание его функций;

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

Основная идея структурного программирования заключается в следующем. Компьютерную программу можно представить в виде набора задач. Любая задача, которая слишком сложна для простого описания, должна быть разделена на несколько более мелких составных задач, и это деление необходимо продолжать до тех пор, пока задачи не станут достаточно простыми для понимания.

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

Методология структурной разработки программного обеспечения была признана «самой сильной формализацией 70-х годов». После этого слово «структурный» стало модным в отрасли, и его начали использовать везде, где надо и где не надо. Появились работы по «структурному проектированию», «структурному тестированию», «структурному дизайну» и так далее. В общем, произошло примерно то же самое, что происходило в 90-х годах и происходит в настоящее время с терминами «объектный», «объектно-ориентированный» и «электронный».

Структурное программирование до сих пор остается довольно успешным способом решения сложных проблем. Однако к концу 1980-х годов слишком очевидными стали некоторые его недостатки. К сожалению, структурное программирование отделяет структуры данных от функций, управляющих ими. Кроме того, в структурном программировании полностью отсутствуют встроенные способы связи данных с функциями. Программисты обнаружили, что возможность многократного использования стандартных блоков, повторяющихся во многих программах, вполне естественна. Однако функции, которые прекрасно работали с одним типом данных, зачастую не могли воспользоваться другими типами, что ограничивало их преимущества.

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

Программирование для микроконтроллеров во многом повторяет тот же путь. Переход от этапа к этапу зависит от доступных внутренних ресурсов микроконтроллеров. Ещё несколько лет назад использование языков высокого уровня было невозможно из-за малого объёма внутренней памяти программ. (В дешёвых моделях микроконтроллеров эта ситуация сохраняется до сих пор.) В настоящее время с появлением микроконтроллеров и сигнальных процессоров с объёмом внутренней памяти в несколько десятков килобайт появляется возможность объектного проектирования.

Применение структурного программирования позволяет увеличить скорость написания программ и облегчить отладку написанной программы. Структурное программирование возможно и на языках программирования assembler, где не предусмотрено структурных операторов, подобных структурным операторам языков программирования C++

Инкапсуляция означает свойство автономности объектов, скрытности их внутреннего механизма от посторонних глаз. С помощью инкапсуляции можно обеспечить сокрытие данных. Это очень важное свойство, благодаря которому пользователь может использовать объект, не задумываясь о его внутренней работе

Сокрытие данных - неотделимая часть структурного программирования, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта.

В консольных приложениях используется диалоговый принцип, т.е. программа спрашивает или задает какое-то действие, а пользователь вводит запрос или ответ.

Данная программа при запуске должна запросить у пользователя ввод данных - выражение. В список разрешается вводить следующие данные: цифры от 0 до 9. Выражение должно им

Похожие работы

< 1 2 3 >