Информатика. Контрольная работа по дисциплине Информатика Выполнил студент заочного отделения
Скачать 329.02 Kb.
|
Министерство сельского хозяйства Российской Федерации федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Ярославская государственная сельскохозяйственная академия» Кафедра экономики и менеджмента Контрольная работа по дисциплине «Информатика» Выполнил студент заочного отделения гр.132 Спиридонов А.И. Шифр: 14082 Проверил Угловский А.С. Ярославль 2016 Содержание
2. Понятие и свойства алгоритмов. Способы задания алгоритмов, их характеристика. 18. Структурная схема ЭВМ. Основные устройства ЭВМ и принцип их взаимодействия. 22. Устройства ввода информации. Список литературы 2. Понятие и свойства алгоритмов. Способы задания алгоритмов, их характеристика. Алгоритм - это последовательность действий, приводящих к решению поставленной задачи. Алгоритм применительно к ПК - точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить задачу фиксированного типа. (Algorithmi (Аль-Хорезми) - среднеазиатский математик XI в., впервые описавший правила выполнения четырёх арифметических действий). Примеры выполнения определённого алгоритма: рецепт приготовления вкусного блюда, инструкция по сборке мебели, описание химического опыта, инструкции и описания из журналов по рукоделью, вязке и шитью, руководства по игровым и полезным компьютерным программам. Исполнитель алгоритма - человек или устройство (в частности, процессор ЭВМ), умеющий выполнять определённый набор действий. Такой набор действий - система команд исполнителя. Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения и определения действий исполнителя подразделяются на: механические алгоритмы, или детерминированные, жесткие (например, алгоритм работы машины, двигателя и т. п.); гибкие алгоритмы, например стохастические, т. е. вероятностные и эвристические. Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат. Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата. Эвристический алгоритм (от греческого слова "эврика" "Я нашел") -это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. Свойства алгоритма: понятность для исполнителя – содержание предписания о выполнении только таких действий, которые входят в систему команд исполнителя; дискретность (прерывность) – выполнение команд алгоритма последовательно, с точной фиксацией моментов окончания выполнения одной команды и начала выполнения следующей; определённость - каждое правило алгоритма должно быть чётким и однозначным; результативность (конечность) - алгоритм должен приводить к решению за конечное число шагов; массовость (универсальность) - алгоритм должен выполняться для любого набора исходных данных, удовлетворяющих условию задачи. Способы задания алгоритмов: словесный; графический; табличный; программный. Словесный способ записи задается в произвольном изложении на естественном языке. Графический способ записи - в виде блок-схем. Блок-схема - последовательность блоков, соединенных линиями передачи (ветвями). Табличный способ записи - в виде таблицы, устанавливающей зависимость результата от исходных данных. Программный способ записи - в виде текста на каком-либо языке программирования. 15.Элементы блок схем. Алгоритмические структуры (линейная, ветвление, цикл). Графические символы применяемые для построения алгоритмов. Символ ''Процесс" представляет собой прямоугольник определенных размеров. Используется для отражения процессов выполнения операций над данными, в результате которых изменяются значения, расположение или форма представления данных. Внутри символа могут размещаться формульно-словесные записи. Символ ''Решение" представляет собой ромб. Используется для отображения выбора направления вычислений в зависимости от результатов (исходов) проверки некоторого условия. Условие записывается внутри ромба. В качестве признаков условия используются слова "Да", "Нет" и математические символы: =, ≠, >, < , и т. п. Признаки проставляются над выходящими линиями потока или справа от них. Если число исходов проверки условий больше трех, то признаки условия проставляются в разрыве линии потока. "Ввод-вывод" представляет собой параллелограмм. Используется для отображения ввода или вывода и сопровождающих их преобразований данных к виду, пригодному для переработки или регистрации. Внутри символа может также размещаться запись формульно-словесного типа. Например, ' Ввод X" или "Вывод У". Символ "Пуск-останов" представляет собой овал. Используется для отображения начала, конца или прерывания процесса обработки данных пли выполнения программ. Линейная алгоритмическая структура. Алгоритм в котором команды выполняются последовательно одна за другой, называется линейным алгоритмом. Алгоритмическая структура «ветвление». Алгоритм, в котором та или иная серия команд реализуется в зависимости от выполнения условия, называется разветвляющимся алгоритмом. Команда ветвления может быть зафиксирована различными способами. Алгоритмическая структура «цикл». Алгоритм, в котором серия команд выполняется многократно, называется циклическим алгоритмом. Инструментальное ПО. Технологии программирования и системы программирования. Инструментальные программные средства – это программы, которые используются в ходе разработки, корректировки или развития других прикладных или системных программ. К инструментальным программам, например, относятся: языки и системы программирования; интегрированные среды программирования; отладочные программы (программы, помогающие находить и устранять ошибки); программные комплексы. Языки и системы программирования включают языки описания алгоритмов, используемых для решения различных задач на компьютере, а также средства для разработки, корректировки и развития других прикладных или системных программ. Интегрированные среды программирования включают весь набор средств для комплексного их применения на всех технологических этапах разработки программ. Основное назначение такого инструментария состоит в том, чтобы с его помощью повысить производительность и эффективность труда программистов. Отладочные программы используются при тестировании программы. Они позволяют находить и устранять ошибки. Программные комплексы используются при разработке сложных прикладных информационных систем. Они позволяют автоматизировать весь технологический процесс анализа, проектирования, разработки, отладки и сопровождения проекта целиком. Технологии программирования и системы программирования. Система программирования– это система для разработки новых программ на конкретном языке программирования. Система программирования состоит из: языковых средств разработчика программ, компилятора, редактора связей, отладчика, оптимизатора кода программ, набора библиотек, справочной системы и др. Системы программирования, ориентированные на создание Windows-приложений: пакет Borland Delphi (Дельфи) – блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования. пакет Borland Bilder (Билдер) – платформа ориентированная на создание Windows-приложений на языке Си, одно из самых распространённых средств для разработки DOS и Windows приложений. пакет Microsoft Visual Basic – удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций. Технология – искусство, мастерство, умение (греч.); совокупность методов обработки, изготовления, изменения состояния, свойств, формы сырья, материала или полуфабриката, осуществляемых в процессе производства продукции. В широком смысле слова технология может определяться как процесс – последовательная смена явлений, состояний в развитии чего-нибудь; совокупность последовательных действий для достижения какого-либо результата. Информационная технология – это процесс, использующий совокупность средств и методов сбора, обработки и передачи данных для получения информации нового качества о состоянии объекта, процесса или явления. Технологии программирования. При написании программ пользуются некоторым набором методов, способов, принципов, которые в совокупности можно определить термином “технологические средства”: Принцип модульности; Стратегии проектирования; Метод структурного программирования. Модульность - это принцип программирования, состоящий в том, что большие и сложные программы разрабатываются и отлаживаются по частям, которые затем объединяются в единый комплекс. Программа считается модульной только в том случае, если каждый входящий в нее модуль не зависит от других, т.е. его можно модифицировать, не вызывая каких либо изменении в других модулях. Следовательно, независимость - это та характеристика (хотя и качественная), которая превращает программную единицу в модуль. Очевидные достоинства модульного программирования не означают, что оно лишено недостатков. Даже для простых задач видно, что структура программы усложняется. Появляется дополнительная задача стыковки модулей, требуются определенные затраты времени и памяти на передачу данных. Стратегия проектирования определяет "направление движения" программиста от исходной постановки задачи к конечной цели - программе решения этой задачи. Различают две стратегии: нисходящее проектирование (сверху вниз) и восходящее (снизу вверх). В основе обеих стратегий лежит принцип модульности. Нисходящее проектирование состоит в том, что разработка программы начинается сверху, с самых общих сведений о проекте и продолжается по уровням иерархии вниз путем разбиения на каждом уровне задачи предыдущего уровня на ряд более мелких, самостоятельных подзадач до тех пор, пока не окажется возможным записать программы решения задач нижнего уровня на одном из языков программирования. Восходящее проектирование состоит в том, что за основу проекта берутся какие-то уже готовые программные модули, из которых строятся другие, более сложные или недостающие в исходном наборе, таким образом, чтобы в итоге выполнилась исходная постановка задачи. Недостатком данной стратегии является то, что логически стройная структура программы получается лишь в результате многочисленных проб и ошибок, что затягивает сроки разработки программ. Во многих случаях представляется разумным сочетать восходящую и нисходящую стратегию. При нисходящем проектировании мы начинаем с управляющего модуля. Чтобы отладить программу этого модуля придется заменять модули нижнего уровня так называемыми "заглушками" - простыми программами, имитирующими работу этих модулей. При восходящем проектировании сначала надо будет составить и отладить программы модулей нижнего уровня, а затем переходить к управляющему модулю и при его отладке пользоваться полноценными отлаженными программами модулей нижнего уровня. Существо метода структурною программирования состоит в том, что программа разрабатывается в виде определенным образом соединенных структур трех различных типов. Количество типов структур ограничено тремя потому, что теоретически доказана возможность разработки программы любой сложности с помощью следующих типов структур: последовательная (линейная), в которой команды или программы выполняются последовательно в том порядке, в котором они записаны; условная (выбора, или ветвления), в которой ход вычислительного процесса зависит от выполнения некоторого условия; циклическая (повторения), в которой определенная последовательность команд или программ повторяется до тех пор, пока не перестанет выполняться некоторое условие. 17.Языки программирования. Язык программирования - это формализованный язык описания алгоритмов, используемых для решения различных задач на компьютере. На начальном этапе развития вычислительной техники программирование осуществлялось только в машинных командах. При программировании в машинных командах программист находится как бы на одном уровне с ПЭВМ: между его программой и реализующими ее техническими средствами ПЭВМ нет никаких посредников и программа выполняемся практически в том виде, в каком ее записал программист. Недостатки такого уровня программирования очевидны. Во-первых, программист должен не только в совершенстве знать систему команд ПЭВМ, уметь мыслить в " терминах" машинных функции, но и постоянно помнить, какие ячейки памяти и чем заняты. Во-вторых, такое программирование связано с большими трудозатратами. Первой попыткой человека "подняться" над уровнем ПЭВМ в процессе программирования и избавить себя от необходимости работать с кодами команд и действительными адресами ячеек памяти стали языки ассемблера. Основное отличие языка ассемблера от машинного языка заключается в использовании вместо двоичных кодов операций и адресов их символических обозначений. Далее появились языки высокого уровня. Команды языка высокого уровня - слова естественного языка, что упрощает работу программиста. Однако выполнить написанную программу на ПЭВМ в таком виде, как она написана, нельзя. Необходимо преобразовать ее на язык машинных кодов. Чтобы вычислительная машина могла выполнить программу, написанную на каком-либо языке программирования, в её программном обеспечении должна быть программа - транслятор для этого языка. Транслятор превращает программу в исполняемый файл. Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы бывают двух типов: интерпретаторы компиляторы Интерпретатор - переводит каждую команду программы с одновременным её выполнением и, если обнаруживает ошибку, сообщает о ней и прекращает выполнение программы. Компилятор - переводит всю программу целиком и в конце работы выдаёт список ошибок, если они обнаружены. Для ввода текстов в компьютер и их изменения используется программа, называемая редактором. Редактору в принципе язык программирования незнаком, он воспринимает исходную программу как текст, который можно дополнять или изменять(то есть редактировать). После создания текста программы она еще не может выполняться машиной. Компилятор представляет собой большую программу, которая переводит исходный текст с языка высокого уровня на машинный язык, доступный компьютеру. Этот процесс называется компиляцией. При компиляции проверяется правильность написания программы. Если ошибок нет, то программа может быть выполнена; в противном случае снова может быть выбран редактор. Кроме ошибок выявляемых компилятором могут быть ошибки, выполняемые исполнительной системой. Тогда после запуска программы мы снова можем попасть в редактор. При этом как правило, имеется возможность использования специальных средств, помогающих выявить ошибки. Такая возможность обеспечивается программой, называемой отладчиком. Весь этот сервис, облегчающий получение программы на машинном языке, понятном компьютеру, носит название системы программирования. Назначение языков программирования. Программирование появилось задолго до появления не только первых персональных ЭВМ, но вообще ЭВМ. (Программыледи Ады Августы Лавлейс для разностной вычислительной машины Бэббиджа). Языком программирования ЭВМ первого поколения был язык машинных кодов (язык низкого уровня). Во втором поколении появились языки высокого уровня. Команды языка высокого уровня - слова естественного языка, что упрощает работу программиста. Запись текста программы на языке программирования называют кодированием, а отладку программы - тестированием. Такая терминология более корректна, чем использование одного слова "программирование", в которое, в зависимости от контекста, включают либо проектирование, кодирование и тестирование вместе, либо кодирование и тестирование, либо просто кодирование. Многообразие языков программирования отчасти объясняется многообразием задач, для решения которых создаются программы на этих языках. В настоящее время в мире существует несколько сотен реально используемых языков программирования. Можно выделить следующие уровни языков программирования: машинные; машинно-оpиентиpованные (ассемблеpы); машинно-независимые (языки высокого уровня). Языки высокого уровня делятся на: процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения; логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания; объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Языки программирования Язык C - это самый распространённый язык программирования. На нём написано больше программ, чем на любом другом. Подавляющее большинство профессиональных программистов владеют им. Исторически этот язык неотделим от операционной системы UNIX , которая в наши дни переживает своё второе рождение.60-е годы были эпохой становления операционных систем и языков программирования высокого уровня. Язык с самого начала создавался так, чтобы на нём можно было писать системные задачи. Разработчики языка - Кеннет Томсон и Деннис Ричи 1972 г. Основные концепции языка Pascal были разработаны в 1967 г. профессором Николаусом Виртом, и он быстро превратился из средства для обучения студентов программированию в инструмент для создания новых программных проектов. Основные привлекательные черты Паскаля – логичность, поддержка концепций структурного и процедурного программирования, работа с динамической памятью, возможность создания своих типов данных. Строгая типизация данных позволяет резко снизить количество ошибок, появляющихся в программе вследствие невнимательности или опечаток. Язык Бейсик (BASIC – Beginners All-purpose Symbolic Instruction Code – универсальный символьный код для начинающих) был создан в 1965 г. Дж. Кемени и Т. Курцем как язык, облегчающий написание простых программ. Интерпретатор Basic был первым программным продуктом фирмы Microsoft, основанной Полом Аленом и Уильямом Гейтсом в 1975 году. В дальнейшем он не только поставлялся как программа, но и зашивался в ПЗУ компьютеров. В середине 80 - годов фирма Microsoft разработала QuickBasic. Это был уже компилятор, а не интерпретатор. Вообще Basic’ов несколько сотен. После появления Windows и визуальных средств разработки программ был создан Visual Basic. FORTRAN - старейший язык программирования. В начале 50-х годов он был разработан исследовательской группой под руководством Джона Бэкуса. Его название происходи от 2-х слов: FORMULA TRANSLATION. Первая версия системы FORTRAN для компьютера IBM была выпущена в начале 1957 г. ALGOL – это также старейший язык программирования, универсальный язык программирования общего назначения. Его название происходи от 2-х слов: ALGORITMIC LANGUAGE. Он был разработан международной рабочей группой, состоящей из 30 человек в 1969 г. Язык очень стройный и изящный благодаря тому, что он основан на принципе ортогональности, согласно которому язык должен по возможности состоять из независимых элементов, свободно комбинирующихся друг с другом. Один из активных разработчиков ALGOL-68 - Чарльз Линдси. ADA - язык программирования, который по сложности сравнивают с С++. Назван в честь леди Ады Августы Лавлейс, работавшей вместе с Чарльзом Беббиджем и разрабатывавшей программы для его «аналитической машины». Разработан язык группой под руководством в 1979 г. Жана Ишбиа в рамках конкурса, объявленного Министерством Обороны США. Мода на объектно-ориентированное программирование привела к созданию новой принципиально его версии ADA95. |