Костарева Нина Петровна, учитель информатики МБОУ «СОШ №3 г. Осы»
Разработка уроков «Программирование основных алгоритмических конструкций в Excel и на языках программирования», 9 класс.
Данный материал можно рассматривать как на уроке, так в качестве дополнительного
Программирование – стержень курса информатики. Часто говорят, что в современных условиях развитого прикладного программного обеспечения изучение программирования потеряло свое значение как средство подготовки школьников к труду, профессиональной деятельности. С одной стороны, это действительно так, но, с другой стороны, учение основ программирования связано с целым рядом умений и навыков (организация деятельности, планирование ее и т.д.), формирование которых всегда одна из приоритетных задач современной школы. Изучая программирование, учащиеся прочнее усваивают основы алгоритмической культуры, развивают операционное мышление, познают азы профессии программиста, что является хорошей подготовкой к дальнейшему самостоятельному изучению языка программирования и совершенствованию своих навыков в этой области.
В основу разработок уроков легли три основные алгоритмические конструкции. Предлагается рассматривать написание программ в офисные программы Excel и на нескольких языках программирования параллельно. Все просто, чтобы обучаемые понимали, что не каждый язык может подходить и под определённый тип программ, да и кому-то удобней на том или ином языке программирования.
Разработка урока: «Программирование линейных алгоритмов» в офисной программе excel и различных средах программирования
Цели урока
Формирование умения программировать линейные алгоритмы.
Задачи урока:
• образовательные: актуализировать знания обучаемых по теме «Алгоритмы, формы представления алгоритмов»; познакомить их с основными операторами линейных алгоритмов на языках программирования; развивающие:
развивать мыслительные навыки, умения критически анализировать ситуацию;
формировать умения применять ранее полученные знания в других дисциплинах (математика, английский)
• воспитательные:
воспитывать у обучающихся аккуратность, умение работать в команде, представление о программировании как сфере возможной профессиональной деятельности.
Тип урока: изучение новых знаний.
Основные организационные формы обучения на уроке:
• фронтальная работа с классом;
• индивидуальная работа за компьютером;
• работа в парах.
План урока.
1. Организационный момент.
2. Актуализация опорных знаний.
3. Закрепление пройденного материала.
4. Подведение итогов урока. Домашнее задание.
1. Организационный момент.
Приветствие, проверка присутствующих. Объявление темы и целей урока
2. Актуализация опорных знаний и умений.
Вспомним основные понятия нашей темы:
Алгоритмом называют … Алгоритм – последовательный порядок действий, направленных на решение поставленной задачи; Алгоритмическая структура «следование». Последовательное выполнение действий
3. Объяснение нового материала.
Вы умеете составлять алгоритмы в разных формах: словесной графической, письменной. На каких уроках вы используете алгоритмические конструкции и какие? (На математике, физике, химии и т.д.) А теперь наша задача научиться составлять линейные алгоритмы на языке программирования и проверить их в действии. О каких языках программирования вы слышали? Задача: вычислить сумму и произведение двух чисел в офисной программе Excel (демонстрируется на экране). Для нахождения результат что нужно написать в ячейки С1 и D1?
(формулы)
Для того, чтобы написать программу линейного типа необходимо познакомиться с содержанием раздела операторов. Что такое оператор? Оператор – это специальная совокупность служебных слов, идентификаторов, и специальных знаков, выполняющих специальные действия (в тетрадь)
Для реализации линейный алгоритмов необходимо знать оператор ввода, оператор вывода.
Давайте посмотрим, что из себя представляет каждый из них.
Раздаточный материал взять со стола учителя. (смена деятельности)
Структура программы на языке программирования Basic |
Структура программы на языке программирования Pascal |
|||||||||||
REM найти сумму и произведение двух чисел... INPUT "Введите число1", а INPUT "Введите число2", b c=a+b P=a*b PRINT "Сумма чисел=: ", a PRINT "Произведение=: ", b END |
Program Primer; var a, b, c,p :integer; Begin readln ("Введите число1"); readln ("Введите число2"); c:=a+b p:=a*b writeln ("Сумма чисел =: ", b) writeln (“Произведение”, с); End. |
|||||||||||
Оператор ввода данных INPUT INPUT "Сообщение", список переменных – обеспечивает запрос данных, необходимых для выполнения программы, которые пользователь вводит с клавиатуры. При выполнении команды INPUT необходимо все переменные вводить через запятую. Оператор присваивания LET LET оператор присваивания или ввода формул (осуществления действий, может использоваться как обычное равенство). Оператор вывода данных PRINT PRINT список выражений. В поле операндов через запятую или через точку с запятой перечисляются выражения, значения которых надо вывести. Оператор REM «произвольный текст» Для записи арифметических операций используют знаки:
|
|
Указать, чему будет равно значение переменной на языке Паскаль необходимо использовать оператор присваивания «:=»; Придающий переменной конкретное значение. Чтобы ввести и вывести переменные используются специальные операторы: Ввода – read, readln; Вывода – write, writeln; Begin……end – операторский скобки, |
|
|||||||||
назначение - выделение группы операторов. |
|
|||||||||||
Для записи арифметических операций используют знаки: |
||||||||||||
+ |
сложение |
|
||||||||||
– |
вычитание |
|||||||||||
* |
умножение |
|||||||||||
/ |
деление |
|||||||||||
div |
целочисленное деление |
|||||||||||
mod |
остаток от целочисленного деления |
|||||||||||
запись функций на языке программирования Pascal |
||||||||||||
sin x |
SIN(x) |
|
||||||||||
cos x |
COS(x) |
|||||||||||
tg x |
TAN(x) |
|||||||||||
arctg x |
ATN(x) |
|||||||||||
|
cos x |
COS(x) |
|
|
|x| |
ABS(x) |
||||||
tg x |
TAN(x) |
√x |
SQRT(x) |
|||||||||
arctg x |
ATN(x) |
Х2 |
SQR(x) |
|||||||||
|x| |
ABS(x) |
Ln x
|
Ln(x)
|
|||||||||
√x |
SQRT(x) |
|||||||||||
|
Python |
|
|
|
|
|||||||
|
c=0 p ==0 a =int(i a =int(i с=a+b p=a*b print("C print(" |
nput(‘задайте число1’)) nput(‘задайте число2’)) умма чисел=",с) Меньшее число",b) |
|
Для вы функци клавиат функци |
вода данных используется я print() Для считывания вводимых с уры данных используется я input(). |
|||||||
|
Для зап использ |
иси арифметических операций уют знаки: |
|
Запись Python |
функций на языке программирования подключаются вызовом модуля math |
|||||||
sin x |
SIN(x) |
|
||||||||||
+ |
сложение |
|
||||||||||
cos x |
COS(x) |
|||||||||||
– |
вычитание |
|||||||||||
tg x |
TAN(x) |
|||||||||||
* |
умножение |
|||||||||||
arctg x |
ATAN(x) |
|||||||||||
/ |
деление |
|||||||||||
|x| |
ABS(x) |
|||||||||||
// |
целочисленное деление |
|||||||||||
√x |
SQRT(x) |
|||||||||||
% |
остаток от целочисленного деления |
|||||||||||
Х2 |
SQR(x) |
|||||||||||
== |
равенство |
Ln x |
Ln(x) |
|||||||||
|
В процессе выполнения программы исходные данные преобразуются в результаты. Константами называются элементы данных, значения которых в процессе выполнения программы не изменяются. Переменные, в отличие от констант, могут менять свои значения при выполнении программы. В программировании переменную можно понимать, как одну или несколько ячеек оперативной памяти компьютера, которым присвоено определенное имя (идентификатор). Содержимое этих ячеек может меняться, но имя переменной остается неизменным. Каждое новое значение, записанное в ячейку памяти, “затирает” предыдущее значение, поэтому в любой момент времени переменная имеет только одно, текущее, значение. В программе на языке Pascal есть строка описания типа переменных var, где указывается тип используемых в задаче чисел (integer - целые, real – дробные), на языке Python (int()- целые, float()– дробные).
Выполнение практического задания (работа в парах). Написать программу вычисления среднего арифметического трех чисел a, b, c. Проверка на экран, найти ошибку (расставить скобки)
Basic |
Pascal |
Python |
INPUT "Введите число1", а INPUT "Введите число2", b INPUT "Введите число3", с rez=a+b+c/3 PRINT "Среднее арифметическое трех чисел =", rez END |
Program Primer; var a, b, c, rez :integer; Begin readln ("Введите число1"); readln ("Введите число2"); readln ("Введите число3"); rez:=a+b+c div 3 {деление целых чисел} writeln ("Среднее арифметическое трех чисел =", rez) End. |
rez=0 a =int(input(‘задайте число1’)) b =int(input(‘задайте число2’)) b =int(input(‘задайте число3’)) rez=a+b+c print("Среднее арифметическое трех чисел=",куя) |
|
Этап рефлексии: 1 – 2 ученика рассказывают, чему научились (что узнали на уроке), остальные учащиеся дополняют их. домашнее задание
На «3» - Написать программу, вычисляющую площадь вашей комнаты.
На «4» - Написать программу, вычисляющую площадь пола + потолка + стен вашей комнаты. На «5» - Написать программу, вычисляющую площади пола + потолка + стен, с учетом комнатной двери и окна вашей комнаты. Интернет – ресурсы:
https://www.helloworld.ru/texts/comp/lang/qbasic/book/qb1_a.html https://www.helloworld.ru/texts/comp/lang/pascal/bp70_lr/lr7.html#8 https://www.helloworld.ru/texts/comp/lang/python/python2/index.htm#4 Разработка урока: «Условный оператор» в офисной программе Excel и любой язык программирования.
Цели урока:
закрепить понятия и навыки работы с условным оператором через практику.
Задачи урока:
• образовательная – формирование знаний и умений в составление разветвляющихся алгоритмических структур на языках программирования;
• развивающие – формирование у учащихся приемов логического и алгоритмического мышления; развитие познавательного интереса к предмету; развитие умения планировать свою деятельность; развитие памяти;
• воспитательные – развитие умения связывать изучение нового материала с уже известными фактами; умение работать в команде; воспитание самостоятельности, критичности, обучающихся аккуратность, ответственности за выполняемую работу.
Тип урока: изучение новых знаний
Основные организационные формы обучения на уроке:
• фронтальная работа с классом; индивидуальная работа за компьютером; работа в парах.
План урока.
1. Организационный момент.
2. Актуализация опорных знаний.
3. Закрепление пройденного материала.
4. Подведение итогов урока. Домашнее задание.
1. Организационный момент.
Приветствие, проверка присутствующих. Объявление темы и целей урока.
2. Актуализация опорных знаний.
Составьте блок-схему поговорки: “Ученье - свет, а неученье - тьма”.
Проверка на экране.
Вам знакома алгоритмическая структура «ветвление».
Вспомним, в каком случае используется алгоритмическая структура «ветвление»?
1.В каком случае в алгоритмической структуре «ветвление» выполняется последовательность команд «серия 1»?
2.В каком случае в алгоритмической структуре «ветвление» выполняется последовательность команд «серия 2»?
3.В каком случае можно использовать сокращенную форму алгоритмической структуры «ветвление»?
4.Какие знаки отношений используется в команде ветвления?
Задача: Используя возможности компьютера, определить большее из двух чисел, увеличив его в двое вывести результат на экран.
Выполняем задание в офисной программе Excel (какой функцией будете пользоваться) и любым языком программирования (предполагается, что обучаемые знакомы с синтаксисом языка и набором операторов)
Работа в парах (пересаживаются). Для проверки выводятся на экран программы, с пропущенными условиями
|
Pascal |
REM определить большее из двух чисел... INPUT "Введите а", а INPUT "Введите b", b IF a….b THEN PRINT "Большее число: ", a с=2*a ELSE PRINT "Большее число: ", b с=2*b END IF PRINT "результат: ", c END
|
Program Primer; var a, d, c:integer; Begin readln (a, b, c); if a… .b then begin writeln (‘Большее число: ‘, a); c:=2*B; end; else begin writeln ("Большее число: ", b) с=2*b end; writeln (‘результат ‘, с); End. |
Python |
|
a =int(input()) a =int(input()) c=0 if a …. b : print("Большее число", a) с=2*a else: print("Меньшее число",b) с=2*b print (‘результат ‘, с); |
|
|
Обучаемые комментируют, что надо вставить в программы вместо ….
Этап рефлексии: Какие выводы по отношению к языкам программирования сделаете?
Ответы: в ходе работы было отмечено, что интересно выполнять одно и тоже задание в разных среда. Basic с простым синтаксисом. Excel с большим набором функций, с понятной системой индикации ошибок, программа позволяет изменять формат результатов вычислений, что возможно и на языке программирования Python. Краткость и понятность кода на языках программирования Python и Pascal. На языке Pascal русскоязычный интерфейс и сообщения об ошибках. Все программы – полезные инструменты образования.
Возникали ли затруднения при выполнении задания? Оцените работу друг друга.
Домашнее задание: используя программу Excel и язык программирования (на выбор)
Уровень А (оценка 4): Дано целое число. Если оно является положительным, то прибавить к нему 1, в противном случае вычесть из него два. Вывести полученное число.
Уровень В (оценка 5 без ошибок) Даны три стороны одного треугольника и три стороны другого треугольника. Определить, будут ли эти треугольники равновеликими, т. е. имеют ли они равные площади.
Спасибо за работу, до свидания.
Интернет - ресурсы:
https://www.helloworld.ru/texts/comp/lang/qbasic/book/qb1_a.html https://www.helloworld.ru/texts/comp/lang/pascal/bp70_lr/lr7.html#8 https://www.helloworld.ru/texts/comp/lang/python/python2/index.htm#4 Разработка урока: «Программирование повторений». Циклы с параметром,
Цикл с условие (офисная программе Excel и любой язык программирования).
Цель урока:
создать условия для осознания понятия циклические структуры выявление их
особенностей. Задачи урока:
• образовательная – формирование инструментальных знаний и умений построения циклических структур;
• развивающие – формирование у учащихся приемов логического и алгоритмического мышления; развитие познавательного интереса к предмету; формирование умений сравнивать и классифицировать, находить общее и различное, сопоставлять и делать выводы; развитие памяти воспитательные – развитие умения связывать изучение нового материала с уже известными фактами; умения работать в команде; воспитание самостоятельности, критичности и ответственности за выполняемую работу.
Тип урока: изучение нового материала и его закрепление.
Основные организационные формы обучения на уроке:
• фронтальная работа с классом;
• индивидуальная работа за компьютером; работа в парах.
План урока
• Организационный момент.
• Актуализация опорных знаний.
• Закрепление пройденного материала.
• Подведение итогов урока.
• Домашнее задание.
1. Организационный момент.
Приветствие, проверка присутствующих. Объявление темы и целей урока.
Актуализация опорных знаний
Задача. Вычислить сумму 30 натуральных чисел. (демонстрируются на экране)
1 2 3
Какие алгоритмические структуры используются в предложенных блок-схемах, с какой целью она применяется?
Цифра 1 алгоритмическая структура “следование”, вычислит сумму 30 натуральных чисел? (Да, но программа длинная)
Цифра 2 алгоритмическая структура “ветвление”, в задаче нет явного условия, в зависимости от выполнения или невыполнения которого реализуется та или иная последовательность команд (серия).
Цифра 3 алгоритмическая структура «повторение» вычислит сумму 30 натуральных чисел,
т.к. лучшее качества компьютеров проявляются не тогда, когда они рассчитывают значения сложных выражений, а когда многократно, с незначительными изменениями, повторяют сравнительно простые операции. Данная операция называется циклом.
Изложение нового материала
В офисной программе Excel задача вычисления суммы 30 натуральных чисел будет выглядеть так. Заполняем ячейки столбца А от 1 до 30 (используя функция автозаполнения). В ячейку А1 занесли число один, в ячейку А2 два, выделили эти ячейки, нажали на толстую, зеленую точку в нижнем правом углу ячейки, потянули вниз, не отпуская кнопку мыши. В ячейках столбца B прописали формулу, используя функцию автозаполнения протянули вниз.
Как еще можно найти сумму чисел в диапазоне?
Для подсчета суммы можно воспользоваться встроенной функцией СУММ() Действий демонстрируется на экране.
В языках программирования команда цикла состоит из оператора цикла и тела цикла.
Оператор цикла - это его управляющая конструкция. Она определяет, сколько раз должны выполниться операторы, записанные в тело цикла, либо при каких условиях тело цикла должно повторится еще раз. Тип цикла определяется его оператором.
Существуют два основных типа циклов:
• циклы со счетчиком (с известным числом повторений);
• циклы с условием, в которых действия повторяются до тех пор, пока выполняется определенное условие или пока не будет выполнено определенное условие
Раздаточный материал – карточки с пояснениями, программы, которые обучаемые набирают и заполняют пропуски, презентуют свою работу (предполагается, что они знакомы с командами ввода, вывода выбранных языков), смена деятельности.
Basic |
|
Dim I :Integer Dim S :Integer A=0 For I=1 To … (для счетчика I от 1 до .. выполнять) S=S+… Next I Print “Cумма=”, S (ответ) |
Dim I :Integer Dim S :Integer S=0 Do While I <> … (пока счетчик I<> числа делать цикл) S=S+… I=I+1 Loop Print “Cумма=”, S (ответ)
|
Счетчик – числовая переменная, используемая как счетчик цикла. оператор For используется для организации циклов с фиксированным, заранее известным числом повторений При первом обращении к оператору for вначале определяются начальное и конечное значения, и присваивается параметру цикла начальное значение. После этого циклически повторяются следующие действия. Проверяется условие: параметр цикла <= конечному значению. Если условие выполняется, то оператор продолжает работу (выполняется оператор в теле цикла), если условие не выполняется, то оператор завершает работу и управление в программе передается на оператора, следующий за циклом. Значение параметра изменяется (увеличивается на 1) |
Тело цикла выполняется, если Условие истинно, иначе осуществляется переход на оператора, расположенный после Loop. Тело цикла выполняется до тех пор, пока Условие истинно, иначе выполнение цикла заканчивается после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз. Если первая проверка условия даст результат “ложь”, то цикл не выполнится ни разу. |
Pascal |
|
var s, i: integer; begin sum := 0; for i := 1 to … do |
var s, i: integer; begin s := 0; while i<=… do |
begin s := s + …; end; written('Сумма= ',s); end. |
begin s=s+…: i=i+1; end; written('Сумма= ',s); end. |
|
Количество повторений цикла определяется начальным и конечным значениями переменной-счетчика. Оператор For обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла: от начального до конечного. Если в теле цикла располагается более одного оператора, то они заключаются в операторные скобки begin … end; Следует знать: оператор For используется для организации циклов с фиксированным, заранее известным числом повторений; переменная счетчик должна быть порядкового типа: чаще integer, реже – char, boolean. Использование вещественного типа недопустимо; начальное и конечное значения параметра цикла могут быть константами, переменными, выражениями и должны принадлежать к одному и тому же типу данных. Начальное и конечное значение параметра цикла нельзя изменять во время выполнения цикла; параметр цикла For может изменяться (увеличиваться или уменьшаться) каждый раз при выполнении тела цикла только на единицу. Если нужен другой шаг, предпочтительнее использовать циклы с предусловием или с постусловием. |
Тело цикла – простой или составной оператор, или операторы. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin…end. Ключевые слова While и do означают соответственно "пока" и "выполнять". Когда программа в процессе выполнения впервые достигает оператора while, осуществляется проверка истинности условия. Если условие истинно, то выполняется тело цикла (оператор). После этого происходит возврат к началу фрагмента while do, где проверка условия осуществляется вновь. Цикл будет выполняться до тех пор, пока логическое выражение будет истинным. Как только логическое выражение станет ложным, управление передается следующему за циклом оператору. Если при первом выполнении цикла значение логического оператора будет "ложь", то цикл не станет выполняться, а управление сразу же передается следующему за while оператору. |
|
Pascal (repeat .. until) |
||
Var x, s:integer; Begin S:=0; Repeat s=s+…: i=i+1; until i>=…; Writeln(‘Сумма ’, s); |
Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла. Во-вторых, тем, что критерием прекращения цикла является равенство выражения константе true. За это данный оператор часто называют циклом с постусловием, так как он прекращает выполняться, как только условие, записанное после слова until, выполнится. |
|
Python |
||
s = 0 s = 0 for i in range(1, 31): while i !=30: s + =…: s += …:
print(‘Сумма ’, s) i ==1
print(‘Сумма ’, s)
Применения for к числовому промежутку, Тело цикла – простой или составной оператор, задаем диапазон, используя функцию или операторы. Когда программа в процессе range(). Оператор for обеспечивает выполнения впервые достигает оператора while, выполнение тела цикла до тех пор, пока не осуществляется проверка истинности условия. будут перебраны все значения параметра Если условие истинно, то выполняется тело
цикла: от начального до конечного+1 (range цикла (оператор). После этого происходит
() – полуинтервал) возврат к началу фрагмента while, где проверка
условия осуществляется вновь. Цикл будет выполняться до тех пор, пока логическое выражение будет истинным. Как только логическое выражение станет ложным, управление передается следующему за циклом оператору. Если при первом выполнении цикла значение логического оператора будет "ложь", то цикл не станет выполняться, а управление сразу же передается следующему за while оператору. Иногда используют бесконечный цикл while True. Например, пишут игру: она должна работать до тех пор, пока игрок из неё не выйдет. В этом случае в условии выхода нужно будет прописать break. Дополнительные задания:
Сменить значение шага на 2. Запустить ваши программы на выполнение и проанализировать результат.
Итог: Циклы, важнейшая составная часть большинства программ. В каком случае циклическое действие, которое он выполняет, будет конечным? Если существует условие, при выполнении (или невыполнении) которого цикл должен завершиться.
Этап рефлексии:
Какие возникали трудности при выполнении задания? Почему? Оцените работу друг друга Домашнее задание:
Карточка 1
Найти сумму первых n натуральных чисел (программа с одним типом циклов) - 3 балла Карточка 2
Найти сумму первых n натуральных чисел (программы с двумя основными типами циклов) - 4 балла
Карточка 3
Найти сумму всех двузначных чисел. (Excel+программы два основными типами циклов) - 5 баллов
Спасибо за работу. До свидания. Интернет-источники
https://www.helloworld.ru/texts/comp/lang/qbasic/book/qb1_a.html https://www.helloworld.ru/texts/comp/lang/pascal/bp70_lr/lr7.html#8
© ООО «Знанио»
С вами с 2009 года.