Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Загальні вказівки






 

У Паскалі багатовимірні масиви можуть визначатися послідовно: спочатку описується один масив, потім другий, елементами якого є оголошені раніше масиви, і т.д. Один масив вкладається в інший, і ступінь такого вкладення не обмежений.

Наприклад:

 

type str=array[1..10] of real;

tabl=array[1..5] of str;

Наведений опис двовимірного масиву можна замінити еквівалентним описом

 

type tabl=array[1..5, 1..10] of real;

При обробці двовимірних масивів звичайно застосовуються вкладені цикли. Цикл, що охоплює інші цикли, називається зовнішнім, інші цикли - внутрішніми.

Приклад виконання завдання 1 лабораторної роботи

Приклад 21. У матриці a(4, 5) знайти добуток позитивних елементів.

 
 

Блок-схема

Порядок роботи:

Крок 1. Уводимо матрицю a(4, 5).

Крок 2. Задаємо початкове значення добутку p=1.

Крок 3. Організовуємо цикл, що перебирає рядки матриці (тобто індекс i), починаючи з 1-го і закінчуючи 4-м.

Крок 4. Організуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і закінчуючи 5-м.

Крок 5. Якщо aij > 0, тоді привласнюємо p = p × aij.

Крок 6. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 4.

Крок 7. Якщо цикл за i не закінчився, йдемо на початок циклу, тобто на крок 3.

Крок 8. Друкуємо p.

Крок 9. Останов.

Приклад 22. Знайти суму парних елементів третього рядка матриці a(4, 5).

 

Порядок роботи:

Крок 1. Уводимо матрицю a(4, 5).

Крок 2. Установлюємо початкове значення суми s = 0.

Крок 3. Задаємо номер оброблюваного рядка i = 3.

Крок 4. Організовуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і кінчаючи 5-м.

Крок 5. Якщо aij парне, тоді привласнюємо s = s + aij.

Крок 6. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 4.

Крок 7. Друкуємо s.

Крок 8. Останов.

 

Приклад 23. Обчислити середні геометричні додатних елементів кожного рядка матриці X(5, 8). Визначити мінімальне значення цих середніх і номер відповідного рядка.

Програма має вид:

program pr23;

uses crt;

const m=5; n=8;

type stroka = Array[1..n] of real;

matr = array[1..m] of stroka;

stolb = array[1..m] of real;

var x: matr; b: stroka; sr: stolb; p, min: real;

i, j, k, nmin: integer; z: char;

begin clrscr;

for i: =1 to m do begin

WRITELN('УВЕДИ ', N, ' ЧИСЕЛ ', I, '-Ого РЯДКА');

FOR J: =1 TO N DO READ(X[I, J]); END;

WRITELN(' ': 10, 'ВИХІДНА МАТРИЦЯ ');

FOR I: =1 TO M DO BEGIN

FOR J: =1 TO N DO WRITE(X[I, J]: 7: 1);

WRITELN; END;

{ОБЧИСЛЕННЯ СЕРЕДНІХ ГЕОМЕТРИЧНИХ}

for i: =1 to m do

begin

b: =x[i]; p: =1; k: =0;

for j: = 1 to n do

if b[j]> 0 then

begin p: =p*b[j]; k: =k+1; end;

if k> 0 then sr[i]: =exp(ln(p)/k) else sr[i]: =-1;

END; {FOR}

{ПОШУК МІНІМАЛЬНОГО ЕЛЕМЕНТА}

min: =1E20;

for i: = 1 to m do

if(sr[i]< min) and (sr[i]> 0) then

BEGIN MIN: =SR[I]; NMIN: =I; END;

WRITELN; WRITELN(' ': 5, ' РЕЗУЛЬТАТИ РОЗРАХУНКУ');

FOR I: =1 TO M DO

WRITELN('СЕР.ГЕОМ.', I, '-Ого РЯДКА=', SR[I]: 7: 2);

FOR I: = 1 TO 34 DO WRITE(' = ');

WRITELN;

WRITELN('МІНІМАЛЬНЕ СЕРЕДНЄ = ', MIN: 7: 2);

WRITELN('НОМЕР РЯДКА = ', NMIN: 2);

z: =readkey

end.

Приклади виконання завдання 2 лабораторної роботи

 

Приклад 24. Знайти суму парних елементів головної діагоналі матриці a(5, 5).

Порядок роботи:

Крок 1. Уводимо матрицю a(5, 5).

Крок 2. Установлюємо початкове значення суми s=0.

Крок 3. Організовуємо цикл, що перебирає рядки матриці (тобто індекс i), починаючи з 1-го і закінчуючи 5-м.

Крок 4. Організовуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і закінчуючи 5-м.

Крок 5. Якщо aij парне й i = j, привласнюємо s = s + aij.

Крок 6. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 4.

Крок 7. Якщо цикл за i не закінчився, йдемо на початок циклу, тобто на крок 3.

Крок 8. Друкуємо s.

Крок 9. Останов.

 

Приклад 25. Обчислити добуток від множення суми додатних елементів головної діагоналі на суму непарних елементів побічної діагоналі матриці А(6, 6).

 

Програма має вид

program pr25;

uses crt;

const n=6;

type raz=1..n;

matr=array[raz, raz] of integer;

var a: matr; p, s1, s2, i, j: integer; z: char;

BEGIN CLRSCR;

FOR I: =1 TO N DO BEGIN

WRITELN('УВЕДИ ', N, ' ЧИСЕЛ ', I, '-Ого РЯДКА');

FOR J: =1 TO N DO READ(A[I, J]); END;

CLRSCR;

WRITELN(' ': 10, 'ВИХІДНА МАТРИЦЯ ');

for i: =1 to n do begin

for j: =1 to n do

write(a[i, j]: 5); WRITELN; END;

{ОБЧИСЛЕННЯ СУМИ ДІАГОНАЛЕЙ}

s1: =0; s2: =0;

for i: =1 to n do

begin j: = n+1-i;

if a[i, i] > 0 then s1: =s1+a[i, i];

if a[i, j] MOD 2 < > 0 then s2: =s2+a[i, j];

end;

{ОБЧИСЛЕННЯ ДОБУТКУ}

P: =S1*S2;

WRITELN; WRITELN(' ': 10, 'РЕЗУЛЬТАТИ РОЗРАХУНКУ ');

WRITELN('СУМА ДОД. ЕЛ. ГОЛ. ДІАГОНАЛІ=', S1: 4);

WRITELN('СУМА НЕП. ЕЛ. ПОБ. ДІАГОНАЛІ=', S2: 4);

WRITELN(' ЇХНІЙ ДОБУТОК = ', P: 4);

z: =readkey

end.

 

Приклад 26. Знайти максимальний елемент побічної діагоналі матриці X(5, 5) і вивести на друк весь стовпець, у якому він знаходиться.

Програма має вид:

program pr26;

uses crt;

const n=5;

type raz=1..n;

matr=array[raz, raz] of real;

var x: matr; max: real; i, j, jmax: raz; z: char;

BEGIN CLRSCR;

FOR I: =1 TO N DO BEGIN

WRITELN('УВЕДИ', N, 'ЧИСЕЛ ', I, '-ОГО РЯДКА');

FOR J: = 1 TO N DO READ(X[I, J]);

END;

CLRSCR;

WRITELN(' ': 5, 'ВИХІДНА МАТРИЦЯ ');

for i: =1 to n do begin

for j: =1 to n do

write(x[i, j]: 5: 1);

writeln; end;

{ПОШУК МАКСИМАЛЬНОГО ЕЛЕМЕНТА}

max: =-1e20;

for i: =1 to n do

begin j: =n+1-i;

if x[i, j]> max then

begin max: =x[i, j]; jmax: =j; end;

END;

{ВИВІД ЗНАЙДЕНОГО СТОВПЦЯ}

WRITELN; WRITELN(' МАКС. ЕЛЕМЕНТ=', MAX: 5: 1);

WRITELN('СТОВПЕЦЬ З МАКС. ЕЛ. ', jmax: 2);

for i: =1 to n do

writeln(' ': 10, x[i, jmax]: 5: 1);

z: =readkey

end.

Приклад 27. У матриці a(4, 5) знайти кількість парних елементів у рядку, у якому другий елемент позитивний (якщо таких рядків декілька, результат роздрукувати окремо для кожного).

 

Порядок роботи:

Крок 1. Уводимо матрицю a(4, 5).

Крок 2. Організовуємо цикл, що перебирає рядки матриці (тобто індекс i), починаючи з 1-го і закінчуючи 4-м.

Крок 3. Якщо ai2 > 0, то йдемо на крок 4, інакше беремо інший рядок, тобто йдемо на крок 9.

Крок 4. Установлюємо початкове значення кількості k=0.

Крок 5. Організовуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і закінчуючи 5-м.

Крок 6. Якщо aij парне, тоді привласнюємо k = k + 1.

Крок 7. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 5.

Крок 8. Друкуємо k.

Крок 9. Якщо цикл за i не закінчився, йдемо на початок циклу, тобто на крок 2.

Крок 10. Останов.

 

Приклад 28. У матриці a(4, 5) знайти кількість парних елементів у рядку, у якого сума елементів позитивна (якщо таких рядків декілька, результат роздрукувати окремо для кожного).

 

Порядок роботи:

Крок 1. Уводимо матрицю a(4, 5).

Крок 2. Організовуємо цикл, що перебирає рядки матриці (тобто індекс i), починаючи з 1-го і закінчуючи 4-м.

Крок 3. Установлюємо початкове значення суми s = 0.

Крок 4. Організовуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і закінчуючи 5-м.

Крок 5. Привласнюємо s = s + aij.

Крок 6. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 4.

Крок 7. Якщо s > 0, то йдемо на крок 8, інакше - беремо інший рядок, тобто йдемо на крок 13.

Крок 8. Установлюємо початкове значення кількості k=0.

Крок 9. Організовуємо цикл, що перебирає стовпці матриці (тобто індекс j), починаючи з 1-го і кінчаючи 5-м.

Крок 10. Якщо aij парне, тоді привласнюємо k = k + 1.

Крок 11. Якщо цикл за j не закінчився, йдемо на початок циклу, тобто на крок 9.

Крок 12. Друкуємо k.

Крок 13. Якщо цикл за i не закінчився, йдемо на початок циклу, тобто на крок 2.

Крок 14. Останов.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.