На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


реферат Алгоритмы

Информация:

Тип работы: реферат. Добавлен: 04.05.2012. Сдан: 2011. Страниц: 10. Уникальность по antiplagiat.ru: < 30%

Описание (план):


       Введение

       Программи?рование — в обычном понимании, это процесс создания компьютерных программ.
       Программирование  позволяет настроить компьютер  или иное программируемое логическое устройство на те или иные действия. Обычно программа вводится в компьютер  программистами, и первые программы  создавались математиками и логиками, конструировавшими компьютеры. Когда еще не было средств вывода на экран, программа выдавала результат просто в печатном виде на принтере. Ввод в компьютер также производился несколько иначе. В любом случае, со временем стало понятно, что программировать компьютер каждый раз «с нуля» после каждой его перезагрузки — неразумно. Поэтому начали появляться средства запоминания программ и данных. Но первые компьютеры были все-таки не цифровыми, а аналоговыми. Проще говоря, они были сначала механическими, потом электромеханическими и, уже потом, электронными. (Первые электронные компьютеры и прочие вычислители работали на электронных лампах.) Конечно это не совсем компьютер в современном понимании. Программированием также называют настройку электронных устройств и программно-аппаратных комплексов. Например: программирование цифровых АТС, программирование бытовых приборов конечным пользователем, запись информации в ПЗУ. Разработку логической схемы для ПЛИС тоже называют программированием. В общем понимании, программирование — это процесс описания функционирования устройства, который может быть выражен либо в структуре самого устройства, либо в виде набора команд, выполняемых устройством. Программирование сочетает в себе элементы науки (логики, математики, информатики, кибернетики), инженерной дисциплины и искусства (авторской творческой деятельности).
       В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
       В более широком смысле под программированием  понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
 

        1. Этапы решения задач в ПЭВМ
       Программирование (programming) - теоретическая и практическая деятельность, связанная с созданием программ. Решение задач на компьютере включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
       1. Постановка задачи:
       •   сбор информации о задаче;
       •   формулировка условия задачи;
       •   определение конечных целей решения задачи;
       •   определение формы выдачи результатов;
       •   описание данных (их типов, диапазонов величин, структуры и т. п.).
       2. Анализ и исследование задачи, модели:
       •   анализ существующих аналогов;
       •   анализ технических и программных средств;
       •   разработка математической модели;
       •   разработка структур данных.
       3. Разработка алгоритма:
       •   выбор метода проектирования алгоритма;
       •    выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
       •    выбор тестов и метода тестирования;
       •    проектирование алгоритма.
       4. Программирование:
       •   выбор языка программирования;
       •   уточнение способов организации данных;
       •   запись алгоритма на выбранном языке
       программирования.
       5. Тестирование и отладка:
       •   синтаксическая отладка;
       •   отладка семантики и логической структуры;
       •    тестовые расчеты и анализ результатов тестирования;
       •   совершенствование программы.
       6. Анализ результатов решения задачи  и уточнение в случае необходимости  математической модели с повторным выполнением этапов 2-5.
       7. Сопровождение программы:
       •   доработка программы для решения конкретных задач;
       •   составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
 

        2. Жизненный цикл программного продукта.

       Все программы можно разбить на два  класса по характеру использования:
       1.      утилитарные программы — предназначены для удовлетворения нужд их разработчиков, программы «для себя»;
       2.      программные продукты — предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи.
       Программный продукт должен быть соответствующим  образом подготовлен к эксплуатации, иметь необходимую техническую  документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя. Только при таких условиях созданный программный комплекс может быть назван программным продуктом.
       Программный продукт имеет несколько качественных характеристик:
       -         алгоритмическая сложность;
       -         полнота функций обработки;
       -         объём файлов программ;
       -         требования к операционной системе и техническим средствам обработки со стороны программного средства;
       -         объём дисковой памяти;
       -         размер оперативной памяти.
       Показатели  качества должны содержать следующие  аспекты:
       -         насколько хорошо можно использовать программный продукт (просто, надёжно, эффективно);
       -         насколько легко эксплуатировать программный продукт;
       -         можно ли использовать программный продукт при изменении условия его применения.
       В условиях существования рынка программных  продуктов важными характеристиками являются стоимость, количество продаж, время нахождения на рынке, известность  фирмы-производителя и самой программы, наличие на рынке программных продуктов аналогичного назначения.
       Программный продукт любого вида характеризуется  жизненным циклом, состоящим из отдельных  этапов.
       I. Разработка алгоритмов и программ
       II. Эксплуатация и сопровождение
       III. Завершение жизненного цикла
       
        
       Маркетинг предназначен для изучения требований к создаваемому программному продукту (технических, программных, пользовательских). Изучаются также существующие аналоги и продукты-конкуренты. Оцениваются необходимые для разработки материальные, трудовые и финансовые ресурсы, а также устанавливаются примерные сроки разработки.
       Проектирование  структуры — алгоритмизация процесса обработки данных, детализация функций, разработка архитектурного проекта, выбор методов и средств создания программ.
       Программирование, тестирование и отладка — основной этап работы по разработке программного средства. Часто отдельные работы этого этапа ведутся параллельно, что позволяет сократить общее время разработки.
       Документирование — обязательный вид работы. Документация должна содержать необходимые сведения по установке, обеспечению надёжной работы продукта, справочное пособие для пользователя, демонстрационные версии, примеры документов, создаваемых при помощи данного программного продукта, обучающие программы.
       Выход программного продукта на рынок связан с организацией продаж массовому пользователю. Здесь применяются стандартные методы — реклама, увеличение числа каналов реализации, создание дилерской и дистрибьюторской сети, гибкая ценовая политика.
       Эксплуатация  и сопровождение идут, как правило, параллельно. В процессе эксплуатации могут выявляться ошибки, и устранение этих ошибок ведётся в режиме сопровождения, то есть оказание сервисной помощи, обеспечение новыми версиями программ, организация «горячих телефонных линий» для консультаций.
       Снятие  программного продукта с продажи  и отказ от его сопровождения происходит, как правило, в случае изменения технической политики фирмы-изготовителя, неэффективности работы программного продукта, наличия в нём неустранимых ошибок, отсутствие спроса.
       Длительность  жизненного цикла разных программных  продуктов неодинакова. Для большинства  современных программ его длительность составляет 2-3 года. Хотя часто встречаются  на компьютерах и давно снятые с производства программные продукты. 

 

        3. Решение задач на ЭВМ 

       Первоначально ЭВМ были созданы для вычислений, но постепенно на ней стали решать задачи по физике, химии, биологии, управлению технологическими процессами, рисованию мультфильмов и т.д., т.е. для решения задач с математикой непосредственно не связанных. В общем случае выделяют несколько этапов в подготовке и решении задач на ЭВМ.
       На  первом этапе анализируется условие задачи, определяются исходные данные и результаты, устанавливается зависимость между величинами, рассматриваемыми в задаче. Некоторые задачи имеют множество способов решения, поэтому необходимо выбрать способ решения (сделать постановку задачи, составить модель задачи). Для этого необходимо определить математические соотношения между исходными данными и результатом. Выполнив перевод задачи на язык математики, получают математическую модель.
       Второй  этап заключается в составлении алгоритма решения задачи по выбранной модели.
       На  третьем этапе алгоритм записывается на языке программирования и полученная программа вводится в ЭВМ. Далее проводится отладка программы, т.е. поиск и ошибок. Различают логические и семантические ошибки. Семантические ошибки возникают, когда программист неправильно записывает конструкции языка программирования. Семантические ошибки отыскать легче, т. к. современные трансляторы языков программирования способны их выявить. Логические ошибки возникают, когда инструкции записаны правильно, но последовательность их выполнения дает неверный результат.
       Далее проводится тестирование, которое заключается  в запуске программы с использованием контрольных примеров - тестов. Тесты выбирают таким образом, чтобы при работе с ними программа прошла все возможные ветви алгоритма, поскольку на каждом из них могут быть свои ошибки.
       После отладки и тестирования программа выполняется с реальными исходными данными и проводится анализ полученных результатов, т.е. сопоставление их с экспериментальными фактами, теоретическими воззрениями и другой информацией об изучаемом объекте. Если результаты работы программы не удовлетворяют пользователей по каким-либо параметрам, то производится уточнение модели. При уточнении модели правится алгоритм программы, снова проводятся отладка, тестирование, расчеты и анализ результатов. Так продолжается до тех пор, пока результаты работы программы не будут удовлетворять знаниям об изучаемом объекте.
       Общая схема решения задач с помощью  ЭВМ выглядит так:

       4. Понятие алгоритма. Свойства алгоритмов, исполнители алгоритмов. Способы записи алгоритмов.

       Алгоритм — это понятное и точное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи или достижение указанной цели.
       Термин  имеет интересное историческое происхождение. В IX веке великий узбекский математик  аль-Хорезми разработал правила арифметических действий над десятичными числами. Совокупность этих правил в Европе стали называть “алгоризм”. Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом стали называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи. Можно сказать, что понятие вышло за рамки математики и стало применяться в самых различных областях.
       Каждый  алгоритм — это правила, описывающие  процесс преобразования исходных данных в необходимый результат. Для того чтобы произвольное описание последовательности действий было алгоритмом, оно должно обладать следующими свойствами.
       Дискретность
       Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Примером команд могут служить пункты инструкции, нажатие на одну из кнопок пульта управления, рисование графического примитива (линии, дуги и т.п.), оператор языка программирования. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов — такие “прерывные” объекты в науке принято называть дискретными.
       Понятность
       Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, который умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ).
       Требование использовать при составлении алгоритмов только те команды, которые входят в СКИ, связано с тем, что исполнение алгоритма осуществляется формально, без возможности вникнуть в суть команд и проанализировать их.
       Одним из таких (вернее, основным из них) “бездушных” исполнителей является ЭВМ. Вообще ЭВМ является универсальным исполнителем алгоритмов. Это связано с тем, что любой алгоритм, составленный для ЭВМ, в конечном итоге транслируется в ее СКИ и, таким образом, становится доступным для исполнения.
       Определенность (детерминированность)
       Команды, образующие алгоритм (или, можно сказать, входящие в СКИ), должны быть предельно  четкими и однозначными. Их результат  не может зависеть от какой-либо дополнительной информации извне алгоритма. Сколько  бы раз вы не запускали программу, для одних и тех же исходных данных всегда будет получаться один и тот же результат.
       Результативность (конечность)
       Результат выполнения алгоритма должен быть обязательно  получен, т.е. правильный алгоритм не может  обрываться безрезультатно из-за какого-либо непреодолимого препятствия в ходе выполнения. Кроме того, любой алгоритм должен завершиться за конечное число шагов.
       Массовость
       Алгоритм  имеет смысл разрабатывать только в том случае, когда он будет  применяться многократно для  различных наборов исходных данных. Например, если составляется алгоритм обработки текстов, то вряд ли целесообразно ограничивать его возможности только русскими буквами — стоит предусмотреть также латинский алфавит, цифры, знаки препинания и т.п. Тем более что такое обобщение особых трудностей не вызывает.
       Таковы  основные свойства алгоритмов. Если их внимательно проанализировать, то становится очевидным, что исполнитель алгоритма  не нуждается в какой-либо фантазии и сообразительности. Более того, для выполнения алгоритма совсем не требуется его понимание, а правильный результат может быть получен путем формального и чисто механического следования содержанию алгоритма.
       Из  возможности формального исполнения алгоритма следует очень важное следствие: поскольку осознавать содержание алгоритма не требуется, его исполнение вполне можно доверить автомату или ЭВМ. Таким образом, составление алгоритма является обязательным этапом автоматизации любого процесса. Как только разработан алгоритм, машина может исполнять его лучше человека — быстрее и, что очень важно, не ошибаясь.
       Основными способами записи алгоритмов являются:
    словесно-формульный;
    на алгоритмическом языке;
    графический (блок-схема);
    на языке программирования высокого уровня.
 
       Примеры записи алгоритмов:
    словесно-формульный способ
       Для робота составлен следующий алгоритм:
       1. Покрасить доску.
       2. Переместиться к следующей доске.
       3. Перейти к действию 1. 

       
    на алгоритмическом  языке 
       алг Квадраты нечетных чисел
       арг i
       нач
        для i от 1 до 9 шаг 2
       нц
       вывод i2
       кц
       кон 

       
    графический (блок-схема)
 

        5. Язык программирования

       Язы?к программи?рования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.
       Со  времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования. Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
       Создатели языков по-разному толкуют понятие  язык программирования. К наиболее распространённым утверждениям, признаваемым большинством разработчиков, относятся следующие:
    Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
    Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека к компьютеру, в то время как естественные языки используются для общения людей между собой. Можно обобщить определение «языков программирования» — это способ передачи команд, приказов, чёткого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
    Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений

       Стандартизация языков программирования

       Язык  программирования может быть представлен  в виде набора спецификаций, определяющих его синтаксис и семантику.
       Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.

       Типы данных

       Современные цифровые компьютеры обычно являются двоичными и данные хранят в двоичном (бинарном) коде (хотя возможны реализации и в других системах счисления). Эти данные как правило отражают информацию из реального мира (имена, банковские счета, измерения и др.), представляющую высокоуровневые концепции.
       Особая  система, по которой данные организуются в программе, — это система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки могут быть классифицированы как системы со статической типизацией и языки с динамической типизацией.
       Статически-типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией, где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами. Иногда динамически-типизированные языки называются латентно-типизированными.

       Структуры данных

       Системы типов в языках высокого уровня позволяют  определять сложные, составные типы, так называемые структуры данных. Как правило, структурные типы данных образуются как декартово произведение базовых (атомарных) типов и ранее определённых составных типов.
       Основные  структуры данных (списки, очереди, хеш-таблицы, двоичные деревья и  пары) часто представлены особыми  синтаксическими конструкциями в языках высокого уровня. Такие данные структурируются автоматически.

       Семантика языков программирования

       Существует  несколько подходов к определению  семантики языков программирования.
       Наиболее  широко распространены разновидности  следующих трёх: операционного, деривационного (аксиоматического) и денотационного (математического).
    При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ.
    Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.
    Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.

       Парадигма программирования

       Язык  программирования строится в соответствии с той или иной базовой моделью вычислений и парадигмой программирования.
       Несмотря  на то, что большинство языков ориентировано  на императивную модель вычислений, задаваемую фон-неймановской архитектурой ЭВМ, существуют и другие подходы. Можно упомянуть языки со стековой вычислительной моделью (Forth, Factor, Postscript и др.), а также функциональное (Лисп, Haskell, ML и др.) и логическое программирование (Пролог) и язык Рефал, основанный на модели вычислений, введённой советским математиком А. А. Марковым-младшим.
       В настоящее время также активно  развиваются проблемно-ориентированные, декларативные и визуальные языки программирования.

       Способы реализации языков

       Языки программирования могут быть реализованы  как компилируемые и интерпретируемые.
       Программа на компилируемом языке при помощи компилятора (особой программы) преобразуется (компилируется) в машинный код (набор инструкций) для данного типа процессора и далее собирается в
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.