Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ospk-2_Си_v11.doc
Скачиваний:
9
Добавлен:
08.11.2019
Размер:
593.92 Кб
Скачать

Лабораторная работа № 1

Тема: «Основы языка Си. Оболочка Dev-C++. Решение линейных алгоритмических задач»

Цель работы – изучить правила составления программ на языке С, изучить оболочку и возможности компилятора Dev‑C++, а также научиться программировать линейные алгоритмы на языке Си.

Теоретические сведения

1.1. Основы языка Си

1.1.1. Типы данных

Алфавит языка С/С++ состоит из: прописных и строчных букв латинского алфавита, арабских цифр и специальных символов, смысл и правила, использования которых будут рассматриваться далее.

В языке C применяются данные двух категорий: простые (скалярные) и сложные (составные).

Таблица 1.1 – Типы данных языка Си

Наименование типа

Тип данных

Память, байт

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

Символьный

char

1

-128 ... 127 (0 ... 255)

Целый

int

2 (4)

-32768 ... 32767

Короткий

short

2(1)

-32768... 32767 (-128...127)

Длинный

long

4

-2147483648... 2147483647

Беззнаковый целый

unsigned int

2

0 ... 65535

Беззнаковый длинный

unsigned long

4

0 ... 424967295

Вещественный

float

4

3,14*10-38 ... 3,14*1038

Вещественный с двойной точностью

double

8

1,7 *10-308 ... 1,7 *10308

К основным (базовым) типам данных относятся целый (int), вещественный (float, double) и символьный (char) типы. В свою очередь, данные целого типа могут быть короткими (short) и длинными (long), со знаком (signed) и беззнаковыми (unsigned). Атрибут long может использоваться и с типом double – длинное вещественное.

К сложным типам данных относятся массивы, структуры (struct), объединения (union) и перечисления (enum).

1.1.2. Декларация объектов

Все объекты (переменные, массивы и т.д.), с которыми работает программа, необходимо декларировать. В декларации объектам присваиваются идентификаторы (ID), которые могут включать латинские буквы, символ нижнего подчеркивания и цифры, причем первым символом идентификатора не может быть цифра. В языке С/С++ строчные и прописные буквы имеют различные коды, т.е. PI, Pi и pi – различные идентификаторы.

При декларации объектам можно задавать начальные значения (инициализировать), например: int k = 10, m = 3, n;

Разделителями идентификаторов являются пробелы, символы табуляции, перевода строки и страницы, а также комментарии. Комментарий – любая последовательность символов, начинающаяся парой символов /* и заканчивающаяся парой символов */ или начинающаяся // и до конца текущей строки.

1.1.3. Структура программы на языке Си

Программа, написанная на языке С, состоит из директив препроцессора, объявлений глобальных переменных, одной или нескольких функций, среди которых одна главная (main) функция управляет работой всей программы.

Общая структура программы на языке С имеет вид:

<директивы препроцессора>

<определение типов пользователя – typedef>

<прототипы функций>

<определение глобальных объектов> <функции>

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

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

Директивы начинаются с символа # (шарп), за которым следует наименование операции препроцессора. Чаще всего используются директивы include и define.

Директива #include используется для подключения к программе заголовочных файлов с декларацией стандартных библиотечных функций, например:

#include <stdio.h> – стандартные функции ввода-вывода;

#include <conio.h> – функции работы с консолью;

#include <math.h> – математические функции.

Директива #define создает макроконстанту и ее действие распространяется на весь файл, например #define PI 3.14.

Стандартные операции языка С/С++ (арифметические: +,–,*,/,%) и наиболее часто использующиеся стандартные математические функции описаны в прил.А.

Операция присваивания имеет полную и сокращенную формы записи.

Полная форма (например, ID = выражение;) выполняется справа налево, т.е. сначала вычисляется выражение, а затем его результат присваивается указанному ID, например: y=(x+2)/(3*x)–5.

Сокращенная форма (например, ID операция = выражение;), где операция – одна из арифметических операций + , –, *, /, %; например: s += 7; (т.е. s = s+7;). Сокращенная форма применяется, когда переменная используется в обеих частях ее полной формы.

В языке С/С++ существуют операции инкремента (++) и декремента (--), т.е. увеличения или уменьшения значения переменной на 1. Операции могут быть префиксные (++i и --i) и постфиксные (i++ и i--). При использовании данной операции в выражении в префиксной форме, сначала выполняется сама операция (изменяется значение i), и только потом вычисляется выражение. В постфиксной форме – операция применяется после вычисления выражения.