Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Основы алгоритмизации : Алгоритм, блок-схемы

Лекция



Привет, сегодня поговорим про алгоритмизация, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое алгоритмизация, алгоритм, блок-схемы, ветвление , настоятельно рекомендую прочитать все из категории Алгоритмизация и программирование. Структурное программирование. Язык C.

Как команда ставится так и выполняется.

из цитат военных

1.1 Этапы решения задач на компьютере.

Решение задачи разбивается на этапы:

  1. Постановка задачи
  2. Формализация (математическая постановка)
  3. Выбор (или разработка) метода решения
  4. Разработка алгоритм а
  5. Составление программы
  6. Отладка программы
  7. Вычисление и обработка результатов
  1. При постановке задачи выясняется конечная цель и вырабатывается общий подход к решению задачи. Выясняется сколько решений имеет задача и имеет ли их вообще. Изучаются общие свойства рассматриваемого физического явления или объекта, анализируются возможности данной системы программирования.
  2. На этом этапе все объекты задачи описываются на языке математики, выбирается форма хранения данных, составляются все необходимые формулы.
  3. Выбор существующего или разработка нового метода решения (очень важен и, в то же время личностный этап).
  4. На этом этапе метод решения записывается применительно к данной задаче на одном из алгоритмических языков (чаще на графическом).
  5. Переводим решение задачи на язык, понятный машине.


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


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

  1. Определенность (точность, детерминированность, понятность) — это свойство указывает алгоритму, что каждый его шаг должен быть строго определенным, то есть различные толкования должны быть исключены.
  2. Дискретность (разрывность). Это свойство характеризует структуру. Каждая алгоритмическая последовательность действий делится на этапы (шаги), а процесс решения задачи — это последовательное исполнение простых шагов. Также дискретность обозначает, что для выполнения каждого этапа потребуется конечный временной отрезок (исходные данные преобразуются во времени в результат дискретно).
  3. Целенаправленность - любой алгоритм должен направлен на достижение определенной цели
  4. Результативность Согласно этому свойству, любой алгоритм должен завершаться конкретными результатами.
  5. Конечность (Завершаемость) Если исходные данные заданы корректно, алгоритм завершит свое действие и выдаст результат за конечное число шагов.
  6. Массовость (универсальность). Благодаря этому свойству, алгоритм можно успешно применять к различным наборам исходных данных.

Основы алгоритмизации : Алгоритм,  блок-схемы

Порядок выполнения алгоритма:

  1. Действия в алгоритме выполняются в порядке их записи
  2. Нельзя менять местами никакие два действия алгоритма
  3. Нельзя не закончив одного действия переходить к следующему

Для записи алгоритмов используются специальные языки:

  1. Естественный язык (словесная запись) - это способ представления алгоритма с использованием обычного языка, который понятен людям без необходимости использования формальных символов или специфического синтаксиса программирования.
  2. Формулы -Формула представляет собой символическое выражение, описывающее зависимость между различными входными переменными и операциями и выходными.
  3. Псевдокод - занимает промежуточное место между естественным языком и языком программирования. Он позволяет описывать логику программы на есте-ственном языке, но включать типовые конструкции языка программирова-ния, не заботясь о синтаксических тонкостях.
  4. Структурограммы Диаграмма Насси — Шнейдермана (англ. Nassi — Shneiderman diagram) - Структурограммы изображают последовательность действий не с помощью линий перехода от блока к блоку, а в виде вложенных друг в друга фигур. Каждый блок структурограммы имеет прямоугольную форму и может быть вложен в любой внутренний прямоугольник другого блока.
  5. Синтаксические диаграммы - это направленные графы с одним входным ребром и одним выходным ребром и помеченными вершинами. Синтаксическая диаграмма задает язык: цепочку пометок при вершинах на любом пути от входного ребра к выходному ребру будем считать цепочкой языка, задаваемого синтаксической диаграммой.Диаграмма рис.4.13, а) задает язык, включающий цепочки ааb, aacabcb и т.д. Поэтому можно считать, что синтаксическая диаграмма - это одна из форм порождающей грамматики автоматных языков. Об этом говорит сайт https://intellect.icu . Синтаксические диаграммы и конечные автоматы имеют тесную связь: любой автоматный язык задается синтаксической диаграммой, и обратно, по любой синтаксической диаграмме можно построить конечный автомат (в общем случае недетерминированный), распознающий тот же язык, который задает синтаксическая диаграмма (см. рис.4.13). Построив по синтаксической диаграмме соответствующий распознающий конечный автомат, можно затем реализовать этот автомат либо аппаратно, либо программно. Таким образом, синтаксические диаграммы служат не только для порождения, но и для распознавания автоматных языков.
  6. Графический (язык блок-схем) - это графический язык для визуального представления алгоритмов и процессов. Он использует набор стандартизированных символов, блоков и стрелок, которые соединяются между собой, чтобы показать последовательность шагов в алгоритме.

Примеры записи алгоритмов

  1. Естественный язык:
    если условие то действие1 иначе действие2
  2. Структурограмма:
    Основы алгоритмизации : Алгоритм,  блок-схемы
  3. Синтаксическая диаграмма:
    Основы алгоритмизации : Алгоритм,  блок-схемы
  4. Графический язык:
    Основы алгоритмизации : Алгоритм,  блок-схемы

Основы алгоритмизации : Алгоритм,  блок-схемы

Основы алгоритмизации : Алгоритм,  блок-схемы

Составление алгоритмов графическим способом подчиняется двум ГОСТам:

  1. ГОСТ 19.002-80, соответствует международному стандарту ИСО 2636-73. Регламентирует правила составления блок-схем.
  2. ГОСТ 19.003-80, соответствует международному стандарту ИСО 1028-73. Регламентирует использование графических примитивов.
Название Символ (рисунок) Выполняемая функция (пояснение)
1. Блок вычислений
Основы алгоритмизации : Алгоритм,  блок-схемы
Выполняет вычислительное действие или группу действий
2. Логический блок
Основы алгоритмизации : Алгоритм,  блок-схемы
Выбор направления выполнения алгоритма в зависимости от условия
3. Блоки ввода/вывода
Основы алгоритмизации : Алгоритм,  блок-схемы
Ввод или вывод данных вне зависимости от физического носителя
Основы алгоритмизации : Алгоритм,  блок-схемы
Вывод данных на печатающее устройство
4. Начало/конец (вход/выход)
Основы алгоритмизации : Алгоритм,  блок-схемы
Начало или конец программы, вход или выход в подпрограмму
5. Предопределенный процесс
Основы алгоритмизации : Алгоритм,  блок-схемы
Вычисления по стандартной или пользовательской подпрограмме
6. Блок модификации
Основы алгоритмизации : Алгоритм,  блок-схемы
Выполнение действий, изменяющих пункты алгоритма
7. Соединитель
Основы алгоритмизации : Алгоритм,  блок-схемы
Указание связи между прерванными линиями в пределах одной страницы
8. Межстраничный соединитель
Основы алгоритмизации : Алгоритм,  блок-схемы
Указание связи между частями схемы, расположенной на разных страницах


Правила построения блок-схем:

  1. Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева направо
  2. Все повороты соединительных линий выполняются под углом 90 градусов


1.3. Алгоритмическая конструкция ветвления.


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

Основы алгоритмизации : Алгоритм,  блок-схемы
2 вариант решения:
Основы алгоритмизации : Алгоритм,  блок-схемы


1.4. Алгоритмическая конструкция цикла.


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

Существует несколько видов алгоритмических конструкций цикла, включая:

Основы алгоритмизации : Алгоритм,  блок-схемы

  1. Цикл с предусловием (while): Этот тип цикла выполняет инструкции, пока условие истинно. Перед выполнением каждой итерации цикла проверяется условие. Если условие остается истинным, цикл продолжается, иначе он завершается. Пример:
while (условие) {
   // инструкции
 }
  1. Цикл с постусловием (do-while): В этом типе цикла инструкции выполняются, а затем проверяется условие. Если условие истинно, цикл продолжается, иначе он завершается. По сравнению с циклом с предусловием, в цикле с постусловием инструкции выполняются как минимум один раз. Пример:
do { 
 // инструкции 
} while (условие);
  1. Цикл со счетчиком (for): Этот тип цикла предоставляет специальную переменную (счетчик), которая управляет количеством итераций. Цикл выполняется, пока условие, связанное со счетчиком, истинно. Счетчик обычно инициализируется, проверяется на каждой итерации и изменяется после выполнения инструкций внутри цикла. Пример:
for (инициализация; условие; обновление) { 
    // инструкции 
}

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

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

Тело цикла содержит операции, которые повторяются на каждой итерации цикла. Это блок кода, который выполняется, пока условие цикла остается истинным.

Пример использования цикла "for" на языке программирования Python:

//python 
for i in range(1, 5): 
   print(i)

В этом примере цикл будет повторяться четыре раза. На каждой итерации переменная i будет принимать значения от 1 до 4, и они будут выводиться на экран.


Цикл "пока":
Основы алгоритмизации : Алгоритм,  блок-схемы
Выполнение цикла "пока" начинается с проверки условия, поэтому такую разновидность циклов называют циклы с предусловием. Переход к выполнению действия осуществляется только в том случае, если условие выполняется, в противном случае происходит выход из цикла. Можно сказать что условие цикла "пока" - это условие входа в цикл. В частном случае может оказаться что действие не выполнялось ни разу. Условие цикла необходимо подобрать так, чтобы действия выполняемые в цикле привели к нарушению его истинности, иначе произойдет зацикливание.
Зацикливание - бесконечное повторение выполняемых действий.
Цикл "до":
Основы алгоритмизации : Алгоритм,  блок-схемы
Исполнение цикла начинается с выполнения действия. Таким образом тело цикла будет реализовано хотя бы один раз. После этого происходит проверка условия. Поэтому цикл "до" называют циклом с постусловием. Если условие не выполняется, то происходит возврат к выполнению действий. Если условие истинно, то осуществляется выход из цикла. Таким образом условие цикла "до" - это условие выхода. Для предотвращения зацикливания необходимо предусмотреть действия, приводящие к истинности условия.
Цикл с параметром, или цикл со счетчиком, или арифметический цикл - это цикл с заранее известным числом повторов.
Основы алгоритмизации : Алгоритм,  блок-схемы
В блоке модификации указывается закон изменения переменной параметра.
Xo - начальное значение параметра
h - шаг
Xn - последнее значение параметра
Для создания циклов с параметром необходимо использовать правила:

  1. Параметр цикла, его начальное и конечное значения и шаг должны быть одного типа
  2. Запрещено изменять в теле цикла значения начальное, текущее и конечное для параметра
  3. Запрещено входить в цикл минуя блок модификации
  4. Если начальное значение больше конечного, то шаг - число отрицательное
  5. После выхода из цикла значение переменной параметра неопределенно и не может использоваться в дальнейших вычислениях
  6. Из цикла можно выйти не закончив его, тогда переменная параметр сохраняет свое последнее значение


1.5. Использование циклов с параметром для обработки массивов.


Массив - упорядоченная структура, предназначенная для хранения однотипных данных.
Упорядочение элементов в массиве происходит по их индексам.
Индекс - порядковый номер элемента.
Массив задается именем (заглавные латинские буквы), типом данных и размерностью.
Размерность - максимально возможное количество элементов в массиве. В один момент времени можно обратиться только к одному элементу массива. Для этого указывается имя массива и в скобках индекс элемента.
Массивы делятся на одномерные (линейные) и двумерные.
Прообразом в математике для одномерного массива является вектор. Для двумерного - матрица.
Пример: вычислить n!
Основы алгоритмизации : Алгоритм,  блок-схемы
Пример: вычислить an
Основы алгоритмизации : Алгоритм,  блок-схемы

Пример: ввести элементы массива:
а)одномерного, размерности 10
Основы алгоритмизации : Алгоритм,  блок-схемы
б)двумерного, 5x5

Основы алгоритмизации : Алгоритм,  блок-схемы

Вау!! 😲 Ты еще не читал? Это зря!

К сожалению, в одной статье не просто дать все знания про алгоритмизация. Но я - старался. Если ты проявишь интерес к раскрытию подробностей,я обязательно напишу продолжение! Надеюсь, что теперь ты понял что такое алгоритмизация, алгоритм, блок-схемы, ветвление и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Алгоритмизация и программирование. Структурное программирование. Язык C

создано: 2014-10-09
обновлено: 2023-06-25
132953



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Алгоритмизация и программирование. Структурное программирование. Язык C

Термины: Алгоритмизация и программирование. Структурное программирование. Язык C