Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное_пособие_заочное (брошюра)

.pdf
Скачиваний:
24
Добавлен:
21.03.2016
Размер:
1.92 Mб
Скачать

Учебное издание

Казьмин Александр Васильевич Губина Людмила Викторовна

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Учебное пособие

Технический редактор: Иванова Н.И.

Компьютерный набор: Губина Л.В.

Корректор: Иванова Н.И.

Подписано к печати_______________________Бумага для множительной техники Формат___________Усл. печ. листов_________Тираж_______экз. Заказ_________

Отпечатано с авторского оригинала в отделе оперативной печати Старооскольского технологического института

Старый Оскол, микрорайон Макаренко, 40

152

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ ИМ. А.А. УГАРОВА (филиал) федеральногогосударственногоавтономного образовательного учреждения высшегопрофессионального образования «Национальный исследовательский технологический университет «МИСиС»

А.В. Казьмин, Л.В. Губина

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Учебное пособие

Одобрено редакционно-издательским советом СТИ НИТУ МИСиС в качестве учебного пособия для студентов бакалавров заочной формы обучения по всем направлениям и профилям

Старый Оскол

2013

УДК 004

ББК 32.81 К 148

Рецензент:

кандидат физико-математических наук, доцент А.П.Михайлов.

Казьмин А.В., Губина Л.В.

К 148 Основы алгоритмизации и программирования: учебное пособие / Казьмин А.В., Губина Л.В. – Старый Оскол: СТИ НИТУ МИСИС, 2013. – 152с.

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

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

УДК 004

ББК 32.81

© Казьмин А.В., Губина Л.В., текст, 2013

2

 

ОГЛАВЛЕНИЕ

Введение

..............................................................................................3

1.ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ..5

 

1.1.

Понятие алгоритма................................................................

5

 

1.2.

Схемы алгоритмов.................................................................

7

 

1.3.

Системы программирования.................................................

10

 

1.4. Основы программирования на языке Си...............................

12

2.

БАЗЫ ДАННЫХ ..........................................................................

45

 

2.1. Информационные системы и базы данных...........................

45

 

2.2. Типы СУБД и архитектура клиент-сервер............................

46

 

2.3.

Модели данных......................................................................

48

 

2.4.

Реляционная модель данных.................................................

50

 

2.5.

Проектирование баз данных..................................................

52

 

2.6.

Целостность БД.....................................................................

56

 

2.7. Языки запросов QBE и SQL..................................................

56

 

2.8. Структурированный язык запросов SQL ..............................

57

3.

ЛАБОРАТОРНЫЙ ПРАКТИКУМ...............................................

65

 

3.1. Лабораторная работа 1. Функции ввода/вывода. Вычисление

 

 

выражений.............................................................................

67

 

3.2. Лабораторная работа 2. Сочетание циклов и разветвлений..

70

 

3.3. Лабораторная работа 3. Одномерные массивы.....................

73

 

3.4. Лабораторная работа 4. Вложенные циклы и разветвления в

 

 

матричных задачах................................................................

77

 

3.5.

Лабораторная работа 5. Работа с базой данных....................

81

4.ДОМАШНИЕ ЗАДАНИЯ…...................................................... 108

 

4.1.

Выбор варианта задания.....................................................

108

 

4.2.

ЗАДАНИЕ 1........................................................................

108

 

4.3. Пример выполнения задания 1...........................................

111

 

4.4.

ЗАДАНИЕ 2........................................................................

121

 

4.5. Пример выполнения задания 2...........................................

123

5.

ПРИЛОЖЕНИЯ.........................................................................

141

 

5.1.

Библиотечные функции языка Си......................................

141

 

5.2.

Словарь англоязычных терминов.......................................

144

6.

ЛИТЕРАТУРА...........................................................................

150

151

6. Литература

Основная литература.

1.Карпухина Н.В., Светозарова Г.И. Информатика. Основы алгоритмизации и программирования. Учебное пособие. -

Москва: 2005. - 17с. Сайт http://www.iqlib.ru

2.Ашарина И.В. Основы программирования на языках С и С++. М.: Горячая линия –Телеком, 2002. - 207с.

3.Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных. Учебник для ВУЗов. Под ред. проф. А.Д. Хомоненко. СПб.: Корона-принт, 2004. – 736с.

Дополнительная литература.

1.В. В. Подбельский, С. С. Фомин. Программирование на языке С. М.: Финансы и статистика, 2000.- 600с.

2.Гусева Е.Н., Ефимова И.Ю., Коробков Р.И., Коробкова К.В., Мовчан И.Н., Савельева Л.А. Информатика. Учебное пособие ISBN / ISSN: 978-5-9765-1194-1 Москва: Флинта, 2011. 260с. Сайт http://www.iqlib.ru

3.Казьмин А.В., Губина Л.В. Информатика. Учебное пособие.

– 3-е издание, перераб. и доп. Старый Оскол: ТНТ, 2009.- 188с.

4.Казьмин А. В. «Информатика» Язык программирования Си (конспект лекций). СТИ., Старый Оскол, 2000.- 60с

5.Советов Б.Я., Цехановский В.В. Информационные технологии. Учебник для студентов вузов. М.: Высшая школа, 2006. - 263с.

6.Максимов Н.В., Попов И.И. Компьютерные сети. Учебное пособие. М.: ИНФРА-М, 2005. – 336 с.

150

ВВЕДЕНИЕ.

Дисциплина ”Основы алгоритмизации и программирования” является первой частью модуля “Информатика”. Изучение дисциплины имеет следующие цели и задачи:

-ознакомить с основами современных информационных технологий и тенденциями их развития;

-ознакомить с основами алгоритмизации и программирования;

-сформировать практические навыки использования информационных систем и технологий при изучении естественнонаучных, обще-профессиональных и специальных дисциплин и в дальнейшей профессиональной деятельности;

-подготовить студентов к самообразованию и непрерывному профессиональному самосовершенствованию.

Освоение дисциплины «Основы алгоритмизации и программирования» помогает решать профессиональные задачи при разработке курсовых и дипломных проектов и формирует общекультурные и профессиональные компетенции ФГОС.

Студент, успешно освоивший этот курс, должен

уметь:

-разрабатывать алгоритмы и программы с использованием структурного подхода,

-устранять пробелы в знаниях с использованием современных образовательных и информационных технологий,

-работать с компьютером как средством обработки информации,

3

-работать с информацией в глобальных компьютерных сетях,

-выполнять основные операции с базами данных;

владеть:

-логикой и культурой мышления,

-навыками работы в сетях под управлением современных операционных систем,

-основными методами, способами и средствами получения, хранения, переработки информации,

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

Перевод термина

Назначение термина

 

 

VALUES - значения

используется для внесения

 

данных в таблицы языка SQL

 

 

VARCHAR - сокращение от

используется для определения

слов VARYING и CHAR

типа символьной строки

 

переменной длины языка SQL

 

 

VARYING - переменный

используется для определения

 

типа двоичной строки

 

переменной длины языка SQL

 

 

WHERE - где

используется для определения

 

условия отбора в выборке данных

 

языка SQL

4

149

Перевод термина

Назначение термина

 

 

NUMERIC - числовой

используется для определения

 

числового типа языка SQL

 

 

OR - или

используется для обозначения

 

логической операции языка SQL

ORDER BY - сортировать

используется для определения

по

атрибута сортировки в выборке

 

данных языка SQL

 

 

PRIMARY KEY -

используется для определения

первичный ключ

атрибута первичного ключа

 

языка SQL

ROLLBACK WORK –

используется в операторе

обратить действие

управления транзакциями языка

 

SQL

SELECT - выбрать

используется в операторе

 

выборки данных языка SQL

 

 

SET - установить

используется в операторе

 

обновления данных языка SQL

 

 

SUM (summa) - сумма

используется для обозначения

 

агрегатной функции языка SQL

 

 

TABLE - таблица

используется для определения

 

таблицы языка SQL

 

 

TIME - время

используется для определения

 

типа времени языка SQL

TRUE - истинно

используется для обозначения

 

результата предиката сравнения

 

языка SQL

 

 

UNKNOWN - неопределено

используется для обозначения

 

результата предиката сравнения

 

языка SQL

UPDATE - обновить

используется в операторе

 

обновления данных языка SQL

 

 

 

148

1. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ.

1.1. Понятие алгоритма.

Алгоритм – формальное описание вычислительной процедуры. Исходные данные, передаваемые процедуре, называются входом алгоритма. Результат работы процедуры есть выход алгоритма.

Алгоритм является корректным, если на любом входе, допустимом для данной задачи, он выдает выход, удовлетворяющий задаче. Алгоритм должен обладать следующими свойствами:

результативностью;

определенностью;

массовостью.

Под результативностью понимается возможность получения выхода за конечное число операций. Свойство определённости обеспечивает неизменный выход независимо от используемых программных и технических средств. Массовость позволяет использовать алгоритм для различных входов.

Алгоритм может быть записан самыми различными

способами: в виде блок-схем, текста программ и т.п.

 

Блок-схемы оформляются в соответствии

с ГОСТ

10.002-80 ЕСПД и ГОСТ 10.003-80 ЕСПД, где

операции

обозначаются в виде блоков, большая часть которых вписана в прямоугольники размером a b .

При этом минимальный размер a равен 10 мм, увеличение a осуществляется с шагом 5 мм, а величина b определяется как 1,5 a. Для отдельных блоков допускается соотношение между a и b один к двум. При переносе блоков используется соединитель

– окружность диаметром 0,5 a.

5

Линии, соединяющие блоки, указывают на последовательность связей между ними. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий. Из блока (кроме логического) может выходить только одна линия. Все блоки нумеруются.

Виды и назначение основных блоков приведены в таблице

1.1.1

Таблица 1.1.1.

Основные блоки алгоритма.

Обозначение Наименование

Процесс

Ввод-вывод

Решение

Предопределенный процесс

Подготовка, модификация

Документ

Магнитный диск

Пуск-останов

6

Перевод термина

Назначение термина

 

 

FALSE - ложно

используется для обозначения

 

результата предиката сравнения

 

языка SQL

FOREIGN KEY – внешний

используется для определения

ключ

атрибута внешнего ключа языка

 

SQL

FROM - из

используется для определения

 

таблицы в выборке данных языка

 

SQL

GROUP BY - сгруппировать

используется для определения

по

группировочного атрибута в

 

выборке данных языка SQL

 

 

HAVING - имеющий

используется для определения

 

условия отбора в группе данных

 

языка SQL

IN - в

используется в предикате языка

 

SQL

INSERT INTO - вставить в

используется для внесения

 

данных в таблицы языка SQL

 

 

IS NULL - есть пустой

используется в предикате языка

 

SQL

LIKE - подобно, похоже

используется в предикате языка

 

SQL

MAX ( maximum) -

используется для обозначения

максимальный

агрегатной функции языка SQL

 

 

MIN ( minimum) -

используется для обозначения

минимальный

агрегатной функции языка SQL

 

 

NOT - не

используется для обозначения

 

логической операции языка SQL

 

 

NULL - пустой

используется в предикате языка

 

SQL

 

147

Перевод термина

Назначение термина

 

 

AS - как, каким образом

используется для определения

 

псевдонима в выборке данных

 

языка SQL

 

 

AVG (average) - средний

используется для обозначения

 

агрегатной функции языка SQL

 

 

BETWEEN - между

используется в предикате языка

 

SQL

BIT - двоичный

используется для определения

 

типа двоичной строки языка SQL

 

 

CHAR - сокращение от

используется для определения

слова

типа символьной строки

character – символ

фиксированной длины языка SQL

 

 

CHECK - контроль

используется для определения

 

ограничения языка SQL

 

 

COLUMN - столбец

используется для добавления или

 

удаления столбца таблицы языка

 

SQL

COMMIT WORK -

используется в операторе

совершить работу

управления транзакциями языка

 

SQL

COUNT - счет

используется для обозначения

 

агрегатной функции языка SQL

 

 

CREATE - создать

используется для определения

 

таблицы языка SQL

DATE - дата

используется для определения

 

типа даты языка SQL

 

 

DELETE - стирать

используется в операторе

 

удаления данных языка SQL

DROP – удалять,

используется для удаления

выбрасывать

таблицы или столбца таблицы

 

языка SQL

 

146

Соединитель

Межстраничный соединитель

Комментарий

1.2. Схемы алгоритмов.

Любой алгоритм может быть представлен в виде комбинации трех элементарных алгоритмических структур:

линейной;

ветвления;

цикла.

Простейший алгоритм линейной структуры представляет собой линейную последовательность операций. При этом каждая операция выполняется вне зависимости от результата другой

(рис. 1.2.1).

Рисунок 1.2.1. Алгоритм линейной структуры.

Алгоритм является ветвящимся, если для его реализации используется несколько ветвей направлений.

Выбор ветви определяется некоторым признаком, принимающим два или более значения. Обычно это логические значения – истина и ложь (рис. 1.2.2)

7

Рисунок 1.2.2. Алгоритм структуры ветвления.

Циклический алгоритм (рис.1.2.3) представляет собой многократно повторяющийся фрагмент, содержащий следующие элементы:

1)инициализация цикла;

2)тело цикла;

3)модификация параметра цикла;

4)проверка условия окончания цикла.

Указанный порядок элементов соответствует циклу с постусловием, когда проверка условия окончания выполняется после выполнения тела цикла.

Порядок выполнения указанных элементов цикла может быть различным. Если пункт 4 предшествует пункту 2, то такой цикл называется циклом с предусловием (рис. 1.2.4).

Циклы также бывают:

1.детерминированные (число повторений тела цикла определено заранее)

2.итерационные (число повторений тела цикла зависит от параметров цикла)

8

Перевод термина

Назначение термина

 

 

if - если

используется в условном

 

операторе языка Си

include - включить

используется в директиве

 

препроцессора языка Си

int – сокращение от слова

используется в объявлении целых

integer - целый

переменных языка Си

list - список

обозначает список вводимых или

 

выводимых переменных

 

 

main - главный

используется в любой программе

 

языка Си для обозначения

 

главной функции

printf - сокращение от слов

используется в функции вывода

print – печать и format -

на стандартное устройство языка

формат

Си

return - возвратиться

используется в операторе

 

возврата из функции языка Си

 

 

scanf - сокращение от слов

используется в функции ввода со

scan – сканировать и format

стандартного устройства языка

- формат

Си

switch - переключатель

используется в операторе

 

ветвления программы языка Си

 

 

while - до тех пор, пока

используется в операторе цикла

 

языка Си

ADD - присоединять

используется для добавления

 

столбца таблицы в операторе

 

языка SQL

ALTER - перестроить,

используется для изменения

изменить

структуры таблицы языка SQL

 

 

AND - и

используется для обозначения

 

логической операции языка SQL

 

 

 

145

5.2. Словарь англоязычных терминов.

Перевод термина

Назначение термина

 

 

break - прервать

используется в операторе

 

прерывания языка Си для

 

прерывания выполнения

 

операторов while, switch, for, do

case - случай

используется в операторе

 

ветвления программы языка Си

 

 

char – сокращение от слова

используется в объявлении

character – символ

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

 

Си

continue - продолжать

используется в операторе языка

 

Си для прерывания выполнения

 

текущей итерации операторов

 

цикла

default – значение по

используется в операторе

умолчанию

ветвления программы на языке

 

Си

do - выполнять

используется в операторе цикла

 

языка Си

else - иначе

используется в условном

 

операторе языка Си

 

 

float -плавающий

используется в объявлении

 

переменных с плавающей

 

запятой

for - для

используется в операторе цикла

 

языка Си

format - формат

обозначает форматную строку

 

для функций ввода-вывода языка

 

Си

goto - перейти к

используется в операторе

 

безусловной передачи

 

управления языка Си

 

144

Рисунок 1.2.3. Циклический алгоритм с постусловием.

Рисунок 1.2.4. Циклический алгоритм с предусловием.

9

Пример 1.2.1.

Вычислить и напечатать значение функции y(x) = sin2(x) cos2(x) в произвольной точке отрезка [0;π].

Блок-схема для решения данной задачи приведена на рисунке

1.2.5.

Пуск

a=0; b=3,14;

Ввод х

x<a или

да сообщение

x>b

 

об ошибке

нет

y=sin2x-cos2x

Вывод x,y

Останов

Рисунок 1.2.5. Комбинация линейного алгоритма и алгоритма ветвления.

1.3. Системы программирования.

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

Например,

000100FF 9F 01A00006 9F C0

где C0 – код инструкции.

10

Функция

Назначение

Заголо

 

 

воч-

 

 

ный

 

 

файл

void nosound (void)

прекращает звуковой сигнал

dos.h

 

 

 

143