Основы программирования: ТЕМА 06. МАССИВЫ.
презентация к уроку по информатике и икт (9 класс) по теме
ОСНОВЫ ПРОГРАММИРОВАНИЯ
ВВЕДЕНИЕ
Одним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране дисплея. Создатель Паскаля Никлаус Вирт предложил первую версию строгого по форме и простого для написания программ языка в 1968 году, когда не существовало персональных компьютеров.
Данные презентации составлены по темам из раздела 3 учеб.для общеобразовательных учебных заведений авт. А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл.:
ТЕМА 1. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.
ТЕМА 2. СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ.
ТЕМА 3. РАБОТА В СИСТЕМЕ ТУРБО-ПАСКАЛЬ. РАБОТА В СИСТЕМЕ ABC ПАСКАЛЬ.
ТЕМА 4. УСЛОВНЫЙ ОПЕРАТОР.
ТЕМА 5. ОРГАНИЗАЦИЯ ЦИКЛОВ.
ТЕМА 6. МАССИВЫ (+)
ТЕМА 7. АЛГОРИТМЫ ОБРАБОТКИ ТАБЛИЦ.
ТЕМА 8. ОПЕРАТОР ВАРИАНТА.
ТЕМА 9. ПОДПРОГРАММЫ.
ТЕМА 10. РЕКУРСИЯ.
ТЕМА 11. ОБРАБОТКА СТРОК В ПАСКАЛЕ.
ТЕМА 12. КОМПЬЮТЕРНАЯ ГРАФИКА.
ТЕМА 13. ЗАПИСИ.
ТЕМА 14. ФАЙЛЫ В ПАСКАЛЕ.
В каждой презентации теоретический материал, примеры, базовые задачи, программы, вопросы и задания к теме. Презентации могут быть использованы на уроках информатики.
ЛИТЕРАТУРА:
А.А.Кузнецов, Н.В.Ипатова
«Основы информатики», 8-9 кл.:
–Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ
Скачать:
Вложение | Размер |
---|---|
tema6_massivy.pptx | 389.19 КБ |
Предварительный просмотр:
Подписи к слайдам:
массивы Тема 6. 03.11.2013 Цыбикова Т.Р. 2
Массивы В рассмотренных ранее примерах программ производилась обработка одиночных данных – значений простых переменных. При решении практических задач данные объединяются в различные структуры, наиболее простыми из которых являются массивы. Массив – именованный набор с фиксированным количеством однотипных данных. В массивы объединены результаты экспериментов, списки фамилий сотрудников, различные сложные структуры данных. Так, список из классного журнала 10 «А» является массивом. В массиве могут быть одинаковые данные, поэтому элементы массивы различаются по своим порядковым номерам. 03.11.2013 Цыбикова Т.Р. 3
Массивы Если каждый элемент имеет один порядковый номер, то такой массив называется одномерным , если два – то это таблица из строк и столбцов. Для таблиц первый номер элемента показывает строку , а второй – столбец , на пересечении которых находится элемент. Все строки таблицы имеют одинаковую длину. Одномерный массив может быть числовой последовательностью с известным количеством членов. Так же, как и в последовательности, в массиве можно указать элемент с конкретным номером, например a 5 , или записать общий вид элемента, используя в качестве индекса переменную и указывая диапазон ее изменения: a i , i = 1,2,…, n . 03.11.2013 Цыбикова Т.Р. 4
Задачи на обработку массивов могут иметь различную формулировку. Например , начинаться со слов: «Дано n чисел… » , а далее говорится, что требуется сделать с этими числами. Чтобы решить такую задачу на компьютере с использованием языка программирования Паскаль, необходимо выполнить следующее: определить , какие числа даны : целые или вещественные (если об этом конкретно не сказано, то лучше считать их вещественными); назвать весь массив одним именем , которое будет использоваться для каждого элемента, только к нему добавится номер этого элемента ( индекс ); описать массив в разделе переменные var , тем самым отведя место в памяти для массива; Ввести данные в память . 03.11.2013 Цыбикова Т.Р. 5
В описании массива В описании массива имеется специальное слово array (массив), после которого в квадратных скобках через две точки указывается диапазон изменения номеров элементов, затем слово of (из) и пишется тип данных массива. Встретив описание массива, транслятор отводит для него столько последовательных ячеек, сколько указано в квадратных скобках, и такого формата, каков тип данных массива. Эту память в программе можно использовать целиком или частично, вычисляя значения элементов массива или вводя их с клавиатуры (либо с диска). Чаще всего номера элементов меняются от 1 до заданного числа n . Поместив значение n в разделе констант ( const ), в описании можно указать в качестве переменной n последнее значение (верхнюю границу) номера элемента массива. 03.11.2013 Цыбикова Т.Р. 6 const n=10; var a: array [1..n] of real;
Пример описания: Это описание означает, что для массива a будет отведено десять ячеек оперативной памяти по шесть байтов каждая. Имена ячеек a 1 , a 2 ,…, a 1 0 . В паскале эти имена будут записаны следующим образом: a [1] ,…, a [10]. В описании после имени массива a ставится двоеточие, за которым указывается тип данного – массив. Если в программе несколько массивов одного размера и типа, то, как и для простых переменных, их имена можно перечислить через запятую, а потом, после двоеточия, указать описание массива. 03.11.2013 Цыбикова Т.Р. 7 const n=10; var a: array [1..n] of real;
Для ввода данных в память необходимо организовать цикл. Поскольку число повторений ввода данных известно, удобно использовать цикл пересчет . Ввод описанного массива a может иметь вид: for i :=1 to n do read (a[ i ]); Вводимые значения набираются на клавиатуре через пробел и нажимается < Enter > . Можно ввод прокомментировать и вводить каждое данное на отдельной строке экрана ( см. программу E12 modif ) : for i :=1 to n do begin write(‘a[‘,I, ‘]=’); readln (a[ i ]); end; 03.11.2013 Цыбикова Т.Р. 8
Обработка массивов При обработке массивов решение многих задач основывается на следующих, более простых , задачах: вычисление суммы (произведения) элементов массива; нахождение наибольшего (наименьшего) элемента; упорядочение элементов по возрастанию или убыванию. Рассмотрим эти базовые задачи. 03.11.2013 Цыбикова Т.Р. 9
Базовые задачи Задача 1. Вычисление суммы элементов массива ничем не отличается, в принципе, от суммирования значений простых переменных (программа E11 ). Решение задачи состоит из трех основных этапов: ввод данных; вычисление суммы; печать результатов. Вычисление суммы элементов массива. program E1 2 ; const n=7; var a: array [1..n] of real; s:real; i : integer; begin write(' вводите элементы массива - ‘ , n , ‘ вещественных чисел через пробел ’); for i :=1 to n do read (a[ i ]); S:=0; for i :=1 to n do s:= s+a [ i ]; writeln; write (‘ сумма элементов массива S= ‘ , S ); end . 03.11.2013 Цыбикова Т.Р. 10
Базовые задачи Выполнение программы вычисления суммы элементов массива предоставлено в таблице: 03.11.2013 Цыбикова Т.Р. 11 Исходные данные: 3, -2, 9, 7, -1, 6, 1 i 1 2 3 4 5 6 7 a[ i ] 3 -2 9 7 -1 6 1 S 0 1 10 17 16 22 23 Задача 1. Вычисление суммы элементов массива.
03.11.2013 Цыбикова Т.Р. 12
03.11.2013 Цыбикова Т.Р. 13
Базовые задачи Задача 2. В предыдущем примере производились вычисления, переменная S меняла свои значения в процессе решения задачи. Однако большинство задач, решаемых с помощью компьютера, являются невычислительными . К ним относится задача поиска наибольшего элемента в массиве. Трудность при разработке алгоритма решения заключается в том, что надо описать в виде команд компьютеру привычные для человека действия: выделение большего из последовательности чисел. 2 . Нахождение наибольшего элемента. 03.11.2013 Цыбикова Т.Р. 14
Базовые задачи Чтобы лучше представить себе, как последовательно просматривать и сравнивать между собой числа, записанные в памяти, вообразим, что каждое число написано на отдельной карточке и карточки сложены стопкой. В таком случае мы первое число запомним сразу как наибольшее и перевернем карточку. Теперь в нашем распоряжении два числа: одно видим, другое – помним. Сравнивая их между собой, запомним большее, т.е. если первое было больше, то запоминать новое не придется и надо смотреть следующую карточку. Если второе больше первого, то первое в дальнейшем помнить нет смысла и мы запомним второе. Таким образом, на каждом этапе сравнения мы будем помнить большее из просмотренных чисел и в конце решим задачу. Записав приведенные рассуждения в виде операторов, получим программу нахождения наибольшего значения. Промежуточные значения и ответ содержит переменная max . 03.11.2013 Цыбикова Т.Р. 15 Задача 2. 2 . Нахождение наибольшего элемента.
03.11.2013 Цыбикова Т.Р. 16
Базовые задачи Задача 3. Упорядочения массивов по какому-либо признаку называется также сортировками . Существуют различные методы сортировок, различающиеся, в основном, по скорости получения результата . Рассмотрим один из них – «метод пузырька». Пусть имеется последовательность чисел a1, a2,…, an , которую необходимо упорядочить по возрастанию. Зафиксируем первый элемент и будем последовательно сравнивать его со стоящими справа. Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 17
Базовые задачи Задача 3. Если какой-то из элементов справа окажется меньше первого, то мы поменяем местами этот элемент с первым и продолжим сравнение уже нового элемента, стоящего на первом месте, с оставшимися справа числами. Если снова выявится элемент, меньшей зафиксированного, то повторим перестановку. В результате первого просмотра последовательности на первом месте окажется наименьший из всех элементов, т.е. он, как более «легкий», как бы всплывает наверх (отсюда и название метода – «метод пузырька»). Теперь зафиксируем второй элемент и повторим просмотр, выполняя при необходимости перестановки элементов, и т.д. Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 18
Базовые задачи Задача 3. Уяснив идею решения, остановимся на двух вопросах: каким образом фиксировать элементы и как осуществить перестановку двух элементов? Чтобы при переборе элементов, стоящих справа от проверяемого, не менялся индекс последнего, индексы фиксируемого и стоящих правее него элементов должны быть различными: i и j . Индекс i изменяется от 1 до n –1 , индекс j всегда больше i и пробегает все значения от i +1 до n . Для каждого значения i индекс j должен последовательно принять все допустимые значения, следовательно , конструкция программы, отражающая полный перебор всех элементов и их упорядочение по возрастанию, представляет двойной цикл . При перестановке двух элементов местами используется третья переменная. Перестановка местами (обмен значениями в памяти) двух переменных a и b выглядит следующим образом: 1) c : = a ; 2) a: = b ; 3) b : = c . Упорядочение массива по возрастанию. 03.11.2013 Цыбикова Т.Р. 19
Программа сортировки методом пузырька имеет вид: 03.11.2013 Цыбикова Т.Р. 20
Базовые задачи Задача 4. Одна из важных невычислительных задач – поиск данного значения среди элементов массива. Такой поиск называется также поиском по ключу. На практике поиск осуществляется в упорядоченном массиве, причем имеются различные алгоритмы поиска. В данном примере осуществим поиск путем сплошного перебора. Если элемент найден, то напечатаем его номер, если нет, то выдадим соответствующее сообщение. Существенным является то, какой из одинаковых элементов массива, равных данному нас интересует: первый встретившийся при поиске или последний. Поиск элемента в массиве. 03.11.2013 Цыбикова Т.Р. 21
Базовые задачи Задача 4. В этом примере будем искать первый . Поиск осуществляется в цикле , и как только элемент найден, надо выйти из цикла. Для досрочного выхода из цикла for используем оператор goto . Если досрочный выход не произойдет, то значит, элемент, равный данному, в массиве отсутствует. В таком случае выдача сообщения об отсутствии элемента происходит сразу после цикла поиска. Следовательно, чтобы обойти печать номера элемента, надо использовать еще один оператор goto и еще одну метку в программе. Поиск элемента в массиве. 03.11.2013 Цыбикова Т.Р. 22
Программа поиска данного элемента в массиве: 03.11.2013 Цыбикова Т.Р. 23
Если искать не первый по порядку равный ключу элемент, а последний, то надо использовать цикл обратного пересчета: for i : = n downto 1 do . 03.11.2013 Цыбикова Т.Р. 24
Вопросы и задания Чем отличается массив от файла? Для чего необходимо описание массива? Что надо сделать, чтобы начать решать на компьютере задачу, формулировка которой начинается со слов: «Дано n чисел…»? Может ли массив содержать разнородные данные? Можно ли в примере программы E12 ограничиться одним оператором цикла? Что надо изменить в программе E13 , чтобы осуществлялся поиск не наибольшего, а наименьшего элемента массива? Какие изменения в программу E13 надо внести, чтобы одновременно со значением наибольшего числа определялся его порядковый номер? Объясните работу двойного цикла в программе E14 . Измените программу E15 так, чтобы вместо цикла пересчет при поиске элемента использовался цикл пока . Примените переменную-флажок, которая до цикла имела бы нулевое значение, а в случае нахождения необходимого элемента изменила бы значение на 1. Как при этом обойтись без операторов goto ? 03.11.2013 Цыбикова Т.Р. 25
Вопросы и задания В заданной последовательности целых чисел определите количество и сумму элементов, кратных 10. Дано n чисел. Найдите сумму чисел, больших заданного числа a . В заданном массиве замените нулем наибольший элемент. Найдите полупроизведение всех положительных элементов массива. Найдите сумму квадратов неотрицательных элементов и количество положительных чисел в заданном целочисленном одномерном массиве. В заданной вещественной последовательности поменяйте местами первый и наименьший элементы. Дано n чисел. Замените все отрицательные числа их модулями. Вычислите среднее арифметическое наибольшего и наименьшего из n чисел. 03.11.2013 Цыбикова Т.Р. 26
Литература А.А.Кузнецов, Н.В.Ипатова «Основы информатики», 8-9 кл .: Раздел 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ, С.108-114 03.11.2013 Цыбикова Т.Р. 27
По теме: методические разработки, презентации и конспекты
Основы программирования: ТЕМА 01. ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...
Основы программирования: ТЕМА 08. ОПЕРАТОР ВАРИАНТА.
Условный оператор позволяет осуществить ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия, а другое – невыполнению этого же условия. Если д...
Основы программирования: ТЕМА 09. ПОДПРОГРАММЫ.
При разработке программы иногда появляются повторяемые группы действий или возникает необходимость расчленить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех ...
Основы программирования: ТЕМА 02. СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...
Основы программирования: ТЕМА 03. РАБОТА В СИСТЕМЕ ТУРБО-ПАСКАЛЬ. РАБОТА В СИСТЕМЕ ABC ПАСКАЛЬ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...
Основы программирования: ТЕМА 04. УСЛОВНЫЙ ОПЕРАТОР.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...
Основы программирования: ТЕМА 05. ОРГАНИЗАЦИЯ ЦИКЛОВ.
ОСНОВЫ ПРОГРАММИРОВАНИЯВВЕДЕНИЕОдним из популярных сегодня ЯП является Паскаль. Он позволяет составлять программы для решения математических задач, обработки текстов, построения изображений на экране ...