Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
20.02.2017
Размер:
342.53 Кб
Скачать
      1. Найти количество положительных элементов каждой строки матрицы а(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 Характерные приемы программирования обработки одномерных массивов

  1. Дано вещественное число А и массив Х(10). Определить номер элемента, равного А. Если такого члена нет, то ответом должен быть 0.

  2. Вывести на печать первый отрицательный элемент массива Х(10) и его порядковый номер.

  3. Переписать положительные элементы массива Y(10) подряд в массив Z.

  4. Разделить последовательность А(10) на два массива, записать в один из них элементы с четными номерами, а в другой - с нечетными.

  5. Вычислить сумму положительных элементов массива Z(10).

  6. Для целочисленного массива Х(9) найти произведение его элементов с четными индексами и выяснить является ли оно нечетным числом.

  7. Вычислить среднее арифметическое положительных элементов массива Y(10), имеющих нечетные индексы. Если таких элементов нет, то вывести на печать признак “0”.

  8. Найти количество положительных чисел вещественного вектора Y(10).

  9. Вычислить Z(j)=A(j)+B(j), где

А(j)=j, если j- нечетные и А(j)=j/2, если j- четные;

В(j)=j², если j- нечетные и В(j)=j³, если j - четные.

  1. Для целочисленного массива Х(10) найти сумму его элементов, выяснить является ли результат четным числом.

  2. Записать “1” вместо положительных элементов массива Х(12) и “0” - вместо отрицательных.

  3. Дан массив Х(10). Все числа меньше 2 заменить “0” и вывести на печать их количество и порядковые номера.

  4. Дан целочисленный массив А(10), получить последовательность В(10), которая отличается от исходной тем, что все нечетные элементы удвоены.

  5. Найти произведение положительных элементов вектора А(15).

  6. Вывести на экран отрицательные элементы массива Х(10).

  7. Даны массивы А(10) и В(10). Получить вектор Z(10), где Z(j)=A(j)-B(j).

  8. Вычислить произведение отрицательных элементов массива Z(10).

  9. Записать в массив А(15) первые 5 элементов “0”, затем 5 элементов “2” и последние 5 - “3”.

  10. Переписать массив А(10) в массив В(10) так, чтобы последний элемент стал первым, предпоследний - вторым и т.д.

  11. Удвоить все элементы целочисленного вектора А(10), являющиеся четными числами и утроить все оставшиеся.

  12. В массиве А(15) определить количество элементов, равных 5.

  13. Найти количество нулевых элементов в массиве В(12).

  14. Даны два вектора А(10) и В(10). Вычислить суммы и разности соответствующих элементов массивов. Результаты поместить в два вектора X(10) и Y(10).

  15. В массиве C(13) определить количество элементов, равных 13.

  16. В массиве X(11) определить количество элементов, меньших 5.

  17. Вычислить сумму отрицательных элементов массива Z(10).

  18. Вычислить произведение отрицательных элементов массива А(10).

  19. Вычислить среднее арифметическое отрицательных элементов массива Y(10).

  20. Найти количество неотрицательных элементов вектора В(12).

  21. Даны два вектора А(10) и В(10). Вычислить произведение соответствующих элементов массивов. Результат поместить в вектор X(10).

4.3.2 Нахождение наибольшего (наименьшего) элемента в векторе

  1. Найти наибольший отрицательный элемент среди элементов массива А(10), имеющих четные номера.

  2. Найти наибольшее значение функции Z=Ax²+Bx+C в интервале изменения аргумента Х от 1 до 7 с шагом 0,5. Значения функции записать в массив Н.

  3. Даны два массива Х(10) и Y(10). Найти среднее арифметическое i-ых элементов (i = 1,10) и записать их в массив Z. Среди элементов массива Z найти наибольший.

  4. Найти наименьшее значение функции Y=sin(х2+5x)cos(3x2-x) в интервале изменения аргумента x от 0 до 8 с шагом 0.4. Значение функции записать в массив А.

  5. Найти наименьший положительный элемент среди элементов массива Х(10), имеющих нечетные номера.

  6. Найти наибольшее значение Х(I)+Y(I) для массивов Х, Y.

  7. Среди элементов массива А(10) найти наибольший.

  8. Найти наименьший из положительных элементов массива А(10).

  9. Найти наименьший положительный элемент среди элементов с четными номерами в массиве А(10).

  10. Даны массивы A(5) и B(6). Найти суммы элементов в каждом массиве и запомнить их в массиве Z. Среди сумм определить наибольшую.

  11. Даны массивы А(4) и С(6). Найти суммы положительных элементов каждого массива, запомнить их в массиве Х и найти среди них наименьшую.

  12. Дан массив Х(20) и число А. среди элементов массива Х, расположенных до элемента А найти наибольший, а после него - наименьший. Если элемента А в массиве нет, выдать об этом сообщение.

  13. Даны два одномерных массива А(10) и В(10). Получить массив С(10), элемент которого равен произведению соответствующих элементов массивов А и В. Среди элементов массива С найти наименьший.

  14. В векторе Х(10) заменить нулем все отрицательные элементы, предшествующие его наибольшему элементу.

  15. Среди четных номеров элементов массива В(10) найти наибольший. Элементы с нечетным номером обнулить.

  16. В одномерном массиве С(20) просуммировать первый элемент с последним, второй с предпоследним и т.д. Результат записать в массив В(10) и в нем найти наибольший элемент.

  17. Все элементы массива А(10), являющиеся четным числом, удвоить, а нечетным - возвести в квадрат. В полученном массиве найти наименьший элемент.

  18. Из массива А(10) четные положительные числа записать в массив Х подряд. В новом массиве найти наименьший элемент.

  19. Даны два одномерных массива. Найти суммы их элементов с четными номерами и среди сумм определить наибольшую.

  20. Найти наименьший элемент среди элементов массива В(30), имеющих номера элементов кратные 3.

  21. Среди элементов массива В(10) найти наименьший.

  22. В массиве С(12) все элементы, стоящие до наибольшего обнулить.

  23. В массиве С(9) все элементы, стоящие после наименьшего обнулить.

  24. Найти наибольший среди элементов массива А(10), остальные обнулить.

  25. Среди элементов массива В(10) найти наименьший положительный.

  26. Наибольший элемент массива Х(12) удвоить, остальным элементам присвоить значение 1.

  27. Поменять местами наибольший и наименьший элементы вектора А(10).

  28. Все элементы массива А(10), являющиеся положительным числом, удвоить, а отрицательным - возвести в квадрат. В полученном массиве найти наименьший элемент.

  29. Поменять местами наибольший отрицательный и наименьший положительный элементы вектора А(10).

  30. Дан вектор Х(10). Найти количество элементов, стоящих после максимального по значению элемента.

4.3.3 Программирование алгоритмов работы с частями матрицы

  1. Дана матрица А(5,5). Все элементы ниже главной диагонали обнулить, выше - заменить на“3”, а элементы главной диагонали заменить на “7”.

  2. Найти произведение элементов главной диагонали матрицы Х(5,5).

  3. Найти количество положительных элементов, расположенных ниже главной диагонали матрицы Y(5,5).

  4. Переписать элементы главной диагонали матрицы В(5,5) в вектор X(5).

  5. Вычислить произведение отрицательных элементов матрицы А(5,5), расположенных ниже главной диагонали.

  6. Найти количество нулевых элементов матрицы В(4,4), расположенных выше главной диагонали.

  7. Дана действительная квадратная матрица D(4,4). Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

  8. Вычислить среднее арифметическое элементов матрицы А(5,5), расположенных выше главной диагонали.

  9. Вычислить среднее арифметическое элементов матрицы А(5,5), расположенных ниже главной диагонали.

  10. Найти сумму элементов главной диагонали матрицы Х(5,5).

  11. Найти произведение положительных элементов главной диагонали матрицы Х(5,5).

  12. Найти произведение элементов побочной диагонали матрицы Х(6,6).

  13. Найти сумму элементов побочной диагонали матрицы Х(5,5).

  14. Переписать элементы побочной диагонали матрицы В(5,5) в вектор X(5).

  15. Дана матрица А(5,5). Сформировать вектор из элементов, расположенных выше главной диагонали.

  16. Дана матрица А(5,5). Сформировать вектор из элементов, расположенных ниже главной диагонали.

  17. Дана матрица А(5,5). Найти максимальный по значению элемент среди элементов главной диагонали.

  18. Вычислить сумму отрицательных элементов матрицы А(5,5), расположенных ниже главной диагонали.

  19. Вычислить произведение положительных элементов матрицы Х(6,6), расположенных ниже главной диагонали.

  20. Дана матрица В(5,5). Найти количество элементов, больших 5, среди элементов главной диагонали.

  21. Дана матрица С(6,6). Найти количество элементов, меньших 5, среди элементов побочной диагонали.

  22. Вычислить сумму положительных элементов матрицы Х(6,6), расположенных ниже главной диагонали.

  23. Вычислить сумму положительных элементов матрицы А(5,5), расположенных выше главной диагонали.

  24. Матрица А(5,5) делится на две части главной диагональю. Найти среднее геометрическое сумм элементов каждой части.

  25. Матрица А(5,5) делится на две части побочной диагональю. Найти среднее арифметическое сумм элементов каждой части.

  26. Вычислить сумму отрицательных элементов матрицы Х(6,6), расположенных выше главной диагонали.

  27. Вычислить сумму отрицательных элементов матрицы А(5,5), расположенных выше главной диагонали.

  28. Найти количество неотрицательных элементов главной диагонали матрицы Х(5,5).

  29. Найти количество неотрицательных элементов побочной диагонали матрицы А(6,6).

  30. Найти количество нулевых элементов матрицы В(4,4), расположенных ниже главной диагонали.

4.3.4 Программирование алгоритмов работы со строками и столбцами матрицы

  1. Найти сумму элементов каждой строки матрицы А(5,5). Результат записать в вектор S(5).

  2. Найти сумму элементов каждого столбца матрицы А(5,5). Результат записать в вектор S(5).

  3. Найти количество отрицательных элементов каждого столбца матрицы Х(5,6). Результат записать в вектор К(6).

  4. Найти количество положительных элементов каждого столбца матрицы В(5,6). Результат записать в вектор К(6).

  5. Найти количество отрицательных элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).

  6. Дана матрица А(5,6). Найти сумму положительных элементов каждого четного столбца и произведение отрицательных элементов каждого нечетного столбца.

  7. Найти среднее арифметическое элементов каждого столбца матрицы Х(3,4). Результат записать в вектор SA(4).

  8. Найти среднее арифметическое элементов каждой строки матрицы Х(4,4). Результат записать в вектор SA(4).

  9. Найти произведение элементов каждой строки матрицы А(5,5). Результат записать в вектор Р(5).

  10. Найти произведение элементов каждого столбца матрицы А(5,5). Результат записать в вектор Р(5).

  11. Дана матрица А(5,5) Найти такое К (1  К  5), чтобы элементы К-ой строки совпадали с элементами К-ого столбца.

  12. Дана квадратная матрица порядка n. Исключить из нее строку и столбец, на пересечении которых расположен максимальный элемент главной диагонали.

  13. Дана матрица С(7,7) в строках с отрицательным элементом на главной диагонали найти сумму всех элементов. Если на главной диагонали отрицательных элементов нет, то выдать об этом сообщение.

  14. Найти произведение положительных элементов каждой строки матрицы А(6,5). Результат записать в вектор Р(6).

  15. Найти произведение положительных элементов каждого столбца матрицы А(5,5). Результат записать в вектор Р(5).

  16. Дана матрица С(6,6) в строках с положительным элементом на побочной диагонали найти сумму всех элементов. Если на побочной диагонали положительных элементов нет, то выдать об этом сообщение.

  17. Дана матрица А(5,5) в столбцах с отрицательным элементом на главной диагонали найти сумму всех элементов. Если на главной диагонали отрицательных элементов нет, то выдать об этом сообщение.

  18. Дана целочисленная матрица М(5,4), найти номера строк, все элементы которых равны. Если таких строк нет, то выдать об этом сообщение.

  19. Дана квадратная матрица порядка n. Исключить из нее строку и столбец, на пересечении которых расположен минимальный элемент главной диагонали.

  20. Найти среднее арифметическое положительных элементов каждого столбца матрицы Х(3,5). Результат записать в вектор SA(5).

  21. Найти среднее арифметическое положительных элементов каждой строки матрицы Х(4,5). Результат записать в вектор SA(4).

  22. Найти среднее арифметическое отрицательных элементов каждого столбца матрицы Х(3,4). Результат записать в вектор SA(4).

  23. Найти среднее арифметическое отрицательных элементов каждой строки матрицы Х(4,4). Результат записать в вектор SA(4).

  24. Найти количество неотрицательных элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).

  25. Найти среднее арифметическое неотрицательных элементов каждой строки матрицы А(5,5). Результат записать в вектор SA(5).

  26. Дана матрица В(5,4), упорядочить элементы каждой строки матрицы по возрастанию.

  27. Дана целочисленная матрица М(5,4), найти номера столбцов, все элементы которых равны. Если таких столбцов нет, то выдать об этом сообщение.

  28. Дана матрица В(5,5), упорядочить элементы каждого столбца матрицы по возрастанию.

  29. Найти количество нулевых элементов каждой строки матрицы Х(6,5). Результат записать в вектор К(6).

  30. Найти количество нулевых элементов каждого столбца матрицы Х(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 байт. Формат объявления строки-переменной имеет вид: