Главная страница

Шпаргалка по языку СИ. Конспект Лекций «программирование На Языке Высокого Уровня Си» П. Конспект лекций для студентов высших учебных заведений, обучающихся по специальности 230102. 65 Автоматизированные системы обработки информации и управления


Скачать 1.25 Mb.
НазваниеКонспект лекций для студентов высших учебных заведений, обучающихся по специальности 230102. 65 Автоматизированные системы обработки информации и управления
АнкорШпаргалка по языку СИ
Дата26.05.2022
Размер1.25 Mb.
Формат файлаpdf
Имя файлаКонспект Лекций «программирование На Языке Высокого Уровня Си» П.pdf
ТипКонспект лекций
#550544
страница1 из 15
  1   2   3   4   5   6   7   8   9   ...   15

Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Московский государственный университет печати
Попов Д.И Демидов Д.Г.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ
Конспект лекций
для студентов высших учебных заведений, обучающихся по специальности 230102.65
«Автоматизированные системы обработки информации и управления»

Москва
2009
УДК
ББК
П
Рецензенты:
Попов Д.И. Демидов Д.Г.
Программирование на языке высокого уровня Си: конспект лекций / Д.И.Попов,
Демидов Д.Г. – М.: МГУП, 2009. – 202 с.
ISBN
Конспект лекций рассчитан на студентов, владеющих минимальными знаниями и навыками в области информатики и математики. В конспекте лекций представлены основные темы из
Государственного образовательного стандарта по дисциплине «Программирование на языке высокого уровня» для студентов высших учебных заведений, обучающихся по специальности
230102.65 «Автоматизированные системы обработки информации и управления». Особое внимание уделяется изучению следующих разделов: основные этапы решения задач на ЭВМ, жизненный цикл и критерии качества программы, проект и спецификация программы, схемы алгоритмов и способы записи алгоритмов, структура программы на языке высокого уровня Си, стандартные типы данных, представление основных управляющих структур программирования, функции, массивы, структуры, работа с файлами, динамические структуры данных, способы реализации линейных списков, стека, деревьев, рекурсивные определения и алгоритмы, программирование рекурсивных алгоритмов.
ISBN
© Попов Д.И., 2009
© Демидов Д.Г., 2009
© Московский государственный университет печати, 2009 2

Тема 1. Основные этапы решения задач на ЭВМ
5
Постановка задачи разработки программного обеспечения
5
Анализ формальной постановки задачи
6
Выбор или разработка математической модели и метода решения
7
Разработка алгоритма
9
Базовые структуры алгоритма
13
Тема 2. Жизненный цикл программы. Критерии качества программы.
19
Техническое задание и спецификация программы
21
Разработка проекта программной системы
26
Программирование (кодирование) или программная реализация алгоритмов
26
Тестирование и отладка
30
Эксплуатация и сопровождение
32
Критерии качества программного обеспечения
32
Тема 3. Схемы алгоритмов, данных, программ
38
Символы данных
41 41
Отображает данные, вводимые в ручную, во время обработки с устройств любого типа
(клавиатура, переключатели, кнопки, световое перо, полоски со штрих кодом и т.д.).
41
Символ отображает хранимые данные в виде, пригодном для обработки. Носитель данных не определен. В схемах алгоритмов он предназначен для обозначения ввода- вывода данных в случае использования запоминающего устройства, управляемого процесса.
41
Символы процесса
43
Символы линий
44
Специальные символы
45
Правила применения символов в схемах
45
Правила выполнения соединений
48
Специальные условные обозначения
49
Тема 4. Язык программирования высокого уровня Си
50
Общие сведения о языке Си
50
Алфавит языка Си
51
Грамматика для описания языка, синтаксические диаграммы
52
Структура программы на языке Си
56
Имена объектов в программе
59
Выражения, операции и приоритеты
62
Тема 5. Стандартные типы данных
64
Тема 6. Составные типы данных
68
Данные регулярного типа (массивы)
68
Строки
70
Данные комбинированного типа (структуры)
76
Перечисления
79
Объединения
81
Указатели
81
Тема 7. Представление основных управляющих структур программирования
87
Оператор присваивания
87
Составной оператор
88
Оператор перехода Goto
88
Условный оператор If
89
Оператор выбора switch
91
Операторы цикла while, do – while, for
92
Операторы прерывания циклов
96
Форматированный ввод данных
97 3

Форматированный вывод данных
99
Преобразование типов
101
Инициализация данных
105
Тема 8. Функции
107
Определение функций в языке Си
107
Вызов функций в языке Си
114
Рекурсивные функции
116
Тема 9. Файлы
131
Тема 10. Приемы программирования. Примеры алгоритмов
137
Алгоритмы сортировки
137
Алгоритмы поиска
142
Динамические структуры данных
147
Линейные списки
149
Стек, очередь, дек
156
Деревья
162
Приложение 1. Стандартные библиотеки языка Си
168
Приложение 2. Примеры реализации алгоритмов
176
Не рекурсивный алгоритм решения задачи Ханойская башня.
198
Рекурсивный алгоритм решения задачи Ханойская башня.
201
Приложение 3. Лабораторные работы
216
Лабораторная работа №1 216
Лабораторная работа №2 216
Лабораторная работа №3 217
Лабораторная работа №4 217
Лабораторная работа №5 218
Лабораторная работа №6 218
Лабораторная работа №7 219
Лабораторная работа №8 219
Лабораторная работа №9 220
Лабораторная работа №10 220
Лабораторная работа №11 221
Лабораторная работа №12 221
Список литературы
221 4

Тема 1. Основные этапы решения задач на ЭВМ
Постановка задачи разработки программного обеспечения
Решение любой прикладной задачи с использованием электронных вычислительных машин (ЭВМ) состоит из следующих этапов: анализ требований и формальная постановка задачи; выбор или разработка математической модели; анализ способов решения; логическое проектирование и разработка алгоритма; кодирование (написание программы); тестирование и отладка программного обеспечения; внедрение, использование и сопровождение программного обеспечения.
Постановка задачи разработки программного обеспечения является самым первым и наиболее важным этапом при проектировании программного обеспечения. Именно здесь закладывается фундамент будущей программы. Если на этом этапе допущены ошибки или не предусмотрены какие-то важные детали, то это отразится на конечном результате, а вносить изменения и исправления в такой проект будет крайне проблематично. Более того, если задача поставлена неверно, то её дальнейшее решение не имеет смысла. На этапе постановки задачи необходимо ответить на следующие вопросы:

существуют ли методы или способы решения задачи без использования
ЭВМ, нужно ли решать данную задачу на ЭВМ;

какие «дивиденды» принесет использование ЭВМ для решения задачи, что будет улучшено, ускорено, оптимизировано, сэкономлено при использовании ЭВМ, какова основная цель применения ЭВМ;

что необходимо из оборудования, кроме универсальной ЭВМ, какой тип
ЭВМ необходим для решения задачи, какая платформа(ы) ЭВМ может подойти, какая операционная система будет управлять работой ЭВМ, какое дополнительное программное обеспечение нужно;

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


каков формат исходных (входных) данных, какие данные и в какой форме необходимы для решения задачи;

каков формат промежуточных и выходных данных, какие данные и в какой форме необходимо получить;

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

какова «глубина» проработки пользовательской, инженерной, программной и конструкторской документации, эксплуатационных документов, методических пособий и руководств по использованию программы, кто и как будет использовать результаты решения.
Анализ формальной постановки задачи
Итак, самый первый шаг в проектировании программного обеспечения заключается в точном формулировании целей внедрения программы. В постановке задачи должны принять участие заказчики и разработчики программного обеспечения. Необходимо, чтобы этот процесс был гибко организован и продолжался в течение длительного времени, поскольку на любом этапе разработки или внедрения могут вскрываться ранее не предусмотренные трудности, требующие внесения определенных изменений в проект. В то же время с целью упрощения разработки следует запретить радикальный пересмотр требований на стадии кодирования (реализации) программы. Необходимо также заранее определить условия внесения несущественных изменений в проект. Все договоренности такого плана должны оформляться разработчиком и заказчиком программы в официальном порядке в виде некоторых пунктов в договоре на разработку программного обеспечения, дополнительных протоколов или актов.
Идея создания некоторой программной системы и формирование требований к ней должно происходить в среде пользователей или при их участии, поскольку они наиболее заинтересованы и компетентны в данной прикладной области. На практике это не всегда так, но формулирование требований к программе желательно выполнять именно с будущим
6
пользователям. Часто сами программисты являются соответствующей стороной и выполняют предварительную работу вместе с пользователями.
Официальному заключению договора обычно предшествуют:

выяснение реальной необходимости такой системы;

оценка возможности ее разработки и примерного объема затрат;

определение ожидаемого эффекта от внедрения.
После завершения этапа предварительных исследований составляют список требований, предъявляемых к программному обеспечению. Сюда входят:

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

описание выполняемых программной системой функций (четкое описание того, что должна делать система, на основании каких входных данных, какие данные являются выходными);

ограничения, которые должны учитываться в процессе проектирования
(сроки завершения; ресурсы, имеющиеся в наличии, в том числе и финансовые организационные мероприятия, обеспечивающие сохранность информации).
Главная цель на этапе анализа формальной постановки задачи и составления требований к программе заключается в поиске и представлении таких ситуаций, которые могут поставить работу программы в тупик, и в определении причин и способов преодоления таких ситуаций.
Выбор или разработка математической модели и метода
решения
Модель представляет собой описание объекта (предмета, процесса или явления) на каком-либо формализованном языке, составленное с целью изучения его свойств. Если речь идет о математической модели, значит она представлена на формализованном языке математики, с помощью математических понятий.
Соответствие свойств модели исходному объекту характеризуется
7

адекватностью. Процесс построения и исследования модели называется моделированием. В случае разработки программного обеспечения объектом моделирования может выступать любой элемент или элементы из предметной области, которые задействованы в процессе компьютерной обработки. Как правило, при проектировании программного обеспечения могут использоваться следующие типы моделей:
1.
Приближение (параметры считаются очень большими или очень малыми).
Если можно построить уравнения, описывающие исследуемую задачу, то это не значит, что их можно решить даже с помощью компьютера.
Общепринятый прием в этом случае – использование приближений.
Например, модель идеального газа для описания достаточно разреженных газов, где потенциальной энергией молекул можно пренебречь (т.е. считать бесконечно малой) по сравнению с их кинетической энергией.
2.
Упрощение (опускаются некоторые детали). В модели отбрасываются детали, которые могут заметно и не всегда контролируемо повлиять на результат.
Одни и те же уравнения могут служить моделью типа приближение или упрощение – это зависит от объекта, для изучения которого используется модель. Например, некоторые сложные нелинейные уравнения заменяются линейными, т.е. все нелинейные детали «для ясности» опускаются.
3.
Эвристика (количественного подтверждения нет, но модель способствует более глубокому проникновению в суть дела). Эвристическая модель сохраняет лишь качественное подобие реальности и даёт описания объекта только «по порядку величины». Типичный пример – приближение средней длины свободного пробега в кинетической теории. Она даёт простые формулы для коэффициентов вязкости, диффузии, теплопроводности, согласующиеся с реальностью по порядку величины.
Чтобы построить математическую модель решаемой задачи, необходимо: внимательно изучить постановку задачи; выбрать или разработать математические методы, позволяющие правильно описать задачу; чётко представить на языке математики описание задачи и цели решения. Грамотное
8
построение математической модели решения задачи – это самостоятельная научная проблема.
Любую математическую задачу можно решить двумя способами:
аналитически (точно); численно (приближённо). При решении аналитическим методом исходные зависимости преобразуются так, чтобы получить математические зависимости (формулы) для точного определения результата решения. По полученным формулам можно с помощью ЭВМ получать почти точное решение. Пример такой задачи: решение квадратного уравнения. Однако большинство реальных задач нельзя решить аналитическим методом. В этом случае применяют численные методы, которые позволяют получить приближённое решение с помощью простых вычислительных действий. Пример: нахождение корня уравнения методом половинного деления (метод дихотомии).
Численные методы позволяют получить приближённые решения большинства реальных задач. Разработкой численных методов занимается специальный раздел математики – вычислительная математика.
Разработка алгоритма
Алгоритм – это точный набор инструкций (команд), описывающих последовательность (порядок) действий некоторого исполнителя для достижения результата, решения некоторой задачи за конечное время. Строго говоря, понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек. Однако далее в качестве исполнителя будем рассматривать ЭВМ или компьютер. В определении алгоритма под командой понимается элементарное действие, которое может выполнить исполнитель (ЭВМ), под системой команд – совокупность команд, которую может выполнить конкретный исполнитель (ЭВМ). Алгоритм должен обладать следующими важными свойствами:
1.
Завершаемость (конечность) – при корректно заданных исходных данных алгоритм должен приводить к получению нужного результата за конечное число шагов.
9

2.
Детерминированность (определённость) – в каждый момент времени следующий шаг работы однозначно определен, т.е. в алгоритме существует полная ясность каждого шага, другими словами, алгоритм должен выдавать один и тот же результат (ответ) для одних и тех же исходных данных;
3.
Понятность – алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.
4.
Эффективность – алгоритм должен быть эффективен по времени выполнения и по емкости требуемой памяти.
5.
Массовость – алгоритм должен быть применим к любым допустимым наборам исходных данных.
6.
Вход – алгоритм всегда имеет некоторое (иногда равное нулю) количество входных данных, то есть величин, передаваемых ему до начала работы.
7.
Выход – алгоритм всегда обязан иметь одну или несколько выходных величин.
Различают следующие простейшие виды алгоритмов:
1.
Линейный – команды алгоритма выполняются шаг за шагом точно в той последовательности, в которой они представлены в алгоритме.
2.
Разветвляющийся – ход исполнения команд может меняться относительно их нахождения в алгоритме. В зависимости от результата проверки условия выполняется та или иная последовательность операций, называемая ветвью.
3.
Циклический – некоторые команды алгоритма многократно повторяются. В зависимости от характера повторений различают циклические алгоритмы с заданным и незаданным числом повторений (в этом случае такие алгоритмы называют итерационными, а одно повторение цикла называется итерацией).
Наиболее часто используются следующие способы описания алгоритма: словесный (вербальный), графический (в виде схем), на алгоритмическом языке или на языке программирования.
При словесном способе алгоритм задается в произвольном изложении на естественном языке. Алгоритм при таком описании строго не формализуем,
10
многословен, допускает неоднозначности и это является большим недостатком.
Однако данный способ изложения алгоритма не требует специальных знаний и может применяться конечными пользователями. Именно на этом языке, как правило, сообщается неформальная постановка задачи на этапе формализации, и он же может быть использован для представления результата первого этапа. Как правило, именно этот способ используют при объяснении какого-либо примера преподаватели, сопровождая его рисунками, схемами, графиками и т.д. Несмотря на указанные недостатки данного способа, он наиболее привычен и без него не обходится практически ни одна постановка задачи, поэтому примеров его использования можно найти множество в процессе обучения и в повседневной жизни.
Пример 1. Приведем словесное описание алгоритма, который вычисляет значение функции
x
x
x
f

=
2
sin
)
(
на интервале
[
]
b
a,
с шагом h > 0. Такая задача называется задачей табулирования функции на указанном интервале с определенным шагом.
1. Начало.
2.
Задать значения а, b, h.
3.
Начиная со значения x, равного a, делать следующее.
4.
Вычислить
a
a
a
f

=
2
sin
)
(
5.
Вывести значения а и
)
(a
f
6.
Увеличить значение x на шаг и вычислить
)
(
)
sin(
)
(
2
h
a
h
a
h
a
f
+

+
=
+
7.
Вывести значения а+h и
)
(
h
a
f
+
8.
Увеличить значение x на шаг и вычислить
)
2
(
)
2
sin(
)
2
(
2
h
a
h
a
h
a
f
+

+
=
+
9.
Вывести значения а+2h и
)
2
(
h
a
f
+
10.
И так далее продолжать вычислять f, увеличивая x, до тех пор, пока х
все еще меньше или равен b, т.е. последнее вычисление такое
b
b
b
f

=
2
sin
)
(
11.
Вывести значения b и
)
(b
f
12.Конец.
11

При графическом описании алгоритма каждому типу действий соотносится геометрическая фигура, представленная в виде блочного символа. Действия
(блоки) соединяются линиями потока. Совокупность таких связанных блоков называется блок-схемой алгоритма. Составление блок-схем регламентируется
ГОСТ 19.701-90 (соответствует ISO 5807-85).
Пример 2. Построим блок-схему алгоритма для решения задачи табулирования функции (рис.1).
При записи на алгоритмическом языке каждому типу действий соотносится некоторая конструкция или команда, которую также называют оператором.
Запись основных алгоритмических конструкций (операторов) в сокращенном виде на языке приближенном к естественному называют записью алгоритма на алгоритмическом языке. Если же при записи алгоритма используется строго
Начало
Конец
a, b, h
xa
s i n ( * )
f
x x
x


вычислить f(x)
х, f
вывести х и f(x)
xx + h
x > b
ввести a, b, h
нет да
Рис.1. Блок-схема алгоритма для решения задачи табулирования функции
12
определенный синтаксис какого-то языка программирования, то говорят о записи алгоритма на языке программирования.
Пример 3. Приведем запись алгоритма на алгоритмическом языке для решения задачи табулирования функции. Алгоритм должен соответствовать разработанной в примере 2 блок-схеме.
1. Начать работу.
2.
Ввести значения a, b, h.
3.
x := a (присвоить х значение а).
4.
x
x
x
x
f

=
)
*
sin(
:
)
(
(вычислить f(x)).
5.
Вывести х и f(x).
6.
х := x + h (увеличить х на значение h).
7.
Если x > b, то перейти к п.8, иначе перейти к п.4.
8. Конец работы.
Базовые структуры алгоритма
Большинство алгоритмов содержит действия по присваиванию некоторой переменной значения другой переменной или значения некоторого выражения.
Обычно для операции присваивания используется специальное обозначение «:=» или «←». Операция присваивания выполняется справа налево, т.е. сначала вычисляется значение выражения в правой части операции присваивания, а затем полученное значение присваивается переменной, стоящей в левой части операции присваивания. Слева от знака присваивания всегда должна стоять переменная, которой присваивается значение выражения, стоящего справа:
«переменная» := «выражение». В частном случае слева и справа от знака присваивания может стоять одна и та же переменная. Например, если оператор присваивания имеет вид х := х+h (см.пример 2), и до его выполнения х, h имеют значения соответственно 6 и 0.5, то после его выполнения h остаётся неизменным, а х будет иметь значение 6.5. Операции присваивания в схемах алгоритмов записываются как правило внутри блоков «процесс» (см.далее).
Основные блоки, используемые в блок-схемах алгоритмов, приведены в
Таблице 1.
13

Таблица 1.
Основные структурные блоки
Символ
Название
Назначение
Терминатор или пуск-останов
(начало-конец)
Обозначает начало или конец алгоритма
Ввод-вывод
Преобразует данные в форму, пригодную для ввода или вывода информации
Решение или проверка условия
Выбор направления алгоритма в зависимости от некоторых условий
Процесс (обработка) Выполнение определенной операции или группы операций
Комментарий
Сопровождает блок для более детального его описания, если оно не поместилось внутри символа
Символ-соединитель Используется для обрыва линии и продолжения ее в другом месте.
Блоки ввода-вывода информации и обработки (выполнения действий) имеют один вход и один выход, блок начала имеет один только выход, а блок
конца работы – только вход. Блок решения (условия) имеет один вход и два выхода, один из которых помечен словом “да“ (или 1, или «+» – соответствует переходу при выполнении условия), а второй - словом “нет“ (или 0, или «–»).
Последовательность прохождения блоков (передачи управления) определяется
стрелками и начинается с блока начала работы. Если направление передачи управления совпадает с естественным (слева-направо, сверху-вниз), то стрелка
на дуге, соединяющей смежные блоки, может не ставиться.
14

Если в пределах страницы на схеме неудобно проводить линию передачи управления, то её можно прервать на выходе передающего блока, поставить в точке разрыва кружок с уникальной для этой страницы буквой (именем) внутри, а перед входом принимающего блока поставить кружок с той же буквой и тем самым соединить их. Таким образом, символ-соединитель имеет один вход в месте разрыва и один выход в месте соединения. Он отображает выход в часть схемы и вход из другой части схемы. Для каждой «оборванной» линии внутри символа-соединителя должно содержаться одно и то же уникальное обозначение.
Для решения прикладной задачи всегда можно составить несколько разных алгоритмов. Из этих возможных алгоритмов нужно выбрать самый хороший для дальнейшей программной реализации. Чтобы оценить насколько «хорош» алгоритм, анализируются следующие характеристики: простота и легкость понимания алгоритма, скорость выполнения и требуемый объём памяти.
Наиболее важными в настоящее время являются простота и легкость понимания.
Причина этого – большое количество создаваемых алгоритмов и программ, необходимость обмена алгоритмами и программами между людьми, предприятиями, организациями и государствами. Для того чтобы алгоритм был простым и легко понимаемым, его рекомендуется строить, используя 3 основных структуры:
1. Последовательность (последовательное соединение).
Выполняется несколько последовательных команд (операторов). На рис.2 они обозначаются буквами А и В.
2. Условие (проверка условия).
A
На алгоритмическом языкеНа языке
программирования
п
СиПаскальA; B;
{
A;B;
}begin
A; B
end
B
15
Рис.2. Последовательность действий

2.1.
Условие с двумя вариантами действий.
Если истинно условие, то выполняется блок (оператор) А, иначе выполняется блок В (оператор В) (рис.3).
2.2. Условие с одним вариантом действий.
Если истинно условие, то выполняется блок (оператор) А, иначе ничего не выполняется и управление передается следующему оператору (рис.4).
3. Цикл (циклическое повторение).
3.1. Цикл с предусловием.
В начале цикла проверяется условие и после этого циклически выполняется некоторое действие А (блок операторов) до тех пор, пока условие все еще верно
(истинно). Как только условие становится ложным, цикл завершается (рис.5).
3.2. Цикл с постусловием.
На алгоритмическом языкеНа языке
программирования
п
СиПаскаль
С
если Условие то
A,
иначе
B
B
if (Условие)
A
else
B; if Условие then
A
else
B;
A
Условие
+

B
На алгоритмическом языкеНа языке
программирования
п
СиПаскаль
С
если Условие то A
A
if (Условие)
A; if Условие then
A;
A
Условие
+

Рис.4.Условие с одним вариантом действий
A
Условие
+

Рис.5. Цикл с предусловием
16
На
алгоритмическом
языке
На языке программирования
Си
Паскаль
Начало цикла
пока Условие
выполнять
A;
Конец цикла
while (Условие)
{ A;
}
while Условие do
begin
A
end;
Рис.3.Условие с двумя вариантами действий

Некоторое действие А (блок операторов) повторяется до тех пор, пока условие в конце цикла не станет верным (истинным). Как только условие в конце цикла становится истинным, цикл завершается (рис.5).
Во всех трёх случаях, во всех стандартных структурах блоки А и В могут в свою очередь состоять из таких же стандартных структур. Т.е. одна структура может быть вложена в другую произвольное количество раз. Структурный
алгоритм – это алгоритм, в котором используются только стандартные структуры – последовательность, условие, цикл, а также ввод-вывод.
Структурная программа – это программа, которая точно соответствует структурному алгоритму. Структурное программирование – процесс разработки структурных алгоритмов и программ. Справедлива следующая теорема о
структурных алгоритмах: для каждого алгоритма существует эквивалентный ему структурный алгоритм.
Пример 4. Напишем два варианта структурных алгоритмов решения задачи табулирования функции, на основе циклов (рис.6).
17
На алгоритмическом языкеНа языке
программирования
п
СиПаскаль
С
Начало цикла
повторять
A
до Условие
Конец циклаdo
{ A;
}
while (Условие) ;repeat
A
until Условие ;
A
Условие
+

Рис.5. Цикл с постусловием

В некоторых языках программирования отсутствуют полноценные структуры для реализации условий и циклов. Поэтому в дополнение к трём стандартным структурам иногда применяется безусловный переход. При выполнении безусловного перехода управление передается на указанный шаг
(пункт) в алгоритме (рис.7).
Использование безусловного перехода приводит к нарушению принципов структурного программирования. Поэтому его применение в структорном программировании – ограничено. Однако существуют случаи, когда без него не обойтись, например при обработке критических ошибок. В других ситуациях хороший стиль программирования полностью исключает использование этой конструкции. Считается плохим тоном писать структурные программы с использованием безусловного перехода. Следует также отметить, что в языках
0. Начало
1. Ввод a, b, h
2. x := a
3. Начало цикла
Повторять
3.1.
3.2. Вывод x, f
3.3. x := x + h
3.4. до x > b
Конец цикла
4. Конец.0. Начало
1. Ввод a, b, h
2. x := a
3. Начало цикла
Пока x <= b выполнять
3.1.
3.2. Вывод x, f
3.3. x := x + h
Конец цикла
4. Конец.
Рис.6. Алгоритмы, использующие циклы с постусловием (слева) и предусловием (справа)
18
Переход (безусловный переход)
На
алгоритмическом
языке
На языке программирования
Си
Паскаль
Перейти к пункту N
goto N;
goto N;
Рис.7. Безусловный переход
машинного (низкого) уровня типа Ассемблер без этих конструкций обойтись невозможно.
  1   2   3   4   5   6   7   8   9   ...   15


написать администратору сайта