49320

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

Курсовая

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

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

Русский

2013-12-25

195.01 KB

42 чел.

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


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

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

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

вариант 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с.


 

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

1100. Операционная система DOS 35 KB
  Установка операционной системы DOS, изучение основных команд и программ обслуживание.
1101. Операционная система Windows 98 Second Edition (9X) 40 KB
  На этой лабораторной работе Вы установите операционную систему Windows 98 Second Edition, научитесь основным программам обслуживания, работе с реестром и методам восстановления реестра. Воспользуйтесь ранее установленной виртуальной машиной с операционной системой DOS. Укажите в настройках виртуальной машины CD - ISO образ и выберите местонахождение образа.
1102. Операционные системы Windows 2003 Server и Windows XP Professional 223.5 KB
  Вы научитесь устанавливать операционную систему Windows XP Professional, создавать и работать с консолями, настраивать и пользоваться удаленным подключением к рабочему столу. Вы также настроите компьютер для работы под управлением Windows Server 2003.
1103. Операционные системы UNIX на примере реализации Kubuntu 52 KB
  Запуск операционной системы Kubuntu Desktop 6 (Portable). Навигация в linux. Создание и модификация пользователей и групп. Установка и удаление программ на примере пакета webmin. Просмотр системной информации. Манипулирование владельцами файлов и директорий.
1104. Организация рабочей среды пользователя 2.95 MB
  Посмотрите, какие существуют варианты настройки меню Пуск и Панели задач. Создать локальную группу созданных пользователей. Проделать это двумя способами: через окно свойств группы и окно свойств пользователя. Демонстрация работоспособности основных команд встроенного интерпретатора команд системы. Для одного из пользователей сделать сценарий входа.
1105. Вивчення технології роботи з СУБД Access 1.19 MB
  Для роботи з Access на локальному комп'ютері користувача має бути встановлена операційна система Windows 95 (98, NT) і СУБД Access. Щоб почати роботи з СУБД Access, необхідно після завантаження операційної системи запустити Access.
1106. Преобразователи электрических сигналов на операционных усилителях 787 KB
  Исследование следующих схем на ОУ: сумматор, схема сложения-вычитания, интегратор, дифференциатор, а также логарифмический усилитель с n–р–n-транзистором, включенным в цепь ООС ОУ.
1107. Методы и приборы контроля качества и диагностики состояния объектов 620 KB
  Поверка аналоговых электроизмерительных средств. Расширение пределов измерения аналоговых электроизмерительных приборов. Измерение активных и реактивных сопротивлений косвенным методом. Измерение напряжений и токов при помощи электронного осциллографа.
1108. Общие сведения о полупроводниках 52.5 KB
  Модель атома. Энергетическая диаграмма полупроводника. Энергетические диаграммы полупроводников. Элементы, IV группа таблицы Менделеева германий (Ge), кремний (Si).