Облицовка насыпи, бетонирование фундаментов под оборудование. Устройство бетонных полов. Армирование и установка закладных деталей для последующего монтажа оборудования и прокладки рельсовых путей. Монтаж стеновых панелей на фасаде и торцевых стенах.
Рубрика | Строительство и архитектура |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 04.09.2014 |
Размер файла | 18,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственный комитет Российской Федерации по высшему образованию
САНКТ — ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
о прохождении преддипломной производственно-технической практики
Понятие алгоритма и его свойства. Алгоритмы и структуры данных.
Студент: Орехов Д. С.
Руководитель: Бухарцев В. Н.
Санкт-Петербург, 1999 г.
В период прохождения преддипломной производственной практики с 21.07.1999 по 10.10.1999г, я работал в качестве мастера в строительном управлении « Энергострой ». Это строительное управление занимается производством строительных работ (преимущественно земляных, бетонных и монтажных) на объектах, связанных с энергетикой и входящих в систему Ленэнерго. К числу объектов, на которых СУ «Энергострой» производит строительные и монтажные работы, относятся ТЭЦ-15, ТЭЦ-14 (Первомайская), ТЭЦ-7, Северная ТЭЦ . Заказчики на перечисленных объектах, входящих в Единую Энергетическую Систему России, зачастую расплачиваются не наличными деньгами, а взаимозачетом или векселями РАО ЕЭС, которые очень сложно «обналичить» или использовать в качестве платежного средства при покупке материалов, инструментов или малой механизации. Поэтому СУ «Энергострой» приходится находить для себя «денежные» объекты объекты, заказчики на которых расплачиваются за выполненные работы наличными, «живыми» деньгами. К таким объектам относятся ПТМЗ (Петербургский трамвайно-механический завод), Ледовый стадион, вагономоечный комплекс Октябрьской железной дороги и др.
1. Краткое описание объектов, их состояния и производимых работ
бетонирование фундамент стена армирование
За время прохождения практики я работал на нескольких объектах. На ТЭЦ-14 я участвовал в строительстве центральной насосной станции (ЦНС), напорной канализации, аварийной канализации для насосной станции №4, отделочных работах, производимых в здании административно-бытового корпуса (АБК) и некоторых мелких работах (например ремонт бетонных дорог на территории ТЭЦ-14). Строго говоря за мной был закреплен только один объект ЦНС, но приходилось заниматься и другими, т.к. был некоторый дефицит линейных мастеров. Свою работу на объекте ЦНС я рассмотрю несколько подробнее, чтобы показать обязанности мастера и трудности, с которыми я столкнулся, работая на этой должности.
Что такое алгоритм. Видеоурок по информатике 6 класс
Центральная насосная станция представляет собой здание каркасного типа шириной 12 и длиной 54 метра. По продольным осям (А и Б) колонны установлены с модульным шагом 6м (9 пролетов). Внутри здания располагаются шесть больших бетонных фундаментов под основное оборудование (насосы Д 6300-27-2), четыре фундамента под вспомогательное оборудование (насосы ЦН 400-105, электрооборудование и пр.), несколько бетонных приямков. К моменту моего прихода были установлены колонны, завершен монтаж крыши, было начато бетонирование фундаментов под оборудование, на 50% завершен монтаж стеновых панелей. За время моего участия в строительстве производились следующие работы: окончательная вертикальная планировка и уплотнение песчаного основания, установка трубной кабельной проходки для силовых и контрольных электрических кабелей, завершено бетонирование фундаментов под оборудование, начато бетонирование полов с установкой закладных деталей для последующей установки трубопроводов и оборудования и завершен монтаж стеновых панелей на фасаде и торцевых стенах.
На объекте работали две бригады — монтажники и бетонщики, бригада бетонщиков состояла из трех человек, поэтому скорее ее можно было назвать звеном. Моей основной задачей было обеспечивать бесперебойную работу на объекте и решать любые вопросы, появляющиеся в процессе производства.
Эта задача осложнялась тем, что своевременная поставка на стройплощадку материалов и техники зависела в большей степени от диспетчера строительной техники и отдела снабжения нашего управления. В силу различных, экономических и не только, причин снабжение было нерегулярным, если не сказать эпизодическим, материалы по срочным заявкам иногда поставлялись через несколько недель, из-за чего не только срывались сроки сдачи объекта, но возникала и еще одна проблема — простой рабочих. Если с бригадой бетонщиков эта проблема решалась относительно просто — я на несколько дней переводил их на другие объекты (например участок напорной канализации длиной около 200 метров был смонтирован именно во время таких простоев), то монтажники работали в другой фирме, с которой был заключен договор субподряда именно на монтаж железобетонных конструкций на объекте ЦНС, и перевести их на другой объект было невозможно. Впрочем длительный (недельный) простой у монтажников был только единожды, когда приостановилась поставка керамзитобетонных стеновых панелей, вагон с которыми задержался на каком-то железнодорожном узле. Монтаж стеновых панелей производился с помощью крана ДЭК-565, поэтому работа монтажников приостанавливалась и во время неполадок в электросети ТЭЦ-14, когда обесточивались и кран, и сварочные аппараты.
Кроме того, в мои обязанности входило решать также и административные вопросы. К ним в первую очередь относились работа с заказчиком (на данном объекте представителем заказчика являлся отдел капитального строительства ТЭЦ-14) и ведение необходимой рабочей документации (журнал производства работ, журнал по технике безопасности, исполнительные схемы, акты на скрытые работы, формы 2, формы 29 и пр.).
Работа с заказчиком включала в себя получение разного рода разрешений и согласований, например разрешение на производство земляных работ (на территории станции проходит огромное количество кабельных и канализационных трасс), согласование на внесение изменений в первоначальный проект или согласование дополнительных смет. В качестве примера можно привести ситуацию с подпорными стенами. По проекту к задней стене ЦНС вплотную подходит насыпь, поэтому вместо стеновых панелей для монтажа первого яруса задней стены здания должны были использоваться серийные подпорные плиты. Однако, после согласования с заказчиком, было принято решение заменить на этом участке сборные плиты монолитными, т.к. это удешевляло проект, одновременно улучшая гидроизоляционные и прочностные характеристики данного участка стены.
Другой объект, на котором я работал, не представлял сложности с технической стороны — необходимо было облицевать бетонными плитами железнодорожную насыпь на открытом складе щебня, находящемся в районе станции метро «Проспект Большевиков». Облицовка насыпи была необходима для того, чтобы она не разрушалась ковшами автопогрузчиков, которые собирали щебень, выгруженный из вагонов грузовых составов. Основная сложность заключалась в том, склад продолжал действовать, и постоянно приходилось уточнять и корректировать график работы нашей бригады.
Кроме того я принимал участие в работе с проектной документацией на стадии рассмотрения проекта здания склада-магазина фирмы «Петроавто». В мою задачу входило просчитать объемы земляных и бетонных работ, а также сделать выборку требуемых материалов — объем монолитного бетона, тоннаж арматуры, прокатного профиля, и составить спецификации используемых железобетонных конструкций. На основе этих данных в сметном отделе составили предварительную смету, отталкиваясь от которой руководство управления вело переговоры с заказчиком о стоимости строительства.
2. Индивидуальное задание
Последний объект, на котором я заканчивал практику — вагономоечный комплекс Октябрьской железной дороги. На этом объекте проводилась реконструкцию вагономоечного цеха в связи с заменой оборудования. Основным производителем работ — генподрядчиком — на объекте являлся трест «СевЗапЭнергомонтаж», который заключил с СУ «Энергострой» договор субподряда на производство некоторых видов работ: бетонирование фундаментов под оборудование, устройство бетонных полов. Рабочие треста занимались бетонированием основного лотка, служащего для сбора воды, по которому прокладывались рельсовые пути.
2.1 Исходные данные
Вагономоечный цех представляет собой здание каркасного типа длиной 102, и шириной 15 метров, разделенное на две части металлической перемычкой вдоль продольной оси. Каждая из частей оборудована комплектом вагономоечного оборудования, поэтому ведение строительных работ в одной половине здания, не мешает второй половине работать в обычном режиме.
Поскольку на объекте велась реконструкция, а не капитальное строительство, говорить о геологии объекта не представляется возможным, т.к. в проектной документации этому не уделялось внимания, а грунт, с которым нам приходилось работать, представлял собой грунт обратной засыпки — песок, смешанный со строительным мусором. Под воздействием постоянной вибрации из-за проходящих составов он настолько уплотнился, что легко держал вертикальный откос и, несмотря постоянное присутствие воды, практически не оползал.
Как уже было сказано, объект оставался действующим, поэтому постоянно в траншее скапливалась вода, причем вода с примесью щелочи, что создавало еще одну проблему — постоянный неприятный запах. На площадке постоянно работал насос, откачивающий воду из котлована.
2.2 Алгоритм ведения работ
Работы на объекте велись по следующему алгоритму: пневмомолотом разрушались существующие бетонные конструкции (полы, старый лоток), затем экскаватором убирались осколки бетона, откапывалась траншея глубиной около 2.5 метров (грунт и строительный мусор вывозились КаМАЗами). Когда траншея достигала достаточной длины, в ней начиналась установка опалубки для лотка и фундаментов под оборудование (чертеж ). Параллельно велись армирование и установка закладных деталей для последующего монтажа оборудования и прокладки рельсовых путей.
Когда установка опалубки армирование и установка закладных деталей заканчивались, начиналось бетонирование. С помощью бетононасоса бетонная смесь подавалась на расстояние более 80 метров и легко укладывалась в труднодоступные участки опалубки. После затвердевания бетона и снятия опалубки (на данном объекте один комплект опалубки использовался трижды, т.к. бетонирование лотка осуществлялось в три этапа), по верху лотка прокладывались рельсы (для этой работы приходилось нанимать бригаду рабочих железнодорожников). Затем по уложенным рельсам внутрь цеха подавались платформы с песком, которым производилась обратная засыпка котлована. После проливки и уплотнения песчаного основания вибротрамбовкой, производилось армирование полов.
В процессе производства работ проект претерпел изменения, что привело к изменению и технологии работ: для того, чтобы установить арматурные каркасы полов, пришлось ручным перфоратором высверлить в боковой поверхности лотка более 600 отверстий. Завершающим этапом работ являлось бетонирование полов. Бетонирование осложнялось тем, что полы в вагономоечном цехе проектировались с достаточно сильным уклоном, причем на разных участках уклон был разнонаправленным для создания водоразделов, отделяющих чистую воду от моющего состава (слабощелочной или слабокислой воды). Кроме того, из-за стесненности и неудобства (с точки зрения производства строительных работ) расположения цеха, затруднялась доставка бетона. Для этого требовались либо специальным образом оснащенная дрезина, либо достаточно мощный (а, следовательно, дорогой в эксплуатации) бетононасос.
К моменту окончания моей практики, генподрядчиком еще не был утвержден какой-либо из предложенных вариантов бетонирования полов на объекте, но скорее всего будет использован бетононасос.
На протяжении всего срока строительства заказчиком осуществлялся строгий контроль за соблюдением технологии производства и качеством выполненных работ. Представитель технадзора заказчика перед началом любого вида работ проверял соответствие проекту и ГОСТам предшествующего этапа, или подготовительных работ. Например перед началом бетонирования проверялось соответствие проекту и качество и армирования и опалубки.
Источник revolution.allbest.ruАлгоритм
Алгоритм — это четкая последовательность действий, выполнение которой дает какой-то заранее известный результат. Проще говоря, это набор инструкций для конкретной задачи. Известнее всего этот термин в информатике и компьютерных науках, где под ним понимают инструкции для решения задачи эффективным способом.
Несмотря на схожесть со словом «ритм», происхождение названия иное. По одной из версий, «алгоритм» — неверный перевод фамилии древнего ученого аль-Хорезми, который писал трактаты по математике. Так наименование и закрепилось.
Сейчас под этим словом понимают любые последовательности действий, которые можно четко описать и разделить на простые шаги и которые приводят к достижению какой-то цели. Например, пойти на кухню, налить воду и положить в нее пакетик чая — это алгоритм для выполнения задачи «Заварить чай».
Алгоритмы в информатике — инструкции для компьютеров, набор шагов, который описывается программным кодом. Существуют конкретные алгоритмы для тех или иных действий, причем некоторые из них довольно сложные. Одна из целей использования алгоритмов — делать код эффективнее и оптимизировать его.
Кто пользуется алгоритмами
В общем смысле — абсолютно все живые и некоторые неживые существа, потому что любую последовательность действий, ведущую к цели, можно считать алгоритмом. Поиск еды животным — алгоритм, движения робота тоже описываются алгоритмом.
В узком смысле, в котором понятие используется в компьютерных науках, алгоритмами пользуются разработчики, некоторые инженеры и аналитики, а также специалисты по машинному обучению, тестировщики и многие другие. Это одно из ключевых понятий в IT.
Для чего нужны алгоритмы
Алгоритмы в информатике нужны для эффективного решения различных задач, в том числе тех, выполнение которых «в лоб» имеет высокую сложность или вовсе невозможно. На практике существуют алгоритмы практически для чего угодно: сортировки, прохождения по структурам данных, поиска элементов, фильтрации информации, математических операций и так далее.
Например, отсортировать массив можно в ходе полного перебора — это самое очевидное решение. А можно воспользоваться алгоритмом быстрой сортировки: он сложнее и не так очевиден, зато намного быстрее работает и не так сильно нагружает мощности компьютера. Строго говоря, полный перебор — это тоже алгоритм, но очень простой.
Существуют алгоритмически неразрешимые задачи, для решения которых нет и не может существовать алгоритма. Но большинство задач в IT разрешимы алгоритмически, и алгоритмы активно используются в работе с ними.
Алгоритмы применяются во всех направлениях IT и во многих других отраслях. Инструкции для автоматизированного станка или линии производства — алгоритмы, рецепт блюда — тоже. Поэтому в общем смысле алгоритмы нужны для чего угодно.
Свойства алгоритмов
Дискретность. Алгоритм — не единая неделимая структура, он состоит из отдельных маленьких шагов, или действий. Эти действия идут в определенном порядке, одно начинается после завершения другого.
Результативность. Выполнение алгоритма должно привести к какому-либо результату и не оставлять неопределенности. Результат может в том числе оказаться неудачным — например, алгоритм может сообщить, что решения нет, — но он должен быть.
Детерминированность. На каждом шаге не должно возникать разночтений и разногласий, инструкции должны быть четко определены.
Массовость. Алгоритм обычно можно экстраполировать на похожие задачи с другими исходными данными — достаточно поменять изначальные условия. Например, стандартный алгоритм по решению квадратного уравнения останется неизменным вне зависимости от того, какие числа будут использоваться в этом уравнении.
Понятность. Алгоритм должен включать только действия, известные и понятные исполнителю.
Конечность. Алгоритмы конечны, они должны завершаться и выдавать результат, в некоторых определениях — за заранее известное число шагов.
Какими бывают алгоритмы
Несмотря на слово «последовательность», алгоритм не всегда описывает действия в жестко заданном порядке. Особенно это актуально сейчас, с распространением асинхронности в программировании. В алгоритмах есть место для условий, циклов и других нелинейных конструкций.
Линейные. Это самый простой тип алгоритма: действия идут друг за другом, каждое начинается после того, как закончится предыдущее. Они не переставляются местами, не повторяются, выполняются при любых условиях.
Ветвящиеся. В этом типе алгоритма появляется ветвление: какие-то действия выполняются, только если верны некоторые условия. Например, если число меньше нуля, то его нужно удалить из структуры данных. Можно добавлять и вторую ветку: что делать, если условие неверно — например, число больше нуля или равно ему. Условий может быть несколько, они могут комбинироваться друг с другом.
Циклические. Такие алгоритмы выполняются в цикле. Когда какой-то блок действий заканчивается, эти действия начинаются снова и повторяются некоторое количество раз. Цикл может включать в себя одно действие или последовательность, а количество повторений может быть фиксированным или зависеть от условия: например, повторять этот блок кода, пока в структуре данных не останется пустых ячеек. В некоторых случаях цикл может быть бесконечным.
Рекурсивные. Рекурсия — это явление, когда какой-то алгоритм вызывает сам себя, но с другими входными данными. Это не цикл: данные другие, но «экземпляров» работающих программ несколько, а не одна. Известный пример рекурсивного алгоритма — расчет чисел Фибоначчи.
Рекурсия позволяет изящно решать некоторые задачи, но с ней надо быть осторожнее: такие алгоритмы могут сильно нагружать ресурсы системы и работать медленнее других.
Вероятностные. Такие алгоритмы упоминаются реже, но это довольно интересный тип: работа алгоритма зависит не только от входных данных, но и от случайных величин. К ним, например, относятся известные алгоритмы Лас-Вегас и Монте-Карло.
Основные и вспомогательные. Это еще один вид классификации. Основной алгоритм решает непосредственную задачу, вспомогательный решает подзадачу и может использоваться внутри основного — для этого там просто указываются его название и входные данные. Пример вспомогательного алгоритма — любая программная функция.
Графическое изображение алгоритмов
Алгоритмы могут записывать текстом, кодом, псевдокодом или графически — в виде блок-схем. Это специальные схемы, состоящие из геометрических фигур, которые описывают те или иные действия. Например, начальная и конечная точка на схеме — соответственно, начало и конец алгоритма, параллелограмм — ввод или вывод данных, ромб — условие. Простые действия обозначаются прямоугольниками, а соединяются фигуры с помощью стрелок — они показывают последовательности и циклы.
В схемах подписаны конкретные действия, условия, количество повторений циклов и другие детали. Это позволяет нагляднее воспринимать алгоритмы.
Сложность алгоритма
Понятие «сложность» — одно из ключевых в изучении алгоритмов. Оно означает не то, насколько трудно понять тот или иной метод, а ресурсы, затраченные на вычисление. Если сложность высокая, алгоритм будет выполняться медленнее и, возможно, тратить больше аппаратных ресурсов; такого желательно избегать.
Сложность обычно описывают большой буквой O. После нее в скобках указывается значение, от которого зависит время выполнения. Это обозначение из математики, которое описывает поведение разных функций.
Какой бывает сложность. Полностью разбирать математическую O-нотацию, как ее называют, мы не будем — просто перечислим основные обозначения сложности в теории алгоритмов.
- O(1) означает, что алгоритм выполняется за фиксированное константное время. Это самые эффективные алгоритмы.
- O(n) — это сложность линейных алгоритмов. n здесь и дальше обозначает размер входных данных: чем больше n, тем дольше выполняется алгоритм.
- O(n²) тоже означает, что чем больше n, тем выше сложность. Но зависимость тут не линейная, а квадратичная, то есть скорость возрастает намного быстрее. Это неэффективные алгоритмы, например с вложенными циклами.
- O(log n) — более эффективный алгоритм. Скорость его выполнения рассчитывается логарифмически, то есть зависит от логарифма n.
- O(√n) — алгоритм, скорость которого зависит от квадратного корня из n. Он менее эффективен, чем логарифмический, но эффективнее линейного.
Существуют также O(n³), O(nn) и другие малоэффективные алгоритмы с высокими степенями. Их сложность растет очень быстро, и их лучше не использовать.
Графическое описание сложности. Лучше разобраться в сложности в O-нотации поможет график. Он показывает, как изменяется время выполнения алгоритма в зависимости от размера входных данных. Чем более пологую линию дает график, тем эффективнее алгоритм.
O-нотацию используют, чтобы оценить, эффективно ли использовать ту или иную последовательность действий. Если данные большие или их много, стараются искать более эффективные алгоритмы, чтобы ускорить работу программы.
Использование алгоритмов в IT
Мы приведем несколько примеров использования разных алгоритмов в отраслях программирования. На самом деле их намного больше — мы взяли только часть, чтобы помочь вам понять практическую значимость алгоритмов.
Разработка ПО и сайтов. Алгоритмы используются для парсинга, то есть «разбора» структур с данными, таких как JSON. Парсинг — одна из базовых задач, например в вебе. Также алгоритмы нужны при отрисовке динамических структур, выводе оповещений, настройке поведения приложения и многом другом.
Работа с данными. Очень активно алгоритмы применяются при работе с базами данных, файлами, где хранится информация, структурами вроде массивов или списков. Данных может быть очень много, и выбор правильного алгоритма позволяет ускорить работу с ними. Алгоритмы решают задачи сортировки, изменения и удаления нужных элементов, добавления новых данных. С их помощью наполняют и проходят по таким структурам, как деревья и графы.
Отдельное значение алгоритмы имеют в Big Data и анализе данных: там они позволяют обработать огромное количество информации, в том числе сырой, и не потратить на это слишком много ресурсов.
Поисковые задачи. Алгоритмы поиска — отдельная сложная отрасль. Их выделяют в отдельную группу, в которой сейчас десятки разных алгоритмов. Поиск важен в науке о данных, в методах искусственного интеллекта, в аналитике и многом другом. Самый очевидный пример — поисковые системы вроде Google или Яндекса.
Кстати, подробности об используемых алгоритмах поисковики обычно держат в секрете.
Машинное обучение. В машинном обучении и искусственном интеллекте подход к алгоритмам немного другой. Если обычная программа действует по заданному порядку действий, то «умная машина» — нейросеть или обученная модель — формирует алгоритм для себя сама в ходе обучения. Разработчик же описывает модель и обучает ее: задает ей начальные данные и показывает примеры того, как должен выглядеть конечный результат. В ходе обучения модель сама продумывает для себя алгоритм достижения этого результата.
Такие ИИ-алгоритмы могут быть еще мощнее обычных и используются для решения задач, которые разработчик не в силах разбить на простые действия сознательно. Например, для распознавания предметов нужно задействовать огромное количество процессов в нервной системе: человек просто физически не способен описать их все, чтобы повторить программно.
В ходе создания и обучения модели разработчик тоже может задействовать алгоритмы. Например, алгоритм распространения ошибки позволяет обучать нейросети.
Источник blog.skillfactory.ruБлок-схема: примеры, элементы, построение. Блок-схемы алгоритмов
В этой статье будут рассмотрены примеры блок-схем, которые могут встретиться вам в учебниках по информатике и другой литературе. Блок-схема представляет собой алгоритм, по которому решается какая-либо задача, поставленная перед разработчиком. Сначала нужно ответить на вопрос, что такое алгоритм, как он представляется графически, а самое главное – как его решить, зная определенные параметры. Нужно сразу отметить, что алгоритмы бывают нескольких видов.
Что такое алгоритм?
Это слово ввел в обиход математик Мухаммед аль-Хорезми, который жил в период 763-850 года. Именно он является человеком, который создал правила выполнения арифметических действий (а их всего четыре). А вот ГОСТ от 1974 года, который гласит, что:
Алгоритм – это точное предписание, которое определяет вычислительный процесс. Причем имеется несколько переменных с заданными значениями, которые приводят расчеты к искомому результату.
Алгоритм позволяет четко указать исполнителю выполнять строгую последовательность действий, чтобы решить поставленную задачу и получить результат. Разработка алгоритма – это разбивание одной большой задачи на некую последовательность шагов. Причем разработчик алгоритма обязан знать все особенности и правила его составления.
Особенности алгоритма
Всего можно выделить восемь особенностей алгоритма (независимо от его вида):
- Присутствует функция ввода изначальных данных.
- Есть вывод некоего результата после завершения алгоритма. Нужно помнить, что алгоритм нужен для того, чтобы достичь определенной цели, а именно – получить результат, который имеет прямое отношение к исходным данным.
- У алгоритма должна быть структура дискретного типа. Он должен представляться последовательными шагами. Причем каждый следующий шаг может начаться только после завершения предыдущего.
- Алгоритм должен быть однозначным. Каждый шаг четко определяется и не допускает произвольной трактовки.
- Алгоритм должен быть конечным – необходимо, чтобы он выполнялся за строго определенное количество шагов.
- Алгоритм должен быть корректным – задавать исключительно верное решение поставленной задачи.
- Общность (или массовость) – он должен работать с различными исходными данными.
- Время, которое дается на решение алгоритма, должно быть минимальным. Это определяет эффективность решения поставленной задачи.
А теперь, зная, какие существуют блок-схемы алгоритмов, можно приступить к рассмотрению способов их записи. А их не очень много.
Словесная запись
Такая форма, как правило, применяется при описании порядка действий для человека: «Пойди туда, не знаю куда. Принеси то, не знаю что».
Конечно, это шуточная форма, но суть понятна. В качестве примера можно привести еще, например, привычную запись на стеклах автобусов: «При аварии выдернуть шнур, выдавить стекло».
Здесь четко ставится условие, при котором нужно выполнить два действия в строгой последовательности. Но это самые простые алгоритмы, существуют и более сложные. Иногда используются формулы, спецобозначения, но при обязательном условии – исполнитель должен все понимать.
Допускается изменять порядок действий, если необходимо вернуться, например, к предыдущей операции либо обойти какую-то команду при определенном условии. При этом команды желательно нумеровать и обязательно указывается команда, к которой происходит переход: «Закончив все манипуляции, повторяете пункты с 3 по 5».
Запись в графической форме
В этой записи участвуют элементы блок-схем. Все элементы стандартизированы, у каждой команды имеется определенная графическая запись. А конкретная команда должна записываться внутри каждого из блоков обычным языком или математическими формулами. Все блоки должны соединяться линиями – они показывают, какой именно порядок у выполняемых команд. Собственно, этот тип алгоритма более подходит для использования в программном коде, нежели словесный.
Запись на языках программирования
В том случае, если алгоритм необходим для того, чтобы задачу решала программа, установленная на ПК, то нужно его записывать специальным кодом. Для этого существует множество языков программирования. И алгоритм в этом случае называется программой.
Блок-схемы
Блок-схема – это представление алгоритма в графической форме. Все команды и действия представлены геометрическими фигурами (блоками). Внутри каждой фигуры вписывается вся информация о тех действиях, которые нужно выполнить. Связи изображены в виде обычных линий со стрелками (при необходимости).
Для оформления блок-схем алгоритмов имеется ГОСТ 19.701-90. Он описывает порядок и правила создания их в графической форме, а также основные методы решения. В этой статье приведены основные элементы блок-схем, которые используются при решении задач, например, по информатике. А теперь давайте рассмотрим правила построения.
Основные правила составления блок-схемы
Можно выделить такие особенности, которые должны быть у любой блок-схемы:
- Обязательно должно присутствовать два блока – «Начало» и «Конец». Причем в единичном экземпляре.
- От начального блока до конечного должны быть проведены линии связи.
- Из всех блоков, кроме конечного, должны выходить линии потока.
- Обязательно должна присутствовать нумерация всех блоков: сверху вниз, слева направо. Порядковый номер нужно проставлять в левом верхнем углу, делая разрыв начертания.
- Все блоки должны быть связаны друг с другом линиями. Именно они должны определять последовательность, с которой выполняются действия. Если поток движется снизу вверх или справа налево (другими словами, в обратном порядке), то обязательно рисуются стрелки.
- Линии делятся на выходящие и входящие. При этом нужно отметить, что одна линия является для одного блока выходящей, а для другого входящей.
- От начального блока в схеме линия потока только выходит, так как он является самым первым.
- А вот у конечного блока имеется только вход. Это наглядно показано на примерах блок-схем, которые имеются в статье.
- Чтобы проще было читать блок-схемы, входящие линии изображаются сверху, а исходящие снизу.
- Допускается наличие разрывов в линиях потока. Обязательно они помечаются специальными соединителями.
- Для облегчения блок-схемы разрешается всю информацию прописывать в комментариях.
Графические элементы блок-схем для решения алгоритмов представлены в таблице:
Линейный тип алгоритмов
Это самый простой вид, который состоит из определенной последовательности действий, они не зависят от того, какие данные вписаны изначально. Есть несколько команд, которые выполняются однократно и только после того, как будет сделана предшествующая. Линейная блок-схема выглядит таким образом:
Причем связи могут идти как сверху вниз, так и слева направо. Используется такая блок-схема для записи алгоритмов вычислений по простым формулам, у которых не имеется ограничений на значения переменных, входящих в формулы для расчета. Линейный алгоритм – это составная часть сложных процессов вычисления.
Разветвляющиеся алгоритмы
Блок-схемы, построенные по таким алгоритмам, являются более сложными, нежели линейные. Но суть не меняется. Разветвляющийся алгоритм – это процесс, в котором дальнейшее действие зависит от того, как выполняется условие и какое получается решение. Каждое направление действия – это ветвь.
На схемах изображаются блоки, которые называются «Решение». У него имеется два выхода, а внутри прописывается логическое условие. Именно от того, как оно будет выполнено, зависит дальнейшее движение по схеме алгоритма. Можно разделить разветвляющиеся алгоритмы на три группы:
- «Обход» – при этом одна из веток не имеет операторов. Другими словами, происходит обход нескольких действий другой ветки.
- «Разветвление» – каждая ветка имеет определенный набор выполняемых действий.
- «Множественный выбор» – это разветвление, в котором есть несколько веток и каждая содержит в себе определенный набор выполняемых действий. Причем есть одна особенность – выбор направления напрямую зависит от того, какие заданы значения выражений, входящих в алгоритм.
Это простые алгоритмы, которые решаются очень просто. Теперь давайте перейдем к более сложным.
Циклический алгоритм
Здесь все предельно понятно – циклическая блок-схема представляет алгоритм, в котором многократно повторяются однотипные вычисления. По определению, цикл – это определенная последовательность каких-либо действий, выполняемая многократно (более, чем один раз). И можно выделить несколько типов циклов:
- У которых известно число повторений действий (их еще называют циклами со счетчиком).
- У которых число повторений неизвестно – с постусловием и предусловием.
Независимо от того, какой тип цикла используется для решения алгоритма, у него обязательно должна присутствовать переменная, при помощи которой происходит выход. Именно она определяет количество повторений цикла. Рабочая часть (тело) цикла – это определенная последовательность действий, которая выполняется на каждом шаге. А теперь более детально рассмотрим все типы циклов, которые могут встретиться при составлении алгоритмов и решении задач по информатике.
Циклы со счетчиками
На рисунке изображена простая блок-схема, в которой имеется цикл со счетчиком. Такой тип алгоритмов показывает, что заранее известно количество повторений данного цикла. И это число фиксировано. При этом переменная, считающая число шагов (повторений), так и называется – счетчик. Иногда в учебниках можно встретить иные определения – параметр цикла, управляющая переменная.
Блок-схема очень наглядно иллюстрирует, как работает цикл со счетчиком. Прежде чем приступить к выполнению первого шага, нужно присвоить начальное значение счетчику – это может быть любое число, оно зависит от конкретного алгоритма. В том случае, когда конечное значение меньше величины счетчика, начнет выполняться определенная группа команд, которые составляют тело цикла.
После того, как тело будет выполнено, счетчик меняется на величину шага счетчика, обозначенную буквой h. В том случае, если значение, которое получится, будет меньше конечного, цикл будет продолжаться. И закончится он лишь в тогда, когда конечное значение будет меньше, чем счетчик цикла. Только в этом случае произойдет выполнение того действия, которое следует за циклом.
Обычно в обозначениях блок-схем используется блок, который называется «Подготовка». В нем прописывается счетчик, а затем указываются такие данные: начальное и конечное значения, шаг изменения. На блок-схеме это параметры I н, Ik и h, соответственно. В том случае, когда h=1, величину шага не записывают. В остальных случаях делать это обязательно.
Необходимо придерживаться простого правила – линия потока должна входить сверху. А линия потока, которая выходит снизу (или справа, в зависимости от конкретного алгоритма), должна показывать переход к последующему оператору.
Теперь вы полностью изучили описание блок-схемы, изображенной на рисунке. Можно перейти к дальнейшему изучению. Когда используется цикл со счетчиком, требуется соблюдать определенные условия:
- В теле не разрешается изменять (принудительно) значение счетчика.
- Запрещено передавать управление извне оператору тела. Другими словами, войти в цикл можно только из его начала.
Циклы с предусловием
Этот тип циклов применяется в тех случаях, когда количество повторений заранее неизвестно. Цикл с предусловием – это тип алгоритма, в котором непосредственно перед началом выполнения тела осуществляется проверка условия, при котором допускается переход к следующему действию. Обратите внимание на то, как изображаются элементы блок-схемы.
В том случае, когда условие выполняется (утверждение истинно), происходит переход к началу тела цикла. Непосредственно в нем изменяется значение хотя бы одной переменной, влияющей на значение поставленного условия. Если не придерживаться этого правила, получим «зацикливание». В том случае, если после следующей проверки условия выполнения тела цикла оказывается, что оно ложное, то происходит выход.
В блок-схемах алгоритмов допускается осуществлять проверку не истинности, а ложности начального условия. При этом из цикла произойдет выход только в том случае, если значение условия окажется истинным. Оба варианта правильные, их использование зависит от того, какой конкретно удобнее использовать для решения той или иной задачи. Такой тип цикла имеет одну особенность – тело может не выполниться в случае, когда условие ложно или истинно (в зависимости от варианта, который применяется для решения алгоритма).
Ниже приведена блок-схема, которая описывает все эти действия:
Что такое цикл с постусловием?
Если внимательно присмотреться, то этот вид циклов чем-то похож на предыдущий. Самостоятельно построить блок-схему, описывающую этот цикл, мы сейчас и попробуем. Особенность заключается в том, что неизвестно заранее число повторений. А условие задается уже после того, как произошел выход из тела. Отсюда видно, что тело, независимо от решения, будет выполняться как минимум один раз. Для наглядности взгляните на блок-схему, описывающую выполнение условия и операторов:
Ничего сложного в построении алгоритмов с циклами нет, достаточно в них только один раз разобраться. А теперь перейдем к более сложным конструкциям.
Сложные циклы
Сложные – это такие конструкции, внутри которых есть один или больше простых циклов. Иногда их называют вложенными. При этом те конструкции, которые охватывают иные циклы, называют «внешними». А те, которые входят в конструкцию внешних – внутренними. При выполнении каждого шага внешнего цикла происходит полная прокрутка внутреннего, как представлено на рисунке:
Вот и все, вы рассмотрели основные особенности построения блок-схем для решения алгоритмов, знаете принципы и правила. Теперь можно рассмотреть конкретные примеры блок-схем из жизни. Например, в психологии такие конструкции используются для того, чтобы человек решил какой-то вопрос:
Или пример из биологии для решения поставленной задачи:
Решение задач с блок-схемами
А теперь рассмотрим примеры задач с блок-схемами, которые могут попасться в учебниках информатики. Например, задана блок-схема, по которой решается какой-то алгоритм:
При этом пользователь самостоятельно вводит значения переменных. Допустим, х=16, а у=2. Процесс выполнения такой:
- Производится ввод значений х и у.
- Выполняется операция преобразования: х=√16=4.
- Выполняется условие: у=у 2 =4.
- Производится вычисление: х=(х+1)=(4+1)=5.
- Дальше вычисляется следующая переменная: у=(у+х)=(5+4)=9.
- Выводится решение: у=9.
На этом примере блок-схемы по информатике хорошо видно, как происходит решение алгоритма. Нужно обратить внимание на то, что значения х и у задаются на начальном этапе и они могут быть любыми.
Источник www.syl.ru