Разработка программы на алгоритмическом языке Си
Рассмотрение принципов разработки программы на ветвление для работы с числами на алгоритмическом языке Си. Проверка правильности решения задачи по переводу числа из двоичной системы счисления в восьмеричную и шестнадцатеричную системы счисления.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.01.2019 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Постановка задачи
2. Математические методы и средства решения задачи
3. Описание данных
4. Алгоритмы и блок - схема
5. Программа
6. Тестовый пример
7. Руководство пользователя для работы с написанной программой
Заключение
Список литературы
Введение
Цель данной курсовой работы:
Разработка программы на ветвление для работы с числами на алгоритмическом языке Си.
Тема данной курсовой работы:
«Разработка программы на алгоритмическом языке Си»
Актуальность данной курсовой работы:
Актуальность связанна, с тем, что программа дает возможность проверить правильность решения задачи по переводу числа из двоичной системы счисления в восьмеричную и шестнадцатеричную системы счисления. Каждый человек может пользоваться данной программой, так как она проста в использовании. Программа отличается быстротой и занимает мало памяти на электронном носителе информации.
Основные этапы:
Анализ поставленной задачи;
Выбор, обоснованный и изложенный на основе метода поставленной задачи;
Построение алгоритма решения задач;
Создание и отладка программы;
Разработка комплекса тестов для проверки правильности работы программы;
Защита курсовой работы.
программа ветвление алгоритмический двоичный
1. Постановка задачи
Выполнение курсовой работы следует начать с четкого уяснения поставленной задачи. Необходимо ответить на вопросы: «Что задано?», «Какой должен быть получен результат?», «Как получить результат?».
При решении задач этой группы необходимо:
Разработать программу для вычисления примера;
Ответ должен быть получен достаточно быстро и предельно точно;
Условие задачи:
Даны два целых числа: А и B. Проверить истинность высказывания: “хотя бы одно из чисел А и B - нечетное”
2. Математические методы и средства решения задачи
Для данной поставленной задачи использовалась программа C++ Builder 6, которая объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода, разные компоненты и инструменты, которые делают разработку визуальной и упрощает программирование благодаря встроенному редактору интерфейса.
В данной курсовой работе метод решения опирается на некоторый математический аппарат. Математические методы, модели и алгоритмы являются тем базисом, который положен в основу проектирования и изготовления любого программного или технического средства в силу их исключительной сложности и, как следствие, невозможности умозрительного подхода к созданию.
Для разработки математической модели используются простейшие математические операции над целыми числами.
Наиболее эффективно математическую модель можно реализовать на компьютере в виде алгоритмической модели. Для этого может быть использован язык блок-схем или какой-нибудь псевдокод. Разработка алгоритма включает в себя выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование самого алгоритма. Тогда, средством решения задачи является алгоритмический язык С++.
Основными операциями в арифметике являются сложение, умножение, вычитание, деление. Некоторые учёные как древности, так и современности добавляют к ним возведение в степень, взятие корня, поиск суммы членов арифметической прогрессии, реже поиск суммы членов геометрической прогрессии.
Сегодня компьютеры все больше и больше внедряются в нашу жизнь. Для их эффективного использования необходимы удобные и практичные программы, которые создаются на языках программирования. Один из самых распространенных языков является Си.
Си - это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, сравнимы по скорости с программами, написанными на языке ассемблера. При этом они имеют лучшую наглядность и их более просто сопровождать.
Си сочетает эффективность и мощность в относительно малом по размеру языке. Хотя Си не содержит встроенных компонент языка, выполняющих ввод-вывод, распределение памяти, манипуляций с экраном или управление процессами, тем не менее, системное окружение Си располагает библиотекой объектных модулей, в которой реализованы подобные функции. Библиотека поддерживает многие из функций, которые требуются.
Это решение позволяет изолировать языковые особенности от специфики процессора, на котором выполняется результирующая программа. Строгое определение языка делает его независимым от любых деталей операционной системы или машины. В то же время программисты могут добавить в библиотеку специфические системные программы, чтобы более эффективно использовать конкретной особенности машины.
Он тесно связан с операционной системой "UNIX", так как был развит на этой системе и так как "UNIX" и ее программное обеспечение написано на "C". Сам язык, однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он с равным успехом использовался при написании больших вычислительных программ, программ для обработки текстов и баз данных.
Особенности языка Си
Язык Си имеет свои существенные особенности, перечислим некоторые из них.
Си обеспечивает полный набор операторов структурного программирования. Си предлагает необычно большой набор операций. Многие операции Си соответствуют машинным командам, и поэтому допускают прямую трансляцию в машинный код. Разнообразие операций позволяет выбирать их различные наборы для минимизации результирующего кода.
Си поддерживает указатели на переменные и функции. Указатель на объект программы соответствует машинному адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно-выполняемые программы, так как указатели позволяют ссылаться на объекты тем же самым путем, как это делает машина. Си поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный доступ и манипуляции с адресами памяти.
В своем составе Си содержит препроцессор, который обрабатывает текстовые файлы перед компиляцией. Среди его наиболее полезных приложений при написании программ на Си являются: определение программных констант, замена вызовов функций аналогичными, но более быстрыми макросами, условная компиляция. Препроцессор не ограничен процессированием только исходных текстовых файлов Си, он может быть использован для любого текстового файла.
Си-гибкий язык, позволяющий принимать в конкретных ситуациях самые разные решения. Тем не менее, Си налагает незначительные ограничения в таких, например, действиях, как преобразование типов. Во многих случаях это является достоинством, однако программисты должны хорошо знать язык, чтобы понимать, как будут выполняться их программы.
Недостатки языка Си
Так же, как и особенностей, в языке Си присутствует масса недостатков. Ведь от них не защищен не один проект, в том числе проект разработки и выполнения программ, на языке Си.
Язык Си предъявляет достаточно высокие требования к квалификации использующего его программиста. При изучении Си желательно иметь представление о структуре и работе компьютера. Большую помощь и более глубокое понимание идей Си, как языка системного программирования, обеспечат хотя бы минимальное знание языка ассемблер. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось Си - чрезвычайно эффективный и выразительный язык, пригодный для широкого класса задач.
Структура программы
Имя и характеристики каждой функции указываются в файле, именуемым заголовочным файлом, но текущая реализация функций описана отдельно в библиотечном файле. Наименование и возможности заголовочных файлов становятся общими, но организация библиотек по-прежнему остается разнотипной. Стандартная библиотека обычно поставляется вместе с компилятором. Так как компиляторы языка Си часто обеспечивают расширенную функциональность, не определенную стандартом ANSI C, стандартная библиотека одного компилятора несовместима со стандартными библиотеками других компиляторов.
Большая часть стандартной библиотеки языка Си производит впечатление удачно спроектированной. Некоторые отдельные части, дававшие преимущество в прошлом, могут провоцировать ошибки. Функции строкового ввода gets() (и применение scanf() для считывания вводимых строк) являются источником множества переполнений буфера, поэтому большинство руководств по программированию советуют избегать подобных приемов. Функция strcpy() также весьма печально знаменита. Еще одной неоднозначной функцией является strtok() - функция, разработанная как простейший лексический анализатор, но имеющая множество «подводных камней» и потому весьма трудная в использовании.
Выбор применения типа size_t вместо int для числа элементов, указанных для fread() и fwrite() является несовместимым с разработанной общей семантикой для size_t (для представления количества байтов).
Stdio достаточно ограничен (слишком высокий уровень для использования во многих ситуациях) и стандарт не позволяет пользователю самостоятельно переназначать или расширять его свойства. В итоге, для множества приложений разрабатывается собственные библиотеки-обертки вокруг механизмов более низкого уровня и функций, реализуемых ОС, таких как POSIX. Например, stdio не работают с сигналами или асинхронными непакетными режимами ввода-вывода, которые широко используются в сетевых серверах. В итоге, только серверы, использующие модель целого процесса для клиента, могут полностью полагаться на функции stdio для обслуживания их на POSIX-совместимых системах в пакетном режиме ввода-вывода.
Определенных функций стандартной библиотеки нужно избегать при разработке многопоточных приложений. Примитивы контроля потоков предназначались для оставшейся части ОС и игнорируют общие стандарты, как например, библиотеку потоков POSIX, ожидая, что программисты языка Си, самостоятельно об этом позаботятся, работая с повторным использованием и синхронизацией. Ни язык Си, ни его стандартная библиотека никак не проверяют подобные системно-специфичные результаты.
Операторы
Пустой оператор - это оператор, состоящий только из точки с запятой. Он может появиться в любом месте программы, где по синтаксису требуется оператор. Выполнение пустого оператора не меняет состояния программы.
Составной оператор - {...}
Действие составного оператора состоит в последовательном выполнении содержащихся в нем операторов, за исключением тех случаев, когда какой-либо оператор явно передает управление в другое место программы.
Оператор обработки исключений
try { <операторы> } catch (<объявление исключения>) { <операторы> } catch (<объявление исключения>) { <операторы> } ...catch (<объявление исключения>) { <операторы> }
Условный оператор
if (<выражение>) <оператор 1> [else<оператор 2>]
Оператор-переключатель
switch (<выражение>) { case<константное выражение 1>: <операторы 1>case<константное выражение 2>: <операторы 2>...case<константное выражение N>: <операторы N> [default: <операторы>] }
Оператор-переключатель предназначен для выбора одного из нескольких альтернативных путей выполнения программы. Вычисление оператора-переключателя начинается с вычисления выражения, после чего управление передается оператору, помеченному константным выражением, равным вычисленному значению выражения. Выход из оператора-переключателя осуществляется оператором break. Если значение выражения не равно ни одному константному выражению, то управление передается оператору, помеченному ключевым словом default, если он есть.
Оператор цикла с предусловием
while (<выражение>) <оператор>
Оператор цикла с постусловием
do<оператор>while<выражение>;
В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла.
Оператор пошагового цикла
for ([<начальное выражение>]; [<условное выражение>]; [<выражение приращения>]) <оператор>
Тело оператора for выполняется до тех пор, пока условное выражение не станет ложным (равным 0). Начальное выражение и выражение приращения обычно используются для инициализации и модификации параметров цикла и других значений. Начальное выражение вычисляется один раз до первой проверки условного выражения, а выражение приращения вычисляется после каждого выполнения оператора. Любое из трех выражений заголовка цикла, и даже все три могут быть опущены (не забывайте только оставлять точки с запятой). Если опущено условное выражение, то оно считается истинным, и цикл становится бесконечным.
Оператор пошагового цикла в языке С++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for.
Оператор разрыва
break;
Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while,do, for, switch, то он завершает только непосредственно охватывающий его оператор.
Оператор продолжения
continue;
Оператор продолжения передает управление на следующую итерацию в операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.
Оператор возврата
return [<выражение>];
Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение выражения, если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение не определено.
С формальной точки зрения операторы break, continue и return не являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур. Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.
3. Описание данных
Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.
Объявление переменной
Объявление переменной задаёт имя и атрибуты переменной. Атрибутами переменной могут быть тип, количество элементов (для массивов), спецификация класса памяти, а также инициализатор. Инициализатор - это константа соответствующего типа, задающая значение, которое присваивается переменной при создании.
В языке Си нет ограничений на количество символов в имени. Однако некоторые части реализации (в частности, компоновщик) недоступны автору компилятора, и они иногда накладывают такие ограничения.
4. Алгоритмы и блок - схема
Алгоритм - это однозначно определенная последовательность действий, записанная на понятном исполнителю алгоритмическом языке и определяющая процесс перехода от исходных данных к результату.
В этом определении уже указаны основные свойства алгоритма.
Во-первых, алгоритм состоит из конечного набора инструкций или шагов, во-вторых, каждый шаг трактуется исполнителем единственным образом, что позволяет гарантированно получить решение для некоторого набора входных данных, в-третьих, алгоритм всегда сводится к некоторому преобразованию исходных данных в результат или результаты.
В этом смысле формулы для решения квадратного уравнения или даже четко составленную инструкцию по варке кофе можно считать алгоритмами, выполнимыми исполнителем-человеком.
Для машины, разумеется, требуется более четкая формализация задачи, чем для человека, понимать естественный язык компьютеры пока неспособны, отсюда необходимость учета при составлении алгоритма ограниченного набора инструкций ЭВМ.
Свойства алгоритма:
Дискретность - алгоритм состоит из отдельных инструкций (шагов);
Однозначность - каждый шаг понимается исполнителем единственным образом;
Массовость - алгоритм работает при меняющихся в некоторых пределах входных данных;
Результативность - за конечное число шагов достигается некоторый результат.
Формы записи алгоритма:
Принято выделять 3 основных формы.
Словесное описание
Псевдокод
Блок схема
Написать свое словесное описание, псевдокод, блок схему.
Блок-схема
Рис 1 - блок схема
5. Программа
Программа определяет истинность высказывания “Хотя бы одно из введенных чисел А и В - Нечетное”
#include <iostream>
#include <string>
int main()
{
int a, b;
std::cout « “Vvedite A I B ”;
std::cin » a » b;
if(a%2!=0 || b%2!=0)
std::cout « "true";
else std::cout « "lie";
}
6. Тестовый пример
Рис 2 - пример работы программ
7. Руководство пользователя для работы с написанной программой
При написании программы для обучению устному счету был использован язык программирования С++. Это один из широко используемых языков программирования, который можно использовать для написания программ, работающих в среде Windows/Среде BorlandC++ Builder 6- это сложный механизм, обеспечивающий высокоэффективную работу программиста.
Интегрированная среда разработка С++ Builder представляет собой многооконную систему. Вид интегрированной среды разработки (интерфейс) может различаться в зависимости от настроек. Кроме стандартных окон, на экране могут присутствовать и другие окна, отображаемые при вызове соответствующих средств, например , ImageEdition (Редактор изображений). Окна С ++ Builder (но не главное можно перемещать, убирать с экрана, а также изменять их размеры.
BorlandC++ Builder 6, вобрав в себя все самое лучшее от предыдущих версий, представляет ряд новых возможностей. Так, например, стал более удобным и современным интерфейс среды программирования, создаваемые C++ Builder программы учитывают архитектуру современных процессоров, существенно расширены возможности отладчика.
BorlandC++ Builder 6 может работать в среде операционных систем от Windows 95 до WindowsXP. Особенных требований к компьютеру система не предъявляет, за исключением того, что процессор должен быть типа Pentium, оперативной памяти- не менее 32 Мбайта и достаточной количество свободной дисковой памяти.
Заключение
Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде С++.
В ходе выполнения курсовой работы был проведен - анализ задания и постановка задачи программирования.
Был разработан алгоритм программы, предназначенной для выполнения сформированных функций.
Согласно разработанному алгоритму была составлена и отлажена программа на алгоритмическом языке программирования С++. В ходе разработки программы проводилось ее тестирование и отладка. Для написанной программы разработана инструкция оператора с указанием порядка выполняемых действий.
Результаты работы оформлены в виде пояснительной записки.
В ходе разработки программы были закреплены навыки работы с:
командами ввода - вывода на экран;
командами для реализации циклов;
командами проверки условий;
В результате выполнения данной курсовой работы, убедились в широких возможностях языка программирования С++, закрепили практические навыки программирования в cреде С++.
Список литературы
1. Власов В.К., Королев Л.Н. Элементы информатики./ Под. Ред. Л.Н.Королева. - М.: Наука, 2008
2. Информатика: Учебник для вузов.-/Под ред. С.В. Симоновича. СПб.: Питер, 2008
3. М.Уэйт, С.Прата, Д.Мартин. Язык Си. Руководство для начинающих. - М./Мир, 1988.
4. Хэнкок Л. Введение в программирование на языке Си./- Л.Хэнкок, М.Кригер, М.: Радио и связь, 1986.
Размещено на Allbest.ru
...Подобные документы
Общее представление о системах счисления. Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления. Разбивка чисел на тройки и четверки цифр. Разряды символов числа. Перевод из шестнадцатеричной системы счисления в десятичную.
практическая работа [15,5 K], добавлен 19.04.2011Целые числа в позиционных системах счисления. Недостатки двоичной системы. Разработка алгоритмов, структур данных. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С. Тестирование программного обеспечения.
курсовая работа [593,3 K], добавлен 03.01.2015Факты появления двоичной системы счисления - позиционной системы счисления с основанием 2. Достоинства системы: простота вычислений и организации чисел, возможность сведения всех арифметических действий к одному - сложению. Применение двоичной системы.
презентация [1,5 M], добавлен 10.12.2014Разработка программы с использованием языка программирования Pascal для выполнения алгебраических действий с действительными числами без знака в шестнадцатеричной системе счисления. Описание хода выполнения, схема алгоритма, листинг программы, ее функции.
реферат [687,5 K], добавлен 28.10.2011Примеры правила перевода чисел с одной системы в другую, правила и особенности выполнения арифметических операций в двоичной системе счисления. Перевод числа с десятичной системы в двоичную систему счисления. Умножение целых чисел в двоичной системе.
контрольная работа [37,3 K], добавлен 13.02.2009Понятие и классификация систем счисления. Перевод чисел из одной системы счисления в другую. Перевод правильных и неправильных дробей. Выбор системы счисления для применения в ЭВМ. Навыки обращения с двоичными числами. Точность представления чисел в ЭВМ.
реферат [62,0 K], добавлен 13.01.2011Описание логической структуры программы "perevod" для перевода числа из одной системы счисления в другую. Блок-схема алгоритма обработчика события Button1Click. Разработка и испытание приложений. Назначение и условия применения программы, листинг.
курсовая работа [945,5 K], добавлен 03.01.2011Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.
курсовая работа [325,5 K], добавлен 27.10.2013Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
курсовая работа [385,0 K], добавлен 17.09.2009Перевод десятичного числа в двоичную, восьмеричную и шестнадцатеричную системы счисления. Место автоматических систем управления (АСУ) в организации технического обслуживания. Информационное обеспечение управления и программное обеспечение АСУ.
контрольная работа [16,7 K], добавлен 09.10.2012Обработка информации и вычислений в вычислительной машине. Непозиционные и позиционные системы счисления. Примеры перевода десятичного целого и дробного числа в двоичную систему счисления. Десятично-шестнадцатеричное и обратное преобразование чисел.
контрольная работа [41,2 K], добавлен 21.08.2010Характеристика методов представления заданных чисел в двоичной, шестнадцатеричной, восьмеричной системе счисления. Представление указанного числа в четырехбайтовом IEEE формате. Разработка алгоритма обработки одномерных и двумерных числовых массивов.
контрольная работа [138,9 K], добавлен 05.06.2010Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.
курсовая работа [742,6 K], добавлен 03.07.2011Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.
курсовая работа [434,1 K], добавлен 27.08.2012Программирование на алгоритмическом языке Turbo Pascal на примере разработки алгоритма и программы расчета временной функции. Выбор, обоснование методов решения. Схемы алгоритмов основной программы и подпрограмм. Распечатка исходных и вычисленных величин.
реферат [154,8 K], добавлен 15.03.2012Исследование истории развития систем счисления. Изучение математического аспекта теории информатики. Характеристика информационных систем счисления. Основные операции над двоичными числами. Разработка программного обеспечения для проведения тестирования.
курсовая работа [995,4 K], добавлен 24.05.2015Роль и практическое значение автоматизации вычислений и обработки данных. Представление информации в компьютере, сущность системы счисления. Перевод числа из одной системы счисления в другую. Арифметические операции в позиционных системах счисления.
контрольная работа [1,2 M], добавлен 23.10.2009Система счисления как способ записи (изображения) чисел. История появления и развития различных систем счисления: двоичная, восьмеричная, десятичная и шестнадцатеричная. Основные принципы и правила алгоритма перевода из одной системы счисления в другую.
курсовая работа [343,1 K], добавлен 11.11.2014Создание программы решения математических выражений методом трансляции с помощью обратной пользовательской записи на алгоритмическом языке Си. Определение функционального назначения процедур ChartoInt, Scobka и Sumin, представление их в виде блок-схем.
курсовая работа [267,7 K], добавлен 20.11.2010Понятие и основные свойства алгоритма. Линейный, ветвящийся и циклический виды вычислительных процессов. Перевод числа из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную системы, сложение чисел, выполнение вычитания и умножения.
контрольная работа [125,7 K], добавлен 15.09.2013