Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
825.34 Кб
Скачать

Завдання з розв'язками до тематичного оцінювання з теми "Двовимірні масиви"

  1. Описати двовимірний масив , у якому 10 рядків і 10 стовпчиків з чисел типу Integer.

Відповідь:

Var a:array[1..10,1..10] of integer;

  1. Описати двовимірні масиви a,b,c у яких 100 рядків і 100 стовпчиків з чисел типу Real;

Відповідь:

Var a, b, c :array[1..100,1..100] of real;

  1. Запишіть вираз: значення елементу масиву А не перевищує 100.

Відповідь: А[I,J] < = 100

  1. Запишіть вираз: значення елементу масиву А належить проміжку [-8,15].

Відповідь: (А[I,J] > = -8) and (А[I,J] < = 15).

НАПИСАТИ ТЕКСТИ ПРОГРАМ

  1. Знайти суму елементів двовимірного масиву А.

Відповідь:

Program qq5;

Var A:array[1..100,1..100] of real; I , j , m ,n:integer;

S:real;

Begin

Writeln(‘Введіть кількість рядків і кількість стовпців масиву’);

Readln(n,m);

For i:=1 to n do

For j:=1 to m do a[I,J]:=0; {очистка масиву}

For i:=1 to n do

For j:=1 to m do begin

writeln(‘введіть a[‘,I,’,’,J,’]:’);

readln(a[I,J]); {введення елементів масиву з клавіатури}

end;

s:=0;

For i:=1 to n do

For j:=1 to m do begin

S:=s+a[I,J]; {знаходження суми елементів масиву}

Writeln(‘s= ’, s:8:2);

Readln;

End.

  1. Знайти добуток кратних 3 елементів двовимірного масиву В.

Відповідь:

Program qq6;

Var A:array[1..100,1..100] of integer;

I,J,D,n,m:integer;

Begin

Writeln(‘Введіть кількість рядків і кількість стовпців масиву’);

Readln(n,m);

For i:=1 to n do

For j:=1 to m do a[I,J]:=0; {очистка масиву}

For i:=1 to n do

For j:=1 to m do

a[I,J]:=random(50)-25; {заповнення масиву випадковими числами}

writeln(‘Сформований масив чисел’);

For i:=1 to n do begin

For j:=1 to m do {виведення створеного масиву на екран}

Writeln(a[I,J]: 8); {по m чисел в рядку}

Writeln;

End;

d:=1;

For i:=1 to n do

For j:=1 to m do

If a[I,J] mod 3=0 then d:=d*a[I,J]; {знаходження добутку}

Writeln(‘d= ’, d:8:2);

Readln;

End.

  1. Знайти середнє арифметичне парних чисел двовимірного масиву А.

Відповідь:

Program qq7;

Var A:array[1..100,1..100] of integer;

I,J,S,K,n,m:integer;

SA:real;

Begin

Writeln(‘Введіть кількість рядків і кількість стовпців масиву’);

Readln(n,m);

For i:=1 to n do

For j:=1 to m do a[I,J]:=0; {очистка масиву}

For i:=1 to n do

For j:=1 to m do

a[I,J]:=random(50)-25; {заповнення масиву випадковими числами}

writeln(‘Сформований масив чисел’);

For i:=1 to n do begin

For j:=1 to m do {виведення створеного масиву на екран}

Writeln(a[I,J]: 8); {по m чисел в рядку}

Writeln;

End;

K:=0; S:=0;

For i:=1 to n do

For j:=1 to m do

If a[I,J] mod 2 = 0 then begin

s:=s+a[I,J]; {знаходження суми парних елементів}

k:=k+1; {знаходження кількості парних елементів} end;

If k=0 then writwln(‘у масиві немає парних чисел’) else begin

SA:=s/k;

Writeln(‘SA= ’, SA:8:2);

End;

Readln;

End.

  1. Всі елементи стовпця масиву A і всі елементи рядка, де знаходиться мінімальний елемент, замінити нулями.

Відповідь:

Program qq8;

Var A:array[1..100,1..100] of integer;

I,J,min, imin,jmin,n,m:integer;

Begin

Writeln(‘Введіть кількість рядків і кількість стовпців масиву’);

Readln(n,m);

For i:=1 to n do

For j:=1 to m do a[I,J]:=0; {очистка масиву}

For i:=1 to n do

For j:=1 to m do

a[I,J]:=random(50)-25; {заповнення масиву випадковими числами}

writeln(‘Сформований масив чисел’);

For i:=1 to n do begin

For j:=1 to m do {виведення створеного масиву на екран}

Writeln(a[I,J]: 8); {по m чисел в рядку}

Writeln;

End;

Min:=A[1,1];

For i:=1 to n do

For j:=1 to m do

If a[I,J] <min then begin

min:=a[I,j]; { пошук мінімального елемента}

imin:=I; { пошук номера рядка , де він знаходиться}

jmin:=J; { пошук номера стовпця , де він знаходиться }

end;

For i:=1 to n do A[I,jmin]:=0; {Заміна елементів стовпця в якому знаходиться мінімальний елемент нулями}

For j:=1 to m do A[imin,j]:=0; {Заміна елементів рядка в якому знаходиться мінімальний елемент нулями}

For i:=1 to n do begin

For j:=1 to m do {виведення нового масиву на екран}

Writeln(a[I,J]: 8); по m чисел в рядку}

Writeln;

End;

Readln;

End.

  1. Роздрукувати у рядок елементи, що розташовані в першому стовпчику двовимірного масива А.

Розв'язання: В даній задачі, хоча задана таблиця двовимірна, другий індекс у всіх елементів, що будуть друкуватися, дорівнює 1, тому достатньо одного циклу по рядках для виконання задачі.

Program qq9;

Uses crt;

Var A:array[l..100,l..100] of real;

i,j,m,n:integer; {i,j - Змінні циклу}

Begin

Randomize;

Clrscr;

Readln(n,m);

For і: =1 to n do

For j:=1 to m do

A[i,j]:=random*50-random*30;

writeln;

For i:=1 to n do begin

For j:=1 to m do {виведення масиву на екран}

Writeln(a[I,J]: 8:2); по m чисел в рядку}

Writeln;

Writeln('Перший стовпчик масиву:');

For i:=l to n do begin

Write(A[i,l]:8:2); end;

Readkey; {Затримка зображення на екрані}

End.

  1. Роздрукувати у рядок елементи, розташовані на бічній діагоналі двовимірного масиву А.

Розв'язання: Нагадуємо, що на бічній діагоналі елементи мають таку властивість: сума номера рядка та номера стовпчика дорівнює розмірності

масиву +1, тобто номер стовпчика обчислюється за наступною формулою:j = n-1+i.

Тоді програма для розв'язання даної задачі має такий вигляд:

Program qq10;

Uses crt;

Const n = 10;

Var A:array[l..n,l..n] of real;

і, j : integer; { і, j - змінні циклу}

Begin

Randomize;

Clrscr;

{Заповнення масиву випадковими числами та виведення його на екран)

For і: =1 to n do Begin

For j:=1 to m do begin

A[i,j]:=random(500)/ll-random*30;

Write(A[i,j]:8:2); end;

writeln;

End;

Readln; (Затримка зображення на екрані)

Writeln('Бічна діагональ масиву:');

For і: =1 to n do begin

Write(A[i,n-i+l]:8:2);

end;

Readkey; (Затримка зображення на екрані)

End.

  1. Знайти суму парних елементів кожного рядка двовимірного масиву.

Program qq11;

Uses crt;

Var A:array[l..100,l..100] of integer;

i,j,s,n,m:integer; {i,j - Змінні циклу}

Begin

Randomize;

Clrscr;

Readln(n,m);

For і: =1 to n do

For j:=1 to m do

A[i,j]:=random(50)-20;

writeln;

For i:=1 to n do begin

For j:=1 to m do {виведення масиву на екран}

Writeln(a[I,J]: 8); по m чисел в рядку}

Writeln;

For і: =1 to n do begin

S:=0; {занулення суми при переході на новий рядок}

For j:=1 to m do

If a[I,j] mod 2 = then S:=S+A[i,j];{накопичення суми парних елементів рядка

Writeln(‘В рядку ’, I, ‘ сума парних елементів = ’, s);

End;

Readkey; {Затримка зображення на екрані}

End.

  1. Знайти мінімальний елемент та його індекси у кожному стовпці двовимірного масиву А.

Program qq12;

Uses crt;

Var A:array[l..100,l..100] of integer;

i,j,min,imin,n,m:integer; {i,j - Змінні циклу}

Begin

Randomize;

Clrscr;

Readln(n,m);

For і: =1 to n do

For j:=1 to m do

A[i,j]:=random(50)-20;

writeln;

For i:=1 to n do begin

For j:=1 to m do {виведення масиву на екран}

Writeln(a[I,J]: 8); по m чисел в рядку}

Writeln;

For j: =1 to m do begin

Min:=a[1,j]; {нехай мінімумом буде перший елемент стовпця}

For i:=1 to n do

If a[I,j] <min then begin

min:=A[i,j];{Знаходження мінімального елемента в стовпці}

imin:=I; {номер рядка, де він знаходиться}

end;

Writeln(‘Mінімальний елемент = ’, min, ‘його індекси: I= ’, imin, ‘ , J= ‘, J);

End;

Readkey; {Затримка зображення на екрані}

End.