воскресенье, 22 сентября 2024 г.

Запись вспомогательных алгоритмов на языке программирования

 

План урока по теме "Запись вспомогательных алгоритмов на языке программирования" для 9 класса (по учебнику Л.Л. Босовой, обновленные ФГОС)


Цели урока:

  • Ознакомить учащихся с понятием вспомогательных алгоритмов.
  • Научить записывать алгоритмы на языке программирования Pascal.
  • Развивать навыки работы с алгоритмами и понимание их структуры.

Оборудование:

  • Компьютеры с установленной средой разработки PascalABC.net.
  • Проектор и экран для демонстрации материалов.
  • Учебники Л.Л. Босовой.

Ход урока


  1. Организационный момент (5 минут)
    • Приветствие, проверка присутствия.
    • Объявление темы и целей урока.

  1. Введение в тему (10 минут)

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

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

Примеры вспомогательных алгоритмов

Алгоритм нахождения максимума. Принимает массив чисел и возвращает максимальное значение.

Алгоритм вычисления факториала. Вычисляет факториал заданного числа.

Алгоритм сортировки массива. Сортирует элементы массива по возрастанию или убыванию.


Примеры использования вспомогательных алгоритмов в программировании

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

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

Упрощение отладки: Разделяя код на небольшие подпрограммы, легче находить и исправлять ошибки. Если ошибка возникает в одном из вспомогательных алгоритмов, её проще локализовать без необходимости просматривать весь код программы.

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

2. Теоретическая часть (15 минут)


    • Объяснение структуры алгоритма: начало, процесс, конец.
    • Рассмотрение примеров простых вспомогательных алгоритмов на языке Pascal (например, алгоритм нахождения максимума из двух чисел).

Таблица команд и алгоритмов для языка 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;
begin Result := x * x; end;

Процедуры

Определение подпрограмм без возвращаемого значения

procedure PrintHello;
begin WriteLn('Hello'); end;

Массивы

Объявление и работа с массивами

var arr: array[1..10] of Integer;

Стандартные функции

Использование встроенных функций (например, abs, sqrt, sqr)

a := abs(-5); b := sqrt(16);

Алгоритм нахождения НОД

Использование алгоритма Евклида для нахождения наибольшего общего делителя

function GCD(a, b: Integer): Integer;
begin while b <> 0 do begin Result := a mod b; a := b; b := Result; end; Result := a; end;

Алгоритм сортировки

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

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]);

 Примеры использования:

  1. Функции:
    • Функция для вычисления квадратного числа:

function Square(x: Integer): Integer;

begin

    Result := x * x;

end;

  1. Циклы:
    • Цикл for для вывода чисел от 1 до 10:

for i := 1 to 10 do

    WriteLn(i);

  1. Условные операторы:
    • Проверка четности числа:

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.

 Пояснения:

  1. Объявление программы: Указывает компилятору, что начинается новая программа.
  2. Объявление переменных: Позволяет определить, какие данные будут использоваться в программе.
  3. Начало блока: Определяет начало основной части программы.
  4. Ввод данных: Позволяет пользователю вводить данные, которые будут использоваться в вычислениях.
  5. Вывод данных: Позволяет отображать результаты работы программы на экране.
  6. Условные операторы: Позволяют программе принимать решения на основе условий.
  7. Циклы: Позволяют выполнять повторяющиеся действия, что упрощает обработку массивов и других структур данных.
  8. Завершение блока: Указывает на конец программы или блока кода.

Правила синтаксиса кода в 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.

 Пояснения:

  1. Вычисление суммы двух чисел:
    • Программа объявляет переменные для хранения введенных чисел и их суммы.
    • Пользователь вводит два числа, программа вычисляет их сумму и выводит результат.
  2. Проверка четности числа:
    • Программа запрашивает у пользователя число.
    • С помощью условия if проверяется, четное ли число (остаток от деления на 2 равен нулю) и выводится соответствующее сообщение.
  3. Вывод чисел от 1 до N:
    • Программа запрашивает у пользователя число N.
    • С помощью цикла for программа выводит все числа от 1 до N.

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

Использование подпрограмм в Паскале

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

Основные цели использования подпрограмм:


  1. Упрощение кода: Подпрограммы позволяют избежать дублирования кода, что делает его более компактным и понятным.
  2. Повторное использование: Одна и та же подпрограмма может быть вызвана несколько раз в разных частях программы, что экономит время на написание и тестирование.
  3. Организация логики: Разделение программы на логические блоки помогает лучше структурировать код и облегчает его понимание.

Основное различие между процедурами и функциями 

Параметр

Процедуры

Функции

Возвращаемое значение

Не возвращают значение (используются для выполнения действий)

Возвращают значение (используются для вычислений)

Синтаксис вызова

Вызываются просто по имени

Вызываются с присвоением результата переменной

Применение

Используются для выполнения операций (например, вывода данных)

Используются для вычисления и возвращения значений

 Примеры:

 

  1. Процедура:

 

  1. Функция:

 

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. 

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



3. Практическая часть (20 минут)

Задание 1: Написать алгоритм для нахождения суммы двух чисел.

ПСЕВДОКОД:

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;
begin
if n = 0 then

Factorial := 1 // Базовый случай
else
Factorial := n * Factorial(n - 1); // Рекурсивный случай
end;
var
number: Integer;
begin
Write('Введите число для вычисления факториала: ');
ReadLn(number);
if number < 0 then
WriteLn('Факториал отрицательного числа не определен.')
else
WriteLn('Факториал ', 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.


  1. Работа в группах (15 минут)
    • Разделить класс на группы и предложить каждой группе разработать свой вспомогательный алгоритм на заданную тему (например, сортировка массива, поиск элемента в массиве).
    • Каждая группа представляет свой алгоритм классу.

Примеры вспомогательных алгоритмов

 

Алгоритм

Описание

Пример кода

Сортировка массива

Упорядочивание элементов массива по возрастанию или убыванию.

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]);

Поиск элемента в массиве

Поиск заданного элемента в массиве с помощью линейного поиска.

for i := 1 to n do
if arr[i] = x then
begin WriteLn('
Элемент найден'); end;

Вычисление факториала

Вычисление факториала числа с использованием рекурсии или цикла.

function Factorial(n: Integer): Integer;
begin if n = 0 then Result := 1 else Result := n * Factorial(n - 1); end;

Нахождение НОД

Алгоритм Евклида для нахождения наибольшего общего делителя двух чисел.

function GCD(a, b: Integer): Integer;
begin while b <> 0 do
begin Result := a mod b; a := b; b := Result; end; Result := a; end;

Обратный порядок массива

Разворот элементов массива.

for i := 1 to n div 2 do
begin Swap(arr[i], arr[n-i+1]); end;

Подсчет количества четных чисел

Подсчет количества четных чисел в массиве.

count := 0;
for i := 1 to n do
if arr[i] mod 2 = 0 then count := count + 1;

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

4. Заключительная часть (10 минут)

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

5. Домашнее задание (5 минут)

    • Написать алгоритм для решения задачи о нахождении НОД двух чисел с использованием алгоритма Евклида.
    • Подготовить краткий отчет о применении вспомогательных алгоритмов в реальной жизни.

Ожидаемые результаты:


  • Учащиеся должны уметь записывать простые вспомогательные алгоритмы на языке Pascal.
  • Повышение уровня понимания структуры и назначения вспомогательных алгоритмов в программировании.

Комментариев нет:

Отправить комментарий

Героические страницы Великой Отечественной войны

Хронология десяти сталинских ударов Первый удар. Ленинградско-Новгородская операция Дата: Январь 1944 Событие: Ленинградско-Новгородская опе...