- Какие способы задания значений элементам массива вы знаете
- Способы задания одномерных массивов
- Способы задания одномерных массивов
- Способы задания одномерных массивов
- Урок 21. Заполнение массива и вывод на экран
- Заполнение одномерного массива значениями
- Вывод значений элементов массива на экран
- Информатика. 11 класс
Какие способы задания значений элементам массива вы знаете
Ввод значений элементов массива можно осуществить несколькими способами (рис. 4.3).
Рис. 4.3. Способы ввода значений элементов массива
а) Ввод элементов массива с помощью оператора присваивания
Это самый нерациональный способ ввода.
var a: array [1..4] of word;
б ). Ввод элементов массива с клавиатуры
Этот способ и спользуется, когда значения элементов массива вполне определенные, но могут быть разные при каждом запуске программы.
var a: array [1..10] of integer;
for i:=1 to 10 do read(a[i]);
Здесь цикл перебирает все значения индекса массива. А чтобы было более наглядно и удобно можно использовать и такую запись операторов в цикле.
for i:=1 to 10 do
write(‘ введите ‘,i, ‘ элемент : ’);
в ). Ввод элементов массива с помощью генератора случайных чисел
Этот способ используется, когда не важно, какие значения имеют элементы массива.
var a: array [1..10] of real;
for i:=1 to 10 do
В этом случае, функция random генерирует псевдослучайные действительные числа в интервале от 0 до 1. Для генерации положительных и отрицательных действительных чисел в произвольном диапазоне, отрезок [0,1] растягивают и сдвигают, например, так a[i]:=10*random-5 присваивает элементам массива действительные числа от -5 до 5.
Для генерации значений элементов целочисленного массива из определенного диапазона (0…N-1) используют функцию random(N):
var b: array [1..10] of integer;
for i:=1 to 10 do
В этом случае значениями элементов массива b будут целые числа от 0 до 9.
г). Ввод с помощью описания массива как типизированной константы
Этот способ используется, когда значения элементов массива постоянны при каждом запуске программы. Такой способ задания начальных значений элементов массива очень удобен при отладке программы.
const a: array [1..5] of integer = (5,4,9,1,2);
Далее в программе типизированные константы используются как переменные, в том числе заданные значения элементов массива могут изменяться.
Источник
Способы задания одномерных массивов
Описание: Заполнить элементы одномерного массива значениями мы можем: вводя значения с клавиатуры; случайным образом; по формуле. Способы задания одномерных массивов Для ввода и вывода числовых значений массива используются циклы. Процедура принимает параметр по ссылке массив Mssiv заданного типа и целую переменную n отвечающую за количество заполняемых ячеек массива. Формирование одномерного массива случайным образом.
Дата добавления: 2014-07-24
Размер файла: 11.79 KB
Работу скачали: 14 чел.
Поделитесь работой в социальных сетях
Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск
Заполнить элементы одномерного массива значениями мы можем:
• вводя значения с клавиатуры;
Способы задания одномерных массивов
Для ввода и вывода числовых значений массива используются циклы.
Рассмотрим процедуры, которые бы формировали одномерный массив двумя способами
1) случайным образом,
2) вводом элементов с клавиатуры
Предположим, что мы будем работать с массивом целых чисел. Пусть нам достаточно иметь максимальное количество элементов равное 50. Процедура принимает параметр по ссылке массив Massiv заданного типа и целую переменную n , отвечающую за количество заполняемых ячеек массива. Также нам нужна будет локальная переменная i , которая будет выполнять функции параметра цикла и использоваться для указания номера, определяющего местоположение элемента в массиве.
1. Формирование одномерного массива случайным образом. Зададим значение каждого элемента результатом случайной функции Random(10). Заполнение массива зададим циклическим оператором for, в теле которого выполняется вычисление случайного числа функцией Random(10), после чего это значение присваивается очередному i -му элементу массива.
Procedure InsertMas1(Var massiv:mas; n:integer);
2. Формирование одномерного массива вводом элементов с клавиатуры.
Procedure InsertMas2(Var massiv:mas; n:integer);
write (‘Введите ‘, i ,’-ый элемент массива ‘);
Вывод массива на экран осуществляется следующим образом:
Procedure PrintMas(massiv:mas; n:integer);
Надо помнить, что во всех трех случаях нам не обойтись без организации цикла.
Поиск максимального (минимального) элемента массива.
Пусть мы имеем одномерный массив:
20,-2, 4, 10,7, 21,-12, 0, 4, 17.
Подумаем, какие операции нужно выполнить, если требуется найти максимальный элемент. Естественно, операцию сравнения Мы не задумываемся над тем, что сравниваем всегда пару, «пробегая» глазами все элементы массива. Алгоритм поиска максимального (минимального) элемента мы построим таким образом чтобы сравнивать пару чисел, повторяя действие сравнения нужное количество раз.
Итак, нам необходимо ответить на два вопроса:
1) какие числа входят в пару, составляющую операцию отношения;
2) сколько раз необходимо повторить операцию сравнения. Введем дополнительную переменную с именем mах. Она и будет одним из чисел, второе число это очередной элемент массива. Для того, чтобы провести первую операцию сравнения необходимо переменной mах присвоить некоторое начальное значение. Здесь могут быть два варианта:
1) присвоить переменной mах первый элемент массива;
2) присвоить число заведомо меньшее всех элементов массива.
Массив содержит сведения о количестве студентов каждой группы I курса. Определить группу с максимальным количеством студентов, считая, что номер группы соответствует порядковому номеру числа в массиве (считаем, что такая группа единственная).
Другими словами, мы должны найти максимальный элемент и его номер.
Источник
Способы задания одномерных массивов
Для ввода и вывода числовых значений массива используются циклы.
Рассмотрим процедуры, которые бы формировали одномерный массив двумя способами
1) случайным образом,
2) вводом элементов с клавиатуры
Предположим, что мы будем работать с массивом целых чисел. Пусть нам достаточно иметь максимальное количество элементов равное 50. Процедура принимает параметр по ссылке массив Massiv заданного типа и целую переменную n, отвечающую за количество заполняемых ячеек массива. Также нам нужна будет локальная переменная i, которая будет выполнять функции параметра цикла и использоваться для указания номера, определяющего местоположение элемента в массиве.
1. Формирование одномерного массива случайным образом. Зададим значение каждого элемента результатом случайной функции Random(10). Заполнение массива зададим циклическим оператором for, в теле которого выполняется вычисление случайного числа функцией Random(10), после чего это значение присваивается очередному i-му элементу массива.
Procedure InsertMas1(Var massiv:mas; n:integer);
2. Формирование одномерного массива вводом элементов с клавиатуры.
Procedure InsertMas2(Var massiv:mas; n:integer);
write(‘Введите ‘,i,’-ый элемент массива ‘);
Вывод массива на экран осуществляется следующим образом:
Procedure PrintMas(massiv:mas; n:integer);
Задание. Составьте программу-шаблон, в которой содержались бы два возможных варианта ввода элементов массива, оформленных в виде процедур, и одна процедура вывода полученного массива на экран. Результат работы покажите учителю для оценки.
Теперь проверьте себя, попробовав ответить на вопросы:
1. Что понимается под массивом?
2. Как обозначить в программе элементы массива?
3. Какие операции разрешены над элементами массива?
4. Как организовать в программе ввод и вывод элементов массива?
5. Приведите примеры, где можно использовать массивы.
6. Какие из приведенных описаний одномерных массивов являются правильными и почему?
a) Var a: Array[1..20] of Integer;
b) Type Myarrray: Array[1..20]
c) Var sd:Array[1..n] of Integer;
d) Var dd:Array[1] of integer;
7. Сколько элементов в каждом из следующих массивов
a) Var mb: Array[2..20] of Integer;
b) Type myarray1[2..20] of Integer;
myarray2[-5..5] of Integer;
Var aa: myarray1;
Дополнительное задание. (на усмотрение учителя)
1. Организуйте ввод в массив и выдайте на экран следующие последовательности:
б) список учеников вашего класса
2. Организуйте ввод чисел в массив с клавиатуры, а вывод элементов массива в столбик. Ввод и вывод организуйте в процедурах.
3. Дан произвольный массив N элементов. Организуйте вывод элементов массива на экран начиная с последнего элемента.
Источник
Урок 21. Заполнение массива и вывод на экран
Урок из серии: «Язык программирования Паскаль»
Скачать исходные коды примеров
После объявления массива с ним можно работать. Например, присваивать значения элементам массива и вообще обращаться с ними как с обычными переменными. Для обращения к конкретному элементу необходимо указать идентификатор (имя) массива и индекс элемента в квадратных скобках.
Например, запись Mas[2], A[10] позволяет обратиться ко второму элементу массива MAS и десятому элементу массива A. При работе с двумерным массивом указывается два индекса, с n-мерным массивом — n индексов.
Например, запись Matr[4, 4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива M.
Индексированные элементы массива называются индексированными переменными. За границы массива выходить нельзя. То есть, если в массиве Mas пять элементов, то обращение к шестому или восьмому элементу приведет к ошибке.
Рассмотрим типичные операции, возникающие при работе с одномерными массивами.
Заполнение одномерного массива значениями
Заполнение и вывод массива можно осуществить только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, то же самое и с выводом на экран — выводим первый, второй, третий и так до последнего.
Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и значений производится поэлементно. Значения элементу массива можно присвоить с помощью оператора присваивания, или ввести с клавиатуры с помощью операторов Read или Readln. Очень удобно перебирать все элементы массива в цикле типа for.
Способы заполнения одномерных массивов:
- Ввод значения с клавиатуры.
- Задание значений в операторе присваивания с помощью генератора случайных чисел. Этот способ более удобен, когда много элементов в массиве (ввод их значений с клавиатуры занимает много времени).
- Задание значений по формуле.
- Ввод элементов массива из файла
1. Ввод значений элементов массива с клавиатуры. В связи с тем, что использовался оператор Readln, каждое значение будет вводиться с новой строки.
2. Заполнение массива числами, сгенерированными случайным образом из интервала [a; b]. Подключаем датчик случайных чисел — функцию random.
3. Заполнение массива по формуле. Каждому элементу массива присваивается значение, вычисленное по формуле. Если каждый элемент массива равен утроенному значению его порядкового номера (индекса), то процедура будет иметь вид:
4. Чтение чисел из файла. Нужно заранее создать текстовый файл, в который запишите несколько строк, в каждой из которых по 30 чисел.
Вывод значений элементов массива на экран
Вывод значений элементов массива на экран выполняется, как и ввод, поэлементно в цикле. Для вывода будем использовать операторы Write или Writeln. В качестве входных параметров будем передавать процедуре не только массив, но и количество элементов, которые надо вывести, начиная с первого (это понадобится нам, когда мы будем удалять и добавлять элементы в массиве).
Пример 1. Заполнить массив с клавиатуры и вывести его на экран.
В программе будет использоваться две процедуры: процедура Init1 (заполнение массива с клавиатуры) и процедура Print (вывод массива на экран).
Пример 2. Заполнить массив из текстового файла и вывести на экран. В текстовом файте несколько строк, в каждой строке по 30 чисел.
Вы научились заполнять одномерный массив и выводить его на экран.
На следующем уроке продолжим знакомиться с алгоритмами обработки одномерных массивов.
Источник
Информатика. 11 класс
Конспект урока
Информатика, 11 класс. Урок № 5.
Тема — Массивы. Типовые задачи обработки массивов
Перечень вопросов, рассматриваемых в теме: массивы, описание массивов, заполнение массивов, типовые задачи обработки массивов.
Глоссарий по теме: массив, элемент массива, размерность массива, индекс элемента массива, сортировка.
Основная литература по теме урока:
Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2017
Дополнительная литература по теме урока:
— И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2012
— К. Ю. Поляков, Е. А. Еремин. Информатика. Углубленный уровень: учебник для 10 класса. В 2 ч. Ч. 2 — М.: БИНОМ. Лаборатория знаний, 2013
— Андреева Е. В. Программирование — это так просто, программирование — это так сложно. Современный учебник программирования. — М.: МЦНМО, 2015
— Молчанова С. И. Основы программирования. Турбо-Паскаль 7.0 для школьников и абитуриентов. — М.: «Аквариум»; ООО «Фирма «Издательство АСТ», 1999
Теоретический материал для самостоятельного изучения
Рассмотрим следующую задачу: ввести с клавиатуры 20 действительных чисел и вычислить их сумму, при этом каждое из чисел сохранить в памяти для последующей обработки.
Для решения этой достаточно простой задачи мы будем вынуждены ввести 20 имен переменных, что, естественно, очень неудобно. Но ведь чисел может быть гораздо больше, чем 20!
Основное предназначение современных компьютеров — обработка большого количества данных. Очень сложно каждой переменной при этом давать собственное имя и не запутаться. Выходом их этой ситуации является использование более сложных по своей конструкции типов данных — составных (или структурированных). Одним из таких типов являются массивы.
Массив — это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.
Элемент массива — отдельная переменная, входящая в массив.
Индекс элемента массива — номер элемента в этом массиве.
Размерность массива — количество элементов, которое содержит массив.
Массивы бывают одномерными и многомерными. Мы будем рассматривать только одномерные массивы. Их условно можно представлять в виде таблицы, которая состоит из множества ячеек, расположенных в одну строку или в один столбец.
В языке Паскаль массивы описываются в блоке описания переменных следующим образом:
— array и of — служебные слова, которые буквально можно перевести как «массив» и «из»;
— — описание индексации (нумерации) элементов массива. В качестве типа индекса можно использовать любые порядковые типы;
— — тип величин, непосредственно составляющих массив.
Приведем несколько примеров описаний:
- varday: array [1..365] of integer; — массив, состоящий из 365 целых чисел, которые пронумерованы от 1 до 365;
- vartem: array [0..11] of real; — массив, состоящий из 12 вещественных, пронумерованных от 0 до 11;
- var ocenka: array [–2..2] of char; — массив, состоящий из 5 символьных переменных с номерами от -2 до 2:
- const n=10; var slovo: array [1..n] of string; — n строковых величин, пронумерованных от 1 до n;
Для того, чтобы обратиться к элементу массива, нужно записать имя массива и в квадратных скобках индекс нужного элемента, например, day[100].
Рассмотрим основные приемы работы с массивами.
Заполнение одномерного массива значениями
Задать элементам массива значения мы можем:
— вводя значения с клавиатуры;
— случайным образом из некоторого диапазона;
Но какой бы способ мы ни выбрали, нам обязательно нужно организовать цикл.
Для начала договоримся, что мы имеем дело с массивом из 10 натуральных чисел (хотя тип элементов в данном случае значения не имеет).
Вывод элементов массива на экран
Вывод элементов также нужно организовывать с помощью цикла. При этом можно объединять процессы формирования массива и вывода его элементов на экран в один цикл, и выводить элементы массива либо в столбик, либо в строчку.
Воспользуемся вторым и третьим способами, рассмотренными выше:
Теперь перейдем к задачам обработки массивов.
Вычисление суммы элементов массива
Алгоритм решения практически полностью совпадает с алгоритмом нахождения суммы некоторого количества чисел, который мы уже рассматривали на третьем уроке в этой теме.
Следующая группа задач очень часто встречается нам в реальной жизни. Это задача поиска в массиве. Например, поиск нужного слова в словаре, поиск времени отправления нужного поезда в расписании и т. д.
В программировании поиск — одна из наиболее часто встречающихся задач вычислительного характера.
В алгоритмах поиска существуют два возможных варианта окончания их работы: поиск может оказаться удачным — заданный элемент найден в массиве и определено его месторасположение, либо поиск может оказаться неудачным – необходимого элемента в данном объеме информации нет. Кроме того, искомый элемент может встретиться в массиве неоднократно.
Рассмотрим несколько типовых задач, которые уже знакомы вам из курса основной школы.
Поиск в массиве элемента, удовлетворяющего некоторому условию
Например, требуется найти в массиве элемент, значение которого равно значению переменной p, или сообщить, что такого элемента в массиве нет.
Мы построим алгоритм, идея которого следующая:
- Просматриваем все элементы массива с первого до последнего.
- Как только находим элемент, равный p, выведем его номер, и увеличим счетчик вхождений элемента m в массив на 1.
- Если после просмотра массива счетчик окажется равным 0, выведем сообщение об отсутствии искомого элемента в массиве.
Можно заметить, что наш алгоритм решает еще одну часто встречающуюся задачу обработки массивов — подсчет количества элементов, удовлетворяющих некоторому условию.
Поиск максимального (минимального) элемента массива
Подумаем, какие операции нужно выполнить, если требуется найти максимальный элемент. Естественно, как и в предыдущей задаче, операцию сравнения. Но с чем нам сравнивать очередной элемент массива?
Введем дополнительную переменную max, которой присвоим значение, равное значению элемента массива a[1]. Теперь будем сравнивать все элементы, начиная со 2-го, с max, и если найдем больший элемент, то присвоим его значение переменной max. Конечное значение этой переменной и будет значением наибольшего элемента массива.
Поиск максимального (минимального) среди всех элементов массива, удовлетворяющих некоторому условию
Фактически, эта задача является объединением двух предыдущих, но с одним «подвохом».
Допустим, нужно найти наибольшее среди всех четных чисел, входящих в массив произвольных натуральных чисел.
Мы знаем, что условие «четности» на языке Паскаль можно записать так: x mod 2=0. Значит, найти все четные элементы массива мы сможем. Но как среди них найти наибольший?
Прием, которым мы воспользовались в задаче 5, здесь может привести к ошибке. Например, на первом месте в массиве будет стоять НЕЧЕТНОЕ число, которое окажется больше всех четных. Здесь переменной max лучше присвоить начальное значение, заведомо меньшее всех элементов массива. Например, если наш массив составлен из натуральных чисел, то присвоить max значение -2. Если после окончания программы значение max останется таким же, это будет означать, что в массиве нет четных чисел. Если же они будут, max изменит значение.
Сдвиг элементов массива
Сдвиг элементов массива необходимо выполнять при удалении или вставке элементов. Если происходит удаление, то элементы, расположенные после удаленного, сдвигаются на одну ячейку влево. Если же происходит добавление, то элементы, расположенные после места вставки, сдвигаются вправо. При этом нужно учитывать, что размерность массива уже указана при его описании и измениться не может.
Таким образом при удалении элемента из массива мы можем получить, например, такую ситуацию. Допустим, имеется массив:
Удалим из него элемент с индексом i=4, т. е. a[1]=a[1], a[2]=a[2], a[3]=a[3], a[4]=a[5], a[5]=a[6], a[6]=a[7]. А вот для последнего элемента a[7] новое значение взять неоткуда. Он сохранит свое значение. Получим:
Чтобы избежать такого дублирования последнего элемента обычно на его место ставят число 0.
Программа удаления элемента из массива на языке Паскаль может выглядеть следующим образом:
Сложнее обстоит дело со вставкой элемента внутрь массива. Как мы сказали, при вставке все элементы, расположенные справа от места вставки, сдвигаются вправо. Последнему же элементу сдвигаться некуда, и он пропадет. Чтобы этого не произошло, нужно увеличить размерность массива на 1. Но учесть это надо при описании массива. Второй важный момент заключается в том, что сдвиг значений мы будем производить справа налево до заявленной позиции вставки:
Реверс массива — это перестановка его элементов в обратном порядке: первый элемент становится последним, а последний — первым.
Из примера видно, что местами меняются 1-й элемент с N-м, второй — с (N–1)-м и т. д. Замечаем, что сумма индексов элементов, участвующих в обмене, равна N+1, поэтому элемент с номером i должен меняться местами с (N+1–i)-м элементом.
Теперь разберемся с организацией цикла. Если мы организуем цикл по всем элементам, то получим:
Все вернулось в исходное состояние, потому что реверс выполнился дважды. Чтобы этого не произошло, нужно остановить процесс обмена на середине массива, т.е. на элементе с индексом (N div 2).
Сортировка — один из наиболее распространенных процессов обработки данных.
Под сортировкой массива понимают расстановку элементов массива в заданном порядке.
Порядок сортировки может быть любым, для чисел обычно рассматривают сортировку по возрастанию или убыванию значений.
Цель сортировки — ускорить последующий поиск элементов, т. к. нужный элемент легче искать в упорядоченном массиве.
Существует много различных алгоритмов сортировки. Мы рассмотрим некоторые из них на примере сортировки массива целых чисел в порядке неубывания (a[i] 2 , где n — число элементов в массиве.
С примером более эффективного алгоритма сортировки — «быстрой сортировкой» — вы сможете познакомиться в дополнительном материале.
Источник