- •Краткая характеристика1
- •Алфавит
- •Объявление переменных. Типы данных
- •Простые типы данных
- •Структурированные типы данных
- •Константы
- •Операции Присваивание.
- •Арифметические:
- •Логические (результат – логическое значение).
- •Операции работы с указателями.
- •Функции
- •Директивы препроцессора
- •Указатели Обзор
- •Приведение типов
- •Типизированные и нетипизированные указатели
- •Операции над указателями
- •Массивы
- •Многомерные массивы
- •Указатели в качестве параметров функций
- •Функции работы с указателями и памятью
- •Строки.
- •Время жизни и область видимости переменных
- •Указатель на функции
- •Работа с файлами.
- •Форматированный ввод-вывод
- •Введение в объектно-ориентированное программирование
- •Часть 2. Введение в технологию программирования.
- •Этапы развития программирования.
- •Проблемы разработки сложных программных систем:
- •Жизненный цикл программного продукта.
- •Модели жц.
- •Экстремальное программирование
- •Оценка качества процессов создания программного обеспечения.
- •Процессы проектирования.
- •Требования, цели
- •Внешнее проектирование.
- •Диаграммы потоков данных (Data Flow Diagrams).
- •Внешнее проектирование модулей
- •Модульная декомпозиция
- •Почему модуль должен компилироваться с первого раза?
- •Рекомендации по внесению ясности в текст программы:
- •Тестирование.
- •Документирование.
- •Пользовательский интерфейс
- •Часть 3. Типовые структуры данных и алгоритмы.
- •3.1 Структуры данных Логические структуры данных:
- •Хранение циклических структур данных в памяти компьютера
- •Организация двусвязанного списка.
- •Организация массива переменного размера:
- •3.2 Алгоритмы Быстрая сортировка
- •Поиск пути
- •Примеры программ
- •Список литературы
Примеры программ
Половинное деление
int Find(int *array, int size)
{
int a = 0,b = size-1,t;
do
{
t = (b+a)/2;
if (m[t] == x)return t;
if (m[t]>x) b = t;
else a = t;
}while (b-a>1);
if (m[a] == x) return a;
if (m[b] == x) return b;
return -1;
}
Сортировка пузырьком
int t;
char flag;
do
{
flag = 0;
for(int i=0;i<N-1-i;i++)
if (m[i]>m[i+1]) {t=m[i];m[i]=m[i+1];m[i+1]=t;flag=1;}
}while(flag)
Обход дерева
struct Node
{
Node *parent,*left,*right;
};
void Action(Node *node)
{
if (node == NULL) return;
//action;
Action(node->left);
Action(node->right);
}
void Action2(Node *node)
{
queue<Node*> q;
q.push(node);
do
{
node = q.front();
q.pop();
//action
if (node->left!=NULL) q.push(node->left);
if (node->right!=NULL) q.push(node->right);
}
while(!q.empty)
}
Список литературы
Иванова Г.С. Технология программирования: Учебник для вузов. – М.: МГТУ им. Н.Э.Баумана, 2002.
Подбельский В.В. Язык С++: Учебн. пособие. – М.: Финансы и статистика, 1995.
Г. Майерс. Надёжность программного обеспечения. 1976 // Перев. на русский язык под ред. И.А.Махован и др. – М.: Мир, 1980.
В. В. Шураков. Надежность программного обеспечения систем обработки данных : учеб. для вузов. Изд. 2-е, пеpеpаб. и доп. — М. : Финансы и статистика, 1987 .— 272 с
Электронная энциклопедия ru.wikipedia.org
1http://ru.wikipedia.org/wiki/C
2Квадратные скобки не являются частью записи формата, а указывают на необязательность аргумента