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с.


 

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

40206. Подходы к оптимизации структуры капитала 24 KB
  Подходы к оптимизации структуры капитала. ОПТИМИЗАЦИЯ СТРУКТУРЫ КАПИТАЛА процесс определения соотношения использования собственного и заемного капитала при котором обеспечиваются оптимальные пропорции между уровнем рентабельности собственного капитала и уровнем финансовой устойчивости т. Оптимизация структуры капитала предприятия осуществляется различными методами. Метод оптимизации структуры капитала по критерию политики финансирования активов.
40207. Состав и структура активов предприятия 39.5 KB
  Основные фонды представляют собой наиболее значимую составную часть имущества предприятия и его внеоборотных активов. Основные средства это основные фонды выраженные в стоимостном измерении. Основные средства средства труда которые неоднократно участвуют в производственном процессе сохраняя свою натуральную форму а их стоимость переносится на производимую продукцию частями по мере снашивания. Сроком полезного использования признается период в течение которого основные средства приносят экономические выгоды доход организации.
40208. Социально-экономическая сущность оборотных активов. Состав и структура оборотных средств 26 KB
  В хозяйственной деятельности предприятия необходимо участие не только основных но и оборотных средств необходимых для своевременного выполнения всех хозяйственных операций. Оборотный капитал предприятия его финансовые ресурсы инвестируемые в оборотные активы. Оборотные фонды часть производственных фондов предприятия вещественные элементы которых в процессе производства в отличие от основных фонды расходуются в течение данного производственного цикла и их стоимость переносится на продукт труда целиком и сразу при этом они теряют...
40209. Организация и управление оборотными средствами 38 KB
  Организация оборотных средств на предприятии включает определение потребности в оборотных средствах их состава структуры источников формирования а также регулирование и управление использованием оборотных средств. Одним из основных принципов организации оборотных средств является нормирование Реализация этого принципа позволяет экономически обоснованно установить необходимый размер оборотных средств и тем самым обеспечить условия для успешного осуществления ими своих функций. Ошибочная практика отказа от нормирования оборотных средств...
40210. Оценка эффективности использования оборотных средств 53.5 KB
  Оценка эффективности использования оборотных средств. Эффективность использования оборотных средств характеризуется системой показателей. Важнейшим критерием интенсивности использования оборотных средств является скорость их оборачиваемости. Чем короче период оборота средств и чем меньше они находятся на различных стадиях оборота тем эффективнее они используются тем больше денежных средств может быть направлено на другие цели предприятия тем ниже себестоимость продукции.
40211. Дебиторская задолженность виды, подходы к оценке и управлению 35.5 KB
  Дебиторская задолженность виды подходы к оценке и управлению.ру: Дебиторская задолженность сумма долгов причитающихся предприятию от юридических или физических лиц в итоге хозяйственных взаимоотношений с ними. В бухгалтерском учете под дебиторской задолженностью как правило понимаются имущественные права представляющие собой один из объектов гражданских прав. Следовательно право на получение дебиторской задолженности является имущественным правом а сама дебиторская задолженность является частью имущества организации.
40212. это краткосрочные высоколиквидные финансовые вложения которые можно легко конвертировать в известную сум 24.5 KB
  При составлении отчета о движении денежных средств денежные средства и их эквиваленты суммируются и учитываются общей суммой. Это делается потому что покупка и продажа финансовых вложений в форме денежных эквивалентов считаются частью общего процесса управления денежными средствами предприятия а не источником или способом использования денег. Переводы денежных средств предприятия в инвестиции и обратно не рассматриваются в отчете о движении средств как выплаты и поступления. Денежные средства и их эквиваленты отраженные в отчете о движении...
40213. Понятие и классификация ценных бумаг. Основные виды ценных бумаг 49 KB
  Ценные бумаги имеют упрощенный порядок правопередачи что является их отличительной особенностью. Ценные бумаги можно хранить многие годы рассчитываться ими оставлять в качестве залога дарить и т. Согласно статье 145 Гражданского Кодекса правом удостоверенном ценной бумагой может владеть: предъявитель ценной бумаги владелец ценной бумаги на предъявителя; лицо названное в ценной бумаге владелец именной ценной бумаги; лицо названное в ценной бумаге или распорядитель назначенный таким лицом владелец или распорядитель...
40214. Определение потребности в оборотных средствах 25.5 KB
  Определение потребности в оборотных средствах. Определение потребности предприятия в собственных оборотных средствах осуществляется в процессе нормирования т. определения норматива оборотных средств. Целью нормирования является определение рационального размера оборотных средств отвлекаемых на определенный срок в сферу производства и сферу обращения.