Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемТарас Тужилкин
1 Одномерные массивы Понятие массива, виды массивов Описание, заполнение и вывод одномерного массива Обработка одномерного массива
2 Тип данных массив Массив это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип (базовый). Особенности: все элементы имеют один тип; весь массив имеет одно имя; элементы упорядочены по индексам (номерам). Типы массивов: одномерный массив; двумерный массив;... n-мерный массив.
3 Структура одномерного массива Массив А = 1550–2517 A[1]A[2]A[3]A[4]A[5] Элемент массива Номер элемента (индекс) Элементы массива упорядочены (урегулированы) по индексам. Доступ к каждому элементу осуществляется путем индексирования, т. е. указания имени массива и номера элемента. Пример: a[1] = 15.
4 Описание (объявление) массива Формат блока (в разделе описания типов): Формат блока (в разделе описания переменных): Пример: Type = array [тип индекса] of ; Var : ; Var = array [тип индекса] of ; Const n = 20; Type Mas = array [1..n] of Integer; Var a, b : Mas; c : array [1..26] of Char; ?
5 Заполнение массива Формат блока (ввод элементов с клавиатуры): Пример: For := 1 to do ReadLn ( [ ]); For i := 1 to n do ReadLn (a[i]); ? ? Назовите главный недостаток заполнения массива путем ввода элементов с помощью клавиатуры. ? a[1] = a[2] = a[3] = a[4] = a[5] =
6 Вывод массива на экран Формат блока: Пример:Результат: For := 1 to do Write ( [индекс]); WriteLn (Массив а:); For i := 1 to n do Write (a[i]:4); Массив а: ? ? ?
7 Заполнение массива по формуле Формат блока (ввод элементов по формуле): Пример: For := 1 to do [ ] := ; a[1] := 2; For i := 2 to n do a[i] := a[i-1] + 2; ? Задача 1 Сформировать и вывести на экран массив из 10 первых чисел Фиббоначи. a[1] = a[2] = a[3] = a[4] = a[5] = ?
8 Заполнение массива с помощью генератора случайных чисел Функция Random [0;N): Формат блока (использование функции Random): Пример: For := 1 to do [ ] := Random[(range)]; For i := 1 to n do a[i] := random(101); x := random; x := random (50); x := random (100)+50; x := random (100)-50; x := random (254)-123; [0;1) [0;49] [50;149] [-50;49] [-123;130]
9 Обработка элементов массива Вычисление суммы элементов массива Входные данные: Выходные данные: sum = a[1] + a[2] + a[3] + a[4] + a[5] Словесный алгоритм решения задачи: 1. Задать начальное значение переменной sum. 2. Сформировать и вывести массив на экран. 3. Пройти весь массив, записав в sum сумму всех элементов. 4. Вывести результат на экран. Задача 2 Ввести с клавиатуры массив из 5 элементов. Найти сумму всех элементов массива. n i a 1550–2510
10 Обработка элементов массива Вычисление суммы элементов массива Алгоритм: Начало sum: = 0 i := 1 до n sum := sum + a[i]i := i + 1 Вывод sum Конец Ввод a Вывод a Да Нет
11 Обработка элементов массива Вычисление суммы элементов массива Трассировка: sum := 0; For i := 1 to n do sum := sum + a[i]; WriteLn (Сумма элементов массива =, sum); nia[i]sum
12 Обработка элементов массива Вычисление произведения элементов массива Входные данные: Выходные данные: pr = a[4] * a[5] * a[6] Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. 2. Задать начальное значение переменных i, j и pr. 3. Пройти массив от i до j, записав в pr произведение элементов. 4. Вывести результат на экран. Задача 3 Дан массив 10 целых случайных чисел в интервале [0..20]. Найти произведение элементов массива с i-го по j-й (i и j вводятся с клавиатуры). Какие ограничения необходимы для i и j ? ? ijn z a
13 Обработка элементов массива Вычисление среднего арифметического элементов массива Входные данные: Выходные данные: mid = (a[1] + a[2] a[n])/n Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. 2. Задать начальное значение переменной mid. 3. Пройти весь массив, вычислить сумму элементов массива. 4. Вычислить mid. 5. Вывести результат на экран. Задача 4 Сформировать массив из 10 целых случайных чисел в интервале [–15..0], найти среднее арифметическое всех элементов массива. n i a
14 Обработка элементов массива Подсчет количества элементов массива Входные данные: Выходные данные: переменная-счетчик k. Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. 2. Задать начальное значение переменной-счетчика k. 3. Пройти весь массив. Если текущий элемент равен 0, то увеличить счетчик на 1 и перейти к следующему элементу. 4. Вывести результат на экран. Задача 5 Заполнить массив случайными числами в интервале [–1..1] и подсчитать количество нулевых элементов. n i a 01 0
15 Обработка элементов массива Подсчет количества элементов Алгоритм: Начало k := 0 i := 1 до n Вывод k Конец Ввод a Вывод a Да Нет a[i] = 0 k := k + 1 Да Нет
16 Обработка элементов массива Подсчет количества элементов Трассировка: k := 0; For i := 1 to n do If a[i] = 0 then inc(k); WriteLn ('Количество нулевых элементов = ', k); nia[i]k
17 Обработка элементов массива Поиск максимального элемента массива Входные данные: Выходные данные: max = 10, im = 8. Задача 6 Заполнить массив из 10 элементов случайными числами в интервале [–10..10] и найти в нем первый (последний) максимальный элемент и его номер. n i a max im
18 Обработка элементов массива Поиск максимального элемента массива Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. 2. Задать начальное значение переменных max и im. 3. Пройти массив. Если текущий элемент больше максимального, то изменить значения максимального элемента и его индекса. 4. Вывести результат на экран. Запись на алгоритмическом языке: начало ввод а, вывод а max := a[1], im := 1 нц для i от 2 до n если a[i] > max, тогда max := a[i], im := i кц вывод max, im конец ?
19 Обработка элементов массива Поиск максимального элемента Алгоритм: Начало max := a[1] im := 1 i := 2 до n Вывод max, im Конец Ввод a Вывод a Да Нет a[i]> max max := a[i] im := i Да Нет Что надо изменить, чтобы найти последний максимальный элемент в массиве? ?
20 Обработка элементов массива Поиск максимального элемента массива Трассировка: max := a[1]; im := 1; For i := 2 to n do If a[i] > max then begin max := a[i]; im := i; end; nia[i]maxim Как найти минимальный элемент в массиве? ?
21 Обработка элементов массива Задачи для самостоятельного выполнения Задача 7 Заполнить массив случайными числами в интервале [–10..10] и подсчитать сумму положительных элементов. Задача 8 Заполнить массив из 10 элементов случайными числами в интервале [0..100] и подсчитать отдельно среднее значение всех элементов, которые < 50, и среднее значение всех элементов, которые 50. Задача 9 Заполнить массив случайными числами в интервале [ ] и подсчитать отдельно число четных и нечетных элементов.
22 Обработка элементов массива Задачи для самостоятельного выполнения Задача 10 Заполнить массив случайными числами в интервале [ ] и подсчитать число элементов, у которых вторая с конца цифра четная. Задача 11 Заполнить массив из 15 элементов случайными числами в интервале [–20..20] и найти в нем минимальный положительный элемент и его номер. Задача 12 Заполнить массив из 10 элементов случайными числами в интервале [0..5] и вывести номера всех элементов, равных X.
23 Обработка элементов массива Задачи для самостоятельного выполнения Задача 13 Даны два массива одинаковой размерности. Получить третий массив такой же размерности, каждый элемент которого равен суме соответствующих элементов данных массивов. Задача 14 Заполнить массив из 10 элементов случайными числами в интервале [0..5] и определить, есть ли в нем одинаковые соседние элементы. n i a Обязательно ли проходить весь массив? ?
24 Обработка элементов массива Реверс массива Входные данные: Выходные данные: Меняем местами элементы: a[1] и a[10] a[2] и a[9] a[3] и a[8] a[4] и a[7] Задача 15 Переставить элементы массива в обратном порядке. n i a n i a Сумма индексов всегда равна 11, или n+1. Поэтому меняем a[i] и a[n+1-i] ! Обязательно ли проходить весь массив? ?
25 Обработка элементов массива Реверс массива Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. 2. Пройти половину массива и поменять местами элементы a[i] и a[n+1-i]. 3. Вывести результат на экран. Запись на алгоритмическом языке: начало ввод а, вывод а нц для i от 1 до n div 2 k := a[i] a[i] := a[n+1-i] a[n+1-i] := k кц вывод a конец Зачем нужна переменная k ? ? ?
26 Обработка элементов массива Поиск максимального элемента массива Трассировка: k := 0; For i := 1 to n div 2 do begin k := a[i]; a[i] := a[n+1-i]; a[n+1-i] := k ; end; n i
27 Обработка элементов массива Удаление элемента массива Входные данные: Выходные данные: Словесный алгоритм решения задачи: 1. Сформировать и вывести массив на экран. Задать значение k. 2. Пройти массив, начиная с k -го элемента и присвоить каждому текущему элементу значение следующего элемента. 3. Вывести массив размером n-1. Последний элемент сделать 0. Задача 16 Удалить k -й элемент массива. kn i a n i a Какие ограничения для k необходимо задать? ?
28 Обработка элементов массива Вставка элемента массива Входные данные: A = 13 Выходные данные: Задача 17 Вставить число A после k -го элемента массива.. knn+1 i a knn+1 i a
29 Обработка элементов массива Дополнительные задачи Задача 18* Переставьте в массиве первый положительный и последний отрицательный элементы. Задача 19* Вставьте число k перед всеми отрицательными элементами. Задача 20* Удалите из массива все элементы, содержащие в своей записи цифру 5.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.