2010/05/26 13:39:45

Алгоритм

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

Содержание

Алгоритм — последовательность чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи. ( Каймин, 1985)

Основная цель алгоритмизации - составления алгоритмов для ЭВМ - решение задач на ЭВМ.

Виды Алгоритмов

Прикладные алгоритмы - алгоритмы решения прикладных задач. Решение задачи правильное, если оно соответствует требованиям поставленных задач.

Структурированные алгоритмы - алгоритмы, для которых используются принципы структурной записи и структурного проектирования (на русскоязычном структурном псевдокоде).

Структурированные алгоритмы - это наиболее удобная форма описания алгоритмов и документирования программ и программного обеспечения для ЭВМ.

Структурированные алгоритмы в структурированной записи на русском языке отличает простота чтения, понимания, исправления и анализа правильности при поиске и исправлении ошибок.

Свойства Алгоритмов

Свойства алгоритмов - однозначность, результативность, массовость, правильность.

Алгоритм - результативный, если его выполнение приводит к получению результатов.

Прикладной Алгоритм - правильный, если он дает правильные результаты для любых допустимых исходных данных.

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

Программа содержит ошибки, если ее выполнение на ЭВМ приводит к получению сбоев, отказов или получению не правильных результатов.

Алгоритмизация

Алгоритмизация - методы составления алгоритмов с целью решения прикладных задач на ЭВМ.

Программирование - разработка программ для ЭВМ в целях решения (комплекса) определенных задач.

Отладка программ - процесс поиска и исправления ошибок в программах на ЭВМ.

Алгоритмизация в информатике и программировании

В ЕГЭ по информатике алгоритмизация одним из основных требований ЕГЭ к выпускным и вступительным экзаменам по информатике.

В информатике алгоритмизация широко используется для обучения основам программирования на базе самых различных языков программирования - Бейсик, Паскаль, Си и т.д.

В профессиональном программировании алгоритмы используются для документирования ПО при профессиональных разработках для инспекции текстов программ и выявления в них ошибок.

Для описания алгоритмов наиболее эффективно использование русскоязычного структурного псевдокода с ключевыми словами если-то-иначе и пока-цикл.

В профессиональном программировании известно, что использование псевдокода в десять раз уменьшает число ошибок в программах с 2-3 ошибок на 100 операторов до 2-3 ошибок на 1000 операторов.

В информатике статистика показывает, что использование псевдокода студентами и шкоьниками с объемами программ до 100 операторов за два три пуска на ЭВМ выявить и устранить все ошибки в программах.

Ошибки в алгоритмах и программах

Ошибки в алгоритмах программах - одна из самых серьезных проблем в информатике и профессиональном программировании.

Программа содержит ошибки, если при ее выполнении ЭВМ дает сбои, отказы или неправильные результаты.

Аксиомы программирования (Каймин-Дейкстра):

1) Число ошибок в программах - неизвестно.

2) Продолжительность отладки программ - неизвестна.

3) Отсутствие ошибок гарантируют доказательства правильности.

Отсутствие ошибок в программах проверяется их тестированием на ЭВМ. Тестирование может выявить ошибки, но не может гарантировать отсутствие ошибок в программах. (Дейкстра)

Отсутствие ошибок в алгоритмах означает, что алгоритм дает правильные результаты для любых допустимых данных.

Правильность результатов определяется постановками решаемых задач и техническими заданиями на разработку программ для ЭВМ.

Доказательства правильности - это доказательства правильности результатов решения поставленых задач - результатов работы алгоритмов и программ для любых допустимых исходных данных.

Примеры алгоритмов и программ с доказательствами правильности см. в учебниках информатики Каймина и в книгах Дейкстры.

Доказательное Программирование

Доказательное программирование - разработка программ без ошибок с доказательствами правильности алгоритмов.

Написание доказательств проводится после тщательного тестирования программ на ЭВМ.

Аксиомы Программирования (Каймин):

1. Число ошибок в программах заранее неизвестно: нашел ошибку, ищу другую, третью и т.д.

2. Продолжительность отладки программ заранее неизвестна: после отладки - ищи ошибки.

3. Отсутствие ошибок в программах гарантируют доказательства правильности алгоритмов.

Обучение алгоритмизации

Опыт обучения программированию

Эффективное обучение программированию требует обязательного изучения алгоритмизации - основ составления структурированных алгоритмов и программ на языках Бейсик, Паскаль, Javascript и т.д. и т.п.

Обучение алгоритмизации и программированию успешно проводилось и проводится с 1980 года на всех факультетах и специальностях МИЭМ, МАТИ и многих других вузах по учебникам и методике Каймина, Нечаева, Питеркина.

В основе обучения программированию лежит описание алгоритмов решения задач на ЭВМ на русскоязычном псевдокоде, понятном всем русскоязычным студентам, школьникам, учителям и преподавателям.

Нет и не было ни одного студента или школьника, преподавателя или учителя, который не смог научиться читать, понимать и писать алгоритмы решения задач на ЭВМ с проверкой программ на ЭВМ и помощи учителя.

Практикум программирования

При надлежащем практикуме на ЭВМ и хороших учебниках информатики все студенты и школьники успешно осваивали технику составления алгоритмов и решения задач на ЭВм с языками Бейсик, Паскаль, Фортран и т.п.

Оценки студентов и школьников на зачетах и экзаменах по программированию и информатике всегда были "хорошо" и "отлично" по завершении отладки программ и получения результатов решения задач на ЭВМ.

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

такие задачи на программирование картинок и рисунков вполне по силам даже самым слабым студентам и школьниками с отклонениями в интеллектуальном развитии.

Попробуйте и я гарантирую у вас и всех ваших коллег и друзей все получится с составлением алгоритмов и программ для отображения картинок на экранах ЭВМ.

См. также

информатика

логика в информатике

структурный псевдокод

программирование

решение задач на ЭВМ

методология программирования

технология программирования

Доказательное Программирование

Литература

  1. Каймин В.А. Информатика. Учебник для студентов вузов. М.: ИНФРА-М., 1998-2009.
  2. Каймин В.А. Информатика. Учебник для школьников. М.: Проспект, 2009.
  3. Каймин В.А. Информатика. Пособие к экзаменам. М.: РИОР, 2008.
  4. Каймин В.А. Основы доказательного программирования. М.: МИЭМ, 1987.
  5. Каймин В.А., Питеркин В.М. Основы информатики и ВТ. М.: МИЭМ, 1985.
  6. Каймин В.А. Методы разработки программ на языках высокого уровня. М.: МИЭМ, 1985.

Интернет-ссылки