неділя, 5 лютого 2017 р.

Динамічний масив на мові Паскаль

                                             Практична робота «ДИНАМІЧНИЙ МАСИВ»

1. Записати алгоритм мовою Pascal, який знаходить суму чисел елементів квадратного масиву розмірами: а)4х4; б)3х3; в)5х5, г)6х6, що знаходяться на головній та бічній діагоналях. Масиву задати випадкові дійсні числа. 






program Matriza;                                                                        {оголошується назва програми}
const m=4;                               {оголошується постійні величини, назва і значення константи m=4}
           n=4;                                             {це постійна величина, назва і значення константи n =4}
var  sum, f, s: real;            {оголошуються змінні величини, тип змінних sum, f, s: – це дійсні числа}
b: array[1..m*n] of real;           {змінний лінійний масив b  з дійсними змінними – це рядок чисел}
a: array[1..m,1..n] of real;    {змінний  прямокутн. масив а  з дійсними числами – це  таблиця чисел}
i, j, p,  k: integer;                             {змінні цілі  величини  i, j, p,  k  – це  таблиця чисел}
begin                                                   {оголошується розділ введення даних в програму}                          
writeln('massiv: ');                 {повідомляється на екрані про введення випадкових чисел в масив}
for i:=1 to m do  begin            {оголошується цикл з лічильником по кількості рядків  в масиві} 
for j:=1 to n do begin             {оголошується цикл з лічильником по кількості стовпців  в масиві}
a[i,j]:=int(random*20-10);  {оголошується присвоєння елементам прямокутн масиву випадк. числа}
b[(i-1)*n+j]:=a[i,j];               {оголошується присвоєння елементам лінійного масиву випадк. числа}
end;                              {оголошується кінець внутрішнього циклу елементам стовпця  масиву  чисел}                       
writeln('     ');                                     {оголошується пробіл між елементами стовпця  масиву  чисел}                       
writeln('     ');                                  {оголошується пробіл між елементами стовпця  масиву  чисел}                       
end;                                {оголошується кінець зовнішнього циклу елементам стовпця  масиву  чисел}                       
writeln('    ');                                      {оголошується пробіл між елементами стовпця  масиву  чисел}                         
writeln('    ');                                       {оголошується пробіл між елементами стовпця  масиву  чисел}                          
for i:=1  to m do   begin                 {оголошується цикл з лічильником по кількості рядків  в масиві} 
for j:=1  to n do begin                 {оголошується цикл з лічильником по кількості стовпців  в масиві}
write('  a[ ', i, '; ', j, ' ]:= ', a[i,j] {'  b[', i-1*n+j, ']= ', b[(i-1)*n+j]});    {Виводимо на екран весь масив а}
end;                              {оголошується кінець внутрішнього циклу елементам стовпця  масиву  чисел}                       
writeln('     ');                                     {оголошується пробіл між елементами стовпця  масиву  чисел}                       
writeln('     ');                                  {оголошується пробіл між елементами стовпця  масиву  чисел}                       
end;                              {оголошується кінець зовнішнього циклу елементам стовпця  масиву  чисел}     
s:=0;                             {занулюється сума діагональних елементів масиву  чисел}                       
for i:=1 to n do                     {оголошується цикл з лічильником по головній діагоналі в масиві}
begin
s:=s+a[i,i];                    {у циклі виконується сумування елементів головної діагоналі  масиву  чисел}                       
end;
f:=0;                         {занулюється сума елементів бічної діагоналі масиву  чисел}                       
for i:=1 to n do        {оголошується цикл з лічильником по бічній діагоналі в масиві}
begin
f:=f+a[i,n+1-i];    {у циклі виконується сумування елементів бічної діагоналі  масиву  чисел}                       
end;
     if   n mod 2 =1 then       {розгалуження на два випадки для непарного і парного розміру масиву}                       
sum:=s+f- a[n div 2 +1, n div 2 +1]   {оголошується сумування елементів двох діагоналей  масиву}                       
else                                                  {галуження на  випадок для  парного розміру  масиву  чисел}                       
 sum:=s+f;                       {оголошується сумування елементів двох діагоналей  масиву}                       
writeln('     ');
writeln('suma головної diagonaley= ', s);  writeln('     '); {на екран сума ел-тів голов. діагоналі  масиву}                       
writeln('     ');  
writeln('suma бічної diagonaley= ', f);    writeln('     ');    {на екран сума ел-тів бічн.  діагоналі  масиву}                       
writeln('suma обох diagonaley= ', sum);    {на екран сума ел-тів  обох діагоналі  масиву}                       

end.

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

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