Массивы Для хранения в памяти компьютера большого числа однотипных данных используются массивы. Каждый элемент массива обладает общим именем индивидуальным.

Презентация:



Advertisements
Похожие презентации
Циклические алгоритмы Повторение - это многократное выполнение одного или нескольких предписаний алгоритма. Цикл - это оператор языка программирования,
Advertisements

Массивы данных Подготовила: Камышная И.Н.. Массивы данных Массив – это упорядоченная по возрастанию индексов (номеров) совокупность данных одного типа,
Массивы Массив это величины объединенные общим именем и различаемые порядковыми номерами. Номера называются индексами. В зависимости от количества индексов.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Массивы Вариант 1 Program upr1; Var s,a:real; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (введите очередное число'); Readln(a); S: =s+a; End;
Массивы МОУ СОШ 14 Корниенко В.Н.. Определение МАССИВА Массив – это упорядоченный набор однотипных переменных, имеющий имя. Переменные в массиве называются.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Основы программирования на Бейсике Массивы. Задание: Найти все 3-хзначные числа, заканчивающихся на 2, 4, 8 и делящихся на 6. Ответ: CLS FOR I=100 TO.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Организация данных в виде массива. Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива. Каждый.
Массивы Минжесовой Иляны. Содержание Массивы Объявления массивов Заполнение массивов Заполнение с клавиатуры Заполнение с помощью оператора присваивания.
Массивы Массив используется для обработки упорядоченного набора величин одного типа, обозначенного одним именем. Доступ к элементам массива осуществляется.
Одномерные массивы. Одномерный массив Статический массив – упорядоченная последовательность фиксированного количества переменных одного типа, имеющая.
Алгоритмизация и программирование. Практическая работа в Pascal Задача 1.
Массивы в ТР. Массив (таблица) Одномерный (содержит одну строку или один столбец) Многомерный ( содержит N строк, M столбцов) Например, температура.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
МАССИВЫ ОДНОМЕРНЫЕ МАССИВЫ Презентацию подготовила Ученица 11 Б Карапетян Наташа.
Одномерные массивы Понятие массива, виды массивов Описание, заполнение и вывод одномерного массива Обработка одномерного массива.
Подведение итогов г. Н.Новгород школа 58. Блиц-опрос! Что такое двумерный массив? Как его описать? Как заполнить двумерный массив? Приведите примеры заполнения.
Есть ли в решении этой задачи действия, которые необходимо выполнить несколько раз? Сколько раз надо их выполнить? С помощью какой команды мы организуем.
Транксрипт:

Массивы Для хранения в памяти компьютера большого числа однотипных данных используются массивы. Каждый элемент массива обладает общим именем индивидуальным номером (индексом) и значением, т. е. является переменной с индексом. Допустим, нам известна температура в каждый из дней октября. День месяца … Температура, С …012 Тогда температура - это последовательность чисел, следующих по порядку одно за другим. А день месяца – это порядковый номер элемента в этой последовательности или индекс.

Массивы Если обозначим последовательность температур за весь месяц, например, буквой t, тогда можно обозначить через t(l) температуру первого дня месяца, t(2) - второго,..., t(31) -последнего. Тогда под массивом можно понимать набор однотипных данных, объединенных одним именем и отличающихся индексами или последовательность фиксированного числа однотипных переменных, имеющих общее имя. Этот пример является определением одномерного массива – одномерной таблицы, а если данные можно представить в виде двумерной таблицы, то и массив можно определить как двумерный. Массивы могут быть различных типов: числовые, строковые и т. д.

Объявление одномерных массивов Dim t(31) As Integer Указывается максимальное значение индекса Dim t(1 To 31) As Integer Указывается диапазон значений индекса с использованием ключевого слова To Dim Year(1917 to 2000) as Integer Указывается массив с произвольными границами индексов.

Объявление одномерных массивов Одним из этих способов можно объявить массив, если он локальный. Если же массив предназначен для общего пользования (проект содержит несколько форм, в которых массив обрабатывается), то он должен быть описан с помощью служебного слова Public (а не Dim) и это описание помещается в раздел General Declarations стандартного модуля. Если до выполнения программы размер массива неизвестен, используется динамический массив. Он описывается в разделе General Declarations стандартного модуля в виде: Public Имя массива() As тип массива.

Пример использования динамического массива Public Day() As Integer Описание массива в модуле Public I As Integer Описание переменной в модуле …Программный код задачи I = Val(InputBox("Введите количество дней")) ReDim Day(I) Задание размерности массива

Заполнение массива с помощью функции Inputbox Dim t(1 To 31) As Integer, I As Integer For I=1 To 31 T(I)= Val(InputBox(Введите значение дневной температуры в +Str(I)+ день Next I

Заполнение массива с помощью датчика случайных чисел Dim A(10) As Byte, I As Integer Randomize For I = 1 To 10 A(I) = Int(Rnd*10) + 1 Next I

Заполнение массива из ячеек листа Excel Для заполнения массива значениями, расположенными в ячейках листа Ms Excel, например, таким образом Можно воспользоваться одним из фрагментов:

Заполнение массива из ячеек листа Excel Dim A(10) As Single, I As Integer For I = 1 To 10 A(I) = Cells(I + 1, 1) Next I Или Dim a(10) As Single, i As Integer i = 1 Do While Cells(i + 1, 1) "" a(i) = Cells(i + 1, 1) i = i + 1 Loop

Вывод элементов одномерного массива в ячейки листа Excel Dim A(10) As Single, I As Integer For I = 1 To 10 Cells(I + 1, 2) = A(I) Next I

Задача1 Составить алгоритм и программу заполнения элементов массива A с помощью датчика случайных чисел целыми числами от -10 до 15, массив B действительных чисел ввести с клавиатуры и получить массив C по формуле: C(i)=(A(i)+B(i))/(3+cos(i)). Вывести элементы всех массивов, содержащих по 7 элементов на Лист1.

Постановка задачи Исходными данными для данной задачи является массив B(7) действительных чисел, которые вводятся с клавиатуры, и массив целых чисел A(7), получаемых датчиком случайных чисел. Результатом работы программы является массив C(7) действительных чисел, вычисляемых по заданной формуле. Кроме того, в задаче предлагается вывести все массивы на лист Ms Excel.

Блок – схема задачи 1 Начало I=1,7,1 A(I)=-10+Int(Rnd*26) Ввод B(I) C(I)= (A(I)+B(I))/(3+Cos(I)) Вывод A(I),B(I),C(i) Конец

Программа задачи 1 Sub massiv() Dim A(7) As Integer, B(7) As Single, C(7) As Single Dim I As Integer Sheets("Лист1").Select Cells(1, 1) = "A(i)": Cells(1, 2) = "B(i)« Cells(1, 3) = "C(i)" For I = 1 To 7 A(I) = Int(Rnd * 26) B(I) = Val(InputBox("Введите " + Str(I) + " элемент массива B")) C(I) = (A(I) + B(I)) / (3 + Cos(I)) Cells(I + 1, 1) = A(I): Cells(I + 1, 2) = B(I) Cells(I + 1, 3) = C(I) Next I End Sub

Результаты работы программы задачи 1

Особенности алгоритмов и программ с накоплением в массивах Сумма вычисляется всегда по такой формуле : Сумма = Сумма + очередной элемент массива Произведение вычисляется всегда по такой формуле: Произведение = Произведение* очередной элемент массива Количество вычисляется по формуле: Количество = Количество+1 Примечание: д о вычисления этих величин в цикле они должны быть подготовлены таким образом: начальному значению суммы и количества надо присвоить ноль, а произведению присвоить единицу.

Особенности поиска экстремальных значений 1.В начале за текущий минимум (максимум) принимается значение первого элемента массива, например, min=A(1) или max= min=A(1) 2.Затем в цикле, начиная со второго элемента массива, производится его сравнение со значением переменной min (max) и если это число меньше min (больше max), то на место min (max) записывается этот элемент и он становится текущим минимумом (максимумом). Например, min=A(I)

Задача 2 Составить проект программы для нахождения в одномерном массиве (размерностью не более 200 элементов), состоящем из N действительных чисел, количества элементов, больших 5, произведения элементов массива, попавших в интервал (2;4), минимального элемента массива и его номера. Массив заполняется из столбца А Листа1 (начиная с ячейки А2 и до первой пустой ячейки). Результаты выдаются на лист Результатв столбец С.

Постановка задачи 2 Для решения задачи определим такие переменные: A(200) – массив действительных чисел; N- общее количество элементов массива, не более 200; Ct - количество элементов массива, больших 5; Mult - произведение элементов массива, попавших в интервал (2;4); Min - минимальный элемент массива, Nmin – номер минимального элемента массива. Лист2 переименуем в «Результат» и пусть числа расположены на Листе1 таким образом:

Блок-схема задачи 2 Да Начало Нет Cells(I,1)= I=2 Ввод значений в массив A(I-1) I=I+1 1 N=I-2;

Mult=1;Min=A(1);Nmin=1; Ct=0 I=1 to N Нет A(I)>2 и A(I)5 Да Ct=Ct+1 Нет A(I)

Программа задачи 2 Sub massiv1() Dim A(200) As Single, N As Integer, Ct As Integer, i As Integer Dim Avr As Single, Sum As Single, Min As Single, Mult As Double, Nmin As Integer Sheets("Лист1").Select i = 2 Do Until Cells(i, 1) = "" A(i - 1) = Cells(i, 1).Value i = i + 1 Loop N = i - 2: Mult = 1: Min = A(1): Nmin = 1: Ct = 0 For i = 1 To N If A(i) > 2 And A(i) < 4 Then Mult = Mult * A(i) If A(i) < Min Then Min = A(i): Nmin = i If A(i) > 5 Then Ct = Ct + 1 Next i Sheets("Результат").Select Range("c1").Value = " Минимальный элемент массива =" + Format(Min, "0.000") Range("c2").Value = " Номер минимального элемента массива =" + Format(Nmin, "0.0") Range("c3").Value = " Произвед. эл-тов массива, из инт-ла (2;4) =" + Format(Mult, "0.0") Range("c4").Value = " Количество эл-тов массива, больших 5=" + Format(Ct, "0.000") End Sub

Результаты работы программы задачи 2

Сортировка элементов одномерного массива Сортировка элементов одномерного массива - расположение в порядке возрастания или убывания его элементов. Существует много различных способов сортировки: Сортировка выбором, сортировка вставкой, пузырьковая сортировка и т.д. Мы рассмотрим последнюю на примере решения задачи (см. след. слайд)

Задача3 Для каждого из студентов группы известны фамилия и номер зачетной книжки. Составить алгоритм и проект программы вывода фамилий и номеров их зачетных книжек в порядке убывания номеров зачетных книжек.

Постановка задачи 3 Для решения задачи определим такие переменные: Names(30) – массив фамилий Number(30) - массив номеров зачетных книжек i, j - переменные циклов n - количество студентов в группе zk, s – промежуточные переменные. Исходные данные массив фамилий и массив номеров зачетных книжек возьмем из 1-ого и 2-ого столбцов Листа1 Ms Excel, а отсортированные данные разместим в 4- ом и 5-ом столбцах также на Листе1.

Блок-схема задачи 3 Да Начало I=2 Cells(I,1) I=I+1 N=I-2 Ввод номеров за четных книжек в массив Number Ввод фамилий в массив Names 1

Повтор по i от 1 до n -1 Повтор по j от i+1 до n Number(j) > Number(i) Да Нет zk =Number(i): s = Names(i) Number(i) =Number(j): Names(i) = Names(j) Number(j) = zk: Names(j) = s 1 2

Повтор по i от 1 до n Вывод фамилий и номеров зачетных книжек Конец 2

Программа задачи 3 Sub сортировка() Dim Names(30) As String, Number(30) As Long Dim N As Integer, zk As Long, s As String, I As Integer, J As Integer I = 2 Do While Cells(I, 1) "" Names(I - 1) = Cells(I, 1): Number(I - 1) = Cells(I, 2) I = I + 1 Loop N = I - 2 For I = 1 To N - 1 For J = I + 1 To N If Number(J) > Number(I) Then zk = Number(I): s = Names(I) Number(I) = Number(J): Names(I) = Names(J) Number(J) = zk: Names(J) = s End If Next J Next I For I = 1 To N Cells(I + 1, 4) = Names(I): Cells(I + 1, 5) = Number(I) Next I End Sub

Результаты работы программы задачи 3

Задания для подготовки к тестированию Задание 1. В приведённом фрагменте программы определяется: S=1 Цикл по i от 1 до 6 если Z(i) 0, то S= Z(i)*S Конец цикла Вывод S a.Сумма элементов массива, не равных 0 b.Произведение элементов массива, не равных 0 c.Количество элементов массива, не равных 0 d.Произведение элементов массива, равных 0

Правильный ответ к заданию 1 В приведённом фрагменте программы определяется: S=1 Цикл по i от 1 до 6 если Z(i) 0, то S= Z(i)*S Конец цикла Вывод S a.Сумма элементов массива, не равных 0 b.Произведение элементов массива, не равных 0 c.Количество элементов массива, не равных 0 d.Произведение элементов массива, равных 0

Задание 2 В приведённом фрагменте программы определяется: S=0 Цикл по i от 1 до 6 S= Z(i)+S Конец цикла S=S/6 Вывод S a.Среднее значение элементов массива b.Сумма элементов массива c.Произведение элементов массива d.Количество элементов массива

Правильный ответ к заданию 2 В приведённом фрагменте программы определяется: S=0 Цикл по i от 1 до 6 S= Z(i)+S Конец цикла S=S/6 Вывод S a.Среднее значение элементов массива b.Сумма элементов массива c.Произведение элементов массива d.Количество элементов массива

Задание 3 В приведённом фрагменте программы определяется: S=1 Цикл по i от 1 до 6 если Z(i) 0, то S= S+1 Конец цикла Вывод S a.Сумма элементов массива, не равных 0 b.Произведение элементов массива, не равных 0 c.Количество элементов массива, не равных 0 d.Произведение элементов массива, равных 0

Правильный ответ к заданию 3 В приведённом фрагменте программы определяется: S=1 Цикл по i от 1 до 6 если Z(i) 0, то S= S+1 Конец цикла Вывод S a.Сумма элементов массива, не равных 0 b.Произведение элементов массива, не равных 0 c.Количество элементов массива, не равных 0 d.Произведение элементов массива, равных 0

Задание 4 Дан фрагмент программы: M=A(1) Цикл по i от 1 до 8 если A(i) > M, то M=A(i) Конец цикла Сколько раз будет исполнен оператор M=A(i) при заданном массиве: 3, 8, 7, 9, 4, 10, 2, 12: a.2 b.4 c.8 d.1 e.3

Правильный ответ к заданию 4 Дан фрагмент программы: M=A(1) Цикл по i от 1 до 8 если A(i) > M, то M=A(i) Конец цикла Сколько раз будет исполнен оператор M=A(i) при заданном массиве: 3, 8, 7, 9, 4, 10, 2, 12: a.2 b.4 c.8 d.1 e.3

Задание 5 Задан одномерный массив: Хi: -1, -2, 3, 0, -5, 1 алг «Вычисление значения переменной m» i =1 m= Хi Цикл пока i 6 если Xi < m, то m= Хi i=i+1 Конец цикла Вывод m Какое значение получит переменная m после выполнения данного алгоритма? a.-2 b.1 c.3 d.0 e.5

Правильный ответ к заданию 5 Задан одномерный массив: Хi: -1, -2, 3, 0, -5, 1 алг «Вычисление значения переменной m» i =1 m= Хi Цикл пока i 6 если Xi < m, то m= Хi i=i+1 Конец цикла Вывод m Какое значение получит переменная m после выполнения данного алгоритма? a.-2 b.1 c.3 d.0 e.5

Задание 6 Задан одномерный массив: Хi: 1, 8, 3, 8, 5, -1 i =1: m= Хi: n=1 Цикл по i от 1 до 6 Если Xi > m, то m= Хi: n=i Конец если Конец цикла Вывод n Какое значение получит переменная n после выполнения данного алгоритма? a.2 b.1 c.3 d.4 e.6

Правильный ответ к заданию 6 Задан одномерный массив: Хi: 1, 8, 3, 8, 5, -1 i =1: m= Хi: n=1 Цикл по i от 1 до 6 Если Xi > m, то m= Хi: n=i Конец если Конец цикла Вывод n Какое значение получит переменная n после выполнения данного алгоритма? a.2 b.1 c.3 d.4 e.6