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