Автор: Пользователь скрыл имя, 01 Сентября 2011 в 15:58, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Информатика".
Разработка программы ведётся пошагово, методом «сверху вниз».
Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «затычки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
(modular programming). Способ разработки программ,
при котором программа
55.Подпрограмма
(англ. subprogram) — поименованная или
иным образом
Назначение подпрограмм.
Подпрограммы изначально появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости. К настоящему времени данная функция подпрограмм стала вспомогательной, главное их назначение — структуризация программы с целью удобства её понимания и сопровождения.
Выделение набора действий в подпрограмму и вызов её по мере необходимости позволяет логически выделить целостную подзадачу, имеющую типовое решение. Такое действие имеет ещё одно (помимо экономии памяти) преимущество перед повторением однотипных действий: любое изменение (исправление ошибки, оптимизация, расширение функциональности), сделанное в подпрограмме, автоматически отражается на всех её вызовах, в то время как при дублировании каждое изменение необходимо вносить в каждое вхождение изменяемого кода.
Даже в тех случаях, когда в подпрограмму выделяется однократно производимый набор действий, это оправдано, так как позволяет сократить размеры целостных блоков кода, составляющих программу, то есть сделать программу более понятной и обозримой...
Программирование снизу-вверх и сверху-вниз
Сверху вниз - начиная с самого высокого уровня абстракции, движемся вниз, разделяя систему на фрагменты, определяя сначала общие классы, затем более специализированные, пока не дойдем до такого уровня, когда все предельно ясно и пора кодировать - наверное, так обычно и делают в большинстве случаев, по крайней мере в относительно крупных проектах.
Снизу вверх - наоборот, сначала определяют что-то конкретное, с чем нужно работать, а дальше на основе этого строят более общие классы. Возможно, такой подход тоже имеет право на существование. Например, когда нужно что-то делать на низком уровне - с оборудованием, физическими интерфейсами и т.д. Когда с начала проектирования нельзя охватить умом систему - слишком абстрактно.
Поэтому плюсы
и минусы есть у обоих способов.
Но все-таки, я думаю, сначала надо
пробовать сверху, если не получается
- тогда уж подходить снизу.
56. способы организации действий в алгоритмах.
Одним из первых алгоритмических языков программирования был известный всем Бейсик (Basic), созданный в 1964 г. В настоящее время кроме Бейсика существует достаточно много языков программирования алгоритмического типа: Pascal, С и др.
Язык программирования формируется на основе определенного алфавита и строгих правил построения предложений (синтаксиса). В алфавит языка могут входить буквы, цифры, математические символы, а также операторы, например Print (печать), Input (ввод) и др.
С помощью алгоритмических языков программирования (их еще называют структурными языками программирования) любой алгоритм можно представить в виде последовательности основных алгоритмических структур: линейной, ветвления, цикла.
Линейные алгоритмы. Линейные алгоритмы состоят из нескольких команд (операторов), которые должны быть выполнены последовательно одна за другой. Такие последовательности команд будем называть сериями.
Чтобы сделать алгоритм более наглядным, часто используют блок-схемы. Различные элементы алгоритма изображаются с помощью различных геометрических фигур: начало и конец алгоритма обозначаются прямоугольниками с закругленными углами, а последовательности команд — прямоугольниками (рис. 3).
Ветвление. В
отличие от линейных алгоритмов, где
команды выполняются
Цикл. В алгоритмические структуры цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.
Циклические алгоритмические структуры бывают двух типов:
— циклы со счетчиком, в которых тело цикла выполняется определенное количество раз (рис. 5);
— циклы с условием, в которых тело цикла выполняется до тех пор, пока выполняется условие.
Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклом со счетчиком.
Однако часто бывает необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от выполнения некоторого условия.
Условие выхода из цикла можно поставить в начале, перед телом цикла (рис. 6, а), или в конце, после тела цикла (рис. 6,b).
57. Паскаль - язык структурного
программирования. Это означает, что
программист должен выражать
свои мысли очень
Реализация последовательности действий (т.е. структуры следования) выполняется с помощью составного оператора:
begin <последовательность операторов> end
Раздел операторов в программе всегда является составным оператором. Служебные слова begin и end часто называют операторными скобками.
Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется.
Структура и действие условного оператора таковы:
If <логическое выражение>
then <оператор 1>
else <оператор 2>
Условный оператор может быть неполным, т.е. не содержать часть «else <оператор 2>». В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.
Для реализации циклов в Паскале имеются три оператора Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл «пока» ) или с постусловием (цикл «до»).
Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:
while - <логическое выражение> do <оператор>
Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.
Одной из самых революционных идей, приведших к созданию автоматических цифровых вычислительных машин, была высказанная в 20-х годах XIX века Ч.Бэббиджем мысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений - программе. И, хотя использованная Бэббиджем запись программы на перфокартах, придуманная для управления ткацкими станками французским изобретателем Жозефом Мари-Жаккаром, технически не имеет ничего общего с современными приемами хранения программ в ЭВМ, принцип здесь по-существу один. С этого момента начинается история программирования.
Аду Лавлейс, одну из немногих современников Чарльза Бэббиджа, кто сумел по достоинству оценить аналитическую машину, называют первым в мире программистом. Она теоретически разработала некоторые приемы управления последовательностью вычислении, которые используются в программировании и по сей день, описала одну из важнейших конструкций практически любого современного языка программирования - цикл.
Революционным
моментом в истории языков программирования
стало появление системы
При работе на компьютере «Марк-1» Г.Хоппер и ее группе пришлось столкнуться со многими проблемами и все, что ими придумано, было впервые. В частности, они придумали подпрограммы. Сейчас любой программист не задумываясь использует аппарат подпрограмм в любом языке программирования. И еще одно фундаментальное понятие техники программирования впервые ввели Г.Хоппер и ее группа - «отладка». Однажды жарким летним днем 1945 г. неожиданно произошла остановка компьютера «Марк-1». Обнаружилась неисправность одного реле, контакты которого были заблокированы мотыльком, залетевшим неизвестно каким образом в помещение вычислительного центра. Вспоминает Г.Хоппер: «Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debuging)». С тех пор термин «debuging» (отладка) используется в технических процессах тестирования неисправностей в компьютере, а также в системах программирования.
На заре компьютерной эры машинный код был единственным средством общения человека с компьютером. Огромным достижением создателей языков программирования было то, что они сумели заставить сам компьютер работать переводчиком с этих языков на машинный код.
В конце 40-х годов, до прихода Г.Хоппер в фирму Джона Моучли, последний создал систему под названием «Short Code», которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Моучли, была по существу одним из первых примитивных интерпретаторов.
Уже в 1951 г. Хоппер создала первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. «Подпрограммы находятся в библиотеке (компьютера), а когда вы подбираете материал из библиотеки - это называется компиляцией» - так она объясняла происхождение введенного ею термина.