Официальный сайт 24/7/365

Вы не зарегистрированы

Авторизация



алгоритмы

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

Фото пользователя Юлия Александровна Винс
Submitted by Юлия Александровна Винс on пн, 12/03/2018 - 23:04
Данные об авторе
Автор(ы): 
Винс Ю. А.
Регион: 
Саратовская область
Характеристики урока (занятия)
Уровень образования: 
среднее профессиональное образование
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
10 класс
Класс(ы): 
11 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 

Дать понятия циклических алгоритмов: цикл  с предусловием; цикл с постусловием; цикл с параметром Рассмотреть структуры  циклических алгоритмов и  их  блок – схемы; научиться разрабатывать простейшие циклические алгоритмы, записывать их в графическом представлении, реализовать алгоритмы в виде программ на языке Турбо Паскаль.

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

Воспитательная: Воспитание внимательности, собранности; привитие навыков самостоятельной работы.

 
Тип урока: 
Комбинированный урок
Используемая методическая литература: 
  1. Программы для общеобразовательных учреждений.     Информатика 2-11 класс. / Составитель М. Н. Бородин. – 2-е изд., М. Бином. Лаборатория знаний, 2007.- 463 с.: ил.
  2. Информатика и ИКТ. Базовый курс: Учебник для 9 класса / И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова.-3-е изд.- 2-е изд., М.: Бином. Лаборатория знаний, 2007.- 359 с.: ил.
  3. Преподавание базового курса информатики в средней школе: Методическое пособие /  И. Г. Семакин, Т. Ю. Шеина. – 2-е изд., исп. И доп.- М.: Бином. Лаборатория знаний, 2004.- 540 с.: ил.
  4. Задачник-практикум.  Том 1. под ред. И. Г. Семакина - М. Бином. Лаборатория знаний,  2007.- 309 с.: ил.
  5. Задачник-практикум.  Том 2. под ред. И. Г. Семакина М. Бином. Лаборатория знаний,  2007.- 294 с.: ил.
  6.  
Используемое оборудование: 

ПК, проектор, компьютерный класс

Используемые ЦОР: 
  1. http://pas1.ru/file Программирование для начинающих.
  2. http://www.pascal7.ru/ Все о языке программирования Turbo Pascal.
  3. http://tp7.info/ Сайт о языке программирования Turbo Pascal.
Краткое описание: 
<p>Разработка урока по теме &quot;Циклические алгоритмы&quot; для студентов 1 курса СПО.&nbsp;</p>

Урок-практикум информатики в 6 классе по теме «Алгоритмы»

Submitted by Антон Александрович Лагутин on чт, 23/02/2017 - 23:08
Данные об авторе
Автор(ы): 
Лагутин Антон Александрович
Место работы, должность: 

МБОУ "Гимназия №2 "Квантор", учитель информатики

Регион: 
Московская область
Характеристики урока (занятия)
Уровень образования: 
основное общее образование
Уровень образования: 
среднее (полное) общее образование
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
4 класс
Класс(ы): 
6 класс
Класс(ы): 
7 класс
Класс(ы): 
8 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 

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

Тип урока: 
Урок закрепления знаний
Используемые учебники и учебные пособия: 

Интерактивный учебник "Азы информатики" Роботландского сетевого университета

Используемое оборудование: 

компьютер учителя, компьютеры учеников

Краткое описание: 
<p>Урок-практикум, на котором дети смогут попрактиковаться в создании алгоритмов различной сложности</p>

План урока:


Конспект урока "Алгоритм с повторением"

Submitted by Ирина Александровна Гайбель on Wed, 16/09/2015 - 13:03
Данные об авторе
Автор(ы): 
Гайбель Ирина Александровна
Место работы, должность: 

ГБПОУ СО "Аркадакский политехнический лицей", преподаватель информатики

Регион: 
Саратовская область
Характеристики урока (занятия)
Уровень образования: 
основное общее образование
Уровень образования: 
среднее (полное) общее образование
Целевая аудитория: 
Учащийся (студент)
Класс(ы): 
6 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 
  • сформировать понятие алгоритмической конструкции повторения;
  • сформировать умение составлять алгоритмы с повторением;
  • Развить представление учащихся об алгоритмах.
Тип урока: 
Урок изучения и первичного закрепления новых знаний
Используемые учебники и учебные пособия: 

Информатика и ИКТ. 6 класс. Л.Л. Босова, БИНОМ. Лаборатория знаний. - 2005 г.

 

Используемое оборудование: 

Компьютер, интерактивный комплекс (проектор, доска).

Краткое описание: 
<p>Конспект урока по информатике и ИКТ на тему &laquo;Алгоритмы с повторениями&raquo;&nbsp;<span style="line-height:1.6">6 класс</span></p>

Конспект урока по информатике и ИКТ на тему «Алгоритмы с повторениями» 6 класс. В архиве содержится план-конспект урока+презентация.


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

Submitted by Алена Аркадьевна Кроткова on чт, 10/10/2013 - 12:50
Данные об авторе
Автор(ы): 
Кроткова А.А.
Место работы, должность: 
МБОУ "СОШ № 54" г.Новоуральск, Свердловской области
Регион: 
Свердловская область
Характеристики урока (занятия)
Уровень образования: 
начальное общее образование
Целевая аудитория: 
Воспитатель
Целевая аудитория: 
Классный руководитель
Целевая аудитория: 
Методист
Целевая аудитория: 
Педагог-психолог
Целевая аудитория: 
Родитель
Целевая аудитория: 
Социальный педагог
Целевая аудитория: 
Учащийся (студент)
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
2 класс
Предмет(ы): 
Математика
Цель урока: 

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

Тип урока: 
Урок изучения и первичного закрепления новых знаний
Учащихся в классе (аудитории): 
27
Используемые учебники и учебные пособия: 

Учебник «Математика 2 класс» 2 часть, автор Л.Г. Петерсон, издательство «Просвещение» 2002г.

 

Используемое оборудование: 

Демонстрационный материал (приложение 1)

Раздаточный материал (приложение 2)

Технологические карты.

Ноутбук, экран, проектор.

Краткое описание: 
Урок разработан с применением современных технологий и методов, а именно: проблемно-поисковых методов, технологии проектов, информационно-коммуникационных технологий, системно-деятельностного подхода. Учитель создает проблемную ситуацию с затруднением, которое вызывается практическим заданием, не сходным с предыдущими. Таким образом, учащийся ставится в позицию субъекта своего обучения, и как результат у него образуются новые знания, он обладает новыми способами действия.

Смотрите прикрепленный файл "Виды алгоритмов"


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

Submitted by жанна николаевна Сорокина on Tue, 14/05/2013 - 10:05
Данные об авторе
Автор(ы): 
Сорокина Ж.Н.
Место работы, должность: 
МОУ "Беломорская СОШ №1"
Регион: 
Республика Карелия
Характеристики урока (занятия)
Уровень образования: 
основное общее образование
Целевая аудитория: 
Учащийся (студент)
Класс(ы): 
9 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 


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

Тип урока: 
Урок обобщения и систематизации знаний
Учащихся в классе (аудитории): 
9
Используемое оборудование: 

•    Компьютеры с ОС Windows XP с установленной средой программирования FreePascal.NET.
•    Презентация.
•    Раздаточный материал для команд в распечатанном виде.
•    Карты самоконтроля для команд в распечатанном виде.

Краткое описание: 
Организационный момент (5 мин) Вступительное слово учителя. ОБЫГРАТЬ ТЕМУ УРОКА КОМАНДЫ Тема занятия (Презентация- слайд №1-3). Определение целей занятия. Деление на 2 команды. Выбор капитанов. Капитаны фиксируют количество баллов заработанные командой в ходе урока. Разъяснения по работе с картой самоконтроля. Первый тур (5 мин) "Быстрей, еще быстрее". Второй тур (5 мин) "Загадочный алгоритм". Третий тур (5 мин) "Алгоритмический калейдоскоп". Гимнастика для глаз. (Презентация слайд №14)- 2 мин Четвертый тур (10 мин) "Умелое программирование". Слайд 15 Пятый тур (5 мин) "Ошибочка вышла". Подсчет количества баллов, выставление итоговой оценки по карте самоконтроля.(3 мин): Домашнее задание: (2 мин) Рефлексия: (3 мин)

Интегрированный урок по английскому языку и информатике по теме "Времена года и алгоритмы".

Submitted by Светлана Сергеевна Шоршорова on Sat, 26/11/2011 - 17:38
Данные об авторе
Автор(ы): 
Омелечко Софья Николаевна, Шоршорова Светлана Сергеевна
Место работы, должность: 
Прогимназия № 63 ОАО "РЖД" г.Батайск, учитель информатики, учитель английского языка
Регион: 
Ростовская область
Характеристики урока (занятия)
Уровень образования: 
начальное общее образование
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
4 класс
Предмет(ы): 
Английский язык
Предмет(ы): 
Информатика и ИКТ
Краткое описание: 
рпоррп

Язык алгоритмов

Данные об авторе
Автор(ы): 
Потопахин Виталий Валерьевич
Регион: 
Хабаровский край
Характеристики урока (занятия)
Уровень образования: 
основное общее образование
Уровень образования: 
среднее (полное) общее образование
Целевая аудитория: 
Учащийся (студент)
Класс(ы): 
9 класс
Класс(ы): 
10 класс
Класс(ы): 
11 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 
Изучение языка алгоритмов
Тип урока: 
Комбинированный урок
Используемые ЦОР: 

Язык алгоритмов

Все мы понимаем, что для записи алгоритмов нам нужен специальный язык. Повторим коротко, почему мы так думаем:
1.      Слова и тем более предложения естественного языка могут иметь несколько значений.
2.      В естественном языке смысл предложений и фраз может иметь оттенки и зависеть от интонации говорящего.
3.      Необходимо учитывать возможности исполнителя. Может так оказаться, что команда алгоритма не будет входить в систему команд, а стало быть окажется исполнителю непонятной.
 
Поэтому, мы сейчас займёмся созданием специального языка и попытаемся учёсть все высказанные замечания. Сразу договоримся о том кто будет нашим Исполнителем. Пусть, пока это будет человек понимающий смысл любых русских слов и предложений. И в качестве основы для нашего языка будем использовать русский язык.
Главная наша проблема, это многозначность слов и предложений. Чтобы её решить введём некоторые несложные правила построения алгоритмических предложений.
 
Правило 1: Предложение алгоритмического языка должно быть односложным.
 
Правильный пример
Не правильный пример
Идти вперёд
Идти вперёд, помахивая тросточкой.
 
Правило 2: Нельзя использовать слова выражающие оттенки смысла.
 
Правильные примеры
Не правильные примеры
Синий
Глубокий
Тёмносиний
Очень глубокий
 
Правило 3: Нельзя пользоваться иносказаниями. (Как с гуся вода, За тридевять земель)
 
Важное замечание: Можно ещё привести примеры таких правил. Все они раскрывают одно единственное, но наиважнейшее: смысл предложения алгоритмического языка должен быть единственным.
 
Правило 4: Предложение алгоритмического языка должно быть командой к действию.
 
Плохой пример: Треугольник - это геометрическая фигура. Это предложение как алгоритм не содержит в себе никакого смысла.
 
Правило 5: Если предложение алгоритмического языка может иметь много смыслов, то выбирается тот который используется наиболее часто (общеупотребимый). Это правило как бы противоречит определению алгоритма из которого следует, что смысл может быть только один. Дело в том, что сейчас мы знаем слишком мало, чтобы обеспечить это свойство алгоритмов и нам придётся некоторое время делать плохие алгоритмы.
 
Что такое команда алгоритма: Команду алгоритма определим, как правильно построенное предложение алгоритмического языка. Тогда алгоритм можно определить как последовательность команд. Такими простыми командами могут быть например следующие: Идти вперёд, взять, положить, купить.
Однако простых команд нам будет недостаточно. Рассмотрим задачу:
Дано ведро яблок. Требуется переложить все яблоки в холодильник.
 
Решение:
 
Для решения нужны две простые команды: взять яблоко из ведра и положить яблоко в холодильник. Выполнив эту пару команд мы приблизимся к решению задачи, но не решим её. Для полного решения нужно выполнить эту пару команд много раз. Пусть теперь нам известно, что в ведре 100 яблок. Тогда наш алгоритм будет состоять из 200 команд. Это конечно много. Чтобы упростить задачу введём сложную команду, которая будет указывать сколько раз выполнять простые команды. Запишем с её помощью наш алгоритм перекладывания яблок:
 
Делать 100 раз
Начало
§ Взять яблоко из ведра
§ Положить яблоко в холодильник.
Конец
 
Назовём эту сложную команду циклом. Появившиеся новые слова "Начало" и "Конец" нужны для того, чтобы выделить группу команд входящих в цикл. Такая группа команд называется сложной командой.
А теперь усложним ситуацию. Предположим, мы не знаем сколько в ведре яблок. Тогда команда "делать сто раз" не сработает. Теперь нужно проверять есть ли в ведре яблоки. Наш алгоритм можно записать так:
Пока в ведре есть яблоки делать
Начало
Взять яблоко из ведра
Положить яблоко в холодильник
Конец
 
Подчеркнутое словосочетание это условие, понятие для нас новое, поэтому рассмотрим его подробнее.
 
Определение: Условие, - это предположение являющееся либо истинным либо ложным:
 
Примеры:
§ Ведро пустое
§ Яблоко красное
§ Все яблоки в холодильнике
 
Выше мы показали примеры простых условий, но условия могут быть и сложными, как бы состоящими из нескольких простых. Вот несколько примеров сложных условий:
 
1.      Яблоки и груши в холодильнике.
2.      Ведро не пустое.
3.      В ведре лежат яблоки или груши.
 
Условие 1 как бы состоит из двух условий: "Все яблоки в холодильнике" и "Все груши в холодильнике". Эти два условия объединены логической связкой "и". В этом случае сложное условие является истинным тогда когда оба простых условия истинны..
Условие 2 получается из условия "Ведро пустое" добавкой приставки "не". Приставка "не" называется отрицанием. Условие с отрицанием является противоположным условию без отрицания и поэтому оно истинно, когда условие без отрицания ложно и наоборот.
Условие 3 то же как бы состоит из двух простых соединённых связкой или. Оно истинно тогда когда истинным является хотя бы одно из простых условий. Наше сложное условие истинно будет тогда когда в ведре есть или яблоки или груши.
С помощью этих трёх связок "и", "или", "не" (они ещё называются сложными условиями) и простых условий составляются самые различные сложные условия.
Вывод: Итак, нам нужны два типа конструкции цикла. Первый тип цикла называется циклом с параметром применяющимся тогда когда точно известно сколько раз нужно повторять циклические действия. Второй тип цикла мы назовём циклом по условию. Он выполняется до тех пор пока условие истинно.
А сейчас для примера напишем алгоритм сложения 100 последовательных чисел с использованием как первого типа цикла так и второго:
Цикл по параметру
Цикл по условию
Сумма = 0
Число А=1
Делать 100 раз
Начало
К Сумме прибавить число А
К числу А прибавить 1
Конец
Напечатать значение суммы
Сумма = 0
Число А=1
Пока Число А<101 делать
Начало
К Сумме прибавить число А
К числу А прибавить 1
Конец
Напечатать значение Суммы
 
А теперь рассмотрим следующую задачу: путь дано ведёрко с белыми и красными шарами, назовём это ведёрко Первым. И ещё два пустых ведра, которые назовём Второе и Третье. Пусть нужно все белые шары положить во второе ведёрко, а все красные в третье. Алгоритм решения этой задачи будет выглядеть так:
 
Пока Первое ведёрко не пустое делать
Начало
Вынуть шар из первого ведёрка
Если вынутый шар белый
То положить его во второе ведёрко
Иначе положить его в третье.
Конец
 
В этом алгоритме появилась новая сложная команда, которую мы назовём конструкцией выбора. Записывается эта конструкция так:
Если <условие>
То Команда 1
Иначе Команда 2
 
Если условие истинно, то выполняется Команда 1, а если условие ложно, то выполняется Команда 2. Конечно и Команда 1 и Команда 2 могут быть как простыми командами так и сложными. Новая команда даёт новые интересные возможности, позволяя создавать сложные алгоритмы.
 
Задача: Дано множество чисел. Найти среди них самое большое.
 
Решение:
 
Числа будем обозначать так: первое, второе, третье и т.д. Самое большое число назовём словом "Наибольшее". Работа алгоритма будет заключаться в переборе всех чисел и поиску среди них наибольшего, для чего на каждом шаге алгоритма будем сравнивать уже найденное наибольшее с очередным числом. Запишем алгоритм:
 
Наибольшее = Первому числу
Пока не перебраны все числа делать
Начало
Если очередное число> Наибольшего
То Наибольшее = Очередному
Взять следующее очередное число
Конец
Напечатать значение Наибольшего
 
Рассмотрим на числовом примере, как работает этот алгоритм. Пусть дано следующее множество чисел: 5, 1, 7, 12, 8. После выполнения двух первых команд до входа в конструкцию цикла получим:
 
Наибольшее = 5
Очередное = 1
 
Далее войдём в цикл.
 
Шаг 1:
Числа просмотрены не все, следовательно условие цикла истинно и мы выполняем команды внутри цикла. Очередное сравнивается с Наибольшим (т.е. 1 с 5). Условие (Очередное > Наибольшего) ложно и ничего не происходит. Очередное = 7
 
Шаг 2:
Условие цикла истинно. Очередное число (7) сравнивается с Наибольшим (5). Условие (Очередное> Наибольшего) истинно, поэтому Наибольшее = Очередному (т.е. 7). Следующее очередное 12.
 
Шаг 3
Условие цикла истинно. Очередное (12) сравнивается с Наибольшим (7). Условие (Очередное> Наибольшего) истинно. Поэтому Наибольшее = Очередному (т.е. 12). Следующее очередное 8
 
Шаг 4
Условие цикла истинно. Очередное (8) сравнивается с Наибольшим (12). Условие (Очередное > Наибольшего) ложно и ничего не происходит.
 
Шаг 5
Условие цикла ложно и его выполнение прекращается.
 
Распечатывается значение найденного Набольшего (12)
 
Алгоритм может быть устроен и очень сложно. В нём может быть много циклов, ветвлений, простых и сложных команд. Они могут до бесконечности вкладываться друг в друга.
Рассмотрим теперь более сложную задачу. Пусть перед нашим исполнителем лежит огромная куча яблок среди которых есть как хорошие так и подпорченные, и большой штабель ящиков в котором есть как целые, та и поломанные. Перед Исполнителем стоит задача выбрать из штабеля 10 целых ящиков и заполнить их хорошими яблоками. Для усложнения задачи договоримся, что ящики могут быть различной ёмкости.
 
Решение:
 
Сначала обсудим идею алгоритма. Исполнителю необходимо набрать десять ящиков. Это означает, что он десять раз должен выполнить операцию поиска целого ящика и операцию его заполнения. Мы могли бы записать наш алгоритм так:
 
Делать 10 раз
Начало
Найти целый ящик
Заполнить ящик хорошими яблоками
Конец
 
Но это решение плохое по двум причинам: Во-первых, команды внутри цикла очень сложны, а мы договаривались, что исполнитель может понимать только простые команды. Во-вторых, Исполнитель на каком-то шаге может не суметь найти целого ящика (его просто не будет) или ему не хватит яблок для заполнения очередного ящика. Следовательно нужно придумать другой, более подробный алгоритм. Заметим, что две сложные команды: "Найти целый ящик" и "Заполнить ящик хорошими яблоками" представляют собой отдельные задачи и мы можем решить их по отдельности.
 
Задача 1: Найти целый ящик
 
Для решения поставленной задачи нужно выполнять операцию поиска целого ящика до достижения успеха. Это можно достичь с помощью конструкции цикла. Запишем алгоритм с помощью известной нам конструкции цикла по условию. Вот что у нас получится:
 
Пока очередной ящик не целый делать
Начало
Взять очередной ящик
Конец
 
Беда нашего алгоритма в том, что к моменту первой проверки условия в руках у исполнителя не будет никакого ящика и проверить условие окажется невозможным. Из этого положения можно выйти следующим образом:
 
Взять очередной ящик
Пока очередной ящик не целый делать
Начало
Взять очередной ящик
Конец
 
Этот алгоритм будет работать, но нам пришлось добавить ещё одну команду. Этого можно было бы избежать, если бы у нас был цикл в котором сначала выполнялись действия и лишь затем проверялось условие. Придумаем такой цикл и запишем алгоритм с его помощью.
 
Делать
Начало
Взять очередной ящик
Если ящика нет
То сообщить, что задача не имеет решения и остановить работу
Конец
Повторять пока очередной ящик не целый
 
Подчёркнутая команда нужна для того, чтобы остановить работу алгоритма в ситуации когда нет целого ящика. Итак, алгоритм первой задачи составлен полностью и можно заняться разработкой второй.
 
Задача 2: Заполнить ящик хорошими яблоками.
 
Решение:
 
Заметим, что эта задача сильно похожа на первую, только вместо целых ящиков мы будем искать хорошие яблоки. Есть правда и существенное отличие. Мало найти хорошее яблоко. Надо искать до тех пор, пока не заполнится найденный ящик. Запишем алгоритм:
 
Пока ящик не полон делать
Начало
Взять очередное яблоко
Если яблока нет
То сообщить, что задача не имеет решения и остановить работу
Иначе
Если яблоко хорошее
То положить его в ящик
Конец
 
В алгоритме появилась сложная команда
 
Если условие
То команда
Иначе
Если условие
То команда
 
Это хороший пример того, как создаются сложные конструкции ветвления. Сложность этих конструкций может быть какой угодно, слово "Если" можно вставлять как после слова "То" так и после слова "Иначе"
 
Обе задачи решены и теперь можно записать весь алгоритм:
 
Делать 10 раз
Начало
Делать
Начало
Взять очередной ящик
Если ящика нет
То сообщить, что задача не имеет решения и остановить работу
Конец
Повторять пока очередной ящик не целый
Пока ящик не полон делать
Начало
Взять очередное яблоко
Если яблока нет
То сообщить, что задача не имеет решения и остановить работу
Иначе
Если яблоко хорошее
То положить его в ящик
Конец
Конец
 
Главный вывод.
 
Иногда задача настолько велика, что алгоритм её решения будет слишком велик. В этом случае задачу пытаются разделить на несколько задач, таких что алгоритмы для них можно составить по отдельности. А затем, когда все задачи будут, эти отдельные алгоритмы объединяют в один большой.
 
Задача: У Исполнителя есть определённая сумма денег, ему дали список товаров, которые он должен купить и он стоит на улице, на которой находится определённое количество магазинов. Составить такой алгоритм, пользуясь которым Исполнитель мог бы купить всё согласно списку. При этом необходимо учесть, что какого-то товара может не быть или он может быть в недостаточном количестве, или у Исполнителя может не хватить денег.
 
Решение:
 
Для составления этого алгоритма воспользуемся специальным методом который сильно похож на предыдущий. Заключается он в том, что решается задача проще исходной, а затем полученный алгоритм постепенно усложняется до тех пор, пока не получится алгоритм решающий исходную задачу. Пусть нашей простой задачей будет задача с одним товаром в списке. Тогда алгоритм будет выглядеть так:
 
Делать
Начало
Зайти в очередной магазин
Если в нём есть нужный товар
То
Если товара не меньше чем нужно
То
Если хватит денег
То купить нужное количество товара
Иначе купить на ту сумму которая есть.
Иначе
Если хватит денег
То купить весь товар
Иначе купить на ту сумму которая есть
Вычеркнуть из списка купленное количество
Конец
Повторять пока не куплено нужное количество и ещё есть деньги и не кончились магазины
 
Обратите внимание, что подчёркнутые команды очень сильно похожи. Это наводит на мысль, что наверное можно было бы их записать только один раз а использовать столько раз сколько нужно. Запишем эти команды в виде отдельного алгоритма. Назовём его покупка.
 
Алгоритм Покупка
Входные данные: определённое количество товара
Начало
Если хватит денег
То купить определённое количество товара
Иначе купить на ту сумму которая имеется
Конец
 
"Определённое количество товара" подчёркнуто. Зачем? Чтобы ответить на этот вопрос вспомним, что две группы команд которые мы хотели бы заменить нашим алгоритмом не совершенно одинаковы, а только сильно похожи. И отличаются они количеством товара которое нужно купить. В первом случае требуется купить нужное количество, а во втором нужно купить весь имеющийся товар. И наш алгоритм должен знать что именно требуется от него в каждом случае. Поэтому во входных данных мы и сообщаем ему, что он должен купить определённое количество товара. А чему равно это определённое количество будет определяться при вызове алгоритма. Теперь можно записать и главный алгоритм:
 
Делать
Начало
Зайти в очередной магазин
Если в нём есть нужный товар
То
Если товара не меньше чем нужно
То Покупка нужного количества товара
Иначе Покупка всего товара
Вычеркнуть из списка купленное количество
Конец
Повторять пока не куплено нужное количество и ещё есть деньги и не кончились магазины
 
Наш алгоритм стал намного короче. То, что мы сделали называется разработать вспомогательный алгоритм. Этот алгоритм представляет собой последовательность команд, которая нужна в нескольких местах и мы вместо того, чтобы в этих местах выписывать все команды только ставим его имя.
Итак, простая задача решена полностью и теперь мы можем заняться большой задачей. Она отличается от уже решённой тем, что в списке не один товар, а несколько.
Если мы полученный алгоритм сделаем вспомогательным и назовём его Покупка одного товара, то главный алгоритм можно записать очень коротко:
 
Делать
Начало
Выписать очередной товар в отдельный список.
Выйти к первому магазину
Покупка одного товара
Вычеркнуть очередной товар из большого списка
Конец
Повторять пока не исчерпан большой список и есть деньги
 
Пояснения к алгоритму:
 
§ Команда "Выписать товар в отдельный список" совершенно необходима, так как вспомогательный алгоритм "Покупка одного товара" берёт данные для своей работы из списка и этот список должен содержать только одно наименование.
§ Алгоритм не гарантирует покупку каждого очередного товара. После работы алгоритма "Покупка одного товара" очередной товар вычёркивается независимо от успеха покупки.
§ Этот алгоритм будет работать очень долго. Представьте себе, что Исполнитель зашёл в магазин за первым товаром из списка, а в этом магазине есть и все другие товары. было бы правильно купить и их тоже но исполнитель выйдет из магазина и пойдёт дальше, чтобы потом возвращаться за каждым товаром по отдельности. Так часто бывает в разработке алгоритма, что приходится выбирать или простой алгоритм или быстрый, но иногда это бывает следствием неудачной идеи.
§ В нашем алгоритме есть важная команда "Выйти к первому магазину". Если бы этой команды не было, то Исполнитель уже в поиске первого товара мог выйти к последнему магазину и остановиться, потому как за последним нет очередного и вспомогательный алгоритм "Покупка одного товара" уже не будет работать ни для второго, ни для третьего, ни для какого.
 
А теперь подумаем над тем, нельзя ли было сделать алгоритм более быстрым. Что если Исполнителю только один раз пройти все магазины и в каждом попытаться купить все товары из списка. Назовём нужный нам вспомогательный алгоритм "Покупка по списку". Тогда главный алгоритм запишется так:
 
Алгоритм Покупка по списку
Начало
Выйти к первому магазину
Делать
Начало
Зайти в очередной магазин
Покупка по списку
Конец
Повторять пока есть деньги и не куплены все товары и не кончились магазины
Конец
 
Вспомогательный алгоритм "Покупка по списку" попробуйте разработать самостоятельно.
 
Итак, мы узнали очень важные вещи: простую команду, конструкцию ветвления и две конструкции цикла (можно сказать даже три). А теперь попробуем разобраться с ещё одним очень важным понятием - понятием переменной.
 
Задача: Дано множество букв. Подсчитать сколько среди них букв А.
 
Решение:
 
Количество = 0
Делать
Начало
Взять очередную букву
Если очередная буква это буква А
То Количество увеличить на 1
Конец
Повторять пока есть буквы
Распечатать значение Количества
 
В этом алгоритме слово "Количество" означает величину равную количеству букв А во множестве букв. Такие величины в алгоритмическом языке называются переменными. Слово "Переменная" означает, что её значение может изменяться в процессе работы алгоритма. Наша переменная имеет имя -"Количество" и значение - величина содержащаяся в переменной.
С переменными величинами мы уже встречались в задаче о сумме ста последовательных чисел а чтобы закрепить понятие переменной рассмотрим ещё одну задачу:
 
Задача: Пусть исполнителю нужно вычислить сумму следующего ряда чисел: 1; -2; 3; -4; 5;……… до некоторого числа N.
 
Решение:
 
В алгоритме нам потребуется две переменных:
Сумма - эта переменная величина будет содержать значение суммы.
К - эта переменная величина будет изменяться от 1 до N.
 
Если бы в ряду складываемых чисел не изменялся знак, то наш алгоритм выглядел бы так:
 
К=0
Сумма=0
Делать N раз
Начало
Увеличить К на 1
Добавим в Сумму число К
Конец
Напечатать сумму
 
Мы в этой задаче воспользовались уже известным нам способом, когда сначала решается более простая задача, а уже затем полученный алгоритм усложняется.
А сейчас обратите внимание, что две команды внутри конструкции цикла выглядят немного одинаково. Суть их заключается в том, что переменная величина приравнивается к своему старому значению увеличенному на определённое число. Коротко это можно записать так:
К=К+1
Сумма=Сумма+К
Рассмотрим команду К=К+1 более подробно.
Пример:
К=5
К=К+1
Напечатать К
 
В этом примере в подчёркнутой команде справа от знака равенства старое значение К (равное 5), а слева от знака новое значение равное 5+1=6. Следовательно в итоге будет напечатано число 6.
 
Важное замечание: в программировании принято переменные величины обозначать латинскими буквами. Теперь наш алгоритм можно записать так:
 
К=0
Sum=0
Делать N раз
Начало
К=К+1
Sum=Sum+К
Конец
Напечатать Sum
 
Наш алгоритм можно записать ещё короче если немного усовершенствовать конструкцию цикла. Вспомним, что этот вид цикла называется циклом с параметром. Это означает, что существует специальная переменная которая считает сколько раз выполнялись команды внутри цикла. В нашей задаче таким параметром является переменная К и она изменяется от 1 до N. Можно сказать, что цикл выполняется для переменной "К" которая изменяется от 1 до N. Коротко это же самое можно записать так:
 
Для К от 1 до N делать
 
А наш алгоритм теперь запишется так:
 
Sum=0
Для К от 1 до N делать
Начало
Sum=Sum+К
Конец
Напечатать Sum
 
Все усовершенствования которые мы делали до сих пор только позволяли записать наш алгоритм короче и красивее, но не позволяли решить исходную задачу. Вернёмся к нашей задаче. Она отличается от только тем, что складываемое число меняет на каждом шагу знак. На нечётном шаге число прибавляется на чётном вычитается. С учётом сказанного алгоритм запишется так:
 
Sum=0
Для К от 1 до N делать
Начало
Если К нечётно
То Sum=Sum+К
Иначе Sum=Sum-К
Конец
Напечатать Sum
 
К сожалению в этом алгоритме полагается, что Исполнитель умеет определять чётность/нечётность числа К. предположим, что он этого не умеет. Тогда, будем умножать величину К на величину М которая будет попеременно равная 1 или -1. Алгоритм запишется так:
 
Sum=0
М=1
Для К от 1 до N делать
Начало
Если М=1 То М=-1 Иначе М=1
Sum=Sum+К*М
Конец
Напечатать Sum
 
Вот теперь исходная задача решена полностью и решение записано очень простыми командами.
 

Контрольное задание (для тех, кому интересно)

 
Решение наших задач не требует знания программирования на машинном языке. Всё, что нужно, это записать алгоритм на том алгоритмическом языке, который мы с вами уже разработали.
Но нельзя забывать, что наш АЯ не создан под какого-то одного исполнителя, языку совершенно безразлично кто будет выполнять его команды. Поэтому для каждой задачи нужно специально постараться и описать систему команд которые нужны для выполнения команд алгоритма.
Конечно, нужно постараться, чтобы команды были как можно проще, но и слишком усердствовать не стоит. Например, если нужна команда "Взять очередной предмет", то наверное нет необходимости расписывать как при этом должна двигаться рука. А вот команду "Взять самый большой жёлтый карандаш" конечно нужно разбить на несколько более простых.
И для полного решения к каждой задаче необходимо добавить доказательство или хотя бы обоснование того, что ваш алгоритм действительно решает поставленную задачу.
 
И10.1. Путешествие вокруг дома
 
Условие: На пути Исполнителя стоит дом, составленный из различных прямоугольников. Что-то вот такое: 
А может быть даже и сложнее. От Исполнителя требуется подсчитать количество углов здания. Разработайте для него алгоритм. И давайте договоримся, что происходит это, тёмной и безлунной ночью. Ничего не видать и всё надо делать наощупь.
 
Пояснение. Обойти дом не сложно. И углы подсчитать не сложно. Но вот когда заканчивать счёт углов? Как сделать так, чтобы один и то же угол не подсчитать два раза?
 
Дополнительный вопрос. Предположим, что нет никаких ограничений на форму дома. Придумайте ситуаци такую, что Исполнитель не сможет обойти дом.
 
И10.2. Большая покупка за небольшие деньги
 
Условие: Послали Исполнителя в магазин. Денег дали немного (А рублей), а товара сказали купить как можно больше (в килограммах). Как это сделать?
 
Пояснение. Существует много способов потратить А рублей и один из них тот который нас интересует. Но вот как научить Исполнителя перебрать все возможные способы покупки?!.
 
Дополнительный вопрос. Попробуйте оценить время которое потребуется Исполнителю для выполнения задания.
 
И10.3. Как выдать сдачу
 
Условие: Наш Исполнитель работает кассиром, а стало быть часто даёт сдачу. Разработайте алгоритм (сдачи) при условии, что нашему кассиру - Исполнителю всегда хватает разменной монеты любой значимости, но покупатели очень не любят брать мелкие деньги. То есть нельзя отдавать сдачу одними копейками.
 
Пояснение. Нужно дать сдачу по возможности наименьшим количеством монет и купюр.
 
Дополнительный вопрос. Можно ли до нахождения окончательного решения прикинуть сколько монет потребуется Исполнителю? Хотя бы примерно.
 
И10.4. Поиск на прямоугольной площадке
 
Условие: Исполнитель потерял очень нужную вещь на площадке прямоугольной формы. Теперь он должен её найти. Для этого всё что нужно это обойти всю площадку. Предположим, что Исполнитель может видеть только на расстоянии одного метра вокруг себя.
 
Пояснение. Обойти всю площадку не трудно. Трудно сделать так, чтобы времени на этот поиск потратить как можно меньше.
 
Дополнительный вопрос. Насколько важно, что площадка прямоугольная? Можно ли придумать такую форму, чтобы задача стала не решаемой?
 
И10.5. Сортировка тарелок
 
Условие: Перед исполнителем стоят три подноса. Один пустой и на двух стопки тарелок. Тарелки двух сортов, красные и синие. Тарелки в стопках расположены как попало (то есть случайным образом). Исполнителю требуется пользуясь тремя подносами рассортировать тарелки так, чтобы в одной стопке были все синие, а в другой все красные тарелки. При этом на одном подносе можно создать не более одной стопки посуды.
 
Пояснение. Так как пустой поднос только один, то простой алгоритм в котором синие тарелки откладываются в одну сторону, а красные в другую работать не будет.
 
Дополнительный вопрос. Сколько в среднем действий нужно Исполнителю для решения задачи?
 
И10.6. Поиск тяжелого предмета
 
Условие: Перед Исполнителем лежит несколько предметов разного веса и есть пружинные весы с делениями. Нужно найти самый тяжёлый предмет.
 
Пояснение. Пожалуй, нет здесь никакой трудности. Очень лёгкая задача.
 
Дополнительный вопрос. Предположим, Исполнитель выполняет такой поиск много раз. Сколько в среднем действий он должен выполнить?
 
И10.7. Задача на взвешивание
 
Условие: Исполнитель опять имеет в своём распоряжении весы, но на этот раз рычажные с набором гирек и один предмет который ему необходимо взвесить.
 
Пояснение. Конечно, можно найти такой набор гирек, который уравновесит чашки весов, но как найти такой набор? Если просто перебрать все возможные варианты, то это может занять слишком много времени.
 
Дополнительный вопрос. Каким должен быть набор гирек, чтобы задача стала решаемой?
 
И10.8. Поиск грибов
 
Условие: Перед Исполнителем поставлена задача найти как можно больше грибов за определённое время, в очень большом лесу. Лес настолько велик, что в принципе Исполнитель может идти по прямой линии сколь угодно долго.
 
Пояснение: Существенно важно в этой задаче ограничение по времени. Из-за этого ограничения Исполнитель не может просто взять и идти прямо и прямо. Задача на первый взгляд кажется не решаемой. Но у грибов есть два важных свойства:
 
1.      В лесу есть места, где нет грибницы, а стало быть и грибов.
2.      Там где есть грибница скорее всего растёт не один гриб, а несколько, но на некотором расстоянии друг от друга.
 
И10.9. Поиск среднего карандаша
 
Условие: Перед Исполнителем лежит груда карандашей различной длины от огрызков, до совершенно огромных, а от него требуется найти самый средний.
 
Пояснение. Если бы была известна длина среднего карандаша, то можно было бы просто перебрать все имеющиеся и сравнить с образцом, но образца как раз и нет.
Дополнительный вопрос. Предположим, что Исполнителю удалось разложить карандаши в порядке возрастания размера. Можно ли утверждать, что самый средний карандаш находится в самой середине этого ряда?
 
И10.10. Разрезание многоугольника
 
Условие: Перед исполнителем лежит выпуклый многоугольник вырезанный из бумаги. Напомним, что выпуклый многоугольник, это такой что: любой отрезок проведённый от любой вершины к любой другой вершине полностью лежит внутри многоугольника. От исполнителя требуется разрезать этот многоугольник на треугольники.
 
Пояснение. Видимо любые разрезания должны проводится от вершины к вершине.
 
Дополнительный вопрос. Если многоугольник правильный, это упростит решение или нет?
 
И10.11. Разрезание пирога
 
Условие: Перед Исполнителем лежит круглый пирог, а о самом Исполнителе известно, что он умеет любую фигуру разрезать ровно пополам. Как он это делает неважно, главное что умеет. Требуется разрезать пирог на 64 равные части.
 
Пояснение. Если бы требовалось разрезать на 4 части, то сначала Исполнитель мог бы пирог разрезать на 2 части, а затем каждый получившийся кусок ещё на два.
 
Дополнительный вопрос. Можно ли придумать Исполнителя который бы умел разрезать пирог на любое количество частей?
 
И10.12. Пересадка за круглым столом
 
Условие: За круглым столом как попало сидят 10 мужчин и 11 женщин. Исполнитель может ходить вокруг стола и одновременно видеть только двух рядом сидящих людей. Необходимо пересадить их так, чтобы мужчины и женщины чередовались.
 
Пояснение. Непонятно, откуда Исполнитель может узнать, что после очередной пересадки двух людей, все за столом сидят как надо?
 
Дополнительный вопрос. Какое самое большое количество действий понадобится Исполнителю для решения задачи.
Краткое описание: 
язык алгоритмов

»  Tags for document:

Повторение алгоритмов

Фото пользователя Наталья Владимировна Никонова
Submitted by Наталья Владимировна Никонова on чт, 11/11/2010 - 20:59
Данные об авторе
Автор(ы): 
Никонова Наталья Владимировна - учитель информатики
Место работы, должность: 
МОУ СОШ с. Булычёво
Регион: 
Пензенская область
Характеристики урока (занятия)
Уровень образования: 
начальное общее образование
Целевая аудитория: 
Родитель
Целевая аудитория: 
Учащийся (студент)
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
3 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 
• закрепить представление об алгоритме, схеме алгоритма, ветвлениях и циклах в алгоритме; • закрепить умение составлять и выполнять линейные и нелинейные алгоритмы, записывать условия ветвлений и повторов.
Тип урока: 
Урок закрепления знаний
Используемые учебники и учебные пособия: 

УМК Горячев А.В. Информатика в играх и задачах. 3 класс

Используемое оборудование: 

Компьютер, проектор, интерактивная доска

Используемые ЦОР: 

http://school-collection.edu.ru

Краткое описание: 
Урок проходит в форме игры. Урок представлен в виде передачи с прямым включением из различных городов.

»  Размещено в сообществах:   

Алгоритмы

Submitted by Рустам Варисович Ахметов on пн, 25/10/2010 - 15:54
Данные об авторе
Автор(ы): 
Ахметов Рустам Варисович
Место работы, должность: 
МОУ СОШ д. Названовка
Регион: 
Пензенская область
Характеристики урока (занятия)
Уровень образования: 
основное общее образование
Уровень образования: 
среднее (полное) общее образование
Целевая аудитория: 
Учащийся (студент)
Целевая аудитория: 
Учитель (преподаватель)
Класс(ы): 
9 класс
Предмет(ы): 
Информатика и ИКТ
Цель урока: 
развивать логическое мышление учащихся; воспитывать у учащихся целеустремлённость; обобщить и систематизировать знания учащихся по разделу «Алгоритмы».
Тип урока: 
Урок обобщения и систематизации знаний
Учащихся в классе (аудитории): 
10
Используемые учебники и учебные пособия: 

Информатика "Базовый курс"  7-9/И.Г. Семакин, Л.А. Залогова, С.В Русаков, Л.В. Шестакова. - 2 е издание - М.: БИНОМ. Лаборатория знаний, 2004/

Используемое оборудование: 

Компьютеры, мультимедийный проектор, экран, карточки с раздаточным материалом

Используемые ЦОР: 

http:// www.inform-school.narod.ru- срезы по темам

Краткое описание: 
Урок обобщения и систематизации знаний учащихся по разделу «Алгоритмы».

 


»  Размещено в сообществах:   

Смотреть русские видео онлайн


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн