Главная » Просмотр файлов » В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль

В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618), страница 24

Файл №1107618 В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль) 24 страницаВ.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618) страница 242019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 24)

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

Поэтому суть концепции структурного программирования Г. Майерс, например, формулирует следующим образом (М а й е р с Г.Надежность программного обеспечения/Пер. с шгл. под ред. Кауфмана В.Ш. - М.: Мир, 1980. - 360 с.) :"Я предпочитаю определять структурное программирование как программирование, ориентированное на общение с людьми, а не с машиной".Это и означает, что запись программы должна быть максимально удобна для ее восприятия и понимания людьми (в том числе и людьми, не являющимися ее авторами).Идеи структурного программирования базируются на наблюдении тогофакта, что человек гораздо легче читает и понимает какой-либо текст в томслучае, если он читает фразы в порядке их следования в этом тексте. Еслиже по ходу чтения его будут довольно часто отсылать на фрагменты текста,находящиеся, например, на других страницах, то это резко затрудняет восприятие и понимание читаемого текста. Что касается программы, то припрослеживании логики ее работы такие "скачки" по тексту вызывают операторы перехода, которые сами определяют своих преемников и поэтомумогут "отбрасывать" как вперед, так и назад по тексту программы, в достаточно произвольные ее места.

Поэтому структурное программированиеиногда называют "программированием без операторов перехода" (или"программированием без GO Т О " ) , хотя это название отражает экстремальную точку зрения в этом отношении. На самом деле речь идет о том,чтобы не использовать операторы перехода без особой на то необходимости, и чем реже мы будем прибегать к их помощи, тем лучше. Так чтоструктурное программирование является методом составления хорошоструктурированных программ, удобных для их чтения и понимания человек о м , прослеживания логики их работы, внесения в них исправлений и других изменений.На чем же основывается реализация этих идей? Как известно,для подавляющего большинства реально используемых алгоритмов характерны широкая разветвляемость и цикличность определяемых ими вычислительныхпроцессов. Поэтому в записи алгоритма наряду с правилами обработки данных должны содержаться и указания о порядке их выполнения.

В связи сэтим отдельные фрагменты программы представляют собой некоторыелогические (управляющие) структуры, которые определяет условия и по90рядок выполнения содержащихся в них правил обработки данных. Получение хорошо структурированных программ, обладающих указанными выше свойствами в отношении простоты их чтения и понимания, при структурном программировании достигается за счет того, что любую программупредлагается строить из стандартных логических структур, число типовкоторых весьма невелико.В качестве основных принимаются три следующие структуры, суть каждой из которых объясняется соответствующей блок-схемой (прямоугольником обозначается некоторый блок обработки данных, ромбом — разветвление процесса в зависимости от истинности указанного в нем логического выражения В, а стрелки указывают возможных преемников каждого элемента блок-схемы).1) Следование:S1S2•-»-{ SK |—»-Эта структура представляет собой последовательность блоков S 1 , S 2 , ......,Sk, которые выполняются друг за другом, в порядке их следования втексте программы.2) Ветвление:ложьЭто управляющая структура, которая в зависимости от выполнениязаданного условия (значения истинности логического выражения В) определяет выбор для исполнения одного из двух заданных в этой структуреблоков S1 и S2.3) Повторение типа "делать, пока":истиналожьДанная структура представляет собой цикл, в котором заданный блокS исполняется повторно, пока заданное условие выполняется (логическоевыражение В принимает значение истина); в тот момент, когда условиевпервые окажется невыполненным, циклический процесс заканчивается.В частности, если заданное условие окажется невыполненным при первойже его проверке, то входящий в эту структуру блок S вообще не будетисполняться.Существенная особенность всех этих структур состоит в том, что каждаяиз них имеет только один вход и только один выход, что и обеспечиваетхорошую — в указанном выше смысле — структуру программы.91о•о-оРис.

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

допускаетсявложение структур (см. например, рис. 5.1).Именно это обстоятельство и позволяет записывать любую программу сиспользованием небольшого количества типов логических структур.Из уже рассмотренных нами операторов паскаля видно, что в этомязыке действительно имеются все возможности для написания хорошоструктурированных программ.

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

Однако следует помнить, что это ухудшает структурированность программы и затрудняет ее понимание, а следовательно, снижает ее надежность и удобство ее сопровождения, поэтому92следует избегать использования операторов перехода без особой на тонеобходимости.Пусть, например, для каждого из десяти задаваемых вещественных чисел требуется вьиислить значение у по правилу:[1*1у = \ех11/ (2х + 1)'при x < О,при 0 < х < 1,прих>1.В принципе на паскале можно составить и такую программу, предназначенную для решения поставленной задачи:{Родин В.И.

Ф—т ВМиК МГУ12.11.86.Использование операторов перехода}program СЧЕТ(input, output);label 4,5,6,7,10;var i: integer; x,y: real;begin i:=1;4: i-f i >10 then goto 10;read<x); if x<0 then cioto 5;if x>l then goto 6;y:=exp(x); goto 7;5:уs =abs(x); goto 7; 6:y: = 1/<2*x + l>;7: writeln('_ x=', x,'_ y=', y>; i:=i+l; goto 4;10:end.Видимо, читатель согласится с тем, что понять такую программу и проверить ее, прослеживая все возможные пути вычислений, не так уж просто,несмотря на тривиальность решаемой задачи — именно потому, что этапрограмма плохо структурирована.Между тем по сути дела тот же самый алгоритм можно представить вгораздо более наглядной, легко понимаемой и проверяемой форме:СКИРО С .

Н .ОГУ23.2.87г.Структурированнаяпрограмма}program С.ЧЕТСТРУКТ (i nput, output);const n~10;var i: integer; x,y: real;beginfor i:=1 to n dobegin read(x);if x<0 then y:=abs(x> elseif x<l then y:=exp(x) else y:=1/(2*x+l);w r i t e l n ( x = " , x,_ y=', y)end.Чтобы приучить себя к написанию хорошо структурированных программ, можно порекомендовать читателю на этапе обучения действительно93не прибегать к использованию операторов перехода — до тех пор, пока непоявится практическая необходимость изготовлять достаточно эффективные программы, и когда операторы перехода позволят реально повыситьэту эффективность.5.2.

Разработка программыПрограмма — это запись алгоритма решения той или иной задачи на выбранном языке программирования, например на паскале. Однако прежде чемзаписывать алгоритм, надо его знать (иметь). На практике очень редкислучаи, когда приходится записывать уже известные алгоритмы — такиеслучаи встречаются разве что на самых ранних этапах обучения программированию, и то когда речь идет не столько о программировании, сколькооб овладении языком, который будет использоваться в качестве рабочегоинструмента программиста. Так что умение пользоваться алгоритмическимя з ы к о м и умение программировать — это вовсе не одно и то же.

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

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

Характеристики

Тип файла
PDF-файл
Размер
2,47 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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