Ćw 5 Macierze

background image

Wydział Mechatroniki i Budowy Maszyn
Zakład Technik Komputerowych i Uzbrojenia
Rok I, sem. I, Podstawy Informatyki

Opracował: dr hab. inż. Zbigniew Koruba, prof. PŚk

Ćwiczenie laboratoryjne nr 5

T

ABLICE DWUWYMIAROWE

(

MACIERZE

)

W

T

URBO

P

ASCALU

Przykład

Dana jest tablica dwuwymiarowa A (macierz) liczb rzeczywistych o wymiarach m x n. Na-
pisz program z zastosowaniem procedur i funkcji, który:

a) wczytuje elementy tablicy A wierszami (procedura);
b) wyświetla na ekranie elementy tablicy A wierszami (procedura);
c) wyznacza element minimalny tablicy A i podaje jego indeksy (procedura);
d) przepisuje do tablicy jednowymiarowej b elementy dodatnie tablicy A (procedura);
e) oblicza iloczyn elementów tablicy A zawartych w przedziale

[

]

]

5

,

5

(funkcja);

f) w programie głównym wywołuje niezbędne procedury i funkcje oraz wyświetla ele-

ment minimalny wraz z indeksami, iloczyn oraz wektor b.


program Tablica_dwuwymiarowa;

{Program z zastosowaniem typu tablicowego}

uses

crt;

const
m_max = 8; n_max = 10; k_max = 100;

type

macierz = array[1..m_max, 1..n_max] of real; {Zdefiniowanie typu tablicowego dwuwy-

miarowego}

wektor = array[1..k_max] of real; {Zdefiniowanie typu tablicowego jednowymia-

rowego}

procedure Wczytaj_tab2(m, n : byte; var A : macierz);

var

i, j : byte;

begin

for i:=1 to m do

for j:=1 to n do

begin

GoToXY(20,10);

Write('A(',i,',',j,')= '); Readln(A[i,j]);

1

background image

GoToXY(20,10); DelLine;

end;

end;

procedure Wyswietl_tab2(m, n : byte; A : macierz);

var

i, j : byte;

begin

for i:=1 to m do

begin

for j:=1 to n do

Write('A(',i,',',j,')= ',A[i,j]:6:2);

Writeln

end;

end;

procedure Minimum(m,n : byte; A : macierz; var min : real; var nw, nk : byte);

var

i,j : byte;

begin
min:=A[1,1]; nw:=1; nk:=1;

for i:=1 to m do

for j:=1 to n do

if A[i,j] < min then

begin
nw:=i; nk:=j;

min:=A[i,j]

end;

end;

procedure Utworz_b(m,n : byte; A : macierz; var k : byte; var b : wektor);

var

i, j : byte;

begin
k:=0;

2

background image

for i:=1 to m do

for j:=1 to n do

if A[i,j] > 0 then

begin
k:=k+1;

b[k]:=A[i,j];

end

end;

function Iloczyn(m,n : byte; A : macierz) : real;

var

i,j : byte;

il : real;

begin
il:=1;

for i:=1 to m do

for j:=1 to n do

if (A[i,j] >= -5) and (A[i,j] <=5) then il:=il*A[i,j];

Iloczyn:=il

end;

procedure Wyswietl_tab_1(k : byte; b : wektor);

var

i : byte;

begin

for i:=1 to k do

begin

Write(b[i]:6:2,' ');

if i mod 4 = 0 then Writeln

end

end;

var

m,n,k,nw,nk : byte;

kod : integer;

3

background image

A : macierz;

b : wektor;

il,min : real;

str : string;

BEGIN
{Zabezpieczenie programu przed wprowadzeniem niewłaściwej danej liczbowej}

Repeat

ClrScr;

GoToXY(20,10);

Write('Podaj liczbę wierszy n= (2<=n<=8) ');

Readln(str);

val(str,n,kod); {procedura konwersji zmiennej łańcuchowej na zmienną liczbową}

Until (kod = 0) and (n >= 2) and (n <= 8);

Repeat

ClrScr;

GoToXY(20,10);

Write('Podaj liczbę kolumn m= (2<=m<=10) ');

Readln(str);

val(str,m,kod);

Until (kod = 0) and (m >= 2) and (m <= 10);

ClrScr;
Wczytaj_tab2(m,n,a);

Wyswietl_tab2(m,n,a);

Minimum(m,n,A,min,nw,nk);

Utworz_b(m,n,A,k,b);

ClrScr;

Wyswietl_tab_1(k,b);

GoToXY(20,14); Write('Element minimalny: ',min:6:2,' nr wiersza: ',nw,' nr kolumny: ',

nk);

GoToXY(20,15); Write('Iloczyn wynosi: ',Iloczyn(m,n,A):8:3);

Readkey

END.


4

background image

Zadania do samodzielnego rozwiązania


1. Opracować i uruchomić program, który na podstawie danych ocen punktowych (od 0 do

100 pkt) z k przedmiotów (k< 8) uzyskanych w 1 semestrze przez n studentów (n <= 30)

wyznacza:

numer studenta o najwyższej średniej,

numer przedmiotu o najniższej średniej.


Wskazówka: Oceny punktowe wprowadzić do tablicy dwuwymiarowej przy czym w jednym
wierszu zapisywane są oceny dla jednego studenta.

2. Dla kwadratowej tablicy A o wymiarach n x n napisać program z zastosowaniem proce-

dur i funkcji wyznaczający:

a) sumę elementów tablicy z wierszy od k-ego do l-ego (k, l – dane stałe),

b) sumę elementów leżących na głównej przekątnej,

c) sumę elementów pod główną przekątną,

d) element maksymalny i jego indeksy,

e) sumę elementów w wierszu, w którym znajduje się element maksymalny,

f) nr kolumny, w której średnia elementów jest największa,

g) tablicę kwadratową B o elementach zerojedynkowych zbudowaną w ten sposób, że

zera odpowiadają tym komórkom tablicy A w których elementy są dodatnie, zaś je-

dynki – elementom ujemnym tablicy A.

5


Wyszukiwarka

Podobne podstrony:
Ćw 1 Macierze input-output 2
Ćw 5 Macierze
Ćw 1 Macierze input output
Ćw 1 Macierze
ćw 15 Rachunek macierzowy
ćw 15, Rachunek macierzowy
ćw 14, Zagadnienie własne macierzy
ćw 14 Zagadnienie własne macierzy
ćw 15 Rachunek macierzowy
MK Ćw 01 Macierze
ćw 4 Profil podłużny cieku
biofiza cw 31
Kinezyterapia ćw synergistyczne
Cw 1 ! komorki
Pedagogika ćw Dydaktyka

więcej podobnych podstron