Урок-презентация «Одномерные массивы» (СПО)
Пояснительная записка к презентации
Тип урока: комбинированный.
Цели:
образовательные: способствовать формированию представления об одномерном массиве; рассмотреть действия, которые можно выполнить над массивами; познакомить с типовыми алгоритмами обработки массивов на языке Pascal; создать условия для формирования умения решать алгоритмы с одномерными массивами;
развивающие: создать условия для развития умений работать за ограниченный промежуток времени, развития навыков работы с конспектом.
воспитательные: содействовать созданию на уроке психологического комфорта для работы, воспитанию собранности, ответственного отношения к своему труду, повышения мотивации к учебной деятельности.
Планируемые результаты:
Личностные:
- проявлять положительное отношение к учебной деятельности, интерес к способам решения новых учебных задач;
- понимать причины успеха или неуспеха в своей учебной деятельности;
- формировать готовность к самообразованию и самовоспитанию;
Метапредметные:
- уметь определять цели и задачи своей деятельности;
- уметь оформлять свои мысли в устной форме;
- слушать и понимать речь других;
- выражать свои мысли с достаточной полнотой и точностью;
- осуществление поиска нужной информации;
- уметь оценивать полученный результат деятельности;
Предметные:
- умение использовать понятие «одномерный массив»;
- реализовывать типовые алгоритмы обработки одномерных массивов;
- приобрести навыки разработки алгоритма решения постановленной задачи;
- умение реализовать алгоритм на языке программирования.
Формы деятельности:
- фронтальная
- индивидуальная
- групповая
Методическое обеспечение урока:
компьютерная презентация «тестовые задания на повторение пройденного материала»
компьютерная презентация «одномерные массивы»
компьютерная презентация «задания для первичного запоминания»
компьютерная презентация «задачи базового уровня»
раздаточный материал с опорными конспектами.
План урока:
Организационный момент
Устная работа на повторение предыдущего материала. Проверка домашнего задания
Актуализация знаний и умений учащихся
Объяснение новой темы
Закрепление новой темы
- первичное запоминание;
- решение задач базового уровня.
Подведение итогов урока. Задание на дом
Рефлексия
Ход урока.
1. Организационный момент.
Преподаватель приветствует учащихся, проверяет готовность рабочего места. Студенты готовят рабочее место, настраиваются на урок.
2. Устная работа на повторение предыдущего материала. Проверка домашнего задания.
Двое студентов у доски решают домашние задачи. Остальные учащиеся работают устно (слайды 4-10). Студенты вспоминают изученный ранее материал, поясняют свои ответы, слушают ответы товарищей, исправляют ошибки. Преподаватель организует работу учащихся.
1. Чему станет равным значение переменной х, после выполнения фрагмента:
If ( X >=0) and (X <=3) Then Х:=X+1
Else X:=X+2;
если Х=3; Х=0; Х= - 3.
2. Чему станет равным значение переменной S, после выполнения фрагмента:
If X< -2 Then S:=X+1 Else
If (X>=-2)and(X<=0) Then S:=X+2
Else S:=X+3;
если Х=3; Х=0; Х= - 3.
3. Чему станет равным значение переменной S, после выполнения фрагмента:
S:=0;
For I:=1 to 5 do S:=S + sqrt (I);
4. Параметр цикла For может получить значения:
А) 1, 2, 3, 4, 5, 6, 7;
Б) 1, 3, 5, 7;
В) 2, 5, 8, 11?
5. Сколько раз выполнится цикл
For I:=4 to 1 do X:= I*I;
6. Требуется подсчитать сумму чисел от 2 до 22. Какое условие нужно использовать в цикле While:
А) I<22; В) I<=22;
Б) I>22; Г) I>=22?
7. Сколько раз выполнится цикл
I:=4;
While I< 6 do I:=I+3;
8. Сколько раз выполнится цикл
I:=21;
Repeat
I:=I – 2
Until I>4;
9. Чему будет равно значение переменной I после выполнения фрагмента:
I:=2;
While I<2 do I:=I+3;
10. Чему будет равно значение переменной Sum после выполнения фрагмента:
Sum:=0; I:=1;
Repeat
Sum:=Sum+I;
I:=I-1
Until I>1;
3. Актуализация знаний и умений, учащихся для изучения новой темы.
Разбор домашнего задания. Учащиеся проверяют решения домашних задач, записанные на доске. Оценивают рациональность и правильность решений, проводят аналогию между задачами, выявляют различия. Возможный вывод учащихся: Вторая задача аналогична первой, но более удобна для обработки большой последовательности чисел. Преподаватель организовывает диалог учащихся, координирует работу.
Задача 1. Найти сумму пяти вещественных чисел.
Program summa;
Var a, b, c, d, e, sum: real;
Begin
Readln (a, b, c, d, e); sum:=a+b+c+d+e;
Writeln(‘Summa=' , Sum:10:2)
End.
Задача 2. Найти сумму десяти вещественных чисел.
Program summa;
Var sum, a: real;
I: integer;
Begin
For i:=1 to 10 do
Begin
Write (‘введите ’, i, 'число '); Readln(a);
Sum:= Sum+a;
End;
Writeln(‘Summa=' , Sum:10:2)
End.
Вопросы ученикам: Почему этот способ удобнее? Какое число из введенных десяти останется в памяти ПК? Удобно ли это для дальнейшей обработки последовательности чисел?
Возможные ответы:
Этот способ позволяет находить сумму большого числа слагаемых, при этом задействует небольшое число переменных, что экономит память.
В памяти останется только последнее из введенных чисел.
Это не позволит использовать их для дальнейшей обработки.
4.Объяснение новой темы.
Вступительное слово преподавателя. Требуется структура, позволяющая вводить и запоминать большие последовательности данных. Учащиеся определяют, каких знаний им не хватает, определяют соответствующие учебные задачи.
Вопрос ученикам: вы изучали Basic. Давайте вспомним, имеется ли в Бейсике подобная структура?
Учащиеся вспоминают, дают возможный ответ: массив.
Итак, тема сегодняшнего урока: одномерный массив.
С помощью преподавателя студенты определяют цель урока, записывают тему, проговаривают задачи урока.
Мы сегодня должны научиться:
описывать одномерный массив;
заполнять одномерный массив данными;
выводить одномерный массив на экран ПК;
уметь применять знания при решении задач.
Учащимся предоставляется слайды презентации (слайды 12-28), опорные конспекты с основными теоретическими сведениями. Студенты работают с опорными конспектами, ведут диалог с преподавателем. Преподаватель выслушивает ответы, проводит обобщение, дополняет изучение слайдами презентации.
Одномерные массивы
Понятие массива. Способы описания.
Способы задания массива (способы ввода).
Вывод элементов массива на экран.
I. Понятие массива. Способы описания.
Студенты вспоминают материал, определяют по опорным конспектам понятие массива, способы его описания, основные характеристики массива, приводят примеры массивов.
Массив – совокупность элементов одного типа, объединенных общим именем и расположенных в памяти рядом.
Массив характеризуется:
количеством однотипных элементов – размерность массива
Элементами, имеющими общее имя(имя массива) и одинаковый тип (тип элементов массива),
а также индивидуальным порядковым номером элементов в массиве (индекс элемента массива)
Преподаватель: прежде, чем использовать переменную, ее надо описать. Учащиеся вспоминают, как описать переменные в программе, в каком разделе описываются переменные. Затем по опорным конспектам определяют: как описать одномерный массив?
II. Описать массив можно двумя способами
1) TYPE MAS=ARRAY [n . . k] of тип;
VAR Имя: MAS;
ARRAY – служебное слово, описывающее массив
n – начальный индекс, k– конечный индекс
Тип — тип элементов массива
Подчеркнутое можно заменить другим идентификатором
2) VAR имя: ARRAY [n . . k] of тип;
Примеры:
Var A : array [1 . . 10] of real;
Создается массив с именем А из действительных чисел (real), с нумерацией от 1 до 10 (всего 10 элементов).
Var M : array [-5 . . 5] of integer;
Сколько элементов в этом массиве? Какого они типа? Как они нумеруются?
Var Z : array [2000 . . 2009] of real;
Сколько элементов в этом массиве? Какого они типа? Как они нумеруются?
Type Mass =array [5 . . 15] of char;
Var R, T: Mass;
Преподаватель задает вопросы: Сколько элементов в этом массиве? Какого они типа? Как они нумеруются? Учащиеся вспоминают, используют опорные конспекты, отвечают на вопрос: как обратиться к элементу массива?
Использование элемента массива
Для использования элемента указывается имя массива и в квадратных скобках индекс этого элемента.
Примеры:
Read(A[1]);
A[3]:=(2 * x + 6);
A[4]:=A[1]+A[2];
Допустимые операции определяются типом элемента (элемент массива ничем не отличается от обычной переменной, кроме особенного написания имени).
Преподаватель ставит проблему: Прежде чем работать с таблицей ее нужно заполнить данными, как это можно сделать? Учащиеся предлагают способы ввода элементов массива. Преподаватель слушает ответы, делает обобщение и выводы.
Способы задания элементов массива (способы ввода)
Мы можем ввести элементы с клавиатуры ( когда они известны)
Мы можем получить элементы по формуле общей для всех элементов a[I]:=f(I)
При отладке программ нам было бы удобно использовать получение элементов массивов случайным образом (используя датчик случайных чисел)
Замечание! Ввод, вывод, обработка элементов массива ведется в цикле !!!
Преподаватель дает задание: ввести с клавиатуры элементы массива, размерностью, равной 5.
Учащиеся вспоминают оператор ввода, цикл for, приводят примеры заполнения массива по одному элементу с клавиатуры. Ведут записи в тетради, вступают в диалог с учителем (выполняя задания), анализируют, сравнивают и обобщают факты, выявляют причины, осознают возникшие интеллектуальные затруднения.
Ввод массива с клавиатуры
Var A: array[1..5] of integer;
I : integer;
Begin
{ввод элементов массива}
For I:=1 to 5 do
begin
Write (‘введите элемент массива A[’, I,’]=‘); Readln ( А[ I ] );
End;
Преподаватель ставит задачу: как задать элементы массива по заданной формуле, закону? Учащиеся предлагают свои решения. Преподаватель выслушивает предложения, помогает сделать обобщенный вывод.
Получение элементов массива по формуле:
Var A: array[1 . . 100] of real;
I, n : integer;
Begin
write(‘введите количество элементов’); readln (n);
For I:=1 to n do
A[ I ] := формула;
Преподаватель: Мы уже говорили, что задать массив можно случайным образом. Это удобно для отладки и тестирования программы. Если нам указан диапазон чисел, можем ли мы автоматически ввести числа из диапазона, если массив большой размерности? Как это реализовать на практике? Учащиеся предлагают свои решения. Преподаватель задает задания, выслушивает предложения, учащиеся дополняют опорный конспект.
Ввод массива случайным образом
Например: 1)заполнить массив двадцатью числами от нуля до ста
Var a: array[1 . . 20] of integer;
begin
randomize;
for i:=1 to 20 do
a[i]:=random(101);
end.
2) Заполнить массив случайным образом числами от -22 до 22
randomize;
for i:=1 to 20 do
a[i]:=random(45)—22;
Преподаватель ставит задачу: как вывести элементы массива? Учащиеся предлагают свои решения, вспоминают ранее изученный материал, работают с опорным конспектом. Выслушивают ответы товарищей, вносят свои поправки.Преподаватель выслушивает предложения, помогает сделать обобщенный вывод.
III. Вывод элементов массива на экран
1. Вывод элементов массива в строку через пробел
For i:=1 to n do Write ( A[ i ], ‘ ‘ );
2. Вывод элементов массива с форматом вывода
For i:=1 to N do Write(a[i]:4);
5. Закрепление новой темы:
1. Первичное запоминание - фронтальный опрос: учащимся предлагаются (слайды 30--36 ) тестовые задания для первичного осмысления и запоминания новой темы. Учащиеся работают устно. Студенты изученный на уроке материал, поясняют свои ответы, слушают ответы товарищей, исправляют ошибки. Преподаватель организует работу учащихся.
1. Что называется массивом?
1) Под массивом понимается совокупность конечного числа данных различных
типов.
2) Под массивом понимается совокупность конечного числа данных одного типа.
3) Под массивом понимается совокупность бесконечного числа данных одного типа.
2. Является ли данная таблица массивом:
А) [ 1.2; 0.5; -9.5; ‘A’]
Б) [56; -9; 87; 45; 7.9]
В) [‘Иванов ’; ‘Петров ’; ‘Сидоров’ ; ‘Степанов ’ ]
Г) [‘A’; ‘Б’; ‘B’; ‘Г’; . . . ; ‘Э’; ‘Ю’; ‘Я’]
3. Исправьте неточности в описании массива:
Var A= array [1 . . N] of integer;
Var A= array [1 . . 20];
Type MAS= array [1 . . N] of real;
Var A: arrey [1 . . N] of integer;
4. Вставьте пропущенные определение:
а) одномерный массив характеризуется …
б) индекс означает …
в) чтобы обратиться к элементу массива нужно…
г) перебор всех элементов массива при обработке производится с помощью
оператора …
5. Укажите правильное описание массива.
A. Var a: array[l . .1000] of integer,
Б. Var А, В,С: ARRAY [1 .. 50] OF REAL;
B. Var A: ARRAY [1..50 OF REAL];
6. Что выполняет следующий фрагмент программы?
for i:=l to n do
begin
write(’a[’ , i , ’] ‘); readln(a[i]);
end;
7. Что может выполнять следующий фрагмент программы?
for i:=l to n do
begin
write(’a[i]’ , ‘ ’);
end;
Найдите ошибку
8. Что выполняет следующий фрагмент программы?
randomize;
write( ‘число элементов ‘);
readln(n);
For i:=1 to n do
a[i]:=random(15)-8.
Решение задач базового уровня. (слайды 38-41)
Преподаватель ставит задачи. Студенты включаются в тренировочную деятельность, работают в парах и фронтально. Идет обсуждение возможных решений задач. Преподаватель выслушивает, обобщает. Ребята записывают решение в тетради, сверяют предложенное решение с решением на слайде. Преподаватель корректирует работу.
Задача 1. Вычислить сумму 10 чисел, используя массив.
Учитель вместе с классом разбирает решение задачи. Основные моменты решения предоставляются на слайде. Затем учащиеся записывают решение в тетради.
Program Summa;
var a:array [1..10] of real;
S:real; {сумма вещественное число}
i:integer; {счетчик цикла}
Begin {вводим массив}
writeln (‘введите элементы массива’);
For i:=1 to 10 do readln (a[i]);
S:=0; {подсчет суммы}
For i:=1 to 10 do S:=S+a[i];
writeln; {вывод ответа}
write(‘Сумма всех элементов массива =’,S:7:2); readln
end.
Задача 2. Изменить данную программу так, чтобы находилась сумма только неотрицательных элементов. Элементы массива целые числа, размерность 15.
С учащимися обговариваются основные изменения, которые будут внесены в решение. Затем один учащийся записывает решение на доске, либо учащиеся самостоятельно записывают решение в тетрадях с последующей проверкой (решение записано на слайде).
Program Summa;
var А:array [1..15] of integer;
S, i, n :integer; {сумма целое число}
Begin
{ввод элементов массива А}
S:=0; {сумма неотрицательных}
For i:=1 to 15 do
If А[i]>=0 Then S:=S+А[i];
{вывод ответа}
write(‘Сумма неотрицательных элементов массива =’,S:7); readln
end.
Задача 3. Изменить данную программу так, чтобы находилось количество неотрицательных элементов. Размерность массива 15, тип целочисленный, массив заполняется случайным образом числами от -7 до 7.
С учащимися обговариваются основные изменения, которые будут внесены в решение. Затем один учащийся записывает решение на доске, либо учащиеся самостоятельно записывают решение в тетрадях с последующей проверкой (решение записано на слайде).
Program Kolichestvo;
var a: array [1..15] of integer;
kol, i :integer;
Begin
{заполняем массив случайным образом}
Randomize; For i:=1 to 15 do a[ i ]= random(15) – 7;
{поиск неотрицательных чисел }
kol:=0;
For i:=1 to 15 do
If a[i] >= 0 Then kol:= kol+1;
{вывод ответа}
If kol = 0 Then writeln(‘Неотрицательных чисел нет’)
Else writeln(‘неотрицательные числа в массиве встречаются’ , kol , ‘раз’); readln
end.
Задача 4. Вы посетили магазин и купили 10 видов товара. В таблицу T[1..10] вы записали количество купленного товара каждого вида. В таблицу C[1..10] записали цены единиц каждого вида товара соответственно. Составьте на Паскале программу вычисления общей стоимости всех покупок.
С учащимися обговариваются основные решения. Затем один учащийся записывает решение на доске (решение записано на слайде).
Program stoimost;
var T, C: array [1..10] of real;
i :integer;
S: real;
Begin
{заполняем массивы T и С}
S:=0; {вычисление общей стоимости}
For i:=1 to n do S:=S+T[i]*C[i];
{вывод ответа}
Writeln; Writeln (‘ Общая стоимость’ , S , ‘рублей ’)
end.
Преподаватель предлагает учащимся подвести итоги урока. Учащиеся называют тему урока, какие были поставлены цели, достигнуты ли цели урока, соответствуют ли цели полученным результатам. Вспоминают возникшие затруднения. Рефлексируют (слайд 45 ).
Итоги урока:
Итак, мы узнали все основные моменты, касающиеся понятия «массив», закрепили навыки создания, описания и обработки массивов. А так же увидели, как можно применить все полученные знания к решению задачи. Вот именно из таких небольших фрагментов и состоят большие программы, работающие и помогающие людям в реальной жизни.
Преподаватель задает домашнее задание:
Проработка конспекта лекции.
Изучение темы лекции в учебнике О.Л. Голицина, Основы алгоритмизации и программирования.
Решить задачу: записать на Паскале программу нахождения произведения
элементов массива.
Преподаватель выставляет оценки, благодарит студентов за работу на уроке.