Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Инициализация элементов массиваСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Помимо оператора присваивания значения компонентам массива можно задать оператором ввода. Для числовых данных в языке Паскаль применяется поэлементный ввод-вывод. При вводе компоненты массива отделяются друг от друга пробелом или запятой. По окончании ввода очередной порции данных нажимается клавиша Enter. Для символьных массивов возможности стандартной процедуры ввода расширены. При вводе строковых переменных количество вводимых символов может быть меньше длины строки. В этом случае вводимые символы будут размещены в начале массива и далее строка дополнится нужным числом пробелов. Если количество введенных символов больше длины строки, будет произведено усечение данных. При вводе символы будут считываться с устройства начиная с текущего положения маркера до символа возврата каретки или перевода строки. Поскольку каждый элемент массива имеет свой порядковый номер, то к каждому элементу можно обращаться непосредственно, указывая имя массива и в квадратных скобках порядковый номер элемента. Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле, изменяя при каждой итерации значение индекса. Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами. Первый способ - с использованием типизированных констант, например: Type Mass= Array [1..10] Of Real; Const K: Mass=(0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3); При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках: Type Mass3x2= Array[1..3,1..2] Of Integer; Const L: Mass3x2=((1,2), (3,4), (5,6)); Пример 8.1. Ввод элементов одномерного массива с клавиатуры A: Array [1..10] Of Integer. For i:=1 To 10 Do Begin Write ('Введите A[',i,']'); Read (A[i]); End;
Если необходимо инициализировать массив случайными значениями, то используют генератор случайных чисел. Randomize; For i:=1 To 10 Do A[i]:=Random(100); Процедура Randomize инициализирует встроенный генератор случайных чисел. Функция Random(100) возвращает при каждой итерации случайное число в диапазоне от 0 до значения заданного аргументом (100-1).
Пример 8.2 Ввод элементов двумерного массива. B: Array [1..20,1..20] Of Real. For i:=1 To 20 Do For i:=1 To 20 Do Begin Write ('Введите B[', i,']'); Read (B[i]) End; Аналогично показанному выше, можно использовать генератор случайных чисел.
8.4. Примеры выполнения задания
Пример 1. Пусть необходимо вычислить значения функции , в точках множества X={x1,x2,…,x15}, где xi³0. Program Example_8_1; Uses Crt; { Подключение модуля } Var x,y: Array [1..15] Of Real; { Описываем переменные } i: Integer; Begin { Начало основной программы } ClrScr; { Очистка экрана } For i:=1 To 15 Do { Открываем цикл для ввода } ReadLn (x[i]); { Вводим данные с клавиатуры } For i:=1 To 15 Do { Открываем цикл для подсчета } Begin { Начало тела цикла } y[i]:=ArcTan(x[i])/Sqrt(x[i]); { Вычисления выражения } WriteLn ('y[',i,']=',y[i],' x[',i,']=',x[i]); { Вывод результата } End; { Конец тела цикла } End. { Конец основной программы }
Пример 2. Изменить знаки отрицательных элементов массива B[4,5] на противоположные. Program Example_8_2; Uses Crt; { Подключение модуля } Var i,j: Integer; b: Array[1..4,1..5] Of Real; { Описываем переменные } Begin { Начало основной программы } ClrScr; { Очистка экрана } For i:=1 To 4 Do { Открываем внешний цикл } For j:=1 To 5 Do { Открываем внутренний цикл } ReadLn (b[i,j]); { Вводим данные с клавиатуры } For i:=1 To 4 Do { Открываем внешний цикл } For j:=1 To 5 Do { Открываем внутренний цикл } If b[i,j]<0 Then { Проверка условие, если } b[i,j]:=-b[i,j]; { истинно, то меняем знак } For i:=1 To 5 Do { Открываем внешний цикл } For j:=1 To 5 Do { Открываем внутренний цикл } WriteLn (b[i,j]); { Вывод данных на экран } End. { Конец основной программы } 8.5. Контрольные вопросы
1. Дайте определение массива. 2. Какими операторами языка задается описание массива? 3. Каким типом данных может быть задан индекс в описании массива? 4. Может ли типом индекса массива быть тип Integer или Real? 5. Как можно описать двумерный массив? 6. Как можно обратиться к элементам массива? 7. Как организовать ввод-вывод двумерного массива? 8. Могут ли элементами некоторого массива быть числа: 1, 3, 4.47, 5.2, 11? 9. Сколько элементов содержит массив А, если он описан следующим образом: A: Array['0'..'9'] Of Array [1..10] Of Real; 10. Верно ли, что массив — это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип? 11. Какие типы данных не допустимы для компонентов массива? Почему? 12. Где и как определяется общее число элементов массива? 13. Можно ли размерность массива определить с помощью типа диапазон? 14. Дайте определение индекса. Какие типы данных можно использовать при описании индекса? 15. Может ли левая граница индексов массива быть меньше правой? 16. Может ли левая граница индексов массива быть положительной? 17. Может ли левая граница индексов массива быть равной нулю? 18. Может ли левая граница индексов массива быть отрицательной? 19. Как осуществляется доступ к каждому элементу массива? 20. Может ли индекс в правильно составленной программе выходить за пределы, определенные типом диапазон? 21. Может ли индекс быть выражением целого типа? 22. Может ли индекс быть выражением вещественного типа? 23. Может ли индекс быть выражением любого порядкового типа? 24. Какой массив называется одномерным? 25. Какой массив называется двумерным? 26. Какой массив называется n-мерным? 27. Верно ли, что одномерный массив соответствует понятию линейной таблицы (вектора)? 28. Верно ли, что двумерный массив соответствует понятию прямоугольной таблицы (матрице, набору векторов)? 29. Существуют ли ограничения на размерность массива? 30. Можно ли в описании массива использовать предварительно определенные константы? 31. В какой последовательности располагаются в памяти элементы одномерного массива? 32. Возможно ли следующее описание: Var a: Array [Integer] 33. Предложите способы вывода элементов двумерного массива. Варианты заданий
1. Найти максимальный диагональный элемент и указать его координаты в главной диагонали матрицы A[4,4]. 2. Дана матрица D размером [4´5]. Составить программу для подсчета количества нечетных элементов в каждой строке матрицы. Полученные результаты занести в массив B[4], и вывести его на экран. 3. Во всех строках матрицы A[5,5] заменить максимальные элементы нолем. 4. Составьте программу, которая определяет максимальный по величине диагональный элемент массива D[4,4] и возводит его в четвертую степень. 5. Дана матрица С размером [3´4]. Составить программу для подсчета количества четных элементов в каждой строке матрицы. Полученные результаты занести в массив A[4], и вывести его на экран. 6. Создайте программу, определяющую значение произведения элементов первой строки массива V[3,4]. 7. Составьте алгоритм и программу вычисления суммы элементов двумерного массива К[4,2]. 8. Определите координаты максимального по величине элемента главной диагонали массива S[5,5]. 9. Вычислите среднее арифметическое элементов главной диагонали массива А[3,3]. 10. В массиве N[4,5] определите количество положительных и отрицательных элементов. 11. В массиве В[4,2] замените числом 5 значения всех элементов, удовлетворяющие условию B[I,J]>5. 12. Составьте программу определяющую сумму элементов массива А[5,5], расположенных над главной диагональю. 13. Запишите программу вычисления произведения элементов одномерного массива С[13]. 14. Составьте программу, определяющую число положительных элементов массива А[9]. 15. Подсчитайте в одномерном массиве А[10] количество элементов делящихся на 3 без остатка. 16. Напишите программу вычисления суммы элементов массива G[3,4], значения которых лежат в диапазоне 0<G[I,J]<15. 17. Найдите сумму элементов, значения которых положительны и четны в одномерном массиве А[15]. 18. Вычислите сумму элементов второго столбца массива В[3,4]. 19. Создайте программу, определяющую значение произведения элементов первой строки массива V[3,4]. 20. Определите число положительных элементов каждой строки массива C[3,2] и запомните эти значения в массиве А[3]. 21. Запишите алгоритм и составьте программу, обнуляющую элементы главной диагонали двумерного массива LION[5,5]. 22. Составьте программу определяющую сумму элементов массива А[5,5], расположенных под главной диагональю. 23. В одномерном массиве B4[10] найдите четные и отрицательные элементы, и выведите их значения на экран. 24. В двумерном массиве Z[5,5] найдите элементы, удовлетворяющие условию 5<Z[I,J]<10, из найденных элементов создать одномерный массив B. 25. Сформировать вектор из максимальных элементов строк матрицы A[5,5]. 26. Найти минимальный элемент и указать его координаты в побочной диагонали матрицы A[4,4].
|
|||||||
Последнее изменение этой страницы: 2016-12-17; просмотров: 595; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.150.88 (0.007 с.) |