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

Линейный алгоритм на языке c.

1. Основы синтаксиса

Программа на языке C представляет собой набор последовательно исполняемых команд, разделенных символом «точка с запятой». Блоки команд заключаются в фигурные скобки. Выполнение программы начинается с функции int main().

Комментарии размещаются либо между двойным символом «/» и концом строки либо между сочетаниями символов «/*» и «*/».

В языке C различаются прописные и строчные буквы.

2. Типы данных в языках C/C++

Языки C/C++ являются строго типизированными, то есть каждой переменной соответствует один тип данных. В языке С существует целый ряд типов данных, в частности, численные типы данных, массивы, строки, указатели и структуры.

Массивы - это группа элементов одинакового типа (double, float, int и т.п.). Из объявления массива компилятор должен получить информацию о типе элементов массива и их количестве.

Варианты объявления

<тип_данных> <название_массива>[<число_элементов>];

<тип_данных> <название массива>[] = <константный_массив>;

Элементы массива нумеруются от 0 до <число_элементов>-1.

Константный массив может представлять из себя строку (только для типов данных char и wchar_t), либо записываться в следующем виде: {<элемент1>, <элемент2>, <элемент3>, … , <элементN>}

Таблица 1: Численные типы данных

Примечание: типы данных __intn не являются стандартом языка и специфичны для Microsoft.

Можно объявлять многомерный массив, как одномерный, каждый элемент которого — массив одной и той же длины. Объявление в этом случае выглядит следующим образом:

<тип_данных> <имя>[<размер1>][<размер2>]...[<размерN>];

Константный двумерный массив записывается таким образом:

{{эл1_1, эл1_2, эл1_3}, {эл2_1, эл2_2, эл2_3}, {эл3_1, эл3_2, эл3_3}}

Указатель - это адрес ячейки памяти, в которой содержится значение переменной. В том случае, если переменная объявлена как указатель, то она содержит адрес памяти, по которому может находится величина любого типа. При объявлении переменной типа указатель, необходимо определить тип данных, адрес которых будет содержать переменная, и имя указателя с предшествующей звездочкой (или группой звездочек). Формат объявления указателя:

<тип_данных> *<имя_переменной-указателя>;

При объявлении указателя могут применяться дополнительные модификаторы.

Структура представляет собой объединение в один тип данных нескольких разнородных типов. Она объявляется словом struct и её объявление выглядит следующим образом:

struct <название_типа>

{

<тип_данных_1> <имя_1>;

<тип_данных_2> <имя_2>;

<тип_данных_3> <имя_3>;

<тип_данных_N> <имя_N>;

};

Структуру можно обрабатывать как обычные типы данных (объявлять переменные, создавать массивы структур), а также получать доступ к полям структуры. Объявление структуры и обращение к её полям производятся следующим образом:

<название_типа> <имя_структуры>;

<имя_структуры>.<название_поля> = <значение>; //присваивание

3. Операторы

Арифметические, логические и побитовые операторы языка представлены в таблице 2.

Таблица 2: Операторы

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

Приоритеты вышеперечисленных операторов показаны в таблице 3.

Таблица 3: Приоритет операторов

Функции ввода-вывода

Для консольного ввода-вывода существует ряд инструментов. Одним из таких инструментов являются функции библиотеки стандартного ввода-вывода. Для включения библиотеки необходимо прописать #include <stdio.h> в начале файла программы.

Это предоставит доступ к функциям семейства scan и print.

Функция printf выводит информацию на экран в виде отформатированной строки. Синтаксис функции printf:

printf (“<строка_формата>”, <параметр_1>, <параметр_2>, <параметр_3>, ...);

Строка формата в функции представляет собой текстовую строку со особыми сочетаниями для непечатаемых символов и формата переменных.

Пример использования команды:

printf(“Первый корень равен %f;\nВторой корень равен %f;\n”, root1, root2);

Здесь «\n» является управляющей последовательностью для символа переноса строки, «%f» означает, что значения root1 и root2 будут представлены в формате числа с плавающей точкой и подставлены в соответствующие места в выходной строке.

Результат вывода при root1, равном 0 и root2, равном 1, будет иметь вид:

Первый корень равен 0.000000;

Второй корень равен 1.000000;

При этом курсор будет находиться на начале третьей строки.

Т аблица 4: Управляющие последовательности

Функция scanf используется для ввода значений c клавиатуры, при этом её строка формата имеет тот же вид, что и строка формата команды printf.

Для записи информации в текстовый файл и её считывания могут использоваться соответственно функции fprintf и fscanf. Помимо параметров, получаемых функциями printf и scanf, им необходимо передать указатель на файл.

Операции с файлами

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

FILE *<указатель_на_файл>;

<указатель_на_файл> = fopen(<путь_к_файлу>, <режим_открытия>);

Примечание: строка пути должна содержать двойные знаки «\».

Режимы открытия файла:

“w” - открывает чистый файл для записи. Удаляет данные, если они в файле были.

“a” - открывает файл для дозаписи.

“r” - открывает файл для чтения.

“w+” - открывает файл для чтения и записи. Удаляет данные, если они в файле были.

“a+” - открывает файл для чтения и дозаписи.

“r+” - открывает файл для чтения и записи.

Запись в файл

форматированного текста:

fprintf(<указатель_на_файл>, <строка_формата>, <параметры>);

данных:

fwrite(<указатель_на_данные>, <размер_элемента>, <количество_элементов>, <указатель_на_файл>);

Чтение из файла

форматированного текста:

fscanf(<указатель_на_файл>, <строка_формата>, <параметры>);

данных:

fwrite(<буфер_для_данных>, <размер_элемента>, <количество_элементов>, <указатель_на_файл>);

Закрытие файла

fclose(<указатель_на_файл>);

Перевод из десятичной системы счисления в заданную:

для перевода чисел из одной системы счисления в другую можно использовать функцию _itoa библиотеки “stdlib.h”. Синтаксис:

_itoa(<число>, <строка-буфер>, <основание_системы>);

Строку можно определить следующим образом:

char buf[33];

При этом функции надо будет передать только «buf».

Создание консольного приложения.

1. В меню “File” выберите “New”, затем “Project”. Будет открыто окно, в котором следует выбрать Win32 Console Project и ввести название проекта.

После выбора и ввода названия появится окно свойств приложения. В закладке свойств приложения отметьте «Пустой проект».

2. Добавьте к проекту файл с расширением cpp при помощи контекстного меню Solution Explorer или через File => New.

3. Включить библиотеки stdio.h и stdlib.h при помощи директивы #include

4. Составить текст программы, в которой вводится десятичное число и основание новой системы счисления, а выводится число в новой системе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]