Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
119
Добавлен:
13.03.2016
Размер:
470.02 Кб
Скачать

Часть. Основы программирования на Си

1.1. Структура простейшей Си-программы

Простейшая программа на Си состоит из одного файла и имеет следующую структуру (см. рис.1).

Директивы препроцессора

(в простейшем случае

#include<stdio.h>/*ввод/вывод*/

#include<math.h> /*стандартные математические функции*/)

void main()

{ описания

операторы

}

#include <stdio.h>

void main()

{inta,b,c;/*описание трех целых переменных*/

printf("введитеaиb\n");

/*приглашение к вводу aиb*/

scanf("%d%d", &a, &b);/*ввод a,b*/

c=a+b;/*вычисление с - суммы */

printf("c=%d\n",c);/*вывод с*/

}

а)

б)

Рис.1

а) общая схема простейшей Си-программы;

б) пример программы вычисления суммы двух чисел.

В начале программы идут директивы препроцессора, которые более подробно рассмотрены в п. 2.3. В простейшем случае можно огра­ничиться директивами include, которые необходимы для использова­ния библиотек стандартных функций Си:include <stdio.h>- для функций ввода/вывода,include <math.h>- для стандартных математических функций. Обратите внимание, что ди­рективы препроцессора начинаются со значка #.

Далее идет заголовок главной (и в простейшем случае единст­венной) функции: void main(). После заголовка в фигурных скобках записываетсяинструкциипрограммы.

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

В любое место программы можно включить комментарии - по­яс­няющие фразы, окаймленные, как скобками, символами /* и */. Ком­ментарии компилятором не обрабатываются и служат только для по­яснения текста программы. В Си++ также допускается использо­вать как комментарий строку программы, поставив в начале ее сим­волы //.

1.2. Данные в Си и операции над ними

1.2.1. Свойства ячейки памяти. Переменные и константы

Компьютерные программы, для написания которых предназна­чен алгоритмический язык Си, обрабатывают данные, которые, есте­ственно, хранятся в оперативной памяти компьютера. Каждое элемен­тарное данное имеет некоторый смысл (например, число или символ) и занимает один или несколько байтов памяти2. Эту область памяти часто называютячейкой памяти. Для того, чтобы ячейки памяти можно было различать и использовать их в программе, каждой ячейке дается имя. Таким образом, ячейка памяти характеризуется своимименемисодержимым(т. е. данным, которое в ней хранится). Кроме того, ячейка имеетадрес(адресом ячейки считается адрес младшего из занимаемых ею байтов). В программе имена ячеек участвуют как имена переменных, т. е. переменные программы - это, по существу, ячейки памяти. При написании программ считают, что ячейка памяти обладает следующими свойствами:

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

  2. При записи нового содержимого в ячейку предыдущее содержимое не сохраняется. Запись содержимого в ячейку называется присваиванием.Оператор присваивания описан в п.1.2.5.

  3. При считывании содержимое ячейки не изменяется.

  4. Если в ячейку на протяжении программы не было ничего записано, то ее содержимое считается неопределенным. Отметим, что это свойство не всегда выполняется в реализациях алгоритмических языков (все переменные в BorlandPascal, статические переменные вBorlandC++ при объявлении обнуляются).

Под константойв программировании понимается значение, не изменяющееся в процессе выполнения программы. Константам, также как и переменным, соответствуют ячейки памяти. Можно считать, что эти ячейки защищены от записи. В программе, кроме константобозначенныхилиименованных(т. е. имеющих имя), могут использоваться явные константы, заданные своим значением. Например, можно использовать константу с именемpi, предварительно задав ей значение 3.1415, а можно использовать в программе явную константу 3.1415.

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