Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ПРОГ.doc
Скачиваний:
38
Добавлен:
20.11.2019
Размер:
5.63 Mб
Скачать

Вопросы для повторения

  1. Стандарты языка Си (С89 или ANSI C, С90, С99)

  2. Понятие интерпретатора

  3. Достоинства и недостатки интерпретаторов

  4. Понятие компилятора

  5. Достоинства и недостатки компиляторов

  6. Понятие интерпретатора компилирующего типа.

  7. Достоинства и недостатки интерпретаторов компилирующего типа.

  8. К какому классу относится язык Си?

  9. Понятие интегрированной среды разработки программ

  10. Состав типовой интегрированной среды разработки программ

  11. Понятие языка программирования с сильной типизацией

  12. Преимущества языков программирования с сильной типизацией

  13. Структура Си программы

  14. Назначение заголовочных файлов и файлов реализации.

  15. Понятие препроцессора. Назначение препроцессора.

Резюме по теме

В данной теме рассмотрены история развития и основные особенности языка Си.

Тема 3. Основы языка Си

Цели и задачи изучения темы

В данной теме рассматриваются основы языка Си.

3.1. Данные (сведения необходимые для начала работы)

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

3.1.1.Константы и переменные

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

Для задания символических имен констант в Си очень часто используется директива препроцессора #define. Так, строка #define PI 3.14159265 задает символическое имя PI для константы 3.14159265. После этого имя PI можно использовать вместо числового значения. Препроцессор находит все вхождения слова PI в текст и заменяет их на константу.

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

3.1.2.Основные типы данных

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

Термины тип данных (или просто тип) переменной обозначает множество значений, которые может принимать эта переменная. Набор базовых типов данных отличается в различных языках.

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

  • int

  • long

  • short

  • unsigned

  • char

  • float

  • double

Первые четыре ключевых слова используются для представления целых чисел. Если требуются только целые неотрицательные значения, то использовать ключевое слово unsigned перед соответствующим ключевым словом, например, unsigned int.

float, double используются для представления чисел с десятичной точкой.

При описании переменной сначала указывается тип, затем - имя переменной или список имен, разделенных запятыми, например,

int x;

int y, z, t;

При описании переменных можно присваивать им начальные значения:

int maxind = 1000;

int a = 5, b = 7;

Тип также определяет, сколько памяти занимает переменная этого типа. Для различных ЭВМ число байт памяти отводимое под переменные одного типа может различаться. Для определения того числа служит функция sizeof(). Пример использования данной функции:

/*

Пример 3

Определяет сколько байт памяти занимают переменные

различных типов

*/

#include <stdio.h>

#include <stdlib.h>

int main(void) {

printf("int - %d ,байт \n",sizeof(int));

printf("long - %d ,байт \n",sizeof(long));

printf("short - %d ,байт \n",sizeof(short));

printf("unsigned - %d ,байт \n",sizeof(unsigned));

printf("char - %d ,байт \n",sizeof(char));

printf("float - %d ,байт \n",sizeof(float));

printf("double - %d ,байт \n",sizeof(double));

return EXIT_SUCCESS;

}

Резулитат выполнения программы:

int - 4 ,байт

long - 4 ,байт

short - 2 ,байт

unsigned - 4 ,байт

char - 1 ,байт

float - 4 ,байт

double - 8 ,байт

Размер памяти, занимаемой переменной некоторого типа определить диапазон значений этой переменной.

В таблице 3.1 перечислены диапазоны значений простейших типов данных.

Таблица 3.1

Диапазоны значений простейших типов данных.

Тип

Диапазон значений

char

от -128 до +127

unsigned char

от 0 до 255

short

от -32768 до +32767

unsigned short

от 0 до 65535

int

от – 2147483648 до + 2147483647

unsigned int (или просто unsigned)

от 0 до 4294967295

long

от – 2147483648 до + 2147483647

unsigned long

от 0 до 4294967295

float

от ±3.4e-38 до ±3.4e+38 (7 значащих цифр)

double

от ±1.7e-308 до ±1.7e+308 (15 значащих цифр)

В рассмотренном примере программы встретилось слово void, которое означает "пустота". Тип void в Си обозначает отсутствие чего-либо там, где обычно предполагается описание типа. Например, функция int main(void), не принимает никакого значения.