Конспект урока по информатике Дата проведения

Вид материалаУрок

Содержание


Массивы, элементы которых однозначно определяются одним индексом
Хусаинова, какие типы элементов массива мы знаем?
Type м=array [1..10] of integer
Var rez:m
Практическая работа на закрепление одномерных массивов.
Подобный материал:
Конспект урока по информатике

Дата проведения: 11.11.11

Класс: 10а

Тип урока: Применение полученных знаний

Тема урока: Обработка одномерного массива. Решение задач.

Программно-дидактическое обеспечение: ПК. Локальная сеть. ОС Windows XP, Turbo Pascal.

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

Требования к знаниям и умениям:

Учащиеся должны знать: алгоритм по обработке одномерного массива.

Учащиеся должны уметь:
  • выполнять разработку алгоритма (программы) по обработке одномерного массива;
  • применять свои знания на практике.

Технические и программные средства:
  • Персональные компьютеры;
  • Проектор

План занятия
  1. Организационный момент.1 мин
  2. Постановка целей и задач занятия. Ознакомление с планом занятия. 1 мин
  3. Повторение материала, изученного на прошлом уроке. 10 мин
  4. Решение задач основных типов. 15 мин
  5. Практическая работа на закрепление одномерных массивов (самостоятельное выполнение): 15 мин
  6. Подведение итогов. Выставление оценок. 3 мин

Ход урока

Повторение одномерного массива.

Итак, ребята, кто может напомнить классу, что такое массив? Никто не помнит?

Массивом называется совокупность элементов одинакового типа. Число элементов в массиве называется размерностью массива; каждый элемент массива задается своим порядковым номером в массиве – так называемым индексом.

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

Для создания типа массивов в языке Pascal используются служебные слова TYPE и ARRAY, позволяющие создать пользовательский тип данных «Массив». Каждому типу массивов присваивается собственное имя; элементы, относящиеся к данному массиву, описываются в операторе VAR как переменные его типа.

Ввод и вывод элементов массива осуществляется в циклах. Индексы элементов массивов записываются в квадратных скобках.

Какие массивы называются одномерными?

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

Напомню вам : Язык Pascal допускает описание в программах одномерных массивов в следующем виде:

TYPE <Имя_типа_массива>=ARRAY [<Диапазон_индексов>] OF <Тип>,

где TYPE - служебное слово, используемое для создания пользовательского типа данных;

ARRAY … OF - служебные слова для описания массивов .

Имя типа массива - задаваемое пользователем имя типа массива (требования к именам типов совпадают с требованиями к именам переменных);

Диапазон индексов – диапазон изменения индексов массива. В качестве данного диапазона может выступить любой порядковый тип, кроме LONGINT. Чаще всего используют тип-диапазон, в котором задают границы изменения индексов;

Хусаинова, какие типы элементов массива мы знаем?

Ответ: Тип - тип элементов массива, например, REAL, INTEGER, CHAR и др.

Хорошо, молодец. Итак, Бобков, выйди к доске и напиши нам примеры описания типа массивов.

Примеры описания типа массивов:

TYPE М=ARRAY [1..10] OF INTEGER;
TYPE AR=ARRAY [0..15] OF REAL;
TYPE VТ=ARRAY [-5..5] OF SINGLE; 
TYPE GRUP=ARRAY [1..27] OF STRING[10].

Поясняю: Переменные, относящиеся к тому или иному типу массивов, должны быть соответственно объявлены в разделе описания переменных.

Например:

VAR REZ:M; 
VAR P:AR; 
VAR A:VТ; 
VAR FIO:GRUP.

Можно также описать переменную как непосредственно имеющую тип массива, например:

VAR REZ:ARRAY [1..10] OF INTEGER;

При обращении к элементам массива в тексте программы обязательно требуется указывать их порядковый номер в массиве, например, REZ[1], POLE[0], A[5], FIO[i] (где i принадлежит диапазону изменения индексов массива).

Основные задачи по работе с одномерными массивами:
  • Нахождение минимального (максимального) элемента массива;
  • Нахождение суммы (произведения) элементов массива;
  • Нахождение количества элементов массива по определенному условию;
  • Упорядочивание элементов массива по убыванию (возрастанию).
  • Решение задач основных типов.

Рассмотрим перечисленные типы задач на следующих примерах.

Пример 1. Нахождение наибольшего элемента в массиве

Известно, что 16 детишек ясельной группы разобрали все кубики. Определить у какого ребенка наибольшее количество кубиков.

Для описания списка количества кубиков у детишек воспользуемся типом массива KUB, для задания количества кубиков каждого из ребенка – переменной SOTR. Количество кубиков вводиться с клавиатуры.

Текст программы к приведенному примеру:

Program pr2; 
Type KUB=array[1..16] of real; 
Var i:integer;

sotr:KUB; 
Max: real;

Begin 
For i:=1 to 16 do 
Begin 
Writeln (‘Введите количество кубиков ’, i,’ –го ребенка, шт.’); 
Readln(sotr[i]); 
End; 
Max:=sotr[1]; 
For i:=2 to 16 do if maxWriteln(‘Наибольшее количество кубиков=’,max:10:2,’ шт.’); 
End.

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

Аналогично может быть найден и наименьший элемент в массиве. Для этого достаточно заменить в изложенной программе условие maxsotr[i], где i меняется от 1 до 1 до 16, min – переменная типа REAL.

Пример 2. 1. Пусть дан массив A, состоящий из n элементов: a1, a2, a3, …, an. Нужно найти их сумму, т.е. S=a1+a2+a3+…+an.

Нахождение суммы есть последовательное нахождение суммы по формулам:

S=0 S=S+a2 … S=S+ai S=S+an

S=S+aS=S+a

Даю вам 3 минуты. Составьте блок-схему…Каримова, выйди и нарисуй на доске.(Замечания: ошибки в порядке расположения элементов)

Пример 3. Дан одномерный массив. Упорядочить его элементы в порядке возрастания. { Сортировка массива выбором (в порядке возрастания) . Идея решения: пусть часть массива (по K-й элемент включительно) отсортирована. Нужно найти в неотсортированной части массива минимальный элемент и поменять местами с (K+1)-м }.

Program Sortirovka;
Var N, I, J, K, Pr : Integer; A : Array [1..30] Of Integer; 
Begin  
Write('Введите количество элементов: '); 
ReadLn(N); 
For I := 1 To N Do 
Begin 
Write('Введите A[', I, '] ');
Readln(A[I]); 
End; 
WriteLn; 
For I := 1 To N - 1 Do 
Begin 
K:= I; 
For J := I + 1 To N Do 
If A[J] ; 
Pr := A[I]; 
A[I] := A[K]; 
A[K] := Pr; 
End; 
For I := 1 To N Do 
Write(A[I], ' '); 
End.
Тест: N = 10; элементы массива - 1, 2, 2, 2, -1, 1, 0, 14, 5, 3.
Ответ: -1, -1, 0, 1, 2, 2, 2, 3, 5, 14.

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

 Задание 1: Определить результат выполнения алгоритма, представленного в виде блок-схемы:

Задание 2:Найти ошибки в написании программы:

Program pr_2:
Var mas:array[1..13] of real;

I:integer;
Min:real;

Begin

For I:=1 to 13 do

Begin Write(‘введите элемент массива’);

Readln(mas[i]);

End:
Max:=mas[6]; min:=mas[12];
For I:=7 to 8 do
If maxFor I:=1 to 2 do
If min>mas[i] then min:=mas[i];
Writeln(‘самая высокая температура летом’, max);
Writeln(‘самая низкая температура зимой’, min);

End.

Задание 3: В массиве а1, а2, ..., а50 определить количество нулей.

Подведение итогов. Выставление оценок.