for i:=1 to 15 do
begin for j:=1 to 10 do writeln(a[i, j]);
writeln;
end;
Max:=a[1,1]; k1:=1; k2:=1;
For i:=1 to 15 do for j:=1 to 10 do if a[i, j]>max then
begin
Max:=a[i, j];
k1:=i;
k2:=j
end;
end.
Пример 4. Заменить элементы второго столбца матрицы A(3; 5) их квадратами.
Переберем элементы второго столбца, меняя номер строки i, и каждый элемент A[i, 2] заменим его квадратом. Номер столбца, заметим, менять не будем, так как он нам известен - второй.
После изменений новый массив нужно вывести при помощи стандартного вывода двумерного массива
For i:=1 to 3 do a[i, 2]:=sqr(a[i, 2]);
Текст программы:
Program z8;
Var a:array [1..3,1..5] of integer;
i, ,j:integer;
begin
for i:=1 to 3 do for j:=1 to 5 do readln(a[i, j]);
for i:=1 to 3 do
begin for j:=1 to 5 do writeln(a[i, j]);
writeln;
end;
for i:=1 to 3 do a[i,2]:=sqr(a[i,2]);
for i:=1 to 3 do
begin for j:=1 to 5 do writeln(a[i, j]);
writeln;
end;
end.
Пример 5. Подсчитать сумму четных элементов 2-й строки матрицы A(3; 5).
Сначала значение суммы примем за ноль.
S:=0;
Переберем элементы второй строки, меняя номер столбца j, и каждый элемент A[2, j] будем добавлять в сумму. Номер строки, заметим, менять не будем, так как он нам известен - второй.
S:=0;
For j:=1 to 5 do s:=s+a[2,j];
Текст программы:
Program z9;
Var a:array [1..3,1..5] of integer;
S, i, ,j:integer;
begin
for i:=1 to 3 do for j:=1 to 5 do readln(a[i, j]);
for i:=1 to 3 do
begin for j:=1 to 5 do writeln(a[i, j]);
writeln;
end;
S:=0;
for j:=1 to 5 do s:=s+a[2,j];
writeln(s);
end.
2.6 Вопросы
1. Как объявлять двумерные массивы в Паскаль?
2. Какие операции можно осуществлять над всем двумерным массивом сразу?
3. Как обращаться к элементам двумерного массива?
4. Как найти минимальный элемент в двумерном массиве?
5. В чем отличие обработки одномерного массива от обработки двумерного массива.
2.7 Задания
Составить программу для решения задачи, используя двумерные массивы:
Вариант 1.
1. Дан двумерный массив целых чисел A(5; 8). Увеличить все его значения на десять.
2. Замените элементы первой строки матрицы A(4; 4) элементами, равными 1. Отпечатайте новую матрицу.
Вариант 2.
1. В массиве целых чисел A(8; 10) вычислить произведение отрицательных элементов.
2. Замените элементы второго столбца матрицы A(4; 4) элементами, равными 6. Отпечатайте новую матрицу.
Вариант 3.
1. В массиве целых чисел B(10; 8) найти количество нулевых элементов.
2. Вычислить и отпечатать сумму элементов третьего столбца матрицы А(4; 4) с соответствующим заголовком.
Вариант 4.
1. В массиве целых чисел A(8; 10) найти сумму положительных элементов.
2. Подсчитайте и отпечатайте в третьей строке матрицы A(4; 4) число нулевых элементов.
Вариант 5.
1. В массиве целых чисел A(10; 8) найти сумму отрицательных элементов.
2. Вычислите и отпечатайте произведение положительных элементов третьего столбца матрицы A(4; 4) с соответствующим заголовком.
Вариант 6.
1. В массиве целых чисел X(8; 6) подсчитать число элементов больших трех.
2. Посчитайте в четвертой строке матрицы A(4; 4) число отрицательных элементов и выведите на печать полученный результат.
Вариант 7.
1. В массиве целых чисел С(6; 5) найти минимальный элемент и его номер.
2. Подсчитайте и отпечатайте в четвертой строке матрицы A(4; 4) произведение отрицательных элементов.
Вариант 8.
1. В массиве целых чисел B(5; 7) найти произведение положительных элементов.
2. Замените элементы первого столбца матрицы A(4; 4) элементами 1, 0, 2, 4. Отпечатайте новую матрицу.
Вариант 9.
1. В массиве целых чисел X(7; 8) найти произведение отрицательных элементов.
2. Отпечатайте с соответствующим заголовком в два столбца элементы первой и четвертой строк матрицы A(4; 4).
Вариант 10.
1. Вычислить среднее арифметическое элементов массива целых чисел M(8; 6).
2. Отпечатайте с соответствующим заголовком в два столбца элементы второй и третьей строк матрицы A(4; 4).
Вариант 11.
1. В массиве целых чисел X(6; 5) найти количество положительных элементов.
2. Замените отрицательные элементы четвертого столбца матрицы A(4; 4) соответствующими положительными элементами. Отпечатайте новую матрицу.
Вариант 12.
1. В массиве целых чисел B(10; 5) найти количество отрицательных элементов.
2. Отпечатайте с соответствующим заголовком элементы главной диагонали матрицы (4; 4) в строку.
3 СТРОКИ
3.1 Описание строки
Строка – последовательность символов. Описание строковой переменной в общем виде выглядит следующим образом:
Var имя: string [длина];
- объявление строки с максимально заданной длиной;
Var имя: string;
- объявление строки без указания максимальной заданной длины;
Примеры объявления строк:
Var s: string [20];
str: string;
Строка s может иметь не более двадцати символов, а если при этом длина строки не указывается, значит, длина строки ограничивается 255-ю символами. Значения строк должны обязательно заключаться в апострофы. То есть, если мы хотим поместить в строку s выражение «Я – студент геологического факультета», мы будем использовать оператор присваивания:
str:=’Я – студент геологического факультета’;
или еще примеры:
s:=’1980‘; (это именно строка, не целое число, с этой строкой нельзя производить арифметических операций),
s:=’Введите переменную a, а затем b’;
s:=’’; (это пустая строка, заметьте, что между апострофами нет ни одного символа, даже пробела);
s:=’ ’; (это строка, содержащая один пробел).
3.2 Операции со строками
Пусть описаны следующие строки:
Var s, s1, str: string;
1) Ввод строки
В отличие от массива, строку можно вводить целиком сразу при помощи оператора readln:
Readln(s);
2) Присваивание строки
Значение одной строки можно присвоить другой строке, например:
s1:=s
3) Обращение к символу строки с порядковым номером i аналогично обращению к элементу массива
s[i]
Например, в строке str=’Я – студент геологического факультета’ символ str[6]=’т’, str[15]=’о’, str[2]=’ ’ (пробел).
4) Вывод строки
Строку можно выводить целиком при помощи оператора writeln:
writeln(s);
5) Сложение строк
Подобно числовым переменным, строковые переменные можно складывать. Результат сложения можно присваивать какой-либо символьной переменной. Например, если значение переменной s равно «Турбо », а переменной s1 – «Паскаль», то в результате операции:
Str:=s+s1;
Значение переменной str станет равным словосочетанию «Turbo Pascal», т. е. вторая строка приписывается в конец первой.
То же самое можно сделать при помощи функии Concat(s1,s2, … sn), например получить фразу «Turbo Pascal» можно при помощи
Str:=Сoncat(s,s1);
6) Сравнение строк можно производить при помощи знаков =, >, <, <>, <=, >=. Сравнение строк происходит посимвольно слева направо. Строки равны, если их длины одинаковы и элементы строк посимвольно совпадают. Одна строка считается меньше другой, если она должна находиться раньше второй в алфавитном порядке.
7) Определение длины строки производится при помощи функции
Length(s)
Например, если s=’Турбо ’, s1=’Паскаль’, str=’Turbo Pascal’, то
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


