tehnologia (Г.С. Иванова - Учебник - Технология программирования), страница 12

PDF-файл tehnologia (Г.С. Иванова - Учебник - Технология программирования), страница 12 Информационные технологии (10060): Книга - 2 семестрtehnologia (Г.С. Иванова - Учебник - Технология программирования) - PDF, страница 12 (10060) - СтудИзба2017-07-08СтудИзба

Описание файла

Файл "tehnologia" внутри архива находится в папке "Учебник - Технология программирования". PDF-файл из архива "Г.С. Иванова - Учебник - Технология программирования", который расположен в категории "". Всё это находится в предмете "информационные технологии" из 2 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информационные технологии" в общих файлах.

Просмотр PDF-файла онлайн

Текст 12 страницы из PDF

Первые процедурные языки программированиявысокого уровня, такие, как FORTRAN, понятием «тип вычислительного процесса» неоперировали. Для изменения линейной последовательности операторов в них, как в языкахнизкого уровня, использовались команды условной (при выполнении некоторого условия) ибезусловной передач управления. Потому и программы, написанные на этих языках, имелизапутанную структуру, присущую в настоящее время только низкоуровневым (машинным)языкам.Именно для изображения схем алгоритмов таких программ в свое время был разработанГОСТ 19.701-90, согласно которому каждой группе действий ставится в соответствиеспециальный блок (табл.

2.3). Хотя этот стандарт предусматривает блоки для обозначенияциклов, он не запрещает и произвольной передачи управления, т.е. допускает использованиекоманд условной и безусловной передачи управления при реализации алгоритма.В качестве примера, демонстрирующего особенности использования команд передачиуправления для организации требуемого типа вычислительного процесса, рассмотримпрограмму на языке Ассемблера.Пример 2.1 (вариант 1). Реализовать на языке Ассемблера подпрограмму поискаминимального элемента массива а(n). На рис.

2.2 приведен пример неудачной реализацииэтой подпрограммы. Стрелками показаны передачи управления. Даже с комментариями истрелками понять хорошо известный алгоритм достаточно сложно.загрузили адрес массивазагрузили счетчик - количество элементовприняли элемент в качестве максимумауменьшили счетчикесли все числа, то выходадрес следующего элементасравниваем текущий элементесли меньше, то меняем максимум иначе переходим к следующему элементу.58После того, как в 60-х годах XX в. было доказано, что любой сколь угодно сложныйалгоритм можно представить с использованием трех основных управляющих конструкций, вязыках программирования высокого уровня появились управляющие операторы дляреализации соответствующих конструкций. Эти три конструкции принято считатьбазовыми. К ним относят конструкции:• следование - обозначает последовательное выполнение действий (рис.

2.3, а);• ветвление - соответствует выбору одного из двух вариантов действий (рис.2.3, б);59• цикл-пока - определяет повторение действий, пока не будет нарушено некотороеусловие, выполнение которого проверяется в начале цикла (рис. 2.3, в).Помимо базовых, процедурные языки программирования высокого уровня обычноиспользуют еще три конструкции, которые можно составить из базовых:• выбор - обозначает выбор одного варианта из нескольких в зависимости от значениянекоторой величины (рис. 2.4, а);• цикл-до - обозначает повторение некоторых действий до выполнения заданногоусловия, проверка которого осуществляется после выполнения действий в цикле (рис.2.4,б);• цикл с заданным числом повторений (счетный цикл) - обозначает повторениенекоторых действий указанное количество раз (рис.

2.4, в).Любая из дополнительных конструкций легко реализуется через базовые. Перечисленныешесть конструкций были положены в основу структурного программирования.60Примечание. Слово «структурное» в данном названии подчеркивает тот факт, что при программированиииспользованы только перечисленные конструкции (структуры). Отсюда и понятие «программирование без goto».Программы, написанные с использованием только структурных операторов передачиуправления, называют структурными, чтобы подчеркнуть их отличие от программ, припроектировании или реализации которых использовались низкоуровневые способы передачиуправления.Несмотря на то, что Ассемблер не предусматривает соответствующих конструкций,«структурно» можно программировать и на нем.

Вернемся к примеру 2.1.Пример 2.1 (вариант 2). Поскольку реализуемый цикл по типу «счетный» сколичеством повторений n-1, используем соответствующую команду Ассемблера. Уберем иусложняющий понимание возврат на метку less, заменив его дубликатом командысохранения текущего максимального элемента.Полученный в результате «структурированный» вариант программы поискамаксимального элемента массива приведен на рис. 2.5. Единственный возврат реализуетциклический процесс, а передача управления на следующие команды – ветвление.Представление алгоритма программы в виде схемы с точки зрения структурногопрограммирования имеет два недостатка:• предполагает слишком низкий уровень детализации, что часто скрывает суть сложныхалгоритмов;• позволяет использовать неструктурные способы передачи управления, причем часто насхеме алгоритма они выглядят проще, чем эквивалентные структурные.61Классическим примером последнего является организация поискового цикла сиспользованием неструктурной передачи управления (рис.

2.6, а) и эквивалентныйструктурный вариант (рис. 2.6, 6).Кроме схем, для описания алгоритмов можно использовать псевдокоды, Flow-формы идиаграммы Насси-Шнейдермана. Все перечисленные нотации с одной стороны базируютсяна тех же основных структурах, что и структурное программирование, а с другой –допускают разные уровни детализации.Псевдокоды.

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

В отличие от схем алгоритмов, псевдокоды не ограничивают степень детализациипроектируемых операций. Они позволяют соизмерять степень детализации действия суровнем абстракции, на котором это действие рассматривают, и хорошо согласуются сосновным методом структурного программирования – методом пошаговой детализации.62Таблица 2.4СтруктураСледованиеПсевдокод<действие 1><действие 2>ВетвлениеЕсли <условие>то<действие 1>иначе <действие 2>Все-еслиЦикл-покаЦикл-пока <условие><действие>Все-циклСтруктураВыборЦикл сзаданнымколичествомповторенийЦикл-доПсевдокодВыбор <код><код 1>: <действие 1><код 2>: <действие 2>Все-выборДля <индекс> =<n>,<k>,<h><действие>Все-циклВыполнять<действие>До <условие>Цикл-пока i < n и A[i] * уi:=i+lВсе-циклЕсли i < nто Вывести «Элемент найден»иначе Вывести «Элемент не найден»Все-еслиFlow-формы.

Flow-формы представляют собой графическую нотацию описанияструктурных алгоритмов, которая иллюстрирует вложенность структур. Каждый символFlow-формы соответствует управляющей структуре и изображается в виде прямоугольника.Для демонстрации вложенности структур символ Flow-формы может быть вписан всоответствующую область прямоугольника любого другого символа. В прямоугольникахсимволов содержится текст на естественном языке или в математической нотации. Размерпрямоугольника определяется длиной вписанного в него текста и размерами вложенныхпрямоугольников.

Символы Flow-форм, соответствующие основным и дополнительнымуправляющим конструкциям, приведены на рис. 2.7.63На рис. 2.8 представлено описание рассмотренного ранее цикла с использованием Flowформы. Хорошо видны вложенность и следование конструкций, изображенныхпрямоугольниками.Диаграммы Насси-Шнейдермана. Диаграммы Насси-Шнейдермана являютсяразвитием Flow-форм. Основное их отличие от Flow-форм заключается в том, что областьобозначения условий и вариантов ветвления изображают в виде треугольников (рис. 2.9).Такое обозначение обеспечивает большую наглядность представления алгоритма.Также, как при использовании псевдокодов, описать неструктурный алгоритм,применяяFlow-формыилидиаграммыНассиШнейдермана, невозможно (для неструктурных передачуправления в этих нотациях просто отсутствуют условныеобозначения).

В то же время, являясь графическими, этинотации лучше отображают вложенность конструкций,чем псевдокоды.Общим недостатком Flow-форм и диаграмм НассиШнейдерманаявляетсясложностьпостроенияизображений символов, что усложняет практическоеприменение этих нотаций для описания большихалгоритмов.642.5. Стиль оформления программыС точки зрения технологичности хорошим считают стиль оформления программы,облегчающий ее восприятие как самим автором, так и другими программистами, которым,возможно, придется ее проверять или модифицировать.

«Помните, программы читаютсялюдьми», призывал Д. Ван Тассел, автор одной из известных монографий, посвященнойпроблемам программирования [60].Именно исходя из того, что любую программу неоднократно придется просматривать,следует придерживаться хорошего стиля написания программ.Стиль оформления программы включает:• правила именования объектов программы (переменных, функций, типов, данных ит.п.);• правила оформления модулей;• стиль оформления текстов модулей.Правила именования объектов программы.

При выборе имен программныхобъектов следует придерживаться следующих правил:• имя объекта должно соответствовать его содержанию, например:Maxltem - максимальный элемент;Nextltem - следующий элемент;• если позволяет язык программирования, можно использовать символ «_» длявизуального разделения имен, состоящих из нескольких слов, например:65Max_ltem, Next_Item;• необходимо избегать близких по написанию имен, например:Index и InDec.Правила оформления модулей. Каждый модуль должен предваряться заголовком,который, как минимум, содержит:• название модуля;• краткое описание его назначения;• краткое описание входных и выходных параметров с указанием единиц измерения;• список используемых (вызываемых) модулей;• краткое описание алгоритма (метода) и/или ограничений;• ФИО автора программы:• идентифицирующую информацию (номер версии и/или дату последнейкорректировки).

Например:{*****************************************************}{* Функция: Length_Path(n:word; L: array of real):real*}{* Цель: определение суммарной длины отрезков*}{* Исходные данные:*}{*n - количество отрезков,*}{*L - массив длин отрезков (в метрах)*}{* Результат: длина (в метрах)*}{* Вызываемые модули: нет*}{* Описание алгоритма:*}{*отрезки суммируются методом накопления, n > О*}{* Дата: 25.12.2001 Версия 1.01.'*}{* Автор: Иванов И.И.*}{* Исправления: нет*}{*********************************}Стиль оформления текстов модулей. Стиль оформления текстов модулей определяетиспользование отступов, пропусков строк и комментариев, облегчающих пониманиепрограммы.

Как правило, пропуски строк и комментарии используют для визуальногоразделения частей модуля, например:{проверка количества отрезков и выход, если отрезки не заданы}if n<0 thenbeginWriteLn('Количество отрезков отрицательно');exit;end;66{цикл суммирования длин отрезков}S:=0;for i: =0 to п-1 do S: =S + Len[i];Для таких языков, как Pascal, C++ и Java, использование отступов позволяет прояснитьструктуру программы: обычно дополнительный отступ обозначает вложение операторовязыка, например:атах:=а[1,1];for i:=1 to n dofor j:=1 to m doif a[i,j]>amax then amax:=a[i,j];Несколько сложнее дело обстоит с комментариями.

Опыт показывает, что переводить санглийского языка каждый оператор программы не нужно: любой программист, знающийязык программирования, на котором написана программа, без труда прочитает тот или инойоператор. Комментировать следует цели выполнения тех или иных действий, а также группыоператоров, связанные общим действием, т.е. комментарии должны содержать некоторуюдополнительную (неочевидную) информацию, например:{проверка условия и выход, если условие не выполняется}if n<0 thenbeginWriteLn('Количество отрезков отрицательно');exit;end;Для языков низкого уровня, например, Ассемблера, стиль, облегчающий понимание,предложить труднее. В этом случае может оказаться целесообразным комментировать иблоки операторов, и каждый оператор, например:;цикл суммирования элементов массива;установки циклаmov АХ, 0;обнуляем суммуmov CX, п;загружаем счетчик циклаmov BX, 0;смещение первого элемента массива;тело циклаcycle:addAX, a[BX] ;добавляем элементaddBX, 2;определяем адрес следующегоloop cycle;цикл на n повторений;выход из цикла при обнулении счетчика672.6.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5288
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее