Презентация "Одномерные массивы целых чисел. Начала программирования" 9 класс

Подписи к слайдам:
  • ОДНОМЕРНЫЕ МАССИВЫ ЦЕЛЫХ ЧИСЕЛ
  • НАЧАЛА ПРОГРАММИРОВАНИЯ
  • Ключевые слова
  • массив
  • описание массива таблица
  • заполнение массива
  • вывод массива
  • обработка массива
  • последовательный поиск
  • сортировка
  • Массив
  • Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.
  • Решение разнообразных задач, связанных с обработкой массивов, базируется на решении таких типовых задач, как:
  • - суммирование элементов массива;
  • - поиск элемента с заданными свойствами;
  • - сортировка массива.
  • Одномерный массив
  • 6
  • 3
  • 4
  • -2
  • 0
  • 1
  • 9
  • -5
  • 7
  • 9
  • 8
  • 7
  • 6
  • 5
  • 4
  • 3
  • 2
  • 1
  • Значение элемента массива
  • Индекс элемента массива
  • Описание массива
  • Общий вид описания массива:
  • var <имя_массива>: array [<мин_знач_индекса> ..
  • <макс_знач_индекса>] of <тип_элементов>;
  • var a: array [1..10] of integer;
  • const b: array [1..5] of integer = (4, 2, 3, 5, 7);
  • Тип элементов массива
  • Имя массива
  • Максимальное значение индекса
  • Минимальное значение индекса
  • Значение 1-го элемента массива
  • Массив b с постоянными значениями описан в разделе описания констант.
  • Способы заполнения массива
  • 1 способ. Ввод каждого значения с клавиатуры:
  • for i:=1 to 10 do read (a[i]);
  • 2 способ. С помощью оператора присваивания (по формуле):
  • for i:=1 to 10 do a[i]:=i;
  • 3 способ. С помощью оператора присваивания (случайными числами):
  • randomize;
  • for i:=1 to 10 do a[i]:=random(100);
  • a[i]=2*a[i]+6
  • Вывод массива
  • 1 способ. Элементы массива можно вывести в строку, разделив их пробелом:
  • for i:=1 to 10 do write (a[i], ' ');
  • 2 способ. Вывод с комментариями:
  • for i:=1 to 10 do writeln ('a[', i, ']=', a[i]);
  • 45
  • 21
  • 56
  • 43
  • 83
  • 56
  • 69
  • 34
  • 28
  • 15
  • a[1]=4
  • a[2]=1
  • a[3]=6
  • a[4]=3
  • a[5]=8
  • a[6]=5
  • a[7]=9
  • a[8]=4
  • a[9]=8
  • a[10]=7
  • Объявление массива
  • Заполнение массива
  • Вывод массива
  • program  n_1 ; var i: integer;
  • a: arrav[1...10] of integer;
  • Заполнения массива A(10) случайными числами и вывод элементов массива
  • begin  for i:=1 to 10 do a[i]:=random(50);
  • for i:=1 to 10 do write (a[i],` `);   end.
  • Вычисление суммы элементов массива
  • Суммирование элементов массива
  • осуществляется за счёт поочерёдного добавления слагаемых:
  • Определяется ячейка памяти (переменная s),
  • в которой будет последовательно накапливаться
  • результат суммирования
  • Присваивается переменной s начальное значение 0
  • - число, не влияющее на результат сложения
  • Для каждого элемента массива из переменной s
  • считывается её текущее значение и складывается
  • со значением элемента массива;
  • полученный результат присваивается переменной s.
  • Вычисление суммы элементов массива
  • s = 0
  • s = 0
  • Основной фрагмент программы:
  • s:=0;
  • for i:=1 to n do s:=s+a[i];
  • s = s + a[1]
  • s = 0+ a[1]
  • s = s + a[2]
  • s = 0+ a[1]+ a[2]
  • s = s + a[3]
  • s = 0+ a[1]+ a[2]+ a[3]
  • s = s + a[10]
  • s = 0+a[1]+a[2]+a [3]+a[10]
  • Вычисление суммы элементов массива
  • program  n_2;
  • var s, i: integer;
  • a: arrav[1...10] of integer;
  • begin 
  • s:=0;
  • for i:=1 to 10 do a[i]:=random(50);
  • for i:=1 to 10 do write (a[i],` `);
  • for i:=1 to 10 do s:=s+a[i];
  • writeln ('s=', s);
  • end.
  • Типовые задачи поиска
  • Определение наибольшего (наименьшего)
  • элемента массива
  • Определение элемента массива, значение
  • которого равно заданному значению
  • 1) Взять верхнюю карточку, записать на доске
  • (запомнить) число как наибольшее.
  • 2) Взять следующую карточку, сравнить числа. Если
  • на карточке число больше, то записать это число.
  • Нахождение наибольшего элемента
  • в стопке карточек с записанными числами:
  • Повторить действия, описанные в пункте 2 для всех
  • оставшихся карточек
  • При организации поиска наибольшего элемента массива правильнее искать его индекс.
  • !
  • Программа поиска наибольшего элемента в массиве
  • program  n_3;
  • var s, i, imax: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • s:=0;
  • for i:=1 to 10 do a[i]:=random(50);
  • for i:=1 to 10 do write (a[i],` `);
  • imax:=1
  • for i:=2 to 10 do
  • if a[i]>a[imax] then imax:=i;
  • write ('Наибольший элемент a[',imax,']=', a[imax])
  • end.
  • Нахождение элемента массива с заданными свойствами
  • Результатом поиска элемента, значение которого равно заданному, может быть:
  • n - индекс элемента массива такой, что a[n]= x, где х - заданное число;
  • сообщение о том, что искомого элемента в массиве не обнаружено.
  • 10
  • 50
  • 1
  • 3
  • 50
  • 14
  • 21
  • 50
  • 10
  • 21
  • Здесь:
  • трём равен 4-й элемент;
  • десяти равны 1-й и 9-й элементы;
  • нет элемента, равного 12.
  • Поиск элемента, равного 50
  • В программе найден последний из элементов, удовлетворяющих условию.
  • 10
  • 50
  • 1
  • 3
  • 50
  • 14
  • 21
  • 50
  • 10
  • 21
  • program  n_4;
  • var n, i: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • for i:=1 to 10 do a[i]:=random(60);
  • for i:=1 to 10 do write (a[i],` `);
  • n:=0;
  • for i:=1 to 10 do
  • if a[i]=50 then n:=i;
  • if n=0 then write('Нет') else write (i)
  • end.
  • Поиск элемента, равного 50
  • program  n_5;
  • var n, i: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • for i:=1 to 10 do a[i]:=random(60);
  • for i:=1 to 10 do write (a[i],` `);
  • i:=0;
  • repeat
  • i:=i+1;
  • until (a[i]=50) or (i=10);
  • if a[i]=50 then write(i) else write('Нет')
  • end.
  • В программе найден первый из элементов, удовлетворяющих условию.
  • 10
  • 50
  • 1
  • 3
  • 50
  • 14
  • 21
  • 50
  • 10
  • 21
  • Подсчет количества элементов
  • Для подсчета вводится переменная, значение которой увеличивается на единицу каждый раз, когда найден нужный элемент.
  • program  n_6;
  • var k, i: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • for i:=1 to 10 do a[i]:=random(60);
  • for i:=1 to 10 do write (a[i],` `);
  • k:=0;
  • for i:=1 to 10 do
  • if a[i]>50 then k:=k+1;
  • write('k=', k)
  • end.
  • 10
  • 60
  • 21
  • 53
  • 58
  • 14
  • 28
  • 50
  • 10
  • 51
  • Сумма значений элементов, удовлетворяющих условию
  • 10
  • 50
  • 1
  • 3
  • 50
  • 14
  • 21
  • 50
  • 10
  • 21
  • program  n_7;
  • var s, i: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • for i:=1 to 10 do a[i]:=random(60);
  • for i:=1 to 10 do write (a[i],` `);
  • s:=0;
  • for i:=1 to 10 do
  • if a[i]>10 and (a[i]<30 then s:=s+a[i];
  • write(‘s=', s)
  • end.
  • Сортировка массива
  • 1. В массиве выбирается максимальный элемент
  • 2. Максимальный и первый элемент меняются местами
  • (первый элемент считается отсортированным)
  • 3. В неотсортированной части массива снова выбирается
  • максимальный элемент; он меняется местами с первым
  • неотсортированным элементом массива
  • Действия пункта 3 повторяются с неотсортированными
  • элементами массива, пока не останется один
  • неотсортированный элемент (минимальный)
  • Сортировка элементов массива по убыванию
  • выбором осуществляется следующим образом:
  • Сортировка массива
  • Индекс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • Значение
  • 0
  • 1
  • 9
  • 2
  • 4
  • 3
  • 6
  • 5
  • Шаги
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • Итог:
  • 1
  • 6
  • 9
  • 0
  • 0
  • 2
  • 5
  • 0
  • 4
  • 3
  • 3
  • 2
  • 2
  • 1
  • 1
  • 0
  • 1
  • 2
  • 4
  • 3
  • 6
  • 5
  • 9
  • 1
  • 4
  • 5
  • 2
  • 6
  • 9
  • 0
  • 2
  • 4
  • 3
  • 5
  • 9
  • 6
  • 2
  • 4
  • 3
  • 1
  • 9
  • 6
  • 5
  • 3
  • 1
  • 0
  • 9
  • 6
  • 5
  • 4
  • 1
  • 9
  • 6
  • 5
  • 4
  • 3
  • 0
  • 0
  • 9
  • 6
  • 5
  • 4
  • 3
  • 2
  • Сортировка массива
  • for i:=1 to 9 do
  • begin
  • imax:=i;
  • for j:=i+1 to 10 do if a[j]>a[imax] then imax:=j;
  • x:=a[i];
  • a[i]:=a[imax];
  • a[imax]:=x
  • end;
  • for i:=1 to 10 do write (a[i],` `);
  • end;
  • program  n_8;
  • var n, i, j, x, imax: integer;
  • a:arrav[1...10] of integer;
  • begin 
  • for i:=1 to 10 do read (a[i]);
  • for i:=1 to 10 do write (a[i],` `);
  • 0
  • 1
  • 9
  • 2
  • 4
  • 3
  • 6
  • 5
  • 9
  • 6
  • 5
  • 4
  • 3
  • 2
  • 1
  • 0
  • Самое главное
  • Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве. В языках программирования массивы используются для реализации таких структур данных, как последовательности и таблицы.
  • Перед использованием в программе массив должен быть описан. Общий вид описания одномерного массива:
  • var <имя_массива>: array [<мин_знач_индекса> …
  • <макс_знач_индекса>] of тип_элементов;
  • Заполнять массив можно либо вводя значение каждого элемента с клавиатуры, либо присваивая элементам некоторые значения. При заполнении массива и его выводе на экран используется цикл с параметром.
  • Решение разнообразных задач, связанных с обработкой массивов, базируется на таких типовых задачах, как:
  • суммирование элементов массива;
  • поиск элемента с заданными свойствами;
  • сортировка массива.
  • Вопросы и задания
  • Может ли массив одновременно содержать целые и
  • вещественные значения?
  • Для чего необходимо описание массива?
  • Что вы можете сказать о массиве, сформированном следующим образом?
  • а) for i:=1 to 10 do a[i]:= random(101)-50;
  • б) for i:=1 to 20 do a[i]:= i;
  • в) for i:=1 to 5 do a[i]:= 2*i-1;
  • Запишите на языке Паскаль программу решения задачи.
  • В некотором населённом пункте N домов. Известно, сколько людей проживает в каждом из домов.
  • Исходные данные (количество жильцов) представить с помощью линейной таблицы А, содержащей N элементов: A[1] - количество жильцов дома 1, A[2] - количество жильцов дома 2, …, A[N] - количество жильцов дома N.
  • В общем случае А[i] — количество жильцов дома i, где i принимает все значения от 1 до n (i =1,n). Результат работы обозначить через s.
  • Считайте количество жильцов дома случайным числом из диапазона от 50 до 200 человек, а число домов n = 30.
  • Запишите на языке Паскаль программу решения задачи.
  • Объявлен набор в школьную баскетбольную команду. Известен рост каждого из N учеников, желающих попасть в эту команду.
  • Подсчитайте количество претендентов, имеющих шанс попасть в команду, если рост игрока команды должен быть не менее 170 см.
  • Считайте рост претендента в команду случайным числом из диапазона от 150 до 200 см, а число претендентов n = 50.
  • Пример входных данных
  • Пример выходных данных
  • Введите температуру
  • Понедельник >> 12
  • Вторник >> 10
  • Среда >> 16
  • Четверг >> 18
  • Пятница >> 17
  • Суббота >> 16
  • Воскресенье >> 14
  • Средняя температура за неделю: 14,71
  • Напишите программу, которая вычисляет среднюю за неделю температуру воздуха. Исходные данные вводятся с клавиатуры.
  • Дан массив из десяти целых чисел. Определите, сколько элементов этого массива имеют максимальное значение.
  • В классе 20 учеников писали диктант по русскому языку. Напишите программу, подсчитывающую количество двоек, троек, четвёрок и пятёрок, полученных за диктант.
  • В целочисленных массивах a и b содержатся длины катетов десяти прямоугольных треугольников:
  • a[i] - длина первого катета,
  • b[i]—длина второго катета i-го треугольника.
  • Найдите треугольник с наибольшей площадью. Выведите его номер, длины катетов и площадь. Предусмотрите случай, когда таких треугольников несколько.
  • Занесите информацию о десяти европейских странах в массивы n (название страны), к (численность населения), s (площадь страны). Выведите названия стран в порядке возрастания плотности их населения.
  • Опорный конспект
  • Ввод с клавиатуры
  • Массив - это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элементов в массиве.
  • var <имя_массива>: array [<мин_знач_индекса> ..
  • <макс_знач_индекса>] of тип_элементов;
  • Присваивание значений
  • Заполнение массива
  • Суммирование элементов
  • Сортировка элементов массива
  • Поиск элемента во свойствам
  • Задачи по обработке массива
  • Источники информации
  • http://watermarked.cutcaster.com/cutcaster-photo-100663586-Cartoon-numbers.jpg -цифры
  • http://gallery.ykt.ru/galleries/old/reklamachat/518055.jpg - клавиатура
  • http://www.cellguru.ru/_ld/3/325.jpg - случайные числа
  • http://www.valdosta.edu/~lahunter/Math%20&%20Math%20Helps.jpg – числа
  • http://lebuch.com/wp-content/uploads/2012/01/1311208935_1515151254654654564651.jpg - числа
  • http://www.bsh.kz/img/news/1304429644.jpg - мальчик с числами
  • http://www.masassociates.co.uk/wp-content/themes/rttheme9/timthumb.php?src=http://www.masassociates.co.uk/wp-content/uploads/mas-slider-two.jpg&w=940&h=320&zc=1 –цифры
  • http://b1.ac-images.myspacecdn.com/02035/19/86/2035026891_l.gif - числа
  • http://cs10847.vkontakte.ru/u96434/-5/x_e3066ac5.jpg - счёты
  • http://freshdeportocale.files.wordpress.com/2010/03/homework.gif - мальчик
  • http://www.koasltd.com/images/clip_image001.gif - сортировка
  • http://img1.liveinternet.ru/images/attach/c/2/70/390/70390175_14936.JPG - матрёшки
  • http://s48.radikal.ru/i122/0901/ea/c723ec9dcc20.gif - матрёшки