пʼятниця, 21 листопада 2014 р.

Завдання на програмування масивів на мові Паскаль

Перетворення  двомірного масиву(таблиці)  в  лінійний масив(рядок) мовою Pascal.
Приклад розташування елементів та їх індексів удвовимірного масиву 
A[4xm]:
a[1;1]
a[1;2]
a[1;3]
a[1;m-2]
a[1;m-1]
a[1;m]
a[2;1]
a[2;2]
a[2;3]
a[2;m-2]
a[2;m-1]
a[2;m]
a[3;1]
a[3;2]
a[3;3
a[3;m-2]
a[3;m-1]
a[3;m]
a[4;1]
a[4;2]
a[4;3]
a[3;m-2]
a[3;m-1]
a[3;m]

1.Властивість індексів елементів головної діагоналі квадратної таблиці  
A[mxm]: i=j.2.Властивість індексів  елементів бічної діагоналі квадратної таблиці A[mxm]:  i+j=m+1,де  m - кількість рядків(стовпців) матриці.
3.Властивість запису прямокутної матриці 
A в одномірний масив:  порядковий  k –ий номер у одномірному масиві  В[1..mxn] визначають за формулою:  = (i-1)n +j,де  n - кількість стовпців  матриці A. Отже, елементи лінійного масиву
В([ b[1], b[2], b[3],, ...,  b[(i-1)n +j], … ,  b[mxn])
4.
Якщо відомо p - порядковий номер елемента в одномірному масиві В[1xq], тоді  індекси  і та j  елемента  a[i;j], який належить двовимірному масиву А[mxn визначається за формулами:
           
i=(p-1) div n +1;    j=p – (i-1)n,де n - кількість стовпців  матриці А[mxn].
Задача1.  Вивести  з даного запису  прямокутної матриці 
A   одномірний масив.
Задача
 MATRIZAmxn_L;
program  MATRmxn_L;
 const m=4; n=5; q=20;
var
  B: array[1..q] of real;
A: array[1..m,1..n] of real;
 i, j, p, k: integer;
begin
 writeln('
Масив даних має вигляд: ');
 {for i:=1 to m*n do b[1]:=0; }
 for i:=1 to m do
 for j:=1 to n do
    begin
    a[i,j]:= int(random*200-100); {
присвоєння випадковим чином цілих чисел масиву від -100 до +100 }
    b[(i-1)*n +j]:=a[i,j];
    writeln('a[',i , '; ',j,']:= ',a[i,j], '= b[',(i-1)*n +j,']=',  b[(i-1)*n +j]);
end;
end.

Z
адача 2.  Вивести як таблицю запис  матриці A[nxn]   nа eкраn .
PROGRAM ANXN;CONST  N=4;VAR A: ARRAY[1..N,1..N] OF INTEGER;B: ARRAY[1..N*N] OF INTEGER;m,K,P,I, L, J: INTEGER;BEGINwriteln('   ');writeln('   ');   FOR i:=1  TO  n do  BEGIN   FOR j:=1  TO  n*n do  BEGIN    case n mod j   of  0..n-1: write('  b[', j+ n*(i-1) ,   ']');  end;    end;  writeln('   ');end; writeln('   ');writeln('   ');writeln('   ');END.
{Задача "квадратна спіраль  в одномірному масиві".}
PROGRAM ANXN;CONST  N=4;VAR A: ARRAY[1..N,1..N] OF INTEGER;B: ARRAY[1..N*N] OF INTEGER;m,K,P,I, L, J: INTEGER;BEGINfor i:=1 to n do for j:=1 to n do    begin  a[i,j]:= (i-1)*n +j; b[(i-1)*n +j]:=a[i,j];    writeln('a[',i , '; ',j,']:= ',a[i,j], '= b[',(i-1)*n +j,']=',  b[(i-1)*n +j]);end; writeln('   '); writeln('   ');K:=1;M:=(N+1) div 2;FOR P:=1 TO m do   BEGIN   FOR J:=P TO N-P+1 do BEGINB[K]:=A[P,J];write('   b[', k, ']=',  b[k]);K:=K+1;END;FOR I:=P+1 TO N-P+1 do BEGINB[K]:=A[I,N-P+1];write('   b[', k, ']=',  b[k]);K:=K+1;END;FOR J:=N-P  downTO  P do  BEGINB[K]:=A[N-P+1,J];write('   b[', k, ']=',  b[k]);K:=K+1;END;FOR I:=N-P  downTO  P+1 do BEGINB[K]:=A[I,P];write('   b[', k, ']=',  b[k]);K:=K+1;END;end;writeln('   ');writeln('   ');   FOR i:=1  TO  n do  BEGIN   FOR j:=1  TO  n*n do  BEGIN    case n mod j   of  0..n-1: write('   b[', j+ n*(i-1) , ']');  end; end;  writeln('   ');end; writeln('   ');writeln('   ');writeln('   ');
END.


Верхній та нижній трикутник квадратної матриці

a1 1
а12
а13
а14
а15
а1n-1
a1n
а2 1
а2 2
a23
a24
a25
a2n-1
a2n
а31
а3 2
a3 3
а34
а3 4
a3n-1
a3n
аn-2 1
аn-2 2
аn-2 3
аn-2 3
аn-2 3
..
an-2n-1
an-2n
аn-1 1
аn-1 2
аn-1 3
аn-1 3
аn-1 5
an-1n-1
an-1n
аn1
аn2
аn3
аn4
аn5
аnn-1
 ann

Для верхнього трикутника квадратної матриці розміром nxn  
номер рядка і змінюється від 1 до n,
номер стовпця j змінюється від  і до n.

Кількість елементів в черговому рядку верхнього трикутника змінюється від   і  та  визначається за формулою
kvi = n i +1.
Для нижнього трикутника квадратної матриці розміром nxn  номер рядка і змінюється від 2 до n, а номер стовпця j змінюється від  1 до i-1.
Кількість елементів в черговому рядку  нижнього трикутника змінюється від   і  та  визначається за формулою
khi = i -1.

Ці закономірності використовуються для створення алгоритмів на квадратних матрицях.
Для верхнього трикутника квадратної матриці розміром nxn  номер рядка і змінюється від 1 до n,
номер стовпця 
j змінюється від  і до n.

Кількість елементів в черговому рядку верхнього трикутника змінюється від   і  та  визначається за формулою
kvi = n – i +1.Для нижнього трикутника квадратної матриці розміром nxn  номер рядка і змінюється від 2 до n, а номер стовпця j змінюється від  1 до i-1.
Кількість елементів в черговому рядку 
 нижнього трикутника змінюється від   і  та  визначається за формулою
khi = i -1.
Ці закономірності використовуються для створення алгоритмів на квадратних матрицях.




Завдання на програмування масивів
ЗАДАЧА 1.  Випадковим чином задається одномірний масив, що складається із 9 елементів. Вивести масив на екран у вигляді  таблиці 3х3 та знайти суму елементів, що розташовані на  обох діагоналях масиву.
ЗАДАЧА 2.  Користувач задає випадковим чином одномірний масив, що складається із 16 випадкових цілих елементів. Вивести масив на екран у вигляді  таблиці 4х4. Вивести окремо суму додатних та суму від’ємних елементів масиву.
ЗАДАЧА 3.  Випадковим чином задається двомірний масив цілих чисел, що складається із 3 рядків по 5 елементів у кожному. Вивести мінімальний та максимальний елемент масиву.  Вивести масив на екран у вигляді  таблиці 3х5.
ЗАДАЧА 4.   Випадковим чином задається одномірний масив, що складається із 10 елементів. Вивести масив на екран у рядочок. Знайти елементи менші за число 0 та замінити їх на число 25.
ЗАДАЧА 5.  Користувач задає двомірний масив, що складається із 16 цілих елементів. Вивести номери від’ємних непарних  елементів масиву.
ЗАДАЧА 6.  Користувач задає одномірний масив, що складається із 9 цілих елементів. Вивести масив на екран у вигляді  таблиці 3х3. У новому масиві  від’ємні  числа замінити -1, а додатні числа замінити +1. Порахувати кількість додатніх та кількість від’ємних чисел.
ЗАДАЧА 7.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 9 елементів. Вивести суми непарних чисел із головної та бічної діагоналей  масиву.
ЗАДАЧА 8.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 16 елементів. Вивести суми елементів масиву, що розташовані над головною діагоналлю масиву.
ЗАДАЧА 9.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 25 елементів. Вивести суми елементів масиву, що розташовані під  бічною  діагоналлю масиву.
ЗАДАЧА 10.  Користувач задає квадратний двомірний  масив А цілих чисел, що складається із 16 елементів. Вивести новий масив В,  у якого  елементи, що розташовані під  бічною  діагоналлю масиву, обмінялися місцями з елементами, що стоять  над бічною діагоналлю у відповідних місцях.
ЗАДАЧА 11.  Користувач задає квадратний двомірний  масив А цілих чисел, що складається із 25 елементів. Вивести новий масив В,  у якого  елементи, що розташовані під  головною  діагоналлю масиву, обмінялися місцями з елементами, що стоять  над головною діагоналлю у відповідних місцях.

ЗАДАЧА 12.  Користувач задає додатний цілий одномірний масив, що складається із 6 елементів. Вивести номери простих чисел у масиві. Вивести номери чисел у масиві, які кратні  2 або 3.




Завдання 2 на програмування масивів

ЗАДАЧА 13.  Випадковим чином задається двомірний масив, що складається із 16 елементів. Вивести масив на екран у вигляді  рядка  та знайти суму елементів, що розташовані на  обох діагоналях масиву.
ЗАДАЧА 14.  Користувач задає випадковим чином квадратну таблицю А(4х4), що складається із 16 випадкових цілих елементів. Вивести два одномірні масиви на екран. У першому лінійному масиві впорядковані числа із  верхнього трикутника за зростанням. У другому лінійному масиві впорядковані числа нижнього трикутника відносно головної діагоналі за спаданням.  Вивести окремо суми  додатних та суму від’ємних елементів для кожного лінійного масиву.
ЗАДАЧА 15.  Випадковим чином задається головна діагональ і верхній трикутник двомірного  симетричного масиву цілих чисел, що складається із 5 рядків по 5 елементів у кожному.  Вивести масив на екран у вигляді  таблиці 5х5.
ЗАДАЧА 16.   Випадковим чином задається бічна діагональ і верхній трикутник двомірного  симетричного масиву цілих чисел, що складається із 5 рядків по 5 елементів у кожному.  Вивести масив на екран у вигляді  таблиці 5х5.
ЗАДАЧА 17.  Користувач задає двомірний масив, що складається із 16 цілих елементів. Ділить його двома діагоналями  на чотири рівні частини і знаходить суму елементів кожної  із частин, без елементів діагоналей.  .
ЗАДАЧА 18.  Користувач задає двомірний масив, що складається із 25 цілих випадкових чисел. Вивести масив на екран у вигляді  таблиці 5х5. У новому масиві  парні числа  замінити 0, а непарні числа замінити +1. Порахувати кількість нулів  у новому масиві.
ЗАДАЧА 19.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 16 елементів. Вивести суми кожного рядку, як лінійний перший масив  та  суми кожного стовпця, як лінійний другий  масив.
ЗАДАЧА 20.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 25  елементів. Вивести  найменшу із сум кожного рядку, і найбільшу із сум кожного стовпця,
ЗАДАЧА 21.  Користувач задає квадратний двомірний  масив цілих чисел, що складається із 25 елементів. Вивести суми елементів масиву, що розташовані під  бічною  діагоналлю масиву.
ЗАДАЧА 22.  Користувач задає квадратний двомірний  масив А цілих чисел, що складається із  9 додатних трицифрових чисел. Вивести новий масив В,  у якого  елементи  є сумою цифр  чисел, які стояли на цих у відповідних місцях. Вивести кількість чисел, які  неділяться на 3.



Немає коментарів:

Дописати коментар