- •Антонюк в.А., Задорожный с.С.
- •Первая программа на с. История языка программирования с.
- •Среда программирования «Microsoft Visual Studio.Net».
- •Структура программы.
- •Пример простейшей программы:
- •Представление данных.
- •Операции.
- •Ввод и вывод алфавитно-цифровой информации.
- •Математические функции.
- •Практическое задание №1.
- •Условия в вычислениях. Ветвящиеся и итерационные алгоритмы Условная операция присваивания. Операторы if ... Else и switch.
- •Ветвящиеся алгоритмы.
- •Циклические и рекурсивные алгоритмы. Операторы циклов for, do, while.
- •Практическое задание №2.
- •Функции.
- •Определение функции.
- •Прототипы функций.
- •Вызов по значению и вызов по ссылке.
- •Вычисление функций путем разложения в ряд.
- •Поиск корней функции методом деления отрезка пополам.
- •Поиск корней функции методом касательных.
- •Практическое задание №3.
- •Массивы и указатели. Работа с файлами. Объявления массивов и указателей.
- •Доступ к элементам массива.
- •Передача массивов функциям.
- •Указатели.
- •Динамическое выделение и освобождение памяти.
- •Практическое задание.
- •Потоковые функции.
- •Низкоуровневый ввод и вывод.
- •Ввод и вывод символов, строк, слов.
- •Форматированный ввод и вывод.
- •Потоки cin, cout, cerr.
- •Практическое задание №4.
- •Структуры и объединения. Синтаксис структур.
- •Доступ к элементам структуры.
- •Передача структур в функции.
- •Структуры и битовые поля.
- •Объединения.
- •Дополнительные средства (typedef и enum).
- •Введение в объектно-ориентированное программирование. Принципы объектно-ориентированного программирования.
- •Терминология объектно-ориентированного программирования.
- •Структура как простейший класс.
- •Inline методы.
- •Указатель this.
- •Конструкторы и деструкторы.
- •Перегрузка методов класса.
- •Перегрузка операций.
- •Практическое задание.
- •Производные классы. Полиморфизм
- •Виртуальные функции
- •Использование дружественных функций.
- •Практическое задание.
- •Работа в объектно-ориентированной среде.
- •Объектно-ориентированные стековые операции.
- •Объектно-ориентированные связанные списки.
- •Практическое задание.
- •Классы iostream.
- •Потоковый ввод-вывод.
- •Буферизованные потоки.
- •Строковые потоки.
- •Двоичные файлы.
- •Вычисления в интерактивном режиме.
- •Графика в системе matlab.
- •3. Программирование m-функций.
- •4. Создание законченных приложений на основе графического интерфейса пользователя.
- •4. Создание законченных приложений на основе графического интерфейса пользователя.
- •Глава 7. Дополнительные возможности системы matlab Объекты и классы. Переопределение операций.
- •Написание расширений matlab на языке c
- •Программные интерфейсы
- •Настройка среды для сборки проекта
- •Пример программы
- •Вызов команд среды matlab из mex-файла
Структура программы.
Программа на языке С содержит как минимум один текстовый файл. Для Windows приложения в проект дополнительно включается файл ресурсов, содержащий описание диалогов, растровых рисунков и др.
Текстовый файл начинается с команд препроцессора #include <имя файла заголовков .h>. Далее следует описание функций, текст которых находится в другом файле или в этом же файле, но в конце файла. Описание глобальных переменных предшествует тексту функций. В любом месте программы можно вставлять комментарии, которые начинаются двумя знаками деления (//) и идут до конца строки. В одном из файлов должна существовать функция с именем main – для DOS приложения, или WinMain – для Windows приложения. Эта функция является точкой входа в программу и с нее начинается сборка.
Пример простейшей программы:
//
// Это первая наша программа
// Автор – Я, 2004
//———————————-
#include <stdio.h>
int main()
{
printf(“Это пример простейшей программы.”);
return 0;
}
В начале программы приведен комментарий, описывающий программу, автора и дату создания. Комментарий начинается двумя косыми чертами (//) и идет до конца строки. Можно выделить участок текста как комментарий, если начать его знаками /* и закончить знаками */.
Строка #include <stdio.h> подключает файл заголовков стандартной библиотеки ввода-вывода.
Далее следует функция main, которая не имеет параметров. Она возвращает в качестве результата целое число(int). Тело функции main заключено в фигурные скобки.
Первым оператором функции main является вызов функции printf, которая вызывается для вывода на экран текста, заключенного в кавычки. Каждый оператор в языке С заканчивается точкой с запятой.
Оператор return используется для завершения функции и возврата целого числа «нуль».
Обратите внимание на расположение комментария, фигурных скобок и на отступы внутри блока. Для компилятора эти элементы совершенно не имеют значения. Однако очень помогают при чтении и отладке кода.
Представление данных.
При написании программы на С используются числовые и текстовые константы и переменные.
Целые числа записываются как последовательность цифр. Впереди числа может стоять его знак (плюс или минус), в конце - символ L(эль) для представления числа двойной длины. Числа с плавающей запятой записываются в виде +1.234e-56 (знак числа, целая часть, точка, дробная часть, символ e, знак порядка, порядок). Эта запись соответствует числу 1,234*10-56. Можно опускать различные части представления, важно только, чтобы число не выглядело как целое (1. .12 1e-5 – это примеры чисел 1, 0,12, 0,00001). Текстовые строки записываются в двойных кавычках, одиночные символы в одинарных кавычках.
Чтобы выделить память для данных конкретного типа необходимо определить переменную. Переменные, используемые в программе, должны быть объявлены. Объявление начинается с указания типа переменной, за которым пишутся имена переменных, разделенные запятыми. Именами переменных может быть любой набор букв латинского алфавита , цифр и знака _ (подчеркивание). Первой должна быть буква. Заглавные и строчные буквы различаются. Каждая переменная должна быть инициализирована. Это можно сделать непосредственно в описании, например целые переменные a_9, x7a и Alpha описываются следующим образом:
int a_9, x7a=3, Alpha = 0; a_9=-27345;
Описание переменной может находиться в любом месте программы. Использовать описанную переменную можно только ниже ее описания.
Многократно используемую константу можно описать так же, как и переменную, добавив слово const перед описанием, например:
const int buffersize=128;
В этом случае компилятор разрешает только использовать указанную переменную.
В языке имеются следующие типы данных:
char – отдельный текстовый символ, обычно он занимает один байт,
int – целое число, обычно занимает 2 байта,
long (int) – целое число двойной длины, обычно занимает 4 байта,
float – числа с плавающей точкой обычной точности, занимают 4 байта,
double – числа с плавающей точкой двойной точности, занимают 8 байт,
long double – числа с плавающей точкой двойной точности, занимают 10 байт,
void - величина нулевой длины и не имеющая значения.
Дополнительно может использоваться модификатор типа unsigned, который позволяет объявлять некоторые типы переменных как беззнаковые.
Кроме определения типа, можно к описанию переменной добавить спецификатор класса памяти.
Спецификаторы auto и register указывают на локальное время жизни переменной, а спецификаторы static и extern – на глобальное. Объект с глобальным временем жизни существует на протяжении всего времени выполнения программы.
Если переменная объявлена на внешнем уровне (допустимы классы памяти static или extern), то она видима во всей оставшейся части файла. Класс extern указывает на то, что переменная описана или в другом файле или в этом же файле, но позже.
Если переменная объявлена на внутреннем уровне (т.е. внутри блока, ограниченного фигурными скобками), то ее видимость определяется только этим внутренним блоком (спецификатор extern используется для указания на переменную, объявленную во внешнем блоке).