
- •Тема 1. Основные этапы решения задач на эвм 5
- •Тема 2. Жизненный цикл программы. Критерии качества программы. 15
- •Тема 3. Схемы алгоритмов, данных, программ 29
- •Тема 1. Основные этапы решения задач на эвм Постановка задачи разработки программного обеспечения
- •Анализ формальной постановки задачи
- •Выбор или разработка математической модели и метода решения
- •Разработка алгоритма
- •Базовые структуры алгоритма
- •3.2. Цикл с постусловием.
- •Тема 2. Жизненный цикл программы. Критерии качества программы.
- •Техническое задание и спецификация программы
- •Разработка проекта программной системы
- •Программирование (кодирование) или программная реализация алгоритмов
- •Тестирование и отладка
- •Эксплуатация и сопровождение
- •Критерии качества программного обеспечения
- •Тема 3. Схемы алгоритмов, данных, программ
- •Символы данных
- •Отображает данные, вводимые в ручную, во время обработки с устройств любого типа (клавиатура, переключатели, кнопки, световое перо, полоски со штрих кодом и т.Д.).
- •Символы процесса
- •Символы линий
- •Специальные символы
- •Правила применения символов в схемах
- •Правила выполнения соединений
- •Специальные условные обозначения
- •Тема 4. Язык программирования высокого уровня Си Общие сведения о языке Си
- •Алфавит языка Си
- •Грамматика для описания языка, синтаксические диаграммы
- •Структура программы на языке Си
- •Void main() //функция main
- •Имена объектов в программе
- •Выражения, операции и приоритеты
- •Тема 5. Стандартные типы данных
- •Тема 6. Составные типы данных Данные регулярного типа (массивы)
- •Int b [n]; // вектор из 10 целых элементов
- •9 Strcpy(s1,&s2[k]); //копирует правую подстроку из s2 в s1
- •9 Strncpy(s1,&s[2],n); //копирует среднюю подстроку из s2 в s1
- •Void main() /*пример функции*/
- •If(strcmp(s, "пароль"))
- •If(!strсmp("quit", s)) break;
- •Данные комбинированного типа (структуры)
- •Int month;
- •Int year;
- •Перечисления
- •Объединения
- •Указатели
- •Void *addres;
- •Int arrey[25];
- •Тема 7. Представление основных управляющих структур программирования Оператор присваивания
- •Составной оператор
- •Оператор перехода Goto
- •Условный оператор If
- •Оператор выбора switch
- •Операторы цикла while, do – while, for
- •Int I,j,imax,jmax,imin,jmin;
- •Операторы прерывания циклов
- •If (!flag) printf("Отрицательных чисел нет"); Форматированный ввод данных
- •Форматированный вывод данных
- •Преобразование типов
- •Инициализация данных
- •Тема 8. Функции
- •Определение функций в языке Си
- •Int rus (unsigned char r)
- •Void change (int X, int y)
- •Void change (int *X, int *y)
- •Вызов функций в языке Си
- •Int *fun (intx,int *y);
- •Int main()
- •Рекурсивные функции
- •Int nodWhile (int m, int n)
- •Int nodWhile (int m, int n)
- •Int main()
- •Int fCalculated[nFib];
- •Int FibDinam (int n)
- •Int main()
- •Int Summa(int n, int a[100])
- •Int main()
- •Тема 9. Файлы
- •Int fseek(file *fp, long count, int access);
- •Int ferror(file *fp);
- •Int remove(char *file_name);
- •Void rewind(file *fp);
- •Int main()
- •Тема 10. Приемы программирования. Примеры алгоритмов Алгоритмы сортировки
- •Исходный массив
- •Void SortBubble (int count, int* pArr)
- •Исходный массив
- •Void SortSelect(int count, int* pArr)
- •Int i1,temp;
- •Int jmax;
- •Void SortInsert (int count, int* pArr)
- •Int temp, j;
- •Алгоритмы поиска
- •Int bfSearch(char *s, char *p)
- •Int bmtarr[255];
- •Int bmSearch(int startpos, char *s, char *p)
- •Int BinarySearch (int lb, int ub, int key, int* pArr)
- •Динамические структуры данных
- •Линейные списки
- •Int value; // значение элемента
- •Void PrintSearchList (list head, int val)
- •If (lfound) printf("Элемент в списке найден!");
- •Стек, очередь, дек
- •Int prior(char);
- •Void main(void)
- •Int k, point;
- •Int prior(char a)
- •Деревья
- •Int info; //информационное поле
- •Приложение 1. Стандартные библиотеки языка Си
- •Приложение 2. Примеры реализации алгоритмов
- •Int main()
- •Int arr[10]; // Массив arr из 10 целочисленных элементов
- •Int I; // Счетчик для циклов
- •Int main()
- •Int main()
- •Int main()
- •Int Temp;
- •Int CurrentYear, Diff, Day1, Day2, Month1, Month2, I, Visokos;
- •Int main()
- •InsertSort(d, max); // Сортируем массив b методом вставок
- •Int number;
- •Int main()
- •Не рекурсивный алгоритм решения задачи Ханойская башня.
- •Int main()
- •Рекурсивный алгоритм решения задачи Ханойская башня.
- •Void move(int I, int j, int d)
- •Void hanoy(int I, int j, int k, int d)
- •Int main()
- •Int Cubic(double *X,double a,double b,double c);
- •Int Cubic (double *X, double a, double b, double c)
- •Void lu_backsub (double **a, int n, int *indx, double *b)
- •Void lu_invert (double **a, int n, int *indx, double **inv, double *col)
- •Int BracketRoot (double x0, double *a, double *b, double d0, double di, double dmax, double (*fun)(double));
- •Int BracketRoot (double x0, double *a, double *b, double d0,
- •Int main()
- •Int expo, I;
- •If (expo & 1)
- •Int main()
- •Приложение 3. Лабораторные работы Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа №9
- •Лабораторная работа №10
- •Лабораторная работа №11
- •Лабораторная работа №12
- •Список литературы
Символы линий
Символ линия
Символ отображает поток данных или
управления, при необходимости или для
повышения удобочитаемости, могут быть
добавлены стрелки указателя.
Передача
управления
Отображает непосредственно передачу
управления от одного процесса другому,
иногда с возможностью прямого возвращения
инициирующему процессу после того, как
инициированный процесс завершит свои
функции. Так передачи управления должен
быть назван внутри символа (запрос,
вызов, событие).
Канал
связи
Символ отображает
передачу данных по каналу связи.
Пунктирная линия
Символ отображает альтернативную связь между двумя или более символами, кроме того, символ используется для обведения аннотированного участка. Если один из ряда альтернативных выходов использует в качестве входа процесс, либо для выхода использует процессы, эти символы соединяют пунктирными линиями.
Специальные символы
Символ-соединитель
Символ
отображает выход в часть системы схемы
и вход из другой части схемы. Используется
для обрыва линий и продолжения ее в
другом месте. Соответствующие
символы-соединители должны содержать
одно и то же уникальное обозначение.
Терминатор
Символ
отображает выход во внешнюю среду и
вход из внешней среды (начало или конец
схемы программы, внешнее использование
и источник или пункт назначения данных).
Комментарий
Символ
используется для добавления описательных
комментариев или пояснительных записей
в целях объяснения или примечания.
Пунктирные линии связаны с соответствующим
символом или могут обводить группу
символов. Текст комментариев или
примечаний должен быть помещен около
ограничивающей фигуры.
Символ-пропуск
Символ
используют в схемах для отображения
пропуска символа или группы символов,
которых не определены ни тип, ни число
символов. Его используют только в
символах линий или между ними.
Правила применения символов в схемах
Символ предназначен для графической идентификации функции, которую он отображает, независимо от текста внутри этого символа.
Символы в схеме должны быть расположены равномерно. Следует придерживаться разумной длины соединений и минимального числа длинных линий.
Большинство символов дают возможность включения текста внутри символа.
Формы символов, установленные данным стандартом, должны служить руководством для фактически используемых символов. Не должны изменяться углы и другие параметры, влияющие на соответствующую формулу символов.
Символы должны быть по возможности одного размера. Символы могут быть начерчены в любой ориентации, но предпочтительнее в горизонтальной ориентации.
Зеркальное изображение формы символов обозначает ту же функцию, но не является предпочтительным.
Минимальное количество текста, необходимое для понимания функции данного символа, следует помещать внутри данного символа.
Текст, для чтения должен записываться слева направо и сверху вниз независимо от направления потока.
Если не хватает места для описания функционирования символа внутри, то используется комментарий. Если использование комментариев может запутать или разрушить ход схемы, то текст следует помещать на отдельном листе и давать перекрывающую ссылку на символ.
В схемах может использоваться идентификатор символов. Это связанный с данным символом идентификатор, который определяет символ для использования в справочных целях в других элементах документации (например, в листинге). Идентификатор символа должен располагаться слева над символом (рис.10).
Рис. 10. Расположение идентификаторов над символами
В схемах может использоваться описание символа. Например, отображения специального применения символа с перекрывающей ссылкой или для улучшения понимания функции, как части схемы. Описание символа должно быть расположено справа над символом.
В схемах работы системы символов, отображаются носители данных, во многих случаях представляют способы ввода-вывода.
Для использования в качестве ссылки на документацию, текст на схеме для символов, отображающих способы ввода, должен размещать справа над символом, а текст на схеме для символов, отображающих способы ввода, должны размещать справа под символом (рис.11).
Рис. 11. Расположение ссылок около символов
В схемах может использоваться подробное представление, которое обозначается с помощью символа с полоской для процесса или данных.
Символ с полоской (рис.12) указывает, что в этом же комплекте документации, в другом месте имеется более подробное представление. Символ с полоской представляет собой любой символ, внутри которого в верхней части проведена горизонтальная линия. Между этой линией и верхней линией символа помещен идентификатор, указывающий на подробное представление данного символа. В качестве первого и последнего символа подробного представления должен быть использован символ указателя конца.
Первый символ указателя конца должен содержать ссылку, которая имеется также в символе с полосой.