22336

Язык Си: историческая справка, общая характеристика, основные достоинства. Подготовка к выполнению и выполнение программ в операционной среде MS DOS. Элементы языка Си: множество символов, ключевые слова, константы и переменные, операции и операторы

Лекция

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

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

Русский

2013-08-04

35.5 KB

1 чел.

ЛЕКЦИЯ 1

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

$ 1. ЯЗЫК СИ: ОБЩАЯ ХАРАКТЕРИСТИКА, ИСТОРИЧЕСКАЯ СПРАВКА

И ОСНОВНЫЕ ДОСТОИНСТВА

Язык Си является языком программирования общего назначения. Появление его тесно связано с созданием операционной системы UNIX, ибо  он  разрабатывался  специально  для  этой  системы и на нем написана  большая часть системного программного обеспечения UNIXа. Однако язык  Си не ориентирован на работу только лишь в одной операционной системе или на какой-либо конкретной машине. Он представляет  собой  универсальный, машиннонезависимый, легко переносимый язык программирования, в равной степени подходящий как для системного программирования, так  и  для  решения  задач вычислительной математики, технических и коммерческих приложений.  Язык Си - это алгоритмический язык "не очень высокого  уровня". Приведенная  характеристика означает, что он дает возможность работы  с такими типами объектов и позволяет выполнять такие операции, которые традиционно  относят  к  машинноориентированным  языкам  "низкого  уровня", подобным языку ассемблера. Примером упомянутых объектов могут служить символы, числа (со знаком и без), адреса оперативной памяти  и указатели, битовые цепочки и т.д., над которыми можно проделывать арифметические, логические и поразрядные операции.  В  то  же   время, Си не обеспечивает возможности работы со строками, множествами, массивами или списками как с единым целым.  В  языке  Си  имеется большой набор управляющих конструкций для  реализации циклических  и  разветвленных  алгоритмов,  средства  для  блочного  и модульного программирования, а также возможность гибкого  управления процессом выполнения программы. Все это позволяет охарактеризовать Си как язык структурного программирования. Однако сам по себе язык Си не обеспечивает возможности управления вводом/ выводом и в нем нет операторов, подобных операторам READ  и WRITE в FORTRANе. Все же действие по обмену информацией с  периферийными устройствами выполняются при помощи явным образом вызываемых  внешних функций, входящих в состав стандартных библиотек.          Появление Си принято связывать с именем Мартина Ритчи, подготовившего  в 1972 году первую версию этого языка в ходе работ над операционной системой UNIX для ЭВМ семейства  PDP.  Однако  исторически   его  возникновение  следует  связывать с, во многом машиннозависимым,   языком B, созданным Кеном Томпсоном на основе языка BCPL. В  настоящее  время  из 13000 строк системного кода UNIXа лишь 800 строк,

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

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

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

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

         - наличие средств для  конструирование  новых  агрегатированных  типов данных;

         - возможность  непосредственной работы с машинными адресами через аппарат указателей;

         - наличие препроцессора, позволяющего вносить изменение в текст  программы непосредственно перед ее компиляцией;

         - блочная структура программного  кода,  возможность  работы  с    различными  классами памяти и средства для модульного программирования.

$ 2. ПОДГОТОВКА К ВЫПОЛНЕНИЮ И ВЫПОЛНЕНИЕ ПРОГРАММ

В ОПЕРАЦИОННОЙ СИСТЕМЕ MS DOS

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

         - ввод исходного текста программы в файл при помощи какого-либо   редактора текстов (имя файла, как правило, имеет стандартное  расширение "C");

         - компиляция  программы,  т.е.  преобразование  ее  описания на  входном языке в семантический эквивалент на машинном языке, называемый объектным модулем (имя файла, в  который  помещается  результат   компиляции, обычно имеет расширение "OBJ");

построение  готового  к  выполнению  загрузочного  модуля  из  объектных модулей, включая модули из внешних библиотек (файл, содержащий готовую программу, имеет имя с расширением "EXE").   В  процессе компиляции программы создается листинг ее исходного  текста, содержащий, возможно, сообщения об обнаруженных ошибках.

Наличие листинга существенно упрощает поиск и устранение ошибок, допущенных при подготовке программы, и сокращает время, затрачиваемое на  ее отладку. Имя файла, в который записывается листинг исходной программы, снабжается обычно расширением "LST".  На этапе построения загрузочного модуля также возможно создание  файла-листинга, включающего в себя информацию о размещении  собираемых  объектных модулей в памяти ЭВМ. Однако его анализ и использование требует более глубоких знаний основных принципов работы  машины,  нежели разбор листинга исходной программы.  Для  запуска в работу готовой к выполнению программы в операционной среде MS DOS достаточно набрать имя содержащего  ее  файла  на  клавиатуре консольного  терминала,  закончив  ввод нажатием клавиши  Enter.

$ 3. ЭЛЕМЕНТЫ ЯЗЫКА СИ

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

3.1. Алфавит

3.1.1. Буквы и цифры

- большие буквы латинского алфавита

A B C D E F G H I J K L M

 N O P Q R S T U V W X Y Z

- малые буквы латинского алфавита

a b c d e f g h i j k l m

                        n o p q r s t u v w x y z

- десятичные цифры

0 1 2 3 4 5 6 7 8 9

3.1.2. Специальные символы

пробел  !  "  #  %  &  '  (  )  *  +  ,  -  .

/  :  ;  <  =  >  ?  [  \  ]  ^  _  {  |  }  ~

3.2. Имена объектов программы (идентификаторы)

Идентификаторами  в языке Си являются последовательности букв и  цифр, начинающиеся с буквы, причем символ подчеркивания (_) рассматривается компилятором как буква. Большие и малые буквы латинского  алфавита  считаются  различными.  Длина идентификатора формально может  быть произвольной, однако только лишь первые 31 символ являются значимыми для компилятора IBM C/2. В программах на языке Си идентификаторы служат именами переменных, символических констант, функций, типов данных и меток. Общепринято  для  именования констант использовать большие буквы латинского  алфавита, сохраняя малые буквы для обозначения переменных и функций.

Замечание. Не рекомендуется в прикладных  программах  использовать  идентификаторы,  начинающиеся с подчеркивания, ибо в среде IBM C/2 это может привести к конфликту с именами создаваемых  компилятором служебных переменных или констант.

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

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

- типы данных

               char       float     short      typedef      void

               double     int       signed     union

               enum       long      struct     unsigned

- классы памяти

              auto     extern     register     static

- операторы

               break        default     for      return    while

               case         do          goto     sizeof

               continue     else        if       switch

- специальные

              const     far         huge     pascal

              cdecl     fortran     near     volatile

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

Под комментариями понимаются последовательности символов, игнорируемые компилятором. Комментарии имеют следующую форму:

                             /* Characters */

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

3.5. Константы

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

3.6. Операции и выражения

Под  операциями следует понимать действия, выполняемые программой над определенными в ней объектами. Для обозначения операций  используются  некоторые стандартные комбинации специальных символов из  алфавита языка. Объекты программы, участвующие в операции, называются операндами. Всякая комбинация одного или большего числа операндов и символов операций, дающая единственное значение, образует  выражение.  Любое  выражение,  заканчивающееся  точкой с запятой, является   оператором (см. п. 3.7.).   Множество всех операций языка Си  удобно  разделить  на  восемь  следующих групп:

- арифметические операции

+  -  *  /  %  ++  --

- операции отношения

==  !=  <  >  <=  >=

- логические операции

!  ||  &&

- побитовые операции

~  <<  >>  &  |  ^

- операции присваивания

=  +=  -=  *=  /=  %=  <<=  >>=  &=  ^=  |=

- операции над массивами

 []

- операции над структурами и объединениями

->

- другие операции

  ? :  ,  syzeof  (type specifier)  ()

3.7. Операторы

Простейшим оператором языка Си является всякое  выражение,  заканчивающееся  точкой с запятой (см. п. 3.6.). В частности, отдельно  стоящая точка с запятой интерпретируется компилятором как  нуль-оператор. Наиболее  значительную  группу  операторов  образуют инструкции  (операторы) управления процессом выполнения программы. К  ним  относятся:

- операторы цикла

for (<init-expression>; <cond-expression>;

                                                      <loop-expression>)

statement

while (expression)

                 statement

              do

                 statement

              while (expression);

- условный оператор и переключатель

              if (expression)

                 statement1

              <else

                 statement2>

              switch (expression)

              { <case  const-expression: <statements>>

                 .                                 .

                 .                                 .

                 .                                 .

                <default: <statements>>

                 .                                 .

                 .                                 .

                 .                                 .

                <case  const-expression: <statements>> }

- операторы передачи управления

              goto     break     continue     return

Здесь  expression  есть произвольное правильное выражение языка  Си (см. Лекцию 2), а через statement обозначен простой или составной     (см. ниже) оператор, каковым, в частности, может быть и любой оператор управления. Последнее означает, что допустимым является вложение  операторов управления друг в друга. Элементы конструкций языка, заключенные в угловые скобки (<>), не являются  обязательными  и  могут  быть опущены. Один  или  несколько операторов, заключенных в фигурные скобки,  образуют составной оператор или блок. Точка с запятой после закрывающей скобки при этом не ставится.

3.8. Описания

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

3.9. Общая структура программы

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

main().


 

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

32658. Понятие о декомпозиции работ по проекту. Критерии выбора эффективной декомпозиции работ 46 KB
  Понятие о декомпозиции работ по проекту. Критерии выбора эффективной декомпозиции работ. Структура разбиения декомпозиции работ WBS Work Brekdown Structure иерархическая структура последовательной декомпозиции проекта на подпроекты пакеты работ различного уровня пакеты детальных работ. СРР является базовым средством для создания системы управления проектом так как позволяет решать проблемы организации работ распределения ответственности оценки стоимости создания системы отчетности эффективно поддерживать процедуры сбора...
32659. Типы структурных моделей проекта 202 KB
  Типы структурных моделей проекта. Типы структурных моделей проектов Типы структурных моделей проекта. Структурная модель проекта и принцип структуризации широко используются для построена и других структурных моделей применяемых в управлении проектом. Отметим наиболее существенные из них: Дерево целей и результатов первая по времени разработки структурная модель декомпозиции цели проекта на составные части.
32660. Жизненные циклы проекта и продукта 26.5 KB
  Жизненные циклы проекта и продукта. Жизненный цикл проекта совокупность последовательных фаз развития проекта и изобразить его концептуальную схему. Наиболее традиционным является разбиение проекта на четыре крупных этапа: определение проекта концепция разработка реализация и завершение. Определение проекта по существу подразумевает функцию выбора проекта.
32661. Участники проекта и их роль в обеспечении успеха проекта 31 KB
  Участники проекта и их роль в обеспечении успеха проекта. В настоящем разделе работы рассматривается состав участников проекта их роли и взаимосвязи распределение функций и ответственности. Главный участник Заказчик будущий владелец и пользователь результатов проекта. При этом заказчиком может быть как одна единственная организация так и несколько организаций объединивших свои усилия интересы и капиталы для реализации проекта и использования его результатов.
32662. Окружающая среда проекта 28 KB
  Окружающая среда проекта. Окружение проекта Каждый проект нужно рассматривать а также управлять им учитывая окружение в котором он существует. Окружающая среда проекта это совокупность внешних и внутренних в отношении проекта факторов влияющих на достижение результатов проекта. В данном разделе необходимо проанализировать факторы ближнего и дальнего окружения проекта которые могут оказать влияние на реализацию проекта.
32663. Базовые и интегрирующие функции управления проектом 24 KB
  Базовые функции управление предметной областью проекта содержательная сущность; управление качеством требования к результатам стандарты; управлением временными ресурсами бюджет времени; управление стоимостью финансовый и материальный бюджет. Интегрирующие функции управление персоналом проекта подбор подготовка организация работы; управление коммуникациями мониторинг и прогнозирование хода работ и результата; управление контрактами контрактация исполнителей материалов и др.; управление риском снижение уровня...
32664. Организационно-динамические структуры управления проектом. Проектирование организационно-динамических структур управления проектом 144 KB
  Организационнодинамические структуры управления проектом. Проектирование организационнодинамических структур управления проектом. Организационные структуры УП Несмотря на все многообразие типов и видов проектов их структура управления по своему содержанию в основном однородна ибо в ней представлена та или иная комбинация одних и тех же видов работ по управлению. Это обстоятельство обеспечивает единый подход к проектированию структур управления.
32665. Организационный инструментарий управления проектами: сетевое моделирование, метод PERT, матрица РАЗУ, информационно-технологические модели управления 263 KB
  Организационный инструментарий управления проектами: сетевое моделирование метод PERT матрица РАЗУ информационнотехнологические модели управления Сетевая матрица представляет собой графическое изображение процессов осуществления проекта где все работы управленческие производственные показаны в определенной технологической последовательности и необходимой взаимосвязи и зависимости. Матрица РАЗУ Возможно разделить функции по подразделениям и службам аппарата управления проектом а также обеспечить их комплексную реализацию. Матрица...
32666. Маркетинг проекта. План маркетинга в проекте 37 KB
  Маркетинг проекта В структуре маркетинговых исследований можно выделить 3 принципиальных блока которые в свою очередь также состоят из конкретных работ: Организация исследований: определение целей диапазона и программы маркетинговых исследований; определение методов и средств маркетинговых исследований; сбор и первичная оценка информации; Внешний анализ: анализ структуры целевого рынка; анализ емкости рынка; анализ каналов сбыта; анализ конкуренции; макроэкономический анализ; анализ социальноэкономической среды; Внутренний анализ:...