Урок-презентация «Одномерные массивы» (СПО)
Тема урока: Одномерные массивы
Цели урока: образовательные: формирование представления об одномерном массиве; рассмотреть действия, которые можно выполнить над массивами; изучение типовых алгоритмамов обработки массивов на языке Pascal; формирование умения решать алгоритмы с одномерными массивами; развивающие: создать условия для развития умений работать за ограниченный промежуток времени, развития навыков работы с конспектом. воспитательные: содействовать созданию на уроке психологического комфорта для работы, воспитанию собранности, ответственного отношения к своему труду, повышения мотивации к учебной деятельности.
Тип урока: комбинированный. Тип урока: комбинированный. Методы обучения: лекция-беседа с элементами проблемного обучения, наглядный, практический. Формы организации: фронтальная работа, беседа, индивидуальная работа. Методическое обеспечение урока: компьютерная презентация «тестовые задания на повторение пройденного материала» компьютерная презентация «одномерные массивы» компьютерная презентация «задания для первичного запоминания» компьютерная презентация «задачи базового уровня».
Устная работа на повторение предыдущего материала.
1. Чему станет равным значение переменной х, после выполнения фрагмента: If ( X >=0) and (X <=3) Then X:=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. Сколько раз выполнится цикл 5. Сколько раз выполнится цикл For I:=4 to 1 do X:= I*I; 6. Требуется подсчитать сумму чисел от 2 до 22. какое условие нужно использовать в цикле While: А) I<22; В) I<=22; Б) I>22; Г) I>=22?
7. Сколько раз выполнится цикл 7. Сколько раз выполнится цикл I:=4; While I< 6 do I:=I+3; 8. Сколько раз выполнится цикл I:=21; Repeat I:=I – 2 Until I>4;
9. Чему будет равно значение пере-менной I после выполнения фраг-мента: 9. Чему будет равно значение пере-менной I после выполнения фраг-мента: I:=2; While I<2 do I:=I+3;
10. Чему будет равно значение переменной Sum после выполне-ния фрагмента: 10. Чему будет равно значение переменной Sum после выполне-ния фрагмента: Sum:=0; I:=1; Repeat Sum:=Sum+I; I:=I-1 Until I>1;
Одномерные массивы Паскаль
Мы сегодня должны научиться: Мы сегодня должны научиться: описывать одномерный массив; заполнять одномерный массив данными; выводить одномерный массив на экран ПК; уметь применять знания при решении задач.
Понятие массива. Способы описания. Понятие массива. Способы описания. Способы задания массива (способы ввода). Вывод элементов массива на экран.
В практической деятельности человека часто используются таблицы и списки. Например: Список учеников в журнале; Список среднесуточной температуры месяца; Таблица умножения. Иванов Петров Сидоров Кошкин Мышкин 100 120 120 130 140 140 120 150 160 140 ... 180 1 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 2 2 4 6 8 10 12 14 16 18 20 3 3 6 9 12 15 18 21 24 27 30 4 4 8 12 16 20 24 28 32 36 40 5 5 10 15 20 25 30 35 40 45 50 6 6 12 18 24 30 36 42 48 54 60 Элементы списков и номера строк и столбцов всегда нумеруются
Массив – совокупность конечного числа элементов одного типа, объединенных общим именем и расположенных в памяти рядом. Массив характеризуется: количеством однотипных элементов – размерность массива Элементами, имеющими общее имя(имя массива) и одинаковый тип (тип элементов массива), а также индивидуальным порядковым номером элементов в массиве (индекс элемента массива)
Примеры: Примеры: список учеников в классе квартиры в доме школы в городе данные о температуре воздуха за год
Массив А целых чисел размерностью 5 5 10 15 20 25 1 2 3 4 5 A 3 15 НОМЕР элемента массива (ИНДЕКС) A[1] A[2] A[3] A[4] A[5] ЗНАЧЕНИЕ элемента массива A[2] НОМЕР (ИНДЕКС) элемента массива: 2 ЗНАЧЕНИЕ элемента массива: 10
Описать массив можно двумя способами 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 Z : array [2000 . . 2009] of integer; Сколько элементов в этом массиве? Какого они типа? Как они нумеруются? 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]; Допустимые операции определяются типом элемента (элемент массива ничем не отличается от обычной переменной, кроме особенного написания имени).
Способы задания элементов массива Ввод с клавиатуры ( когда они известны) Получение по формуле общей для всех элементов А[I]:=f(I) При отладке программ удобно использовать получение элементов массивов случайным образом (используя датчик случайных чисел) Замечание! Ввод, вывод, обработка элементов массива ведется в цикле !!! ( Почему?)
Ввод массива с клавиатуры For I:=1 to 5 do begin Write (‘A[’ , I , ’]=‘); Readln ( А[ I ] ); End;
Результат выполнения фрагмента А[1]=_12 A[2]=_56 A[3]=_23 A[4]=_-8 A[5]=_-4
Получение элементов массива по формуле: For I:=1 to n do A[ I ] := формула; n – размерность массива
Напишите программу получения элементов массива по формуле a[I]=I*I ; b[i]= 3*I+2 Напишите программу получения элементов массива по формуле a[I]=I*I ; b[i]= 3*I+2 Var A, В: array[1 . . 100] of real; I,N : integer; Begin write(‘введите количество элементов’); readln (n); For I:=1 to n do begin A[ I ] := I*I; B[I]:=3*I+2 End;
Ввод массива случайным образом Если по условию задачи на элементы массива не накладываются никакие условия, то элементы можно ввести применяя функцию random. Например: 1)заполнить массив двадцатью числами от нуля до ста randomize; for i:=1 to 20 do a[i]:=random(101);
2) Заполнить массив случайным образом числами от -22 до 22 randomize; for i:=1 to 20 do a[i]:=random(45)—22;
Вывод элементов массива на экран Вывод элементов массива в строку через пробел For i:=1 to n do Write ( A[ i ], ‘ ‘ ); Вывод элементов массива с форматом вывода For i:=1 to n do Write(a[i]:4); Почему Write, а не Writeln?
Первичное запоминание
1. Что называется массивом? 1. Что называется массивом? 1) Под массивом понимается совокупность конечного числа данных различных типов. 2) Под массивом понимается совокупность конечного числа данных одного типа. 3) Под массивом понимается совокупность бесконечного числа данных одного типа.
2. Является ли данная таблица массивом: А) А[ 1.2; 0.5; -9.5; ‘A’] Б) В[56; -9; 87; 45; 7.9] В) Spisok [‘Иванов ’; ‘Петров ’; ‘Сидоров’ ; ‘Степанов ’ ] Г) M[‘A’; ‘Б’; ‘B’; ‘Г’; . . . ; ‘Э’; ‘Ю’; ‘Я’]
3. Исправьте неточности в описании массива: Var A: array [1 . . 30] of integer; Var A: array [1 . . 20]; Type MAS= array [1 . . 40] of real; Var A: arrey [1 . . 50] of integer;
4. Вставьте пропущенные определение: 4. Вставьте пропущенные определение: а) одномерный массив характеризуется … б) индекс означает … в) чтобы обратиться к элементу массива нужно… г) перебор всех элементов массива при обработке производится с помощью оператора …
5. Что выполняет следующий фрагмент программы? for i:=l to n do begin write(’a[’ , i , ’] ‘); readln(a[i]); end;
6. Что может выполнять следующий фрагмент программы? 6. Что может выполнять следующий фрагмент программы? for i:=l to n do begin write(’a[i]’ , ‘ ’); end; Найдите ошибку
7. Что выполняет следующий фрагмент программы? 7. Что выполняет следующий фрагмент программы? randomize; For i:=1 to n do a[i]:=random(15)-8;
Программы базового минимума
Вычислить сумму 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.
Изменить данную программу так, чтобы находилась сумма только неотрицательных элементов. Элементы массива целые числа, размерность 15. Program Summa; var А:array [1..15] of integer; S, i :integer; {сумма целое число} Begin {ввод элементов массива А} S:=0; {сумма неотрицательных} For i:=1 to 15 do If А[i]>=0 Then S:=S+А[i]; {вывод ответа} write(‘Сумма неотрицательных элементов массива =’,S:7); readln end.
Изменить данную программу так, чтобы находилось количество неотрицательных элементов. Размерность массива 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.
Вы посетили магазин и купили 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.
Домашнее задание
Разобрать конспект лекции. О.Л. Голицина, Основы алгоритми-зации и программирования, стр. 109-113 Решить задачу: Записать на Паскале программу на-хождения произведения элементов массива.
РЕФЛЕКСИЯ