- Способы присваивания значений элементам массива ввода элементов массива
- Одномерные массивы
- Массивы в Си.
- Объявление массива в Си
- Работа с массивами в Си
- Поиск минимального и максимального элемента массива в Си
- Pascal-Паскаль
- Программирование. Одномерные массивы Pascal-Паскаль
- Программирование. Одномерные массивы Pascal-Паскаль
- Понятие структуры
- Массив – однородная совокупность элементов
- Индекс массива
- Вычисление индекса массива Паскаля
- Основные действия с массивами Паскаля
- Ввод массива Паскаля
- Вывод массива Паскаля
- Пример решения задачи с использованием массивов Паскаля
- Программирование
- Исходники Pascal (127)
- Справочник
Способы присваивания значений элементам массива ввода элементов массива
Ввод значений элементов массива можно осуществить несколькими способами (рис. 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);
Далее в программе типизированные константы используются как переменные, в том числе заданные значения элементов массива могут изменяться.
Источник
Одномерные массивы
Этапы работы с элементами массива | ||||
| | | | |
- Ввод элементов массива
- Вопросы и задания
Значения элементов массива можно ввести следующими способами:
С использованием цикла с параметром:
for i:=1 to n do read (a[i]);
Если заранее неизвестно количество элементов массива, то ввод элементов массива можно организовать с помощью циклов с предусловием или постусловием. Например, необходимо вводить элементы массива, до тех пор пока их сумма не превысит 100: ( .pas ) — с предусловием , ( .pas ) — с постусловием.
С использованием цикла с предусловием:
while (условие) do
begin
i:=i+1;
readln(a[i]);
/ изменение параметра, входящего в условие/
end;
С использованием цикла с постусловием:
repeat
i := i + 1;
readln(a[i]);
/ изменение параметра, входящего в условие/
until (условие);
сonst имя массива: array [тип индекса] of тип элементов = (список элементов);
const a: array[1..5] of integer=(15,5,7,2,1);
Источник
Массивы в Си.
Когда необходимо хранить и обрабатывать большое количество цифровой информации о множестве объектов удобно использовать массивы информации.Массив – это набор однотипных объектов с общим именем, у каждого объекта есть свой уникальный номер(индекс) с помощью которого можно с ним работать, изменять , запрашивать значение.Каждый такой объект называется элементом массива. Номер элемента массива – это его индекс.
Объявление массива в Си
Чтобы работать с массивом данных в Си его необходимо сначала, так же как и переменную объявить в начале программы или процедуры.
Нумерация элементов, индексов в Си начинается с 0. Чтобы объявить, массив нужно
Тип массива Имя массива [количество элементов массива -1];
Например, объявлен массив из 5 целочисленных элементов координат точек x
Типы элементов массива могут быть вещественные float, символьные char
Присвоение значений элементам массива.
Задать первоначальные значения элементам массива можно явно при его объявлении для этого используются фигурные скобки и в них через запятую перечисляются значения элементов массива. Число элементов должно совпадать с размером массива
задаст первоначальные значение x[0]=10 ; x[1]=20; x[2]=3; x[3]=5; x[4]=100;
Можно задать значения присвоением
ввести значение элемента массива можно и с клавиатуры
scanf(“%d”, &x[1]); // элемент массива x с индексом 1 будет введен с клавиатуры
Работа с массивами в Си
При работе с массивами удобно использовать цикл for для того чтобы обработать все элементы массива
Общий формат обработки данных всего массива в Си
Имя массива [i]= выражение; // обработка элемента массива с индексом i
Пример программы 20. Вводится массив с клавиатуры, значения элементов массива увеличивается в 2 раза. Получившийся массив выводится на экран.
// работа с массивом
int a[9];// объявление целочисленного массива a из 10 элементов
int i;// переменная для работы с массивом в цикле
// ввод элементов массива с клавиатуры
printf(«Введите элемент массива %d\n», i);
// увеличиваем элементы массива в 2 раза
// выводим массив на экран
Поиск минимального и максимального элемента массива в Си
При поиске минимального (максимального) элемента в массиве необходимо “пробежать” по всем элементам массива сравнивая его элементы с текущим минимумом (максимумом) . Если текущий элемент окажется меньше текущего минимального значение , то минимальному значению присваивается этот элемент массива.
Пример программы 21. Поиск минимального и максимального значения массива.
// работа с массивом поиск минимального и максимального значений
int a[9];// объявление целочисленного массива a из 10 элементов
int i;// переменная для работы с массивом в цикле
int min;// переменная для минимального значения
int max;// переменная для максимального значения
// ввод элементов массива с клавиатуры
printf(«Введите элемент массива %d\n», i);
min =a[0];// присваиваем минимальному значению значение первого элемента
max=a[0];// присваиваем максимальному значению значение первого элемента
// пробегаем по всем элементам массива
// если текущий элемент массива меньше текущего минимума то присваиваем его значение минимуму
// если текущий элемент массива больше текущего максимума то присваиваем его значение максимуму
// выводим значения на экран
printf(«Максимальное значение %d\n»,max);
printf(«Минимальное значение %d\n»,min);
Вернуться к содержанию Перейти к следующему уроку Матрицы в Си
Источник
Pascal-Паскаль
Программирование. Одномерные массивы Pascal-Паскаль
- Скачено бесплатно: 18605
- Куплено: 414
- Pascal-Паскаль->Программирование. Одномерные массивы Pascal-Паскаль
Программирование. Одномерные массивы Pascal-Паскаль
Понятие структуры
До сих пор мы работали с простыми типами данных – логический ( boolean ), целый ( integer , word , byte , longint ), вещественный ( real ), символьный ( char ). Любой алгоритм можно запрограммировать с помощью этих четырех базовых типов. Но для обработки информации о многообразном реальном мире требуются данные, имеющие более сложное строение. Такие сложные конструкции, основанные на простейших скалярных типах, называются структурами. Структура – некоторый составной тип данных, составленный из базовых скалярных. Если структура не изменяет своего строения на протяжении всего выполнения программы, в которой она описана, то такую структуру называют статической.
Массив – однородная совокупность элементов
Самой распространенной структурой, реализованной практически во всех языках программирования, является массив.
Массивы состоят из ограниченного числа компонент, причем все компоненты массива имеют один и тот же тип, называемый базовым. Структура массива всегда однородна. Массив может состоять из элементов типа integer , real или char , либо других однотипных элементов. Из этого, правда, не следует делать вывод, что компоненты массива могут иметь только скалярный тип.
Другая особенность массива состоит в том, что к любой его компоненте можно обращаться произвольным образом. Что это значит? Программа может сразу получить нужный ей элемент по его порядковому номеру (индексу).
Индекс массива
Номер элемента массива называется индексом. Индекс – это значение порядкового типа, определенного, как тип индекса данного массива. Очень часто это целочисленный тип ( integer , word или byte ), но может быть и логический и символьный.
Описание массива в Паскале. В языке Паскаль тип массива задается с использованием специального слова array (англ. – массив), и его объявление в программе выглядит следующим образом:
где I – тип индекса массива, T – тип его элементов.
Можно описывать сразу переменные типа массив, т.е. в разделе описания переменных:
Обычно тип индекса характеризуется некоторым диапазоном значений любого порядкового типа : I 1 .. I n . Например, индексы могут изменяться в диапазоне 1..20 или ‘ a ‘..’ n ‘.
При этом длину массива Паскаля характеризует выражение:
Вот, например, объявление двух типов: vector в виде массива Паскаля из 10 целых чисел и stroka в виде массива из 256 символов:
С помощью индекса массива можно обращаться к отдельным элементам любого массива, как к обычной переменной: можно получать значение этого элемента, отдельно присваивать ему значение, использовать его в выражениях.
Опишем переменные типа vector и stroka :
далее в программе мы можем обращаться к отдельным элементам массива a или c . Например, a [5]:=23; c [1]:=’ w ‘; a [7]:= a [5]*2; writeln ( c [1], c [3]).
Вычисление индекса массива Паскаля
Индекс массива в Паскале не обязательно задавать в явном виде. В качестве индекса массива можно использовать переменную или выражение, соответствующее индексному типу. Иначе говоря, индексы можно вычислять.
Этот механизм – весьма мощное средство программирования. Но он порождает распространенную ошибку: результат вычислений может оказаться за пределами интервала допустимых значений индекса, то есть будет произведена попытка обратиться к элементу, которого не существует. Эта типичная ошибка называется «выход за пределы массива».
Пример программы с ошибкой массива Паскаля
Хотя данная программа полностью соответствует синтаксису языка, и транслятор «пропустит» ее, на стадии выполнения произойдет ошибка выхода за пределы массива Паскаля. При n =45 выражение n *2=90, компьютер сделает попытку обратиться к элементу массива a [90], но такого элемента нет, поскольку описан массив размерностью 80.
Будем считать, что хорошая программа должна выдавать предупреждающее сообщение в случае попытки обращения к несуществующим элементам массива. Не лишним будет проверять возможный выход как за правую, так и за левую границы массива, ведь не исключено, что в результате вычисления значения выражения получится число, находящееся левее границы массива Паскаля.
Из всего этого следует сделать вывод: программисту надо быть очень аккуратным при работе с индексами массива.
Основные действия с массивами Паскаля
Как известно, определение типа данных означает ограничение области допустимых значений, внутреннее представление в ЭВМ, а также набор допустимых операций над данными этого типа. Мы определили тип данных как массив Паскаля. Какие же операции определены над этим типом данных? Единственное действие, которое можно выполнять над массивами целиком, причем только при условии, что массивы однотипны, – это присваивание. Если в программе описаны две переменные одного типа, например,
то можно переменной a присвоить значение переменной b ( a := b ). При этом каждому элементу массива a будет присвоено соответствующее значение из массива b. Все остальные действия над массивами Паскаля производятся поэлементно (это важно!).
Ввод массива Паскаля
Для того чтобы ввести значения элементов массива, необходимо последовательно изменять значение индекса, начиная с первого до последнего, и вводить соответствующий элемент. Для реализации этих действий удобно использовать цикл с заданным числом повторений, т.е. простой арифметический цикл, где параметром цикла будет выступать переменная – индекс массива Паскаля. Значения элементов могут быть введены с клавиатуры или определены с помощью оператора присваивания.
Пример фрагмента программы ввода массива Паскаля
Рассмотрим теперь случай, когда массив Паскаля заполняется автоматически случайными числами, для этого будем использовать функцию random ( N ).
Пример фрагмента программы заполнения массива Паскаля случайными числами
Вывод массива Паскаля
Вывод массива в Паскале осуществляется также поэлементно, в цикле, где параметром выступает индекс массива, принимая последовательно все значения от первого до последнего.
Пример фрагмента программы вывода массива Паскаля
Вывод можно осуществить и в столбик с указанием соответствующего индекса. Но в таком случае нужно учитывать, что при большой размерности массива все элементы могут не поместиться на экране и будет происходить скроллинг, т.е. при заполнении всех строк экрана будет печататься очередной элемент, а верхний смещаться за пределы экрана.
Пример программы вывода массива Паскаля в столбик
На экране мы увидим, к примеру, следующие значения:
Пример решения задачи с использованием массивов Паскаля
Задача: даны два n -мерных вектора. Найти сумму этих векторов.
Решение задачи:
- Входными данными в этой задаче будут являться два одномерных массива. Размер этих массивов может быть произвольным, но определенным. Т.е. мы можем описать заведомо большой массив, а в программе определить, сколько элементов реально будет использоваться. Элементы этих массивов могут быть целочисленными. Тогда описание будет выглядеть следующим образом:
Ход решения задачи:
- определим количество элементов (размерность) массивов, введем значение n ;
- введем массив a ;
- введем массив b ;
- в цикле, перебирая значения индекса i от 1 до n , вычислим последовательно значения элементов массива c по формуле:
Текст программы :
Пример программы суммирования векторов
Программирование
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
Источник