Обработка двумерных массивов (матриц)




 

Язык программирования Паскаль
Описание 1 способ: задается целочисленная матрица размером 10 х 10 элементов. var A: array [1..10, 1..10] of integer; i,j:integer; {индексы элементов массива}
2 способ: задается целочисленная матрица размером 10 х 10 элементов. В программе в качестве длины массива используется константа n. const n=10; var A: array [1..n, 1..n] of integer; i,j:integer; {индексы элементов массива} 3 способ: задается целочисленная матрица размером не более 10 х 10 элементов (nmax х nmax). В программе в качестве фактической длины массива используется переменная константа n. const nmax=10; var A: array [1..nmax] of integer; i,j:integer; {индексы элементов массива} n,m:integer;{фактическое количество строк и столбцов матрицы}
Ввод Readln(n,m); for i:=1 to n do for j:=1 to m do readln(A[i]);
Вывод for i:=1 to n do for j:=1 to m do writeln(A[i]);

 

Задания к лабораторной работе № 3:

 

1. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм элементов соответствующих строк матрицы.

2. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут номера первых отрицательных элементов строк матрицы.

3. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут TRUE, если в соответствующей строке есть хотя бы один отрицательный элемент, и FALSE, если иначе.

4. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных четных элементов строк матрицы.

5. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм элементов, не превосходящих по значению заданное пользователем число в соответствующих строках матрицы.

6. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут номера последних отрицательных элементов строк матрицы.

7. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных элементов соответствующих строк матрицы.

8. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм элементов, превосходящих по значению заданное пользователем число в соответствующих строках матрицы.

9. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных нечетных элементов строк матрицы.

10. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм элементов соответствующих столбцов матрицы.

11. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут номера первых положительных элементов строк матрицы.

12. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будет TRUE, если в строке матрицы количество нулевых элементов равно количеству ненулевых, и FALSE – иначе.

13. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров максимальных четных элементов строк матрицы.

14. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из произведений элементов соответствующих строк матрицы.

15. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут TRUE, если в соответствующей строке есть хотя бы один положительный элемент, и FALSE, если иначе.

16. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из максимальных элементов соответствующих строк матрицы.

17. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут номера последних положительных элементов строк матрицы.

18. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров максимальных нечетных элементов строк матрицы.

19. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из произведений элементов соответствующих столбцов матрицы.

20. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм положительных элементов соответствующих столбцов матрицы.

21. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут TRUE, если в соответствующей строке есть хотя бы один нулевой элемент, и FALSE, если иначе.

22. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут номера первых четных элементов соответствующих строк матрицы.

23. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров минимальных элементов соответствующих строк матрицы.

24. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм отрицательных элементов соответствующих строк матрицы.

25. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будет TRUE, если в строке матрицы количество четных (по значению) элементов равно количеству нечетных (нулевые не учитывать), и FALSE – иначе.

26. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из средних арифметических элементов соответствующих строк матрицы.

27. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, элементами которого будут TRUE, если в соответствующей строке есть хотя бы один ненулевой элемент, и FALSE, если иначе.

28. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из сумм отрицательных элементов соответствующих столбцов матрицы.

29. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров максимальных элементов соответствующих строк матрицы.

30. Используя процедуры и функции из целочисленной матрицы А (n x m) получить вектор, состоящий из номеров последних четных элементов соответствующих строк матрицы.

 

Лабораторная работа № 4

Строки

 

ТипSTRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов, описываемый директивой array [1..255] of char, однако, в отличие от последнего, количество символов в строке-переменной может меняться.

Длину строки можно ограничить любой константой порядкового типа (но не более 255), указав это в описании строки:

s:string[35];

Если ограничение не указано, то длина строки принимается максимально возможной, а именно 255 символов.

Нулевой байт строки хранит информацию о ее фактической длине.

Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива array [1..255] of char, например:

var

s: String;

begin

...

if s[5] = ‘A’ then…

end.

 

Над строками определены следующие функции:

1. LENGTH (S) – функция типа INTEGER; возвращает длину строки S.

2. POS (Substr, S) – функция типа INTEGER; отыскивает в строке S первое вхождение подстроки Substr и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль.

3. CONCAT(S1 [,S2,..., Sn]) – функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, …, Sn.

Аналогичный результат можно получить выполнив S:=S1+S2+…+Sn

4. COPY(S, Index, Count) – функция типа STRING; копирует из строки S Count символов, начиная с символа с номером Index.

5. DELETE (S, Index, Count) – процедура; удаляет СОUNT символов из строки S, начиная с символа с номером Index.

6. INSERT (Substr, S, Index) – процедура; вставляет подстроку Substr в строку S, начиная с символа с номером Index.

7. STR(X [; Width [: Dec] ], S) – процедура, которая преобразует число X любого вещественного или целого типов в строку символов S так, как это делает процедура WRITELN перед выводом; параметры Width и Dec, если они присутствуют, задают формат преобразования: Width определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a Dec – количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х- вещественное число).

8. VAL(S, X, Code) – процедура; преобразует строку символов S во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной; параметр Code содержит ноль, если преобразование прошло успешно, и тогда в X помещается результат преобразований, в противном случае он содержит номер позиции в строке S, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется; в строке S недопустимы незначащие пробелы;

9. UPCASE (Сh) – функция типа CHAR; возвращает для символьного выражения Сh, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением СН является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.

 

Пример: Удалить из строки все незначащие пробелы

var S: String; Len: Byte;

begin

while Pos(‘ ‘, S)>0 do delete (S, Pos(‘ ‘, S),1);

if S[1] = ‘ ‘ then delete (S, 1,1);

if S[length(S)] = ‘ ‘ then delete (S, length(S),1);

end.

 

Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНR(0).

Следующие операции отношения дадут значение TRUE:

‘Turbo’ <’ Turbo Pascal’

‘Паскаль’ >’Turbo Pascal’

 

Задания к лабораторной работе № 4:

 

1. Дан массив А из N строк длиной M. Сформировать массив В, каждый элемент которого равен первому латинскому символу соответствующей строки.

2. Дан массив В из N строк длиной M. Сформировать массив В, каждый элемент которого равен последнему символу соответствующей строки.

3. Определить позицию первого и последнего вхождения в заданную строку А (N) какого-либо символа, введенного пользователем. Если строка не содержит данного символа, выдать сообщение.

4. Проверить, является ли данная строка из 6 символов "счастливой" (сумма первых трех цифр равна сумме трех последних). Выдать сообщение и суммы левой и правой половины.

5. Определить, является ли заданная строка идентификатором.

6. Определить, является ли заданная строка десятичной записью целого числа.

7. Определить, является ли заданная строка шестнадцатеричной записью целого числа.

8. Переписать заданную строку в обратном направлении.

9. Посчитать в строке количество слогов "на" и "при", предлогов "в".

10. Заменить в строке символов все слоги "на" слогом "при".

11. Посчитать в строке символов количество слов, написанных латинскими буквами. Слова в строке разделены пробелами, в конце текста точка.

12. Посчитать в строке символов и выдать на экран количество букв "а", "б",..., "я".

13. Посчитать количество слов в строке, начинающихся на букву "в". Слова в строке разделены пробелами, в конце текста точка.

14. Посчитать количество слов в строке, заканчивающихся на букву "я". Слова в строке разделены пробелами, в конце текста точка.

15. Посчитать в строке символов и выдать на экран количество букв "а", "b",..., "z".

16. Дан массив А из N строк длиной M. Сформировать массив В, каждый элемент которого равен символу с максимальным порядковым номером в таблице ASCII соответствующей строки.

17. Дан массив А из N строк длиной M. Сформировать массив В, каждый элемент которого равен символу с минимальным порядковым номером в таблице ASCII соответствующей строки.

18. Определить, является ли заданная строка двоичной записью целого числа.

19. Определить, является ли заданная строка восьмеричной записью целого числа.

20. Посчитать в строке символов и выдать на экран количество цифр "0", "1",..., "9".

21. Проверить, является ли строка читаемой в прямом и обратном направлении (например, "а роза упала на лапу азора"), (не считая пробелов).

22. Посчитать, сколько и каких букв есть в заданной строке (например, "торт" - буква "т" -2, "о" -1, "р" -3).

23. Выдать на экран все символы и их порядковые номера из таблицы символов ASCII, находящиеся между двумя символами, введенными с клавиатуры.

24. Найти в строке символ "*". Разделить заданную строку на две строки (первая - до "*", вторая после "*").

25. Выдать на экран матрицу, состоящую из символа, введенного с клавиатуры (н-р, 2х3, символ 'М'). Размеры матрицы вводятся пользователем.

26. Найти в строке символ "!". Заменить все символы до него на "a", после него - на "я ".

27. Посчитать в строке количество слов. Заменить каждое второе слово на "!!!!!"

28. Заменить в строке символов все слова на слово, введенное пользователем.

29. Посчитать в строке символов и выдать на экран количество всех символов (например, "а" - 5, "б" - 6, "f" - 2, "z"- 11, "?"- 3 и т.д.)

30. Посчитать количество слов в строке, начинающихся на слог "по". Слова в строке разделены пробелами, в конце текста точка.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: