План урока по теме "Запись
вспомогательных алгоритмов на языке программирования" для 9 класса (по
учебнику Л.Л. Босовой, обновленные ФГОС)
Цели урока:
- Ознакомить
     учащихся с понятием вспомогательных алгоритмов.
 - Научить
     записывать алгоритмы на языке программирования Pascal.
 - Развивать
     навыки работы с алгоритмами и понимание их структуры.
 
Оборудование:
- Компьютеры
     с установленной средой разработки PascalABC.net.
 - Проектор
     и экран для демонстрации материалов.
 - Учебники
     Л.Л. Босовой.
 
Ход урока
- Организационный
     момент (5 минут)
 - Приветствие,
      проверка присутствия.
 - Объявление темы и целей урока.
 
- Введение
     в тему (10 минут)
 
- Обсуждение
      понятия вспомогательных алгоритмов.
 - Примеры
      использования вспомогательных алгоритмов в программировании.
 
Вспомогательный алгоритм — это
алгоритм, который используется в составе другого алгоритма. Он позволяет
разбить сложную задачу на более простые подзадачи, которые могут выполняться
многократно. Вспомогательные алгоритмы реализуются в виде подпрограмм (процедур
или функций) и могут быть вызваны по имени из основной программы.
Примеры вспомогательных
алгоритмов
Алгоритм нахождения максимума. Принимает массив чисел и возвращает максимальное значение.
Алгоритм вычисления факториала. Вычисляет факториал заданного числа.
Алгоритм сортировки массива. Сортирует элементы массива по возрастанию или убыванию.
Примеры использования
вспомогательных алгоритмов в программировании
Разделение задач: Вспомогательные алгоритмы помогают организовать код, делая его более читаемым и управляемым. Например, в игре можно создать процедуры для обработки ввода игрока, обновления состояния игры и отображения графики.
Повторное использование кода:
Позволяют избежать дублирования кода. Если в программе несколько мест для
вычисления суммы элементов массива, можно написать один вспомогательный
алгоритм и вызывать его в нужных местах.
Упрощение отладки: Разделяя код
на небольшие подпрограммы, легче находить и исправлять ошибки. Если ошибка
возникает в одном из вспомогательных алгоритмов, её проще локализовать без
необходимости просматривать весь код программы.
Вспомогательные алгоритмы играют важную роль в разработке программного обеспечения, позволяя организовывать код более эффективно и улучшая его структуру.
2. Теоретическая часть (15 минут)
- Объяснение
      структуры алгоритма: начало, процесс, конец.
 - Рассмотрение примеров простых вспомогательных алгоритмов на языке Pascal (например, алгоритм нахождения максимума из двух чисел).
 
| 
   Команда/Алгоритм  | 
  
   Описание  | 
  
   Пример кода  | 
 
| 
   Переменные  | 
  
   Объявление переменных
  (например, var x: Integer;)  | 
  
   var a: Integer;  | 
 
| 
   Ввод данных  | 
  
   Чтение данных с клавиатуры
  (например, ReadLn(x);)  | 
  
   ReadLn(a);  | 
 
| 
   Вывод данных  | 
  
   Вывод на экран (например, WriteLn('Результат:',
  x);)  | 
  
   WriteLn('Результат:', a);  | 
 
| 
   Условные операторы  | 
  
   Использование if...then...else для
  принятия решений  | 
  
   if a > 0 then WriteLn('Положительное');  | 
 
| 
   Циклы  | 
  
   Использование for, while, repeat для
  повторения действий  | 
  
   for i := 1 to 10 do WriteLn(i);  | 
 
| 
   Функции  | 
  
   Определение подпрограмм,
  возвращающих значения  | 
  
   function Square(x: Integer): Integer;  | 
 
| 
   Процедуры  | 
  
   Определение подпрограмм без
  возвращаемого значения  | 
  
   procedure PrintHello;  | 
 
| 
   Массивы  | 
  
   Объявление и работа с массивами  | 
  
   var arr: array[1..10] of Integer;  | 
 
| 
   Стандартные функции  | 
  
   Использование встроенных
  функций (например, abs, sqrt, sqr)  | 
  
   a := abs(-5); b := sqrt(16);  | 
 
| 
   Алгоритм нахождения НОД  | 
  
   Использование алгоритма Евклида
  для нахождения наибольшего общего делителя  | 
  
   function GCD(a, b: Integer): Integer;  | 
 
| 
   Алгоритм сортировки  | 
  
   Применение сортировки пузырьком
  или выбором для упорядочивания массива  | 
  
   for i := 1 to n-1 do for j := 1 to n-i do if arr[j] > arr[j+1] then
  Swap(arr[j], arr[j+1]);  | 
 
Примеры использования:
- Функции:
 - Функция
      для вычисления квадратного числа:
 
function
Square(x: Integer): Integer;
begin
    Result := x * x;
end;
- Циклы:
 - Цикл
      for для вывода чисел от 1 до 10:
 
for
i := 1 to 10 do
    WriteLn(i);
- Условные
     операторы:
 - Проверка
      четности числа:
 
if N mod 2 = 0 then
    WriteLn('Число четное')
else
    WriteLn('Число нечетное');
Эта таблица и примеры помогут лучше понять основные команды и алгоритмы, используемые в Паскале, а также подготовиться к экзаменам.
Правила
записи алгоритма на языке Pascal
| 
   Этап  | 
  
   Описание  | 
  
   Пример кода  | 
 
| 
   1. Объявление программы  | 
  
   Начало программы с ключевым
  словом program, за которым следует имя.  | 
  
   program MyFirstProgram;  | 
 
| 
   2. Объявление переменных  | 
  
   Использование ключевого
  слова var для объявления переменных и их типов.  | 
  
   var x: Integer;  | 
 
| 
   3. Начало блока  | 
  
   Блок кода начинается с
  ключевого слова begin.  | 
  
   begin  | 
 
| 
   4. Ввод данных  | 
  
   Использование ReadLn для
  ввода данных пользователем.  | 
  
   ReadLn(x);  | 
 
| 
   5. Вывод данных  | 
  
   Использование WriteLn для
  вывода данных на экран.  | 
  
   WriteLn('Значение x:', x);  | 
 
| 
   6. Условные операторы  | 
  
   Применение конструкции if...then...else для
  выполнения условий.  | 
  
   if x > 0 then
  WriteLn('Положительное'); else WriteLn('Неположительное');  | 
 
| 
   7. Циклы  | 
  
   Использование циклов for, while,
  или repeat...until.  | 
  
   for i := 1 to 10 do WriteLn(i);  | 
 
| 
   8. Завершение блока  | 
  
   Завершение блока кода с помощью
  ключевого слова end.  | 
  
   end.  | 
 
Пояснения:
- Объявление
     программы:
     Указывает компилятору, что начинается новая программа.
 - Объявление
     переменных:
     Позволяет определить, какие данные будут использоваться в программе.
 - Начало
     блока:
     Определяет начало основной части программы.
 - Ввод
     данных:
     Позволяет пользователю вводить данные, которые будут использоваться в
     вычислениях.
 - Вывод
     данных:
     Позволяет отображать результаты работы программы на экране.
 - Условные
     операторы:
     Позволяют программе принимать решения на основе условий.
 - Циклы: Позволяют выполнять
     повторяющиеся действия, что упрощает обработку массивов и других структур
     данных.
 - Завершение
     блока:
     Указывает на конец программы или блока кода.
 
Правила синтаксиса кода в Pascal
| 
   №  | 
  
   Правило синтаксиса  | 
 
| 
   1  | 
  
   Идентификаторы: Имена переменных, констант и
  процедур должны начинаться с буквы и могут содержать буквы, цифры и символы
  подчеркивания.  | 
 
| 
   2  | 
  
   Объявление переменных: Переменные объявляются с
  помощью ключевого слова var, за которым следует имя переменной,
  двоеточие и тип. Например: var a: Integer; Пробел перед двоеточием
  не ставится, а после него — рекомендуется.  | 
 
| 
   3  | 
  
   Константы: Константы определяются в
  секции const и не изменяются во время выполнения. Например: const
  Pi: Real = 3.14; Пробел перед двоеточием не ставится, а после —
  рекомендуется.  | 
 
| 
   4  | 
  
   Зарезервированные слова: Определенные слова, такие
  как begin, end, if, then, имеют специальное значение и не
  могут использоваться как идентификаторы.  | 
 
| 
   5  | 
  
   Операторы: Pascal использует стандартный
  набор арифметических и логических операторов, таких как +, -, *, /, div, mod.
  Перед операторами + и - должен быть пробел, а после них —
  тоже. Операторы умножения (*) и деления (/) пробелами не обрамляются.  | 
 
| 
   6  | 
  
   Процедуры и функции: Процедуры и функции
  объявляются с использованием ключевых слов procedure и function.
  Например: procedure MyProcedure;  | 
 
| 
   7  | 
  
   Комментарии: Комментарии могут быть
  однострочными (начинаются с //) или многострочными (размещаются
  между {} или (* *)).  | 
 
| 
   8  | 
  
   Структура программы: Программа начинается с
  ключевого слова program, за которым следует имя программы, затем секции
  объявления переменных и основная часть кода, заключенная между begin и end.  | 
 
| 
   9  | 
  
   Терминаторы операторов: Каждое выражение в Pascal
  должно заканчиваться точкой с запятой (;).  | 
 
| 
   10  | 
  
   Знак равенства (=): В Pascal используется для
  присваивания значения переменной (например, a := 5;). Пробелы перед
  знаком равенства не ставятся, а после - по желанию (например, a := b +
  c;). Знак равенства также используется для сравнения значений в логических
  выражениях (например, в условии if).  | 
 
Дополнительные замечания:
- Двоеточие
     (:): Перед
     двоеточием пробел не ставится, а после него рекомендуется ставить пробел
     для улучшения читаемости кода.
 - Точка
     с запятой (;):
     Пробел перед точкой с запятой не требуется, но может быть добавлен для
     лучшей читаемости.
 
Таблица поможет понять основные правила записи алгоритмов на языке Pascal и структурировать свои программы правильно.
Примеры записи алгоритмов на
языке Pascal
| 
   Пример  | 
  
   Описание  | 
  
   Пример кода  | 
 
| 
   1. Вычисление суммы двух чисел  | 
  
   Программа запрашивает два числа
  у пользователя и выводит их сумму.  | 
  
   Pascal program SumTwoNumbers; var a, b, sum: Integer; begin WriteLn('Введите
  первое число:'); ReadLn(a); WriteLn('Введите
  второе число:'); ReadLn(b);<br> sum := a + b; WriteLn('Сумма:', sum); end.  | 
 
| 
   2. Проверка четности числа  | 
  
   Программа запрашивает число и
  проверяет, является ли оно четным или нечетным.  | 
  
   Pascal program CheckEvenOdd; var n: Integer; begin WriteLn('Введите число:'); ReadLn(n); if n mod 2 = 0 then WriteLn('Число четное') else WriteLn('Число нечетное'); end.  | 
 
| 
   3. Вывод чисел от 1 до N  | 
  
   Программа запрашивает число N и
  выводит все числа от 1 до N.  | 
  
   Pascal program PrintNumbers; var n, i: Integer; begin WriteLn('Введите N:'); ReadLn(n); for i := 1 to n do WriteLn(i); end.  | 
 
Пояснения:
- Вычисление
     суммы двух чисел:
 - Программа
      объявляет переменные для хранения введенных чисел и их суммы.
 - Пользователь
      вводит два числа, программа вычисляет их сумму и выводит результат.
 - Проверка
     четности числа:
 - Программа
      запрашивает у пользователя число.
 - С
      помощью условия if проверяется, четное ли число (остаток от
      деления на 2 равен нулю) и выводится соответствующее сообщение.
 - Вывод
     чисел от 1 до N:
 - Программа
      запрашивает у пользователя число N.
 - С
      помощью цикла for программа выводит все числа от 1 до N.
 
Можно увидеть,
как записываются простые алгоритмы на языке Pascal и как они работают.
Использование подпрограмм в
Паскале
Подпрограммы (процедуры и функции) в
языке Паскаль используются для организации кода, повышения его читаемости и
повторного использования. Они позволяют разбивать сложные задачи на более
простые подзадачи, что упрощает разработку и отладку программ.
Основные цели использования
подпрограмм:
- Упрощение
     кода:
     Подпрограммы позволяют избежать дублирования кода, что делает его более
     компактным и понятным.
 - Повторное
     использование:
     Одна и та же подпрограмма может быть вызвана несколько раз в разных частях
     программы, что экономит время на написание и тестирование.
 - Организация
     логики:
     Разделение программы на логические блоки помогает лучше структурировать
     код и облегчает его понимание.
 
Основное различие между процедурами и функциями
| 
   Параметр  | 
  
   Процедуры  | 
  
   Функции  | 
 
| 
   Возвращаемое значение  | 
  
   Не возвращают значение
  (используются для выполнения действий)  | 
  
   Возвращают значение
  (используются для вычислений)  | 
 
| 
   Синтаксис вызова  | 
  
   Вызываются просто по имени  | 
  
   Вызываются с присвоением
  результата переменной  | 
 
| 
   Применение  | 
  
   Используются для выполнения
  операций (например, вывода данных)  | 
  
   Используются для вычисления и
  возвращения значений  | 
 
Примеры:
  
 
  | 
  
  
 
  | 
 
| 
   procedure PrintHello; begin     WriteLn('Hello, World!'); end; 
 begin     PrintHello; // Вызов процедуры end. 
  | 
  
   function Square(x: Integer): Integer; begin     Result := x * x; // Возвращает квадрат
  числа end; 
 var     num: Integer; begin     num := Square(5); // Вызов функции с
  присвоением результата     WriteLn('Квадрат числа равен: ', num); end.  | 
 
Примеры иллюстрируют, как используются процедуры для выполнения действий и функции для вычислений в языке Паскаль.
ПСЕВДОКОД:
1. Начало
2. Объявить переменные A, B, Sum
как целые числа
3. Вывести "Введите первое
число:"
4. Прочитать A
5. Вывести "Введите второе
число:"
6. Прочитать B
7. Sum = A + B
8. Вывести "Сумма чисел
равна:", Sum
9. Конец
program SumOfTwoNumbers;
var
A, B, Sum: Integer;
begin
// Ввод первого числа
WriteLn('Введите первое число:');
ReadLn(A);
// Ввод второго числа
WriteLn('Введите второе число:');
ReadLn(B);
// Нахождение суммы
Sum := A + B;
// Вывод результата
WriteLn('Сумма чисел равна: ', Sum);
end.
- Задание
      2: Написать алгоритм для вычисления факториала числа.
 
Факториал — это произведение всех
целых положительных чисел от 1 до заданного числа nn. Обозначается
факториал как n!n!.
Пример:
- 5! = 5×4×3×2×1 = 1205! = 5×4×3×2×1 = 120
 - 0! = 10! = 1 (по
     определению)
 
Факториал используется в
математике для расчета количества способов, которыми можно организовать или
выбрать объекты. Например, если у вас есть 5 книг, факториал поможет узнать,
сколько различных способов вы можете их расположить на полке.
Факториал помогает в
комбинаторике и вероятностных расчетах.
program FactorialCalculator;unction Factorial(n: Integer): Integer;beginif n = 0 thenFactorial := 1 // Базовый случайelseFactorial := n * Factorial(n - 1); // Рекурсивный случайend;varnumber: Integer;beginWrite('Введите число для вычисления факториала: ');ReadLn(number);if number < 0 thenWriteLn('Факториал отрицательного числа не определен.')elseWriteLn('Факториал ', number, ' равен ', Factorial(number));end.
program FactorialCalculator;
function Factorial(n: Integer): Integer;
var
fact, i: Integer; // Изменено имя переменной
begin
fact := 1; // Начальное значение факториала
for i := 2 to n do // Итерация от 2 до n
fact := fact * i; // Умножение на текущее значение i
Factorial := fact; // Возврат результата
end;
var
number: Integer;
begin
Write('Введите число для вычисления факториала: ');
ReadLn(number);
if number < 0 then
WriteLn('Факториал отрицательного числа не определен.')
else
WriteLn('Факториал ', number, ' равен ', Factorial(number));
end.
- Задание
      3: Написать алгоритм для проверки, является ли число четным или нечетным.
 
Псевдокод
1. Начало
2. Объявить переменную N как
целое число
3. Вывести "Введите
число:"
4. Прочитать N
5. Если N mod 2 = 0 тогда
  
5.1. Вывести "Число четное"
6. Иначе
  
6.1. Вывести "Число нечетное"
7. Конец
program EvenOrOddChecker;
var
N: Integer;
begin
// Ввод числа для проверки
WriteLn('Введите число:');
ReadLn(N);
// Проверка на четность или нечетность
if N mod 2 = 0 then
WriteLn('Число четное')
else
WriteLn('Число нечетное');
end.
- Работа
     в группах (15 минут)
 - Разделить
      класс на группы и предложить каждой группе разработать свой
      вспомогательный алгоритм на заданную тему (например, сортировка массива,
      поиск элемента в массиве).
 - Каждая
      группа представляет свой алгоритм классу.
 
Примеры
вспомогательных алгоритмов
| 
   Алгоритм  | 
  
   Описание  | 
  
   Пример
  кода  | 
 
| 
   Сортировка массива  | 
  
   Упорядочивание элементов
  массива по возрастанию или убыванию.  | 
  
   for i := 1 to n-1 do  | 
 
| 
   Поиск элемента в массиве  | 
  
   Поиск заданного элемента в
  массиве с помощью линейного поиска.  | 
  
   for i := 1 to n do  | 
 
| 
   Вычисление факториала  | 
  
   Вычисление факториала числа с
  использованием рекурсии или цикла.  | 
  
   function Factorial(n: Integer): Integer;  | 
 
| 
   Нахождение НОД  | 
  
   Алгоритм Евклида для нахождения
  наибольшего общего делителя двух чисел.  | 
  
   function GCD(a, b: Integer): Integer;  | 
 
| 
   Обратный порядок массива  | 
  
   Разворот элементов массива.  | 
  
   for i := 1 to n div 2 do  | 
 
| 
   Подсчет количества четных чисел  | 
  
   Подсчет количества четных чисел
  в массиве.  | 
  
   count := 0;  | 
 
Примеры кода для изучения и практики программирования на языке Паскаль
4. Заключительная часть (10 минут)
- Подведение
      итогов урока.
 - Обсуждение
      трудностей, возникших при выполнении заданий.
 - Ответы на вопросы учащихся.
 
5. Домашнее задание (5 минут)
- Написать
      алгоритм для решения задачи о нахождении НОД двух чисел с использованием
      алгоритма Евклида.
 - Подготовить
      краткий отчет о применении вспомогательных алгоритмов в реальной жизни.
 
Ожидаемые результаты:
- Учащиеся
     должны уметь записывать простые вспомогательные алгоритмы на языке Pascal.
 - Повышение уровня понимания структуры и назначения вспомогательных алгоритмов в программировании.
 
Комментариев нет:
Отправить комментарий