-
Найти количество положительных элементов каждой строки матрицы а(4,5).
Блок-схема и программа решения задачи представлены на рисунке 4.4. В рассматриваемом примере обработка массива идет построчно, поэтому внешний цикл организуют по строкам (по индексу i), а внутренний по столбцам (по индексу j). Кроме того, между операторами открытия вложенных циклов стоит оператор, с помощью которого обнуляется начальное количество положительных элементов в каждой строке матрицы. Так как, открытый по строке цикл (по параметру i) содержит внутри себя несколько операторов, то для выделения их в единую последовательность, требуется применить операторные скобки Begin-End.
program primer4_4; type T = array [1..4,1..5]of real; var A:T; i, j, K: integer; begin for i:=1 to 4 do for j:=1 to 5 do read (a[i,j]); for i:=1 to 4 do begin K:=0; for j:=1 to 5 do if a[i,j] > 0 then K:=K+1; writeln (’в’,i,’строке K=’,K) end end.
|
|
Рисунок 4.4 - Пример обработки двумерного массива |
4.3 Варианты заданий
4.3.1 Характерные приемы программирования обработки одномерных массивов
-
Дано вещественное число А и массив Х(10). Определить номер элемента, равного А. Если такого члена нет, то ответом должен быть 0.
-
Вывести на печать первый отрицательный элемент массива Х(10) и его порядковый номер.
-
Переписать положительные элементы массива Y(10) подряд в массив Z.
-
Разделить последовательность А(10) на два массива, записать в один из них элементы с четными номерами, а в другой - с нечетными.
-
Вычислить сумму положительных элементов массива Z(10).
-
Для целочисленного массива Х(9) найти произведение его элементов с четными индексами и выяснить является ли оно нечетным числом.
-
Вычислить среднее арифметическое положительных элементов массива Y(10), имеющих нечетные индексы. Если таких элементов нет, то вывести на печать признак “0”.
-
Найти количество положительных чисел вещественного вектора Y(10).
-
Вычислить Z(j)=A(j)+B(j), где
А(j)=j, если j- нечетные и А(j)=j/2, если j- четные;
В(j)=j², если j- нечетные и В(j)=j³, если j - четные.
-
Для целочисленного массива Х(10) найти сумму его элементов, выяснить является ли результат четным числом.
-
Записать “1” вместо положительных элементов массива Х(12) и “0” - вместо отрицательных.
-
Дан массив Х(10). Все числа меньше 2 заменить “0” и вывести на печать их количество и порядковые номера.
-
Дан целочисленный массив А(10), получить последовательность В(10), которая отличается от исходной тем, что все нечетные элементы удвоены.
-
Найти произведение положительных элементов вектора А(15).
-
Вывести на экран отрицательные элементы массива Х(10).
-
Даны массивы А(10) и В(10). Получить вектор Z(10), где Z(j)=A(j)-B(j).
-
Вычислить произведение отрицательных элементов массива Z(10).
-
Записать в массив А(15) первые 5 элементов “0”, затем 5 элементов “2” и последние 5 - “3”.
-
Переписать массив А(10) в массив В(10) так, чтобы последний элемент стал первым, предпоследний - вторым и т.д.
-
Удвоить все элементы целочисленного вектора А(10), являющиеся четными числами и утроить все оставшиеся.
-
В массиве А(15) определить количество элементов, равных 5.
-
Найти количество нулевых элементов в массиве В(12).
-
Даны два вектора А(10) и В(10). Вычислить суммы и разности соответствующих элементов массивов. Результаты поместить в два вектора X(10) и Y(10).
-
В массиве C(13) определить количество элементов, равных 13.
-
В массиве X(11) определить количество элементов, меньших 5.
-
Вычислить сумму отрицательных элементов массива Z(10).
-
Вычислить произведение отрицательных элементов массива А(10).
-
Вычислить среднее арифметическое отрицательных элементов массива Y(10).
-
Найти количество неотрицательных элементов вектора В(12).
-
Даны два вектора А(10) и В(10). Вычислить произведение соответствующих элементов массивов. Результат поместить в вектор X(10).
4.3.2 Нахождение наибольшего (наименьшего) элемента в векторе
-
Найти наибольший отрицательный элемент среди элементов массива А(10), имеющих четные номера.
-
Найти наибольшее значение функции Z=Ax²+Bx+C в интервале изменения аргумента Х от 1 до 7 с шагом 0,5. Значения функции записать в массив Н.
-
Даны два массива Х(10) и Y(10). Найти среднее арифметическое i-ых элементов (i = 1,10) и записать их в массив Z. Среди элементов массива Z найти наибольший.
-
Найти наименьшее значение функции Y=sin(х2+5x)cos(3x2-x) в интервале изменения аргумента x от 0 до 8 с шагом 0.4. Значение функции записать в массив А.
-
Найти наименьший положительный элемент среди элементов массива Х(10), имеющих нечетные номера.
-
Найти наибольшее значение Х(I)+Y(I) для массивов Х, Y.
-
Среди элементов массива А(10) найти наибольший.
-
Найти наименьший из положительных элементов массива А(10).
-
Найти наименьший положительный элемент среди элементов с четными номерами в массиве А(10).
-
Даны массивы A(5) и B(6). Найти суммы элементов в каждом массиве и запомнить их в массиве Z. Среди сумм определить наибольшую.
-
Даны массивы А(4) и С(6). Найти суммы положительных элементов каждого массива, запомнить их в массиве Х и найти среди них наименьшую.
-
Дан массив Х(20) и число А. среди элементов массива Х, расположенных до элемента А найти наибольший, а после него - наименьший. Если элемента А в массиве нет, выдать об этом сообщение.
-
Даны два одномерных массива А(10) и В(10). Получить массив С(10), элемент которого равен произведению соответствующих элементов массивов А и В. Среди элементов массива С найти наименьший.
-
В векторе Х(10) заменить нулем все отрицательные элементы, предшествующие его наибольшему элементу.
-
Среди четных номеров элементов массива В(10) найти наибольший. Элементы с нечетным номером обнулить.
-
В одномерном массиве С(20) просуммировать первый элемент с последним, второй с предпоследним и т.д. Результат записать в массив В(10) и в нем найти наибольший элемент.
-
Все элементы массива А(10), являющиеся четным числом, удвоить, а нечетным - возвести в квадрат. В полученном массиве найти наименьший элемент.
-
Из массива А(10) четные положительные числа записать в массив Х подряд. В новом массиве найти наименьший элемент.
-
Даны два одномерных массива. Найти суммы их элементов с четными номерами и среди сумм определить наибольшую.
-
Найти наименьший элемент среди элементов массива В(30), имеющих номера элементов кратные 3.
-
Среди элементов массива В(10) найти наименьший.
-
В массиве С(12) все элементы, стоящие до наибольшего обнулить.
-
В массиве С(9) все элементы, стоящие после наименьшего обнулить.
-
Найти наибольший среди элементов массива А(10), остальные обнулить.
-
Среди элементов массива В(10) найти наименьший положительный.
-
Наибольший элемент массива Х(12) удвоить, остальным элементам присвоить значение 1.
-
Поменять местами наибольший и наименьший элементы вектора А(10).
-
Все элементы массива А(10), являющиеся положительным числом, удвоить, а отрицательным - возвести в квадрат. В полученном массиве найти наименьший элемент.
-
Поменять местами наибольший отрицательный и наименьший положительный элементы вектора А(10).
-
Дан вектор Х(10). Найти количество элементов, стоящих после максимального по значению элемента.
4.3.3 Программирование алгоритмов работы с частями матрицы
-
Дана матрица А(5,5). Все элементы ниже главной диагонали обнулить, выше - заменить на“3”, а элементы главной диагонали заменить на “7”.
-
Найти произведение элементов главной диагонали матрицы Х(5,5).
-
Найти количество положительных элементов, расположенных ниже главной диагонали матрицы Y(5,5).
-
Переписать элементы главной диагонали матрицы В(5,5) в вектор X(5).
-
Вычислить произведение отрицательных элементов матрицы А(5,5), расположенных ниже главной диагонали.
-
Найти количество нулевых элементов матрицы В(4,4), расположенных выше главной диагонали.
-
Дана действительная квадратная матрица D(4,4). Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.
-
Вычислить среднее арифметическое элементов матрицы А(5,5), расположенных выше главной диагонали.
-
Вычислить среднее арифметическое элементов матрицы А(5,5), расположенных ниже главной диагонали.
-
Найти сумму элементов главной диагонали матрицы Х(5,5).
-
Найти произведение положительных элементов главной диагонали матрицы Х(5,5).
-
Найти произведение элементов побочной диагонали матрицы Х(6,6).
-
Найти сумму элементов побочной диагонали матрицы Х(5,5).
-
Переписать элементы побочной диагонали матрицы В(5,5) в вектор X(5).
-
Дана матрица А(5,5). Сформировать вектор из элементов, расположенных выше главной диагонали.
-
Дана матрица А(5,5). Сформировать вектор из элементов, расположенных ниже главной диагонали.
-
Дана матрица А(5,5). Найти максимальный по значению элемент среди элементов главной диагонали.
-
Вычислить сумму отрицательных элементов матрицы А(5,5), расположенных ниже главной диагонали.
-
Вычислить произведение положительных элементов матрицы Х(6,6), расположенных ниже главной диагонали.
-
Дана матрица В(5,5). Найти количество элементов, больших 5, среди элементов главной диагонали.
-
Дана матрица С(6,6). Найти количество элементов, меньших 5, среди элементов побочной диагонали.
-
Вычислить сумму положительных элементов матрицы Х(6,6), расположенных ниже главной диагонали.
-
Вычислить сумму положительных элементов матрицы А(5,5), расположенных выше главной диагонали.
-
Матрица А(5,5) делится на две части главной диагональю. Найти среднее геометрическое сумм элементов каждой части.
-
Матрица А(5,5) делится на две части побочной диагональю. Найти среднее арифметическое сумм элементов каждой части.
-
Вычислить сумму отрицательных элементов матрицы Х(6,6), расположенных выше главной диагонали.
-
Вычислить сумму отрицательных элементов матрицы А(5,5), расположенных выше главной диагонали.
-
Найти количество неотрицательных элементов главной диагонали матрицы Х(5,5).
-
Найти количество неотрицательных элементов побочной диагонали матрицы А(6,6).
-
Найти количество нулевых элементов матрицы В(4,4), расположенных ниже главной диагонали.
4.3.4 Программирование алгоритмов работы со строками и столбцами матрицы
-
Найти сумму элементов каждой строки матрицы А(5,5). Результат записать в вектор S(5).
-
Найти сумму элементов каждого столбца матрицы А(5,5). Результат записать в вектор S(5).
-
Найти количество отрицательных элементов каждого столбца матрицы Х(5,6). Результат записать в вектор К(6).
-
Найти количество положительных элементов каждого столбца матрицы В(5,6). Результат записать в вектор К(6).
-
Найти количество отрицательных элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).
-
Дана матрица А(5,6). Найти сумму положительных элементов каждого четного столбца и произведение отрицательных элементов каждого нечетного столбца.
-
Найти среднее арифметическое элементов каждого столбца матрицы Х(3,4). Результат записать в вектор SA(4).
-
Найти среднее арифметическое элементов каждой строки матрицы Х(4,4). Результат записать в вектор SA(4).
-
Найти произведение элементов каждой строки матрицы А(5,5). Результат записать в вектор Р(5).
-
Найти произведение элементов каждого столбца матрицы А(5,5). Результат записать в вектор Р(5).
-
Дана матрица А(5,5) Найти такое К (1 К 5), чтобы элементы К-ой строки совпадали с элементами К-ого столбца.
-
Дана квадратная матрица порядка n. Исключить из нее строку и столбец, на пересечении которых расположен максимальный элемент главной диагонали.
-
Дана матрица С(7,7) в строках с отрицательным элементом на главной диагонали найти сумму всех элементов. Если на главной диагонали отрицательных элементов нет, то выдать об этом сообщение.
-
Найти произведение положительных элементов каждой строки матрицы А(6,5). Результат записать в вектор Р(6).
-
Найти произведение положительных элементов каждого столбца матрицы А(5,5). Результат записать в вектор Р(5).
-
Дана матрица С(6,6) в строках с положительным элементом на побочной диагонали найти сумму всех элементов. Если на побочной диагонали положительных элементов нет, то выдать об этом сообщение.
-
Дана матрица А(5,5) в столбцах с отрицательным элементом на главной диагонали найти сумму всех элементов. Если на главной диагонали отрицательных элементов нет, то выдать об этом сообщение.
-
Дана целочисленная матрица М(5,4), найти номера строк, все элементы которых равны. Если таких строк нет, то выдать об этом сообщение.
-
Дана квадратная матрица порядка n. Исключить из нее строку и столбец, на пересечении которых расположен минимальный элемент главной диагонали.
-
Найти среднее арифметическое положительных элементов каждого столбца матрицы Х(3,5). Результат записать в вектор SA(5).
-
Найти среднее арифметическое положительных элементов каждой строки матрицы Х(4,5). Результат записать в вектор SA(4).
-
Найти среднее арифметическое отрицательных элементов каждого столбца матрицы Х(3,4). Результат записать в вектор SA(4).
-
Найти среднее арифметическое отрицательных элементов каждой строки матрицы Х(4,4). Результат записать в вектор SA(4).
-
Найти количество неотрицательных элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).
-
Найти среднее арифметическое неотрицательных элементов каждой строки матрицы А(5,5). Результат записать в вектор SA(5).
-
Дана матрица В(5,4), упорядочить элементы каждой строки матрицы по возрастанию.
-
Дана целочисленная матрица М(5,4), найти номера столбцов, все элементы которых равны. Если таких столбцов нет, то выдать об этом сообщение.
-
Дана матрица В(5,5), упорядочить элементы каждого столбца матрицы по возрастанию.
-
Найти количество нулевых элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).
-
Найти количество нулевых элементов каждого столбца матрицы Х(5,6). Результат записать в вектор К(6).
4.4 Контрольные вопросы
1 Что такое «массив»?
2 Чем характеризуются элементы массива?
3 Чем отличаются явный и неявный способы объявления массивов?
4 Какие способы ввода массивов существуют в Паскале?
5 Чем отличается вывод элементов массива в строку и в столбец?
6 Какие действия необходимо выполнить для подсчета суммы элементов одномерного массива?
7 Что изменится в алгоритме при подсчете количества отрицательных элементов в массиве?
8 Как выполнить поиск наибольшего (наименьшего) элемента в массиве?
9 Каковы особенности работы с квадратной матрицей?
10 Как организовать обработку матрицы по столбцам (по строкам)?
Лабораторная работа №5. Обработка символьной информации
Цель работы – приобретение навыков программирования при решении задач с использованием символьной информации и применения встроенных процедур и функций для обработки строк.
5.1 Строки и особенности их обработки
Для представления текстовой (символьной) информации предназначен специальный тип данных - строковый тип. Строка - это последовательность символов кодовой таблицы ПЭВМ. Длина строки (количество символов в строке) может динамически изменяться от 0 до 255. В компьютере каждый символ строки занимает 1 байт. Кроме того, для хранения информации о длине строки дополнительно отводится 1 байт.
Строка-константа служит для использования в программе некоторой, заранее известной последовательности литер. Формат объявления строки-константы имеет вид:
Const имя константы = 'последовательность символов';
Например, Const name = 'Эльза'; probel = ' ';
Если значение строки заранее не известно, а определяется в процессе выполнения программы (например, строка символов вводится), тогда используется строковая переменная. Для объявления переменных строкового типа используется стандартный идентификатор String, за которым следует заключенное в квадратные скобки значение длины строки. Если это значение не указывается, то по умолчанию длина строки равна 255 байт. Формат объявления строки-переменной имеет вид: