49320

Разработка программы на алгоритмическом языке программирования Си

Курсовая

Информатика, кибернетика и программирование

Программа на языке СИ. Необходимо ответить на вопросы: “Что заданКакой должен быть получен результат†“Как получить результат†Задача моего варианта курсовой работы заключается в проверке истинности высказывания: Все цифры данного числа различныЭто значит что мне нужно используя знания полученные на курсах информатики а так же при необходимости используя дополнительную литературу составить программу на языке си которая могла бы определить – все ли цифры различны в заданном трехзначном...

Русский

2013-12-25

195.01 KB

39 чел.

МИНОБРНАУКИ РОССИИ


Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Ижевский государственный технический университет имени М.Т. Калашникова"

Кафедра СС и ТС.

Курсовая работа по дисциплине "Информатика"

вариант 20

Выполнил студент группы Б-01 282

Юдин Дмитрий Владимирович

Проверила к.п.н. доцент кафедры Радиотехники

Сидорина В.А.                      .    

Ижевск 2013г.


Содержание

Введение…………………………………………………………………………………………3

1. Постановки задачи…………………………………………………………………..…4

2. Математические методы и средства решения задачи…….………5

3. Описание данных……………………………………………………………………....6

4. Алгоритмы……………………………………………………………………..…………….

4.1 Словесное описание………………………………………………………………….

4.2 Псевдокод………………………………………………………………………………….

4.3 Блок схема…………………………………………………………………………………..

5. Программа на языке СИ………………………………………………………………..

6. Тестовый пример…………………………………………………………………………..

7. Руководство пользователя для работы с программой……………….

8. Заключение……………………………………………………………………………………..

9. Список литературы …………………………………………………………………………


Введение:

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

  1.  анализ поставленной задачи.
  2.  выбор обоснования изложения метода решения поставленной задачи.
  3.  построение алгоритма решения задачи.
  4.  создание и отладка программы.
  5.  разработка комплекта тестов для проверки правильности работы.
  6.  оформление пояснительной записки.
  7.  защита курсовой работы.
  8.  
    Постановка задачи.

Выполнение курсовой работы надо начать с четкого уяснения поставленной задачи. Необходимо ответить на вопросы: “Что задано?”, “Какой должен быть получен результат?”, “Как получить результат?”

Задача моего варианта курсовой работы заключается в проверке истинности высказывания: «Все цифры данного числа различны»
Это значит, что мне нужно, используя знания, полученные на курсах информатики, а так же, при необходимости, используя дополнительную литературу составить программу на языке си, которая могла бы определить – все ли цифры различны в заданном трехзначном числе. Пользователю нужно будет ввести любое трехзначное число и программа выведет на экран результат.

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

2. Математические методы и средства решения задачи:

Средствами решения задачи является алгоритмический язык СИ.

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

Наиболее эффективно математическую модель можно реализовать на компьютере в виде алгоритмической модели. Для этого может быть использован язык блок-схем или какой-нибудь псевдокод, например учебный алгоритмический язык. Разработка алгоритма включает в себя выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование самого алгоритма. Тогда, средством решения задачи является алгоритмический язык си.

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

Язык Си прост,и в то же время в него введены некоторые средства характерные для языка Ассемблер.

Он был создан в 1972 г. Деннисом Ритчи в США .

Предшественник языка Си – язык Би.

Достоинства Си:

  1.  Язык Си – мобильный (переносимый) язык (высокая переносимость написанных на нем программ между компьютерами с различной архитектурой);
  2.  Си – современный язык, т.к. включает в себя те управляющие конструкции, которые рекомендуются теоретическим и практическим программированием;
  3.  Си – эффективный язык, это означает, что его структура позволяет наилучшим образом использовать возможности современных ЭВМ. Программы на Си отличаются компактностью и быстротой выполнения;
  4.  Си – мощный гибкий язык. Область применения – программы экономического назначения, средства программирования, компьютерные игры. Мультфильмы, операционная система UNIX.

Особенности языка Си:

  1.  В языке Си реализованы некоторые операции низкого уровня, которые напрямую соответствуют машинным командам;
  2.  Базовые данные языка Си отражают те же объекты, с которыми приходится иметь дело в Ассемблере – это байты, машинные слова, символы и строки;
  3.  Язык Си поддерживает механизм указателей на переменные и функции (указатель это переменная предназначенная для хранения машинного адреса некоторой переменной или функции);
  4.  

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


Пример простейшей программы на Си

  1.  Эта программа находит периметр прямоугольника.
  2.  #include<stdio.h>
  3.  #include<conio.h>
  4.  main ()/*программа находит периметр прямоугольника */
  5.  {
  6.  int a,b,p; /*для вещественных типов- float*/
  7.  clrscr();
  8.  printf(«Введите а и b»);
  9.  scanf%d%d»,&a,&b);
  10.  p=(a+b)*2;
  11.  printf(«периметр =%d»,p);
  12.  getch();
  13.  }

Общие правила при написании программ на Си.

  1.  программа состоит из одной или более функций, причем какая-то из них обязательно называется main ();
  2.  описание функции состоит из заголовка и тела функции.
  3.  Заголовок в свою очередь состоит из директив препроцессора, например #include<stdioh> и имени функции;
  4.  Отличительным признаком имени функции являются круглые скобки, причем аргумент может отсутствовать;
  5.  Тело функции заключено в фигурные скобки и представляет собой набор операторов, каждый из которых заканчивается точкой с запятой;
  6.  Выбор осмысленных обозначений для переменных и использование комментариев необходимо в программе;
  7.  Необходимо помещать каждый оператор в отдельной строке (Си имеет свободный формат, в одной строке можно записывать несколько операторов, отделив их точкой с запятой).


Элементы языка Си.

  1.  Под элементами языка понимают базовые конструкции, используемые для написания программ.
  2.  В элементы Си входят:
  3.  Алфавит;
  4.  Константы;
  5.  Идентификаторы;
  6.  Ключевые слова;
  7.  Комментарии.

   Компилятор языка Си воспринимает файл, который содержит программу на языке Си как последовательность текстовых строк. Он последовательно считывает строки программы и разбивает каждую на группы символов, которые называются лексемами. Лексема – это единица текста программы, которая имеет самостоятельный смысл для компилятора Си и которая не содержит в себе других лексем (Примеры: знаки операций, константы, идентификаторы, ключевые слова, различные скобки).

Алфавит языка Си .

а)буквы и цифры – множество символов языка Си включает прописные и строчные буквы латинского алфавита и арабские цифры. Причем компилятор рассматривает одну и ту же прописную и строчную букву латинского алфавита как различные символы.

б)пробельные символы – это пробел, табуляция, перевод строки, новая страница, новая строка.

в)разделители  

: ; , . ? ’ { } ( ) [ ] < > ! | \ / - # % & + - *


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

  1.  \n – новая строка
  2.  t\  – горизонтальная табуляция – выравнивание по горизонтали
  3.  \v – вертикальная табуляция
  4.  \f – новая страница
  5.  \b – забой – предыдущая буква (цифра) стирается
  6.  \’ – апостроф
  7.  \” – двойная кавычка
  8.  \\  – обратная косая черта
  9.  \N – восьмеричная константа
  10.  \xN – шестнадцатеричная константа.

д)операции – это комбинации символов, специфицирующие действие по преобразованию значений.

  1.  + - сложение
  2.  - - вычитание
  3.  * - умножение
  4.  / - деление вещественных чисел, нахождение целой части вещественных чисел
  5.  % - остаток от деления
  6.  = - присваивание простое
  7.  ! – логическое «НЕ»
  8.  && - логическое «И»
  9.  \\ - логическое «ИЛИ»
  10.  ++ - прибавляет 1 к значению переменной (в Паскале n:=n+1, в Си n++)
  11.  --   - вычитает 1 из значения переменной
  12.  << - сдвиг влево
  13.  >> - сдвиг вправо (используются в массивах)
  14.  < - меньше
  15.  > - больше
  16.  <= - меньше либо равно
  17.  >= - больше либо равно
  18.  == - логический знак равенства
  19.  ,  - последовательное выполнение операции
  20.  += - присваивание со сложением
  21.  - = - присваивание с вычитанием
  22.  *= - присваивание с умножением
  23.  /=  - присваивание с делением
  24.  %= - присваивание с остатком от деления

Основными операциями языка Си считаются +, *, -, /, а также оператор присваивания =.

Основные операции выполняются в Си также как и в Паскаль, но имеют несколько дополнений. Так, знак "-" может использоваться как унарная операция, изменяющая знак переменной на противоположный. Особое использование отличает операцию деления. Она может применяться как к целым, так и к вещественным числам. Если результат операции деления должен быть присвоен целочисленной переменной, то дробная часть просто отбрасывается. Это действие называется усечением. Если деление применяется к операндам разного типа, то целочисленное значение преобразуется к виду с плавающей точкой.

Среди наиболее распространенных операций Си можно выделить:

1) sizeof - она возвращает размер операнда, выраженный в байтах. Операндом может быть конкретная данная или тип данных. При использовании последнего, оно записывается в скобках.

2) деление по модулю (%). Используется в целочисленной арифметике. Ее аналогом в Паскаль является функция mod.

3) инкремент (++). Выполняет простое действие: увеличивает значение операнд на 1. Эта операция может быть записана в префиксной форме, когда символ "++" предшествует переменной, и в постфиксной форме, когда "++" следует за переменной. Эти формы различаются последовательностью приращения значения операнда.

Пример:

  a++;

  ++a;

  b=a++;

  b=++a;

Первые два оператора не имеют различий. В третьем примере сначала значение переменной a будет присвоено переменной b, а затем увеличено на 1. В четвертом примере сначала значение переменной a увеличится, а затем присвоится.

4) декремент (--). Существует в префиксной и постфиксной формах. Результат его действия - уменьшение значения оператора на 1.

Операции "++" и "--" имеют очень высокий приоритет исполнения. Выше только исполнение действий в скобках.

2. Константы.

  1.   Это число, символ или строка символов. Константы в языке Си используются для задания постоянных величин.
  2.  Различают 4 типа:
  3.  а) целые;
  4.  б) с плавающей точкой;
  5.  в) символьные константы;
  6.  г) символьные строки.

const <тип> <имя  константы>=<выражение>;

Пример const int l= - 124;

3. Идентификаторы.

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

4. Ключевые слова.

  1.  Слова, которые используются для обозначения каких-либо операторов – case, char, const,double, else, float, for, if, int, long, void, while

5. Комментарии.

  1.  Это часть программы, которая игнорируется компилятором и служит для удобства читаемости исходного текста программы.
  2.  /*…*/ многострочные комментарии
  3.  // однострочные комментарии – символы до конца строки

3. Описание данных:

Данные делятся на входные, выходные и промежуточные. Нужно выбрать имена и типы данных, дать смысловое описание данных.

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

Сравнение схем приводит к выводу о том, что разнообразие типов данных в Си меньше, чем в Турбо Паскале.

В Си/Си++ имеется четыре базовых арифметических (числовых) типа данных. Из них два целочисленных — char, int — и два плавающих (вещественных) — float и double. Кроме того, в программах можно использовать некоторые модификации этих типов, описываемых с помощью служебных слов — модификаторов. Существуют два модификатора размера — short (короткий) и long (длинный) — и два модификатора знаков — signed (знаковый) и unsigned (беззнаковый). Знаковые модификаторы применяются только к целым типам.

Как известно, тип величины связан с ее формой внутреннего представления, множеством принимаемых значений и множеством операций, применимых к этой величине. В табл. 1 перечислены арифметические типы данных Си, указан объем занимаемой памяти и диапазон допустимых значений.

Размер типа int и unsigned int зависит от размера слова операционной системы, в которой работает компилятор Си. В 16-разрядных ОС (MS DOS) этим типам соответствуют 2 байта, в 32-разрядных (Windows) — 4 байта.

Таблица 1

Анализируя данные таблицу 1, можно сделать следующие выводы:

• если не указан базовый тип, то по умолчанию подразумевается int;

• если не указан модификатор знаков, то по умолчанию подразумевается signed;

• с базовым типом float модификаторы не употребляются;

• модификатор short применим только к базовому типу int.


4. Алгоритмы

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

В этом определении уже указаны основные свойства алгоритма. Во-первых, алгоритм состоит из конечного набора инструкций или шагов, во-вторых, каждый шаг трактуется исполнителем единственным образом, что позволяет гарантированно получить решение для некоторого набора входных данных, в-третьих, алгоритм всегда сводится к некоторому преобразованию исходных данных в результат или результаты. В этом смысле формулы для решения квадратного уравнения или даже четко составленную инструкцию по варке кофе можно считать алгоритмами, выполнимыми исполнителем-человеком. Для машины, разумеется, требуется более четкая формализация задачи, чем для человека, понимать естественный язык компьютеры пока неспособны, отсюда необходимость учета при составлении алгоритма ограниченного набора инструкций ЭВМ.

Свойства алгоритма:

Дискретность – алгоритм состоит из отдельных инструкций (шагов);

Однозначность – каждый шаг понимается исполнителем единственным образом;

Массовость – алгоритм работает при меняющихся в некоторых пределах входных данных;

Результативность – за конечное число шагов достигается некоторый результат.


4.2 Псевдокод

#include <stdio.h>

 

#define test(a) ( (a) / 100 != (a) / 10 % 10 && (a) / 100 != (a) % 10 && (a) / 10 % 10 != (a) % 10 )

(Задаем параметры теста)

 

int main(void) 

    int n;

(Ввод числа)

   

    while ( printf("Number: ") && scanf("%d", &n) == 1 && n > 99 && n < 1000

(Параметры вывода ответа и ввода 3х значного числа)

        printf("%s\n", ( test(n) ) ? "True" : "False");

(Вывод результата) 

 

    return 0;

(Начать алгоритм заного)

4.3 Блок Схема


5. Программа на языке СИ

#include <stdio.h>

 

#define test(a) ( (a) / 100 != (a) / 10 % 10 && (a) / 100 != (a) % 10 && (a) / 10 % 10 != (a) % 10 )

 

int main(void) {

    int n;

   

    while ( printf("Number: ") && scanf("%d", &n) == 1 && n > 99 && n < 1000 )

        printf("%s\n", ( test(n) ) ? "True" : "False");

   

    return 0;

}

6. Тестовый пример


  1.  Руководство пользователя для работы с программой

Для работы с программой необходима оболочка.  

Я решил использовать Dev-C++ - Редактор и компилятор для написания программ на Cи и Си++. Этот редактор показался мне наиболее понятным и удобным для использования.

При запуске программы появится окно для ввода и вывода информации.

Введите трехзначное число и нажмите enter

Программа введет на экран результат и предоставит возможность снова ввести число.

Заключение

В ходе данной курсовой работы я закрепил и подтвердил полученные при изучении дисциплины «Информатика» знания. Самостоятельно разработал программу на алгоритмическом языке программирования Си. Программа прошла проверку на работоспособность, полностью исправна и готова к применению.


Список литературы:

Сидорина В.А. Методические указания к выполнению курсовых работ для студентов высшего профессионального образования. В.А Сидорина, А.В Абилов. Ижевск: Издательство ИжГТУ, 2008.- 31с.


 

А также другие работы, которые могут Вас заинтересовать

78470. Клинико-рентгенологические признаки легочного инфильтрата. Наиболее частые причины легочного инфильтрата. Тактика ведения больных с легочным инфильтратом 102 KB
  Легочной инфильтрат - клинико-рентгенологический признак воспалительного изменения легочной паренхимы за счет экссудативно-пролиферативных процессов, сопровождающихся потерей воздушности, эластичности и уплотнением структур легочной ткани.
78471. Классификация пневмоний. Критерии для постановки диагноза «пневмония». Оценка тяжести и прогноза исхода пневмонии по шкале CURB-65 97 KB
  Критерии для постановки диагноза пневмония. Классификация пневмоний Американского торакального общества 1993 г: Внебольничная пневмония ВП; Нозокомиальная внутригоспитальная пневмония НП; Аспирационная пневмония АП; Пневмония у лиц с тяжелым дефектом иммунитета; Типичные вызываются пневмотропными микробами; Атипичные вызываются внутриклеточными облигантами такими как вирусы хламидии микоплазмы клебсиеллы легионеллы и др.; Вторичные пневмонии: Застойная гипостатическая пневмония декомпенсация ХСН; Инфарктная...
78472. Внебольничная пневмония: принципы диагностики на амбулаторном и стационарном этапах ведения. Принципы выбора эмпирической антимикробной терапии в зависимости от группы риска и вероятной этиологии пневмонии 133 KB
  Лечение ВП в амбулаторных условиях: возбудители и препараты выбора: S. influenz: Препараты выбора: Амоксициллин или макролиды внутрь; Альтернативные препараты: Респираторные фторхинолоны левофлоксацин моксифлоксацин Доксициклин внутрь; S.ureus Enterobctericee: Препараты выбора: Амоксициллин Клавуланат или цефуроксим аксетил внутрь; Альтернативные препараты: Респираторные фторхинолоны левофлоксацин моксифлоксацин внутрь; Лечение ВП в стационарных условиях: возбудители и препараты выбора: S.ureus Enterobctericee: Препараты...
78473. Критерии пневмонии тяжелого течения. Инфекционно-токсический шок. Сепсис. Тактика ведения больных с тяжелой пневмонией 93.5 KB
  и ниже; Большие: Необходимость проведения ИВЛ; Увеличение объема инфильтрата в легких на 50 и более в течении 48 часов от начала терапии; Острая почечная недостаточность диурез менее 80 мл за 4 часа или сывороточный креатинин более 2 мг дл при отсутствии анамнестических указаний на наличие ХПН; Септический шок или потребность в вазопрессорах более 4 часов; Оценка тяжести и прогноза исхода пневмонии по шкале CURB65 по 1 баллу за признак: Спутанное сознание; Мочевина 7 ммоль л; ЧДД = 30 в мин; АД = 90 60 мм. Клиника: резкая...
78474. Нозокомиальная пневмония, как разновидность внутрибольничной инфекции. Наиболее частые причины нозокомиальных пневмоний 137.5 KB
  Классификация: Ранняя НП возникающая в течение первых 5 дней с момента госпитализации для которой характерны определенные возбудители чаще чувствительные к традиционно используемым антимикробным препаратам имеющую более благоприятный прогноз; Поздняя НП развивающаяся не ранее 6 дня госпитализации которая характеризуется более высоким риском наличия полирезистентных возбудителей и менее благоприятным прогнозом; Пути попадания инфекции в легочную ткань: аспирация секрета ротоглотки содержащего потенциальные возбудители НП;...
78475. Вентилятор-ассоциированная пневмония (ВАП): причины возникновения, клинико-рентгенологические и лабораторные критерии 97.5 KB
  Вентиляторассоциированная пневмония ВАП это частный случай ГП развивающейся у больных которым требуется протезирование функции внешнего дыхания т. Возникновение ВАП возможно и ранее 48 часов особенно у больных находящихся в критическом состоянии. Наиболее часто с ВАП ассоциируются такие микроорганизмы как кишечные грамотрицательные бактерии грибы и Stphylococcus ureus но есть данные о полимикробной инфекции.
78476. Аспирационная пневмония (АП) или синдром Мендельсона: причины возникновения, особенности микробного фона. Группы риска возникновения АП. Клинико-рентгенологические, эндоскопические и лабораторные критерии для диагноза АП 85 KB
  Патогенез: аспирация пищевых масс приводит большей частью к закупорке преимущественно средних бронхиол и возникновению острой гипоксии; аспирация желудочного сока нередко возникающая у больных и натощак означает распространенный химический ожог слизистой оболочки трахеи бронхов и бронхиол и как правило обусловливает крайне тяжелое течение возникающей острой ДН; истинный химический ожог бронхов происходит тогда когда рН аспирируемой жидкости менее 25; наиболее выраженное повреждение легких возникает при рН желудочного сока около...
78477. Легочные и внелегочные осложнения бактериальных пневмоний. Принципы профилактики, диагностики и лечения осложнений 92.5 KB
  Массивное действие токсина на сосудистую стенку приводит к выраженной дилатации венозных сосудов и депонированию крови преимущественно в органах брюшной полости, в результате чего уменьшается приток к правым отделам сердца, падает ударный объем, сердечный выброс и нарушается перфузия периферических органов (развивается гиповолемический шок).
78478. Клинико-этиологические различия атипичных пневмоний (вызванных микоплазмой, хламидиями или легионеллой). Принципы диагностики и выбора эмпирической антимикробной терапии 88 KB
  Характеристика: передается от человека человеку воздушнокапельным путем; пневмонии часто предшествуют воспаление верхних дыхательных путей; вызывает очаговое или сегментарное воспаление легочной ткани; чаще течение не тяжелое; начало постепенное: субфебрильная температура кашель с небольшим отделяемым вязкой мокроты; кашель становится упорным появляются выраженные симптомы интоксикации миалгии артралгии перикардит и др. Характеристика: пневмонии также часто предшествуют воспаление верхних дыхательных путей; сухой кашель...