Алгоритмизация как обязательный этап разработки программы

Содержание

Основные блоки для составления схем алгоритмов

Основные алгоритмические структуры

Алгоритмический язык программирования

Этапы проектирования программных продуктов

UML-диаграммы классов

Генерация псевдослучайных последовательностей

Линейная аппроксимация (метод наименьших квадратов)

Арифметическое скользящее среднее

Численное интегрирование методом трапеций

Решение систем линейных уравнений методом Гаусса

Численные методы решения нелинейных уравнений

Генетические алгоритмы

Алгоритм Брезенхема для рисования прямых на растровой плоскости

Возведение в степень по модулю

Алгоритм Дейкстры нахождения кратчайшего пути

Рекурсия

Числа Фибоначчи

Наибольший общий делитель

Наименьшее общее кратное

Комбинаторика

Генерация перестановок

Генерация размещений

Генерация сочетаний

Арифметика длинных чисел

Сумма многоразрядных чисел

Сравнение многоразрядных чисел

Представление числа в другой системе счисления

Логические операции над многоразрядными числами

Умножение многоразрядных чисел

Алгоритмизация — процесс составления алгоритмов для решения поставленных прикладных задач.

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

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

Основные свойства алгоритмов:

  • Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.
  • Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов (этапов).
  • Определенность — каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.
  • Результативность (или конечность) состоит в том, что за конечное число шагов алгоритм либо должен приводить к решению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.
  • Массовость означает, что алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.

Для записи алгоритма решения задачи используются следующие способы:

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

  • словесно-формульное описание;
  • схема алгоритма, составленная с использованием графических блоков (блок-схема);
  • алгоритмические языки программирования;
  • псевдокод.

Источник: prog-cpp.ru

Тема 7. Основы алгоритмизации и программирования

При разработке прикладных программ выделяют следующие этапы: постановку задачи, математическое описание и выбор метода решения задачи, алгоритмизацию решения задачи, составление программы и ее адаптацию.

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

Характеристика выбранной задачи включает: определение цели решения задачи; установление состава и форм представления входной, промежуточной и результатной информации, установление периодичности решения задачи и взаимосвязи решаемой задачи с другими задачами, определение форм и методов контроля достоверности информации.

Описание входной оперативной информации включает: наименование входного сообщения, источник информации – документ или массив, форму представления информации, сроки и частоту поступления информации.

Описание выходной информации включает: перечень получаемых выходных сообщений, форму представления сообщения (документ или массив), сроки и периодичность выдачи сообщений, назначение форм выходной информации, получателей выходной информации.

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

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

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

Читайте также:
Пример программы чпу фрезерование

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

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

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

Существует аналогия между экономическими показателями и переменными с индексами. Например, показатель П1 (КОД_МАТЕРИЛА, ЦЕНА) может быть представлен как С(i), где С — цена материала с i-м кодом материала. Переменная С соответствует атрибуту-основанию, а индекс i — атрибуту-признаку.

Поступление материалов на склад обозначим переменной P(i, j, m, n), где j — номер склада; m — код поставщика; n — дата. Тогда, для определения стоимости материалов имеется расчетное соотношение S (i, j, m, n) = Р(i, j, m, n) С( i). Таким образом, закономерности, установленные в математике для арифметических операций над переменными с индексами, трансформируются в правила арифметических операций над показателями.

Модель арифметических вычислений в ИС основывается на графе взаимосвязи показателей (файлов). В графе G (S, U) множество вершин S = s ( i ) > представляют все показатели (файлы), хранящиеся в БД. Дуга U( i, j ) от S( i ) к S(j) существует в том случае, если есть расчетное соотношение для показателя S(j) и в правой части его встречается показатель S( i ).

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

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

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

Программа – это алгоритм, записанный на специальном алгоритмическом языке программирования, который может восприниматься ЭВМ.

Исполнитель алгоритма – это автоматическое устройство (ЭВМ, робот, станок с ЧПУ) или человек, выполняющие определенный набор команд.

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

Словесный способ предполагает словесное (без формул и таблиц) описание алгоритма, в принципе, с любой степенью детализации.

Формульно-словесный способ более компактный. В нем словесные описания сочетаются с формулами.

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

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

Табличный способ предполагает представление алгоритмов в виде таблицы решений и, в основном, носит вспомогательный характер.

Основные структуры алгоритмов – это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательных действий.

Технология программирования – это методы и средства создания программ. Эффективная технология программирования предполагает использование стандартов, прогрессивных инструментальных средств разработки, а также специальных методов и приёмов организации работ. Различают две технологии: структурное программирование; объектно-ориентированное программирование.

Структурное программирование является классической технологией разработки алгоритмов и программ. К его основным принципам относятся:

— разработка программ «сверху вниз» методом пошаговой детализации;

  • структурное кодирование.
  • запросы на выборку данных;
  • запросы на изменение данных;
  • управляющие запросы.

Источник: studfile.net

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

Изучение алгоритмизации в школьной информатике может иметь два целевых аспекта: первый — развивающий аспект, под которым понимается развитие алгоритмического (еще говорят — операционного) мышления учащихся; второй — программистский аспект. Составление программы для ЭВМ начинается с построения алгоритма; важнейшим качеством профессионального программиста является развитое алгоритмическое мышление. Если в первом школьном учебнике информатики [15] в изучении алгоритмизации превалировал второй, программистский, аспект, то в дальнейшем стала больше подчеркиваться развивающая роль данной темы.

Читайте также:
В чем преимущества лицензионных программ
Прикрепленные файлы: 1 файл

Режим компиляции существует у систем, обслуживающих компилируемые языки (Паскаль, СИ, Фортран и др.). Результатом компиляции является исполняемая программа, т.е. программа на языке машинных команд. В некоторых случаях получение исполняемой программы происходит в два этапа: собственно компиляции и редактирования связей. Хотя учитель должен понимать смысл этих процедур, но в базовом курсе, при объяснении ученикам, эти вопросы можно подробно не комментировать.

Режим исполнения. В компилирующих системах в этом режиме исполняется полученная после трансляции программа в машинных командах. Интерпретатор непосредственно сам исполняет программу на ЯПВУ. Так, например, работает Бейсик-система. Обычно в том и в другом случае исполнение программы начинается по команде RUN.

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

Режим помощи позволяет программисту получить подсказку на экране, помогающую ему как в работе с системой, так и с языком программирования.

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

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

Для СП данными являются файлы с текстами программ, с исходной и конечной информацией, связанной с решаемой задачей.

Лекция №6 «Требования к знаниям и умениям учащихся по линии алгоритмизации и программирования»

Учащиеся должны знать:

• что такое алгоритм; какова роль алгоритма в системах управления;

• в чем состоят основные свойства алгоритма;

• способы записи алгоритмов: блок-схемы, учебный алгоритмический язык;

• основные алгоритмические конструкции: следование, ветвление, цикл; структуры алгоритмов;

• назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов: метод последовательной детализации и сборочный (библиотечный) метод;

• основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;

• назначение языков программирования;

• *в чем различие между языками программирования высокого уровня и машинно-ориентированными языками;

• правила представления данных на одном из языков программирования высокого уровня (например, на Паскале);

• правила записи основных операторов: ввода, вывода, присваивания, цикла, ветвления;

• правила записи программы;

• *что такое трансляция;

• назначение систем программирования;

Учащиеся должны уметь:

• пользоваться языком блок-схем, понимать описания алгоритмов на учебном алгоритмическом языке;

• выполнять трассировку алгоритма для известного исполнителя;

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

• выделять подзадачи; определять и использовать вспомогательные алгоритмы;

• составлять несложные программы решения вычислительных задач с целыми числами;

• программировать простой диалог;

• работать в среде одной из систем программирования (например, Турбо Паскаль);

• осуществлять отладку и тестирование программы.

Вопросы для самоконтроля и обсуждения к главе 11

1. Как менялось со временем место и значение темы алгоритмизации в курсе информатики?

2. Какие основные понятия, дидактические средства и методические подходы, введенные в учебнике А.П.Ершова и др., сохранились в последующих учебниках?

3. Можно ли говорить, что структурный подход был и остается методической основой при изучении алгоритмизации и программирования? Обоснуйте ответ.

4. В чем методический смысл деления исполнителей алгоритмов на исполнителей, работающих «в обстановке», и исполнителей, работающих «с величинами»?

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

6. Не во всех учебниках информатики дается строгое определение алгоритма и обсуждаются его свойства. Как вы думаете, почему? Являются ли эти вопросы необходимыми в базовом курсе?

7. Нужно ли играть с детьми на уроке в «в алгоритмические игры» (типа игры Ваше)? Какие еще алгоритмические игры вы можете предложить?

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

9. Что включается в понятие « архитектура учебного исполнителя»?

10. Какие основные положения составляют методику структурного подхода к алгоритмизации и программированию? Каким требованиям должен удовлетворять учебный исполнитель для пригодности его использования в обучении этой методике?

11. По каким методическим принципам должна строиться последовательность рассматриваемых на уроках задач при изучении алгоритмизации?

Читайте также:
Обзор программ для офиса

12. Почему не следует отказываться от использования на уроках информатики блок-схем и как их надо изображать? ;

13. На какого исполнителя ориентированы алгоритмы работы с величинами?

14. В какой методической последовательности следует раскрывать по-: нятие величины и ее свойств?

15. Какие методические проблемы возникают при изучении понятий « переменная», «присваивание»? Как их решать?

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

17. В каком объеме, по вашему мнению, должно изучаться программирование в базовом курсе информатики?

18. Какие языки программирования наиболее подходят для вводного курса и почему?

19. Как наиболее эффективно связать освоение методов построения алгоритмов с освоением языка программирования?

20. Как объяснить ученикам, в чем заключается разница между языками программирования и системами программирования?

21. Какой методический подход следует применять при ознакомлении учеников с системой программирования?

Лабораторный практикум

Тема «Алгоритмизация и программирование»

1. Цели и задачи изучения основ алгоритмизации и программирования в школьном курсе информатики.

2. Роль рассматриваемой темы в решении общеобразовательных задач базового курса информатики, связанных с формированием алгоритмической культуры учащихся.

3. Методические особенности изучения базовых понятий алгоритмизации и программирования.

4. Системы учебных исполнителей и их использование в обучении алгоритмизации.

5. Дидактические функции учебного алгоритмического языка.

6. Методика ознакомления учащихся с основными парадигмами программирования.

Тема «Формирование базовых понятий алгоритмизации в школьном курсе информатики с использованием учебных исполнителей»

1. Определить роль и место учебного материала по алгоритмизации в базовом курсе информатики.

2. Рассмотреть цели и задачи изучения основ алгоритмизации в школьном курсе информатики.

3. Выявить базовые понятия алгоритмизации, определить этапы, формы и методы их формирования.

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

5. Установить связи и отношения между выделенными понятиями.

6. Определить уровни формирования базовых понятий. Способ организации занятия: практикум.

Средства обучения: научно-методическая и учебная литература [1, 7, 8, 9, 10, 11, 12, 14, 15], программные средства [1, 2, 4, 5, 6].

Предварительная подготовка студента к занятию

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

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

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

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

2. Построить логико-структурную модель учебного материала.

3. На основе анализа учебных пособий заполнить таблицу «Базовые понятия темы» (см. табл. 7.1).

Формы и способы организации учебной деятельности студентов: обсуждение вопросов плана, групповая работа; фронтальный и индивидуальный опрос.

Тема «Программные средства учебного назначения в поддержку изучения основ алгоритмизации. Решение задач» Задачи занятия:

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

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

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

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

Способ организации занятия: практикум, лабораторная работа. Средства обучения: научно-методическая и учебная литература [3, 4, 5, б, 10, 11, 19], программные средства [1, 2, 4, 5, 6]. Предварительная подготовка студента к занятию

1. Проанализировать две-три частнопредметные (авторские) методики обучения основам алгоритмизации в базовом курсе информатики. Представить результаты анализа в табл. 7.2.

2. Составить тематическое планирование учебного материала и отразить его в табл. 7.3.

3. Изучить состав и особенности работы с программными средствами учебного назначения, используемыми в процессе преподавания основ алгоритмизации.

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

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

3. Практическая работа:

— познакомиться с особенностями функционирования программных средств учебного назначения;

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

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

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

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

Формы и способы организации учебной деятельности студентов: беседа по вопросам, работа с табл. 7.2; работа с учебными программами и учебными пособиями, работа с табл. 7.3; индивидуальная работа.

Источник: www.referat911.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru