Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Обработка элементов, удовлетворяющих определенным требованиямBegin Вывод элементов матрицы Ввод с помощью датчика псевдослучайных чисел End Begin Begin Ввод с клавиатуры Ввод элементов матрицы Ввод матрицы организуется поэлементно, т.е. для каждого элемента матрицы нужно выполнить операцию ввода или присваивания. Как сказано выше, перебор всех элементов матрицы – это два вложенных цикла. Поэтому ввод матрицы – это два вложенных один в другой цикла(чаще всего счетных), один из которых перебирает все значения индексов строки, а другой - столбца. Ввод, как и для одномерного массива, можно осуществить двумя способами: с клавиатуры или с помощью датчика псевдослучайных чисел. For i:=1 to d do {для каждой строки матрицы} Write(‘Введите элементы ’,I,’-й строки:‘);{комментарий} For j:=1 to d do {для каждого столбца i-ой строки} Write(‘A[’,I,’,’,J,’]=‘);{комментарий} Readln(a[I,j]); {ввод элемента матрицы} end; При этом также используются процедура randomize и функция random. Диапазоны значений элементов задаются аналогично тому, как это происходило для одномерного массива. Фрагмент программы для заполнения случайными числами вещественной матрицы x(d,d), значениями из диапазона [a,b). Фрагмент программы: randomize; For i:=1 to d do For j:=1 to d do x[I,j]:=a + (b-a)*random; {получение очередного элемента} Если а=0, то x[I,j]:= b*random; Вывод матрицы, как и ввод, организуется поэлементно, т.е. необходимо для каждого элемента массива выполнить операцию вывода. Поэтому вывода матрицы – это конструкция вложенных циклов(чаще всего счетных), перебирающих все значения индексов строк и столбцов. Для того, чтобы при выводе матрица имела привычный для нас вид двумерной таблицы, удобнее выводить матрицу по строкам и организовать вывод так, чтобы элементы одной строки матрицы располагались в одной строке экрана. Переход на следующую строку экрана должен происходить только при переходе на следующую строку матрицы. Фрагмент программы: For i:=1 to d do For j:=1 to d do write(x[I,j]:8:2);{вывод элементов строки матрицы} writeln;{закончена строка матрицы, поэтому на экране переходим на новую строку} end; Особенности этих алгоритмов: 1. Часто приходится организовывать перебор всех элементов матрицы, и каждый проверять на соответствие требованиям. Поэтому часто применяется конструкция вложенных циклов для перебора номеров строк I и номеров столбцов J ( for i:=1 to N do for j:=1 to N do …). 2. Требования могут предъявляться к значению элемента (пример 1) или к его расположению (пример 2). Возможна также комбинация требований (пример 3).
Пример 1. Дана матрица B(K,L) натуральных чисел, принадлежащих [a,b]. Найти количество строк, содержащих более половины элементов, являющихся простыми числами. Решение. Требования к значению элемента. Необходимо организовать перебор строк матрицы (for i:=1 to k do…). Для каждой строки нужно вычислить количество простых чисел (kol), т.е. для каждого элемента строки (for j:=1 to L do…) выполнить проверку на простоту. По итогу проверки изменяется или не изменяется значение количества. После завершения просмотра строки сравнить значение количества kol с L div 2. Если kol больше, то количество строк, удовлетворяющих условию(ks), увеличивается на 1.
Дата добавления: 2014-03-11; просмотров: 320; Нарушение авторских прав Мы поможем в написании ваших работ! |