русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Двовимірний масив


Дата добавления: 2015-07-23; просмотров: 13919; Нарушение авторских прав


Двовимірний масив – це масив, де кожному елементу ставиться у відповідність два індекси. Такі масиви називають матрицею або прямокутною таблицею. Якщо у матриці однакова кількість стовпців і рядків то вона називається квадратною. Квадратна матриця має головну і побічну діагоналі.

Якщо матриця має розмір n x n.то головна починається елементом з індексами [1,1] (перший індекс – це номер рядка, другий - номер стовпця) і закінчується елементом з індексами [n,n], побічна починається елементом з індексами [1,n] і закінчується елементом з індексами [n,1].

Матриця А[n,m]

 

  ... m  
               
      A[2,4]        
               
               
A[5,1]   A[5,3]          
 
n                

 

Матриця B[n,n] Cірим кольором замальовані головна (B[1,1], B[2,2],…, B[n,n]) та побічна (B[1,n],B[2,n-1],…, B[n,1]) діагоналі.

  n
             
             
             
             
             
             
n              

 



1. Опис масиву

Сonst n=100;m=100;

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

B:array[1..10,1..100] of integer;

2. Очистка

For i:=1 to n do

For j:=1 to m do a[I,J]:=0;

і заповнення масиву

1. З клавіатури: For i:=1 to n do

For j:=1 to m do begin

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

readln(a[I,J]);

end;

2. По формулі : For i:=1 to n do

For j:=1 to m do

a[I,J]:=i*i+5; (будь-яка формула з і )

3. Випадковими числами в діапазоні [c,d]:

For i:=1 to n do

For j:=1 to m do

A[I,J]:=random(d-c)+d;

4. Із файла: For i:=1 to n do

For j:=1 to m do begin

read(File1,a[I,J]); ( якщо в файлі числа записані в рядку)

readln(File1,b[I,J]); (записані в стовпець, тобто, ідуть один під другим)

end;

3. Виведення на екран:

for i:=1 to n do begin

for j:=1 to m do

write(а[I,J],’ ’); в рядок

writeln; перехід на новий рядок

end;

 

Для масиву з дійсними числами бажано вказати формат виведення, наприклад

write(а[I,J]:10:3);

Для того, щоб працювати з елементами двовимірного масиву необхідні два цикла: один для переходу з рядка на рядок, другий – для переходу по стовпцям.

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

1. Описати масив оцінок з тематичної атестації 20 учнів.

Відповідь: oc:array[1..20] of integer;

2. Описати масив цін 5 товарів на складі.

Відповідь:Var cena: array [1..5] of real;

3. Описати масив назв семи шкільних предметів.

Відповідь:Var nazva: array [1..7] of string;

4. Третьому елементу масиву а присвоїти число 255;

A[3]:=255;

5. Десятий елемент масиву а збільшити вдвічі;

A[10]:= A[10]*2;

6. Третій елемент масиву а зменшити на 100.

A[3]:= A[3]-100;

7. Сьомий елемент масиву поділити на другий.

A[7]:= A[7]/ A[2];

8. Записати команди вводу масиву назв пір року.

Відповідь:

For i:=1 to 4 do begin

Writeln(‘введіть назву пори року’);

Readln(nazva[i]);

End;

9. Записати команди вводу масиву десяти оцінок.

Відповідь:

For i:=1 to 10 do begin

Writeln(‘введіть оцінку’);

Readln(oc[i]);

End;

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

10. Видрукувати всі елементи масиву, які більші від 0,5.

Відповідь:

Program q11;

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

I,n:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to n do if a[i]>0.5 then writeln(a[i], ‘>0,5’);

readln;

end.

11. Заданий масив a[1..8]. Побудувати масив d[1..8] за таким правилом

D[i]=2a[i].

Відповідь:

Program q2;

Var a,d:array[1..8] of real;

I,n:integer;

Begin

for i:=1 to 8 do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to 8 do d[i]:=2*a[i];

for i:=1 to 8 do write(d[i]:6);

readln;

end.

12. Мінімальний елемент масиву b[1..6] збільшити у 7 разів. Впорядкувати елементи масиву за спаданням.

Відповідь:

Program q12;

Var b:array[1..6] of real;

Nom,I,j:integer; min,c:real;

Begin

for i:=1 to 6 do begin

writeln(‘Введіть елемент масиву’);

readln(b[i]);

end;

min:=b[1]; nom:=1;

for i:=1 to 6 do

if b[i] < min then begin

min:=b[i]; {знаходимо мінімальний елемент}

nom:=I; {та його номер}

end;

b[nom]:=b[nom]*7; {збільшуємо мінімальний елемент у 7 разів}

for i:=1 to 5 do

for j:=2 to 6 do

if b[i]<b[j] then begin

c:=b[i]; {впорядковуємо елементи масиву за

b[i]:=b[j]; спаданням}

b[j]:=c;

end;

for i:=1 to 8 do write (b[i]:8:2); {виводимо впорядкований масив на

readln; екран}

end.

13. Заданий масив народження п’яти учнів. Дати відповідь, чи хтось народився у жовтні.

Відповідь:

Program q13;

Var m:array[1..5] of integer;

I,k:integer;

Begin

for i:=1 to 5 do begin

writeln(‘Введіть номер місяця народження учня’);

readln(m[i]);

end;

k:=0;

for i:=1 to 5 do if m[i]=10 then k:=k+1; (підрахунок тих, хто народився

у жовтні)

if k>o then writeln(‘Так ,’ , k , ‘учнів народилося у жовтні’)

else writeln (‘Ні, таких немає’);

readln;

end.

14. Найбільший елемент масиву P[1..9] замінити на його квадрат. Впорядкувати елементи масиву за зростанням.

Відповідь:

Program q14;

Var p:array[1..9] of real;

Nom,I,j:integer; max,c:real;

Begin

for i:=1 to 9 do begin

writeln(‘Введіть елемент масиву’);

readln(p[i]);

end;

max:=p[1]; nom:=1;

for i:=1 to 9 do

if p[i] > max then begin

max:=p[i]; {знаходимо максимальний елемент}

nom:=I; {та його номер}

end;

p[nom]:=sqr(p[nom]); {змінюємо максимальний елемент на його квадрат}

for i:=1 to 8 do

for j:=2 to 9 do

if p[i]>p[j] then begin

c:=p[i]; {впорядковуємо елементи масиву за

p[i]:=p[j]; зростанням}

p[j]:=c;

end;

for i:=1 to 9 do write (p[i]:8:2); {виводимо впорядкований масив на

readln; екран}

end.

15. Додатні елементи масиву a[1..8] зменшити на 5, а від’ємні збільшити на число 2.

Відповідь:

Program q15;

Var a:array[1..8] of real;

I:integer;

Begin

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to n do begin

if a[i] > 0 then a[i]:=a[i]-5 ; {зменшення на 5 додатного елемента}

if a[i] < 0 then a[i]:=a[i]+2; {збільшення не 2 від’ємного елемента}

end;

for i:=1 to n do write(a[i]:8:2);

readln;

end.

16. В масиві a[n] мінімальний і максимальний елементи поміняти місціями.

Відповідь:

Program q16;

Var a:array[1..100] of integer;

I , n, nommin, nommax, max, min:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

min:=a[1]; nommin:=1;

max:=a[1]; nommax:=1;

for i:=1 to n do

if a[i] > max then begin

max:=a[i]; {знаходимо максимальний елемент}

nommax:=I; {та його номер}

end;

if a[i] <min then begin

min:=a[i]; {знаходимо мінімальний елемент}

nommin:=I; {та його номер}

end;

a[nommax]:=min; {максимальний елемент замінили мінімальним}

a[nommin]:=max; {мінімальний елемент замінили максимальним}

for i:=1 to n do write(a[i]:8);

readln;

end.

17. Визначити кількість елементів масиву a[n], більших від числа 1000.

Відповідь:

Program q17;

Var a:array[1..100] of integer;

I , n, k:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

k:=0;

for i:=1 to n do

if a[i] > 1000 then k:=k+1;

writeln(‘k= ’ , k);

readln;

end.

18. Задані два масиви a[1..10] і b[1..10], у якому із них менше від’ємних елементів?

Відповідь:

Program q18;

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

I , ka, kb :integer;

Begin

for i:=1 to 10 do begin

writeln(‘Введіть елемент масиву a’);

readln(a[i]);

end;

for i:=1 to 10 do begin

writeln(‘Введіть елемент масиву b’);

readln(b[i]);

end;

ka:=0; kb:=0;

for i:=1 to 10 do begin

if a[i] < 0 then ka:=ka+1; {рахунок від’ємних елементів масиву а}

if b[i] < 0 then kb:=kb+1;{ рахунок від’ємних елементів масиву b}

end;

if ka < kb then writeln(‘менше від’ємних елементів в масиві а’) else if ka=kb then writeln(‘від’ємних елементів порівну’) else writeln(‘менше від’ємних елементів в масиві b’)

readln;

end.

19. Барон Мюнхгаузен, вийшовши на полювання, зарядив свою рушницю кісточками вишень. Після того, як він вдало влучив поміж роги оленям (в яких влучило відповідно k1, k2, ..., kN кісточок), у них на головах виросли чудові молоді вишеньки. Скільки саджанців зміг подарувати барон Мюнхгаузен садівникам дослідникам?

Відповідь:

Program q19;

Uses crt;

Var N:word; {N — кількість оленів}

К:аггау[1..100] of integer; {K — зарезервований масив для зберігання кількості кісточок, що влучили в оленів)

і,Sum:integer; {і — змінна циклу, Sum — загальна кількість кісточок, що влучили в оленів}

Begin

Randomize; {Ця процедура запускається з метою зробити числа генератора випадкових чисел більш «випадковими»)

Clrscr; {очищення екрану}

Sum:=0; {На початку роботи програми Мюнхгаузен ще ні в кого не влучив)

Write('Введіть кількість оленів, в яких влучив Мюнхгаузен (<=100): ');

Readln(N);

For і:=1 to N do Begin к[і] :=random(50)+20{Заповнення массиву випадковими числами в діапазоні від 20 до 70)

Write(K[i]:5); Виведення масиву на екран для контролю правильності роботи програми}

Sum:=Sum+K[i];

End;

Writeln; {Переведення курсору на новий рядок)

Writeln( ' Кількість нових саджанців ‘, Sum) ;

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

End.

20. Середню групу дитячого садочка вивели на прогулянку. Скільки дівчаток і скільки хлопчиків видно з-за паркану, якщо зріст хлопчиків задається у сантиметрах від'ємними числами, а дівчаток — додатними у вигляді цілих значень a , а , ..., а ? Крім того, у всіх дівчаток на голівках зав'язані бантики заввишки 10 см, а висота паркану Н см.

Розв'язання:

Program q20;

Uses crt;

Var N,H:word; {N — кількість дітей в дитсадочку, Н — висота паркану)

А:array[1..100] of integer; {A — зарезервований масив для зберігання зросту дітей)

і,kd,kx:integer; {і — змінна циклу, kd — кількість дівчаток, kx-кількість хлопців)

Begin

Randomize;

Clrscr;

kd:=0 ; kx:=0;

Write('Введіть висоту паркану: ');

Readln (Н) ;

Write('Введіть кількість дітей в дитсадочку : ') ;

Readln(N);

For і:=1 to N do Begin

A[i]:=random(300)-150; {Заповнення масиву випадковими числами в діапазоні від —150 до +150}

Write(А[і]:5); {Виведення масиву на екран для контролю правильності роботи програми)

if (A[I]<0) and (abs(A[I])>H) then kx:=kx+l;

if (A[I]>0) and (A[I]+10>H) then kd:=kd+1;

End;

Write ( 'Кількість хлопчиків, що видна із-за паркану ' ) ;

Writeln (kx) ;

Write ( 'Кількість дівчаток, що видна із-за паркану , ) ;

Writeln (kd) ;

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

End.

21. Умова: Дано дійсні числа а1951, а1952, ..., а2002 — кількість опадів (у мм), що випали у місті за останні 52 роки минулого століття. Обчислити середню кількість опадів за цей період і щорічне відхилення від середнього значення.

Розв'язання:

В цій задачі доведеться організовувати проходження по масиву двічі, оскільки першим проходженням ми знайдемо тільки суму всіх опадів, що випали за останні 50 років, а потім, поділивши отриманий результат на 50, знайдемо середню кількість опадів за вказаний період.

Другим же проходженням ми можемо вже визначити щорічне відхилення від середнього значення, причому для того, щоб не втратити вхідні дані, зарезервуємо в програмі ще один масив на 50 дійсних чисел для зберігання цих результатів.

Program q21;

Uses crt;

Var N,і:integer; (N — кількість елементів масиву, і — змінна циклу}

A : array [1951. .2002] of real; {A - масив для зберігання кількості опадів у відповідному році}

В:array[1951..2002] of real; {В - масив для зберігання відхилення від середнього значення}

Begin Randomize;

Clrscr;

Sum:=0;

For і:=1951 to 2000 do Begin

A[i]:=random(500)/7; (Заповнення масиву випадковими дійсними числами}

Write(A[i]:8:2); (Виведення масиву на екран для контролю правильності роботи програми)

Sum:=Sum+A[i];

End;

Sum:=Sum/52; (Знаходження середньої кількості опадів за рік}

Writeln;

Writeln('Щорічні відхилення від середньої кількості опадів за період 1951 — 2003 p.p.');

For і:=1951 to 2000 do Begin

В [і]:=Sum — А [і]; (Знаходження щорічного відхилення}

Write(В[і]:8:2); (Виведення результатів на екран)

End;

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

End.

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

Розв'язання:

Program q22;

Uses crt;

Var kavto,kpas:word;

А:array[1..100] of byte; {кількість пасажирських місць у кожному

з автобусів}

b:array[1..100] of byte; {щоденна кількість рейсів кожного автобуса}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість автобусів ');

Readln (kavto) ;

For і:=1 to kavto do Begin

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

Readln(a[i]);

Writeln(‘Введіть кількість рейсів ’, I ,’- го автобуса’);

Readln(b[i]);

End;

Kpas:=0;

For і:=1 to kavto do Begin Kpas:= Kpas+a[i]*b[i];

Writeln (‘Максимальна кількість пасажирів = ’, kpas);

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

End.

23. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті. Визначити номера всіх кают, у яких максимальна кількість місць.

Розв'язання:

Program q23;

Uses crt;

Var kkajut, max:word;

kpmest:array[1..1000] of byte; {масив кількості пасажирських місць у кожній з кают}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість кают ');

Readln (kkajut) ;

For і:=1 to kkajut do Begin

Writeln(‘Введіть кількість пасажирських місць у ’, I ,’каюті’);

Readln(kpmest [i]);

End;

max:= kpmest [1];

For і:=2 to kkajut do {знаходження максимальної кількості

If kpmest [i]>max then max:= kpmest [i]; пасажирських місць у каюті}

For і:=1 to kkajut do

If kpmest [i]=max then writeln(‘Каюта з номером ’,I, ‘має максимальну кількість місць’);

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

End.

24. Відома кількість учнів у кожному з k класів школи. Визначити скільки всього учнів навчається в тих класах школи, у яких не менше ніж 30 чоловік.

Розв'язання:

Program q24;

Var a:array[1..100] of integer;

I , n, s:integer;

Begin

Writeln(‘Введіть кількість класів у школі’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть кількість учнів у класі’);

readln(a[i]);

end;

s:=0;

for i:=1 to n do

if a[i] > =30 then s:=s+a[i];

writeln(‘В цих класах навчається всього ’ , s, ‘ учнів’);

readln;

end.

25. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті. Визначити кількість пасажирів, яких можна буде розмістити в тих каютах, у яких максимальна кількість місць.

Розв'язання:

Program q25;

Uses crt;

Var kkajut, max,k,vsego:word;

kpmest:array[1..1000] of byte; {масив кількості пасажирських місць у кожній з кают}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість кают ');

Readln (kkajut) ;

For і:=1 to kkajut do Begin

Writeln(‘Введіть кількість пасажирських місць у ’, I ,’каюті’);

Readln(kpmest [i]);

End;

max:= kpmest [1];{нехай максимальна кількість місць у першій каюті}

For і:=2 to kkajut do {знаходження максимальної кількості

If kpmest [i]>max then max:= kpmest [i]; пасажирських місць у каюті}

For і:=1 to kkajut do

If kpmest [i]=max then k:=k+1; {підрахунок кількості кают з максимальною кількістю місць}

Vsego:=k*max;

Writeln(‘У каютах з максимальною кількістю місць можна розмістити’, vsego, ’ пасажирів’);

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

End.

Завдання для самостійної роботи з теми "Одновимірні масиви"

1. Визначити суму від’ємних непарних елементів масиву.

2. Визначити добуток елементів масиву.

3. Знайти кількість додатних парних елементів масиву.

4. Знайти добуток елементів масиву менших заданого числа А.

5. Знайти суму елементів з непарними номерами.

6. Знайти середнє арифметичне елементів з парними номерами.

7. Знайти добуток елементів масиву які кратні 5 і не кратні 10.

8. Даний масив дійсних чисел. Знайти суму цілих частин елементів цього масиву.

9. Знайти добуток дробових частин масиву дійсних чисел.

10. Знайти кількість 2, 5 і 10 в масиві А.

11. Поділити елементи масиву на перший його елемент.

12. Поділити елементи масиву на останній його елемент.

13. Визначити суму перших 10 елементів масиву.

14. Визначити суму останніх 5 елементів масиву.

15. Знайти мінімальний додатній та мінімальний від’ємний елементи масиву.

16. Знайти максимальний додатній та максимальний від’ємний елементи масиву.

17. Визначити кількість елементів масиву більших за їх середнє арифметичне.

18. Замінити в масиві непарні числа їх квадратами, парні двійками, нулі максимальним числом типу Integer.

19. У масиві знайти суму чисел, що закінчуються 8.

20. Переставити у масиві числа так, щоб спочатку йшли від’ємні, потім додатні, за ними нулі.

21. Вибрати із масиву 100 чисел прості числа. Вивести на екран масив простих чисел.

22. Знайти кількість розміщених послідовно додатних елементів, якими закінчується масив А.

23. У масиві А знайти найбільшу кількість розміщених послідовно від’ємних елементів.

24. Дані дійсні числа а1, а2,...а16. Одержати мінімальне серед добутків а1*а9, а2*а10, ...,а9*а18.

25. Даний цілочислений масив. Всі елементи масиву, що стоять до першого мінімального числа помножити на це мінімальне число.

26. В масиві є К від’ємних елементів (К>10). Вивести на екран суму квадратів другого і десятого від’ємних елементів.

27. Знайти найбільше і найменше значення модуля різниці між двома сусідніми елементами масиву.

28. Відома кількість контейнерів з меблями. Про кожен контейнер відома кількість однакових комплектів меблів, що містяться в ньому, а також ціна одного комплекту. Яку суму грошей можна одержати, реалізувавши всі меблі.

29. Відома кількість автобусів, що обслуговують автовокзал. У кожного автобуса свій маршрут. Про кожний автобус відомо:

1. Кількість бензину у літрах, що витрачає автобус на 100 км шляху.

2. Щоденна кількість рейсів.

3. Довжина рейса у кілометрах.

Визначити номер автобуса, що витратить за день найбільшу кількість бензину.

30. Відома кількість мешканців, що проживають у кожній квартирі К квартирного будинку. Визначити кількість незаселених квартир.

31. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті і кількість пасажирів, що відправляються у круіз на цьому лайнері.. Визначити чи можна всіх пасажирів розмістити в каютах так, щоб усі каюти з максимальною кількістю місць залишились незайнятими.

32. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті і кількість пасажирів, що відправляються у круіз на цьому лайнері.Про кожну каюту відомо:

1. Кількість пасажирських місць.

2. Номер каюти, тризначне число, перша цифра якого – тризначне число, перша цифра якого – клас каюти (наприклад №123, - каюта №23 першого класу).

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

 

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

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

Відповідь:

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

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

Відповідь:

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

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

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

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

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

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

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

Відповідь:

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.

6. Знайти добуток кратних 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.

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

Відповідь:

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.

8. Всі елементи стовпця масиву 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.

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

Розв'язання: В даній задачі, хоча задана таблиця двовимірна, другий індекс у всіх елементів, що будуть друкуватися, дорівнює 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.

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

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

масиву +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.

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

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.

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

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.

Завдання для самостійної роботи з теми "Двовимірні масиви"

1. Обчислити добуток всіх ненульових елементів масиву.

2. Мінімальний елемент масиву збільшити в два рази.

3. Вивести середнє арифметичне додатних елементів масиву.

4. Всі не додатні елементи масиву збільшити на 200.

5. Обчислити суму елементів масиву, що належать інтервалу (-4,0).

6. Максимальні елементи масиву збільшити у чотири рази.

7. Знайти добуток додатних елементів над головною діагоналлю.

8. Обчислити середнє геометричне додатних елементів масиву.

9. Другий рядок масиву замінити мінімальним елементом масиву.

10. Знайти середнє арифметичне значення елементів головної діагоналі масиву.

11. Знайти суми елементів стовпців і добуток елементів рядків.

12. Для кожного стовпця масиву знайти і надрукувати номера рядків, в яких всі елементи додатні.

13. Знайти суму елементів масиву, що знаходяться під головною діагоналлю.

14. Знайти номер рядка, що містить мінімальну кількість нульових елементів.

15. Поміняти місцями у масиві перший і останній рядки.

16. Знайти середнє арифметичне в кожному стовпці масиву.

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

18. Знайти кількість парних і непарних елементів у кожному стовпці масиву.

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

20. Знайти середнє арифметичне від’ємних елементів кожного рядка.

21. Знайти мінімальний і максимальний елементи масиву. Помножити елементи рядка, де знаходиться мінімум на максимальний елемент.

22. Знайти і вивести на екран індекси тих елементів масиву, для яких A[I,j]=a[J,i].

23. Визначити номера тих рядків масиву для яких другий елемент менший за перший.

24. Для кожного рядка масиву знайти добуток елементів з парними номерами.

25. Визначити для кожного рядка суму елементів, що перевищують задану величину С.

26. Для кожного стовпця знайти добуток елементів, серед них знайти мінімальний.

8.Процедури і функції

(підпрограми)

Підпрограмою — називається найменована логічно закінчена група вказівок, яку можна викликати для виконання довільну кількість раз з різних місць програми.

Процедура — це незалежна найменована частина програми, призначена для виконання конкретних дій.

Процедура складається із заголовка і тіла. Це — нібито програма в мініатюрі. Коли процедура виконає своє завдання, програма продовжить виконуватися з вказівки, яка слідує безпосередньо за вказівкою виклику процедури. Використання імені процедури в програмі називається вказівкою процедури або викликом процедури.

Формат запису процедури:

procedure <ім'я процедури>; <тіло процедури>;



<== предыдущая лекция | следующая лекция ==>
Задача 7. | Процедури без параметрів


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.001 сек.