Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Другие методич. материалы / Уроки для 10 класса по теме "Массивы"

Уроки для 10 класса по теме "Массивы"

Идёт приём заявок на самые массовые международные олимпиады проекта "Инфоурок"

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

1. Бесплатные наградные документы с указанием данных образовательной Лицензии и Свидeтельства СМИ;
2. Призовой фонд 1.500.000 рублей для самых активных учителей;
3. До 100 рублей за одного ученика остаётся у учителя (при орг.взносе 150 рублей);
4. Бесплатные путёвки в Турцию (на двоих, всё включено) - розыгрыш среди активных учителей;
5. Бесплатная подписка на месяц на видеоуроки от "Инфоурок" - активным учителям;
6. Благодарность учителю будет выслана на адрес руководителя школы.

Подайте заявку на олимпиаду сейчас - https://infourok.ru/konkurs

  • Информатика

Поделитесь материалом с коллегами:

hello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m625833f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifhello_html_m2a7690f7.gifПояснительная записка


В нашей школе предмет информатики ведется в 10-11 классах (по 2 часа в неделю), всего на курс отводится 136 часов, из них на изучение программирования - 60 часов.

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

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

В курсе программирования одно из основных мест занимает тема «Массивы», так как на основе обработки табличных величин построена основная масса программ. Поэтому для подробного рассмотрения взята эта тема.

  1. В.Б. Попов, “TurboPascal для школьников», М. «Финансы и статистика», 1996г.

  2. В.В. Фаронов, “TurboPascal 7.0. Начальный курс. Учебное пособие”, изд. “Нолидж”,1997г.

  3. В.Н. Пильщиков, “Сборник упражнений по языку Паскаль”, М. “Наука”, 1989г.

Тематическое планирование

Тема

Всего

часов

Лекции

Практика


Тема: Массивы

1.Понятие массива. Размерность массива. Одномерный массив.

2.Обработка элементов одномерного массива.

3.Сортировка одномерного массива

4.Двухмерные массивы.

5.Обработка двухмерных массивов.

6.Контрольная работа



18


2


2

4

2

6

2


7


1


1

2

1

2




11


1


1

2

1

4

2











Тема: МАССИВЫ

Занятие 1 (2 урока)

Тема: Понятие массива. Размерность массива.

Одномерный массив.


Цель урока: Учащиеся должны усвоить понятие массива и

научиться формировать одномерный массив

тремя способами.


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

Массив – это упорядоченный набор величин, обозначаемых одним именем, доступ к элементам массива осуществляется по их номерам (индексам). Элементами массива могут быть данные любого типа, включая структурированные, но в одном массиве могут храниться данные только одного типа (real, integer, string, char и пр.). Число элементов массива и их тип фиксируется при описании массива и в процессе выполнения программы не меняется.

Количество индексов определяет размерность массива.

Массив может быть одномерный (один индекс), еще его называют линейным;


5 8 14 0 -12,5 45 3


А значения элементов; А(1)=5; А(5)= -12,5;

1 2 3 4 5 6 7

индексы элементов


двухмерным (два индекса), это таблица или матрица;


-2 54 128 31 5 -78 23



512 41 -4,81 32 -7 2,7 -4



12 6,2 -5,1 78 21 8,3 0

1 2 3 4 5 6 7

1 В(2,5)= -7

В 2 В(1,7)= 23


3 В(3,1)= 12


трехмерным (три индекса) и т.д. Размерность массива ограничена только объемом памяти конкретного компьютера.

Необходимо четко разделить два понятия: индекс элемента и значение элемента.


2.Массивы описываются в разделе описания переменных, при этом описание массива включает описание типа элементов массива, его размер и тип индексов. Формат записи:

type

<имя типа> = array[тип индекса] of <тип компонента>;

var

<идентификатор, ...>: <имя типа>;

Массив может быть описан и без представления типа в разделе описания типов данных:

var

<идентификатор, ...> : array [тип индекса] of <тип компонента>;



Примеры:

var

A : array [1..7] of real; {одномерный массив из 7 элементов}

B : array [1..3,1..7] of real; {двухмерный массив из 3 строк и 7 столбцов}

Massiv : array [1..100,1..70] of integer; {двухмерный массив 100х70}

Spisok : array [1..200] of string; {линейный массив из 200 элементов}


Для описания массива можно использовать предварительно определенные константы:

const

n=1000; k=60;

var

massiv : array [1..n,1..k] of real;


3.Операции по вводу, выводу и обработке массива требуют перебор всех или некоторых элементов. Это удобно делать через оператор цикла, где в цикле задаются индексы элементов.

Для примера возьмем одномерный массив Mas[1..50], тип элементов real.


program p1;

const maxN=50;


{описание переменных}

var

mas : array [1..maxN] of real;

i : integer; {счётчик}

begin


{ввод значений всех элементов массива с клавиатуры}

for i:=1 to maxN do

begin

write(‘введите значение mas[’,i,’]=’);

read(mas[i]);

end;


{заполнение массива случайными числами}

for i:=1 to maxN do

mas[i]:=random(100); {значение интервала определяется

постановкой задачи}


{если в массив вводятся не все элементы, то целесообразнее задать какой-либо ограничитель ввода, например, окончание ввода элементов при mas[i]=0, а затем вводить значения и одновременно подсчитывать количество введенных элементов}

i:= 0;

while mas[i]<>0 do

begin

i:=i+1;

write('введите элемент массива N[',i,']');

read(mas[i]);

end;

writeln(‘всего введено ’,i,’ значений’)


{вывод массива на экран в столбик }

for i:=1 to maxN do

writeln(mas[i]);

{вывод массива на экран с строчку в заданном формате}

for i:=1 to maxN do

write(mas[i]:8:2);





Практическая работа: сформировать массив с помощью арифметической прогрессии, где А[i]=A[i-1]+A[i-2], значения А[1] = 0, A[2] = 2 и вывести его на экран в строчку и в столбик.


Задание на дом: 1.составить программу формирования массива из 50 элементов, в которой используется признак Р, в зависимости от значения которого реализовывался бы один из способов задания массива: при Р= -1 с помощью генератора случайных чисел, при Р=0 с помощью формулы А[i] = i +101, при Р=1 с клавиатуры. Сделать вывод сформированного массива на экран.

2*.(дополнительно) Напечатать таблицу Пифагора, заполнив её по столбцам.




Занятие 2 (2 урока)


Тема: Обработка элементов одномерного массива


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


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


  1. На основе уже сформированного массива (из домашней работы) рассмотрим способы обработки всех элементов массива. Рассмотрим следующие примеры организации работы с массивами:

  1. Подсчитать сумму всех элементов и вычислить среднее арифметическое значение элементов массива.

  2. Подсчитать количество элементов массива, значения которых больше (меньше) заданного числа К.

  3. Заменить все положительные элементы массива на 0, а остальные вывести на экран.

  4. Найти максимальный (минимальный) элемент массива и его индекс. Вывести на экран массив с выделенными другим цветом максимумом и минимумом.


{описание переменных и ввод массива см домашнюю задачу, но необходимо описание еще переменных}

program p2;

uses crt;

const maxN=50;

var

mas : array [1..maxN] of real;

i , S, n, n1: integer;

SrAr, k, max, min: real;

begin

for i:=1 to maxN do

mas[i]:=random(100);


{1.нахождение суммы S всех элементов массива и ср. арифм }

S:=0;

for i:=1 to maxN do

S:=S+mas[i;];

SrAr:=S/i;

Writeln(‘среднее арифметическое значение элементов массива ’,SrAr);


{2.подсчет количества элементов, больших К}

write(‘введите значение К ’);

read(k);

n:=0;

for i:=1 to maxN do

if mas[i]>k then n:=n+1;


{3. Замена положительных элементов на 0, а остальные выводятся на экран}

for i:=1 to maxN do

if mas[i]>0 then mas[i]:=0 else writeln(‘mas[‘,i,’]=’,mas[i]);


{4. Поиск максимального и минимального значения элемента массива и его

индекса}

max:=mas[1]; {в переменной max будет максимальное значение}

min:=mas[1]; {в переменной min будет минимальное значение}

n:=1; {в переменной n будет индекс максимального элемента}

n1:=1; {в переменной n1 будет индекс минимального элемента}

for i:=1 to maxN do

begin

if mas[i]>max then

begin

n:=i;

max:=mas[i];

end;

if mas[i]

begin

n1:=i;

min:=mas[i];

end;

end;

writeln(‘максимальный элемент массива mas[’,n,’]=’,max);

writeln(‘минимальный элемент массива mas[’,n1,’]=’,min);


{вывод массива, в котором выделены другим цветом максимальные и

минимальные элементы}

textcolor(5);

for i:=1 to maxN do

begin

if mas[i]=max then textcolor(10);

if mas[i]=min then textcolor(11);

end;

write(mas[i]:8:2);



Практическая работа:

  1. Вывести на экран номера элементов массива, значения которых равны заданному числу М, а сами значения из массива удалить.

  2. В массиве все элементы, значения которых равны 0, заменить на их индекс; все отрицательные элементы заменить на модуль этих чисел; значения положительных элементов увеличить в 5 раз. Все действия сделать в одном цикле. Новый массив вывести на экран, выделив эти 3 группы элементов разным цветом.

  3. Из одного массива сделайте два массива, в один из которых попадут элементы с нечетными индексами, а в другой – с четными.



Задание на дом: Вывести на экран массив, выделив разными цветами следующие участки: до первого минимального элемента, от первого минимального элемента до последнего максимального элемента, от максимального элемента до конца массива.






Занятие 3 (2 урока)


Тема: Сортировка элементов одномерного

массива


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


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


2.На основе уже сформированного массива (из домашней работы) рассмотрим одну из основных операций по обработке массива – его сортировку.


Сортировка – один из наиболее распространенных процессов современной обработки данных. Сортировкой называется распределение элементов множества по группам в соответствии с определенными правилами.

Рассмотрим два метода сортировки одного и того же массива. Для сравнения эффективности разных методов введем целую переменную А, значения которой будет равно числу итераций (повторов просмотра массива).


3.Линейная сортировка(сортировка отбором).

Идея линейной сортировки заключается в том, чтобы , последовательно просматривая весь массив, отыскать наибольшее число и поместить его на первую позицию, обменяв его с элементом, который ранее занимал первую позицию. Затем просматриваются все остальные элементы массива и выполняется аналогичная операция по отбору из рассматриваемой части массива максимального элемента и обмену местами этого элемента и первого в рассматриваемой части и т.д.


program Sort_Lin;

uses crt;

const maxN=50;

var

mas : array [1..maxN] of real;

i,j,a:integer;

n: real;

begin

clrscr;

{ввод массива и вывод на экран исходного массива}

for i:=1 to 50 do

begin

mas[i]:=random(100);

write(mas[i]:8:2);

end;

writeln;writeln;

a:=0;

{сортировка отбором}

for i:=1 to maxN-1 do {изменять размер неотсортированной части массива}

for j:=i+1 to maxN do {сравниваем поочередно i-й элемент неотсортированной части

массива со всеми от i+1-го до конца }

begin

a:=a+1;

if mas[i]{если в неотсортированной части массива нашли элемент, больший

чем i-ый, то обменять их местами}

begin

2



1 3

{обмен элементов местами}

I+1

i

n:=mas[i];

n

mas[i]:=mas[j];

mas[j]:=n;

end;

end;

{контрольный вывод на экран}

for i:=1 to maxN do

write(mas[i]:8:2);

writeln('a=',a);

readln;

end.


4.Сортировка методом пузырька.

Этот метод основан на том, что в процессе исполнения алгоритма более «легкие» элементы массива постепенно «всплывают». Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Если соседние элементы таковы, что элемент справа больше, чем элемент слева, то выполняется обмен значениями этих элементов. Рассматриваем на примере уже введенного массива (см выше), поэтому ввод массива и описание переменных не делаем.




сортировка пузырьком}

a:=0;

for i:=1 to maxN do

begin

for j:=maxN downto i do

begin

a:=a+1;

if mas[j-1]

begin

n:=mas[j-1];

mas[j-1]:=mas[j];

mas[j]:=n;

end;

end;

end;

for i:=1 to maxN do

write(mas[i]:8:2);

writeln('a=',a);

end.


Практическое задание: Набрать и отладить программу для сортировки массива двумя способами. (Массив на 50 элементов сформировать из случайных чисел). Проверить по числу итераций, какой способ более эффективен.


Задание на дом: составить алгоритм и программу для сортировки массива по следующему принципу следования элементов: максимальный, минимальный, второй по величине, предпоследний и т.д.


Занятие 4 (2 урока)


Тема: Практическая работа по теме «Сортировка

элементов одномерного массива»


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


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


2.Для практической работы предлагаются следующие задачи:

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

  2. Справочник содержит упорядоченный список из 100 номеров телефонов. Телефонная станция выделила еще один телефонный номер. Требуется внести этот номер в справочник так, чтобы список остался упорядоченным. (Замечание: Новый список можно рассматривать как таблицу из 101 элемента, первые 100 элементов которой – номера исходного списка).


Домашнее задание: Предложите еще какой-нибудь свой способ сортировки массива.




Занятие 5 (2 урока)


Тема: Понятие двухмерного массива.

Формирование двухмерного массива.


Цель урока: Учащиеся должны получить общее представление о

двухмерном массиве и способах его формирования.


  1. Понятие двухмерного массива.

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

Например: А[4,5] – элемент массива А, который находится в 4 строке и в 5 столбце.


Описание двухмерных массивов осуществляется так же, как и одномерных, в разделе описания типов данных:

var

B : array [1..3,1..7] of real; {двухмерный массив из 3 строк и 7 столбцов}

Massiv : array [1..100,1..70] of integer; {двухмерный массив 100х70}

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

Для примера возьмем двухмерный массив M[1..50,1..70], тип элементов real.


program p1;

const maxN=50;

maxS=70;

{описание переменных}

var

m : array [1..maxN,1..maxS] of real;

i,j : integer; {счётчики}

begin


{ввод значений всех элементов массива с клавиатуры}

for i:=1 to maxN do

for j:=1 to maxS do

begin

write(‘введите значение mas[’,i,j,’]=’);

read(mas[i,j]);

end;


{заполнение массива случайными числами}

for i:=1 to maxN do

for j:=1 to maxS do

mas[i,j]:=random(100); {значение интервала определяется

постановкой задачи}

3.Выво массива на экран производится аналогично вводу

{вывод массива на экран в виде таблицы в заданном формате }

for i:=1 to maxN do

begin

for j:=1 to maxS do

write(mas[i,j]:8:2);

writeln; {это оператор для перехода на другую строку}

end;


Практические задания:

  1. Сформировать двухмерный массив D[1..30,1..20] случайными значениями.

  2. Вывести массив на экран в виде таблицы.

  3. Вывести массив на экран так, чтобы четные(2,4,6 ...) колонки и нечетные (1,3,5...) колонки были разного цвета.


Задание на дом: Написать программу для вывода на экран из всего массива только заданного столбца (вывод в столбик) или заданной строки (вывод в строчку).



Занятие 6 (2 урока)


Тема: Обработка элементов двухмерного массива


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


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


2.Практическое задание:Для рассмотрения данной темы предлагаются следующие задачи (на основе уже сформированной матрицы M[1..50,1..50]):

  1. Умножить матрицу на число А.

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

  3. Сборник упражнений В.Н. Пильщикова, № 9.10 - 9.12


3.Домашнее задание: 1.Сборник упражнений В.Н. Пильщикова, № 9.31


Занятие 7 (2 урока)


Тема: Обработка элементов двухмерного

массива (продолжение)


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


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


2.Практическое задание:Для рассмотрения данной темы предлагаются следующие задачи (на основе уже сформированной матрицы M[1..50,1..50]):

  1. Вывести матрицу в строку по спирали.

  2. Определить, лежит ли заданный элемент К на главной диагонали, на побочной диагонали.



3.Домашнее задание: 1. Из двухмерного массива сформировать два одномерных массива, причем в один записываются элементы матрицы, расположенные на главной диагонали и выше, в другой – лежащие ниже главной диагонали.


Занятие 8 (2 урока)


Тема: Обработка элементов двухмерного

массива (продолжение)


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


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


2.Практическое задание:Для рассмотрения данной темы предлагаются следующие задачи (на основе уже сформированной матрицы M[1..50,1..50]):

  1. Вычислить сумму элементов массива, индексы которых составляют в сумме заданное число К.

  2. Попов, TP, стр.217, №32(а-к)


3.Домашнее задание: 1. Доделать оставшиеся задания из задачи №32.





















Занятие 9 (2 урока)


Тема: Контрольная работа по теме «Массивы»


Вариант I

  1. Сформировать одномерный массив А[1..40], элементами массива являются значения функции y = cos(2x+5)/(x+2.3), значения аргумента х задать случайными числами в диапазоне [-1..20].

  2. Дополнить программу строками, с помощью которых осуществляется поиск максимального значения среди элементов с А[5] по А[15].

  3. Сформируйте из значений функции двухмерный массив B[1..2,1..40], элементы B[1,k] представляют собой значения функции, а элементы B[2,k] – остаток от деления нацело.

  4. Упорядочить двухмерный массив по возрастанию. Вывести его на экран.



Вариант II

  1. Сформируйте двухмерный массив А[1..25,1..25] случайными значениями в диапазоне [1..100] и одномерный массив B[1..25], значения элементов которого вычисляются как суммы столбцов двухмерного массива.

  2. Определите, есть ли в массиве B элементы с одинаковыми значениями.

  3. Найдите сумму минимальных элементов главной и побочной диагоналей.

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



Вариант III

  1. Сформируйте двухмерный массив А[1..50,1..50] случайными значениями в диапазоне [1..50] и одномерный массив B[1..50], значения элементов которого равны максимальным элементам строк двухмерного массива.

  2. В массиве В найдите индексы максимального и минимального элементов.

  3. Сожмите одномерный массив В, удалив предшествующие минимальному элементы.

  4. Найдите сумму элементов столбца и строки массива А, на пересечении которых находится максимальный элемент.


Самые низкие цены на курсы профессиональной переподготовки и повышения квалификации!

Предлагаем учителям воспользоваться 50% скидкой при обучении по программам профессиональной переподготовки.

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

Обучение проходит заочно прямо на сайте проекта "Инфоурок".

Начало обучения ближайших групп: 18 января и 25 января. Оплата возможна в беспроцентную рассрочку (20% в начале обучения и 80% в конце обучения)!

Подайте заявку на интересующий Вас курс сейчас: https://infourok.ru/kursy

Автор
Дата добавления 15.11.2015
Раздел Информатика
Подраздел Другие методич. материалы
Просмотров294
Номер материала ДВ-158537
Получить свидетельство о публикации

УЖЕ ЧЕРЕЗ 10 МИНУТ ВЫ МОЖЕТЕ ПОЛУЧИТЬ ДИПЛОМ

от проекта "Инфоурок" с указанием данных образовательной лицензии, что важно при прохождении аттестации.

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

Список всех тестов можно посмотреть тут - https://infourok.ru/tests


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