- •Антонюк в.А., Задорожный с.С.
- •Первая программа на с. История языка программирования с.
- •Среда программирования «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-файла
Операции.
В языке С имеется большой набор операций, Стандартный набор включает операции сложения +, вычитания -, умножения *, деления /, остатка от деления %. Дополнительно имеются операции увеличения на 1 (автоинкремента)++, автодекремента --, поразрядного сдвига вправо >> и влево <<. Кроме этого, имеются поразрядные логические операции И &, ИЛИ | и НЕ !.
Присваивание в языке С выполняет операция, а не оператор. Результат присваивания – это число, которое тоже можно присваивать, например:
x=5+(y=2);
Дополнительно в язык включены составные операции присваивания вида (операция)= позволяющие сжато записывать выражения, например r*=5+x; означает r=r*(5+x) .
При написании арифметических выражений необходимо учитывать порядок операций. Круглые скобки изменяют порядок операций, поэтому целесообразно их использовать там, где возможны неоднозначности.
Особенности компьютерных вычислений налагают дополнительные требования к выражениям. Необходимо следить за переполнением чисел, а также за возможностью их обнуления. Например, выражение “x*2” может дать неожиданный отрицательный результат, если x - это целое число, большее, чем 32767/2, а “x/(x+1)” дает ноль.
Следует иметь ввиду, что в выражениях выполняется автоматическое преобразование типов данных, если это необходимо (в смешанных операциях). Преобразования выполняются в соответствии с иерархией типов (int -> long -> float ->double) и порядком вычислений. Пример: x=y+i/j; Вначале выполняется операция деления. Если i и j – целые, то выполняется их целочисленное деление, результат которого преобразуется в плавающий формат и складывается с y.
Ввод и вывод алфавитно-цифровой информации.
Для ввода и вывода используются стандартные функции printf и scanf из библиотеки stdio.h. Формат функций:
printf(«строка форматирования»,перем1,перем2,…);
scanf(«строка форматирования»,&перем1,&перем2,…);
Строка форматирования выводится в том виде, как написана за исключением управляющих слов. Слово начинающееся со знака % называется символом форматирования и означает, что в это место нужно вставить значение очередной переменной из списка параметров. Формат этого управляющего слова
% Размер Поля . Точность Длина Тип Переменной
Размер Поля – количество знаков, которое занимает поле,
Точность – количество знаков после десятичной точки,
Длина – символ l (эль) для переменной типа double или long int, L - для long double,
Тип Переменной – i,d - целые числа ,f,g,e - числа с плавающей запятой, c - символ, s - строка текста, заканчивающаяся нулем.
Пример: “%10.2lf” (число типа double занимает 10 символов, 2 символа после запятой).
Второй управляющий символ - это \. Он предназначен для вставки специальных символов: \n - символа перехода на новую строку, \0 - символа ноль, \\ - символа \ ,\’ - одинарной кавычки, \”- двойной кавычки, \% - символа %.
При вводе в строке форматирования все символы пропускаются за исключением символов форматирования.
Математические функции.
В арифметических выражениях можно использовать большой набор математических функций. Они определены в заголовочном файле <math.h>. Функция вызывается путем указания ее имени, за которым в круглых скобках следует список аргументов, например
y=2*M_PI/asin(-0.5);
// M_PI-константа, определенная в math.h,
// asin - функция arcsin.