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

advertisement
Одномерные массивы
Краткая аннотация
Усиление линии программирования в лицее обеспечено разработанным
методическим комплексом, который позволяет каждому учащемуся изучать
программирование в своём темпе. Комплекс включает:

набор слайдов (в формате *.pps - для демонстрации в лекционной аудитории
и в формате *.htm - для индивидуального просмотра);

вопросы для контроля, тестовые задания по теоретическому материалу,
задания, оформленные в виде тетрадей с печатной основой (для каждого учащегося);

примеры решения типовых задач с подробными комментариями (в форматах
*.pas и *.txt);

комплекс задач для самостоятельного решения (для каждой темы подобраны
задачи различного уровня сложности).
Привожу пример одного из уроков, разработанных по данной системе.
1.
2.
3.
4.
5.
6.
7.
Цели урока: Формировать у учащихся знания, умения и навыки работы с
одномерными массивами.
Задачи урока:
 Развитие познавательного интереса, логического мышления, усиление познавательной
мотивации осознанием ученика своей значимости в образовательном процессе.
 Повторение и проверка умений учащимися использовать возможности текстового
процессора Word.
 Повышение интереса к изучению информационных технологий.
Оборудование: персональный компьютер, проектор, тетрадь с печатной основой.
Программное обеспечение: Microsoft Power Point, Borland (Turbo) Pascal.
Литература:
Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по
программированию – М.: Наука, 1998
Григас Г. Начала программирования: Кн. для учащихся: Пер. с лит. / Под ред. Ю.А.
Первина. – М.: Просвещение, 1997
Журнал «Информатика и образование» 1990-2007 гг.
Златопольский Д.М. Я иду на урок информатики: Задачи по программированию.
Книга для учителя. – М.: Издательство «Первое сентября», 2002.
Информатика: Учебник. – 3-е перераб. Изд. / Под ред. проф. Н.В. Макаровой. – М.:
Финансы и статистика, 2000
Конспекты уроков информатики в 9-11 классах: Практикум по программированию
/ Авт.-сост. А.А. Чернов. – Волгоград: Учитель, 2005
Курс компьютерной технологии с основами информатики: Уч. пособие для
старших классов / О.Ефимова, В.Морозов, Н.Угринович – М.: ООО «Издательство АСТ»;
ABF, 2002.
План урока:
1.
Организационный момент.
2.
Изложение нового материала.
3.
Разбор примера решения задачи.
4.
Закрепление нового материала с помощью тетрадей с печатной основой.
5.
Решение задач.
1
Ход урока:
1. Организационный момент.
2. Изложение нового материала.
На предыдущих уроках мы с вами работали только с простыми типами данных.
Из элементов простых типов в языке Паскаль можно образовывать составные
(структурированные) типы данных, так называемые структуры данных. Основной задачей
нашего сегодняшнего урока станет знакомство с одной из таких структур – с массивом.
Массивы бывают одномерными и двухмерными. Но сегодня мы познакомимся
только с одномерными массивами. Итак, запишите тему сегодняшнего урока:
«Одномерные массивы».
Одномерные
массивы
В математике, экономике, информатике часто используются упорядоченные
наборы данных, например, последовательности чисел, таблицы, списки фамилий.
Рассмотрим последовательность действительных чисел:
А={1,6; 14,9; -5,0; 8,5; 0,46}.
Рассмотрим последовательность
действительных чисел:
чисел:
1.6, 14.9, -5.0, 8.5, 0.46
Обозначим эту последовательность
именем:
именем:
А={1.6, 14.9, -5.0, 8.5, 0.46}
0.46}
Каждый элемент последовательности
можно обозначить А1, А2,...А
,...Аn. Индекс
здесь определяет положение
элемента в последовательности.
последовательности.
Здесь А – название последовательности, а к любому элементу последовательности
можно обратиться по названию последовательности и его порядковому номеру.
Например, если мы хотим обратиться к числу 8,5 то должны указать название
последовательности и номер – А4. То, что в математике (да и в обычной жизни) мы
называем последовательностью, в программировании будет называться одномерным (или
линейным) массивом.
Итак, для обработки данных одного и того же типа в программировании вводится
понятие «массив».
Массив – совокупность данных одного типа.
Запишем определение одномерного массива:
2
Одномерный массив – фиксированное
количество элементов одного и того же
типа,
типа, объединенных одним именем,
именем, где
каждый элемент имеет свой номер.
номер.
Массив, также как и последовательность в математике обозначается именем.
Каждый элемент массива обозначается именем массива и индексом.
Количество элементов массива называется его размерностью.
Одномерный массив
№
1
2
3
...
29
30
А
25
26
27
...
53
54
•Массив обозначается
одним именем.
•Каждый элемент массива
обозначается именем
массива с индексом.
•Например: А[3]=27
В математике при обращении к элементу индекс заключается в круглые
скобки (например А(1), А(2), А(3)…) или указывается ниже имени массива (А1, А2, А3…).
В Паскале индекс элемента заключается в квадратные скобки, например А[4].
Если в программе используется массив, то он должен быть описан.
Описание массива
type = ARRAY[n1..n2] of <тип
<тип
элементов>;
элементов>;
Var <имя массива1,
массива1, имя массива2
массива2…>:
<тип массива>
массива>;
где n1,n2 – номер 1-го и последнего элементов
массива
Рассмотрим пример.
3
Описание массива
Рассмотрим последовательность:
последовательность:
a1, a2, …,a10
const n = 10;
type aa = array[1..n] of real;
var a: aa;
aa;
Чаще всего массивы обрабатываются в цикле for.
Присвоение значений элементам массива может происходить несколькими
способами.
Присвоение значений элементам
массива может происходить с помощью:
помощью:
1. Оператора Read (Readln
);
(Readln);
for i:=1 to n do read(a[i]);
]);
read(a[i
readln;
readln;
2. Функции псевдослучайных чисел
(Random).
randomize;
for i:=1 to n do a[i]:=random(10);
a[i]:=random(10);
Распечатывать массив можно двумя способами: в строчку через пробел и в
столбец.
Распечатка массива
1. В строку через пробел
for i:=1 to n do write(a[i],
write(a[i],’’ ‘);
writeln;
writeln;
2. В столбец
for i:=1 to n do writeln(
writeln(a[i]
a[i]);
3. Пример решения задачи.
Разберём пример задачи (в данном случае возможны варианты: учитель
может решать задачу с устными комментариями, отображая своё решение на экране с
помощью проектора или предложить учащимся самостоятельно разобрать решение,
4
находящееся в папке «Одномерные массивы» и записать в тетрадь пример решения с
подробными комментариями).
Пример. Заполнить случайными числами из диапазона от -50 до 50 линейный
массив из N целых чисел. Найти максимальное значение и его индекс (первый, если таких
значений несколько).
program primer_massiv;
{имя программы}
const n=10;
{n - размерность массива – постоянная
величина}
type aa=array[1..n] of integer;
{задаем тип массива}
var i, max, imax: integer;
{описываем переменные
i – порядковый номер элемента,
max – значение максимального элемента,
imax – номер максимального элемента}
a:aa;
{описываем массив заданным типом}
begin
{начало программы}
randomize;
{активизируем процедуру для задания
первого значения в последовательности
псевдослучайных чисел}
for i:=1 to n do
{открываем цикл для задания и
распечатки массива}
begin
{т.к. в цикле более одного оператора,
открываем операторную скобку}
a[i]:=random(100)-50; {заполняем массив псевдослучайными целыми
числами в интервале от -50 до 50}
write(a[i],' ');
{распечатываем массив в строчку через
пробел}
end;
{закрывающая операторная скобка}
max:=a[1];
{считаем максимальным 1-ый элемент}
imax:=1;
{его номер - 1}
for i:=2 to n do
{начиная со второго элемента сравниваем}
if a[i]>max then
{если очередной элемент больше того,
который в данный момент является максимальным}
begin
{тогда}
max:=a[i];
{он становится максимальным}
imax:=i;
{запоминаем его номер}
end;
write('maximal”niy element ',max,' nahoditsya na ',imax,' meste'); {ответ}
readln
{задержка решения до нажатия Enter}
end.
{конец программы}
5
4. Листы из тетради с печатной основой по теме «Одномерные массивы»
Одномерные массивы
1.
Дайте определение одномерного массива.
Одномерный массив - __________________________________________________________
_____________________________________________________________________________
2.
Как описывается одномерный массив?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
3.
Что включают в себя понятия номер и значение элемента массива?
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________
4.
Опишите, как организовать вывод линейного массива
В строчку
В столбец
____________________________________
___________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
____________________________________
5.
Опишите способы заполнения массивов.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
6.
Напишите фрагент программы для заполнения элементов массива
датчиком случайных чисел на интервале:
а) [-50, 100]
_____________________________________________________________________________
_____________________________________________________________________________
б) [-115, 115]
_____________________________________________________________________________
____________________________________________________________________________
в) [115, 250]
_____________________________________________________________________________
____________________________________________________________________________
7.
Создайте и распечатайте в строчку одномерный массив следующим
образом: A(1) = 1, A(2) = -1, A(3)= 1, A(4) = -1, …, A(N)= -1
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
6
8.
Создайте и распечатайте в столбик одномерный массив длиной N,
следующим образом: А(1) = 4, А(2) = 6, А(3) = 8, А(4) = 10, …?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
9.
Дан массив A(N), сформированный датчиком случайных чисел на
интервале (-50; 150). Из элементов массива А, кратных 5, сформировать массив B.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
__________________________________________________________________________
7
5.
Задания для самостоятельного решения
Найти сумму положительных элементов массива.
Найти сумму всех элементов массива, кратных 5.
Найти сумму всех четных элементов массива, стоящих на четных местах.
Найти сумму первых пяти элементов массива.
Найти сумму элементов с k1 по k2, где k1, k2 вводятся с клавиатуры.
Найти сумму элементов, больших данного числа А.
Найти сумму элементов, принадлежащих промежутку от А до В.
Найти номера всех отрицательных элементов массива (вывести их на экран). Если
таких элементов нет, то сообщить об этом.
9.
Найти номера всех элементов с максимальным значением.
10.
Найти количество отрицательных нечетных элементов массива.
11.
Сколько элементов массива превосходят по модулю заданное число А?
12.
Найти все элементы массива, кратные 3 или 5. Сколько их?
13.
Есть ли в данном массиве два соседних положительных элемента? Найти номера
первой и последней пары.
14.
Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести
номер одно из них.
15.
Изменить знак у максимального по модулю элемента массива.
16.
Заменить все четные элементы массива их квадратами, а нечетные – удвоить.
17.
Вычесть из положительных элементов элемент с номером k1, а к отрицательным
прибавить элемент k2, нулевые элементы оставить без изменения.
18.
К четным элементам прибавить А, а из элементов с четными номерами вычесть В.
19.
Даны два целочисленных массива, состоящие из одинакового числа элементов.
Получить третий массив той же размерности, каждый элемент которого равен большему
из соответствующих элементов данных массивов.
20.
Дан первый член геометрической прогрессии и её знаменатель. Найти первые n
членов этой прогрессии.
21.
Получить первые n чисел Фибоначчи, - первые два числа равны 1, а каждое
следующее сумме двух предыдущих.
22.
Даны два массива. Найти среднее арифметическое элементов каждого и сравнить
эти значения.
23.
Дан одномерный массив А, состоящий из 2n элементов. Поменять его половины
следующим образом: первый элемент поменять с последним, второй – с предпоследним и
т.д.
24.
Дан одномерный массив. Переставить в обратном порядке элементы массива,
расположенные между минимальным и максимальным.
1.
2.
3.
4.
5.
6.
7.
8.
8
Download