• Nie Znaleziono Wyników

Politechnika Białostocka

N/A
N/A
Protected

Academic year: 2021

Share "Politechnika Białostocka "

Copied!
4
0
0

Pełen tekst

(1)

Informatyka

Informatyka (EDS1B1007) (EDS1B1007)

Informatyka

Informatyka (EDS1B1007) (EDS1B1007)

Politechnika Białostocka

Politechnika Białostocka -- Wydział Elektryczny Wydział Elektryczny

Elektrotechnika, semestr III, studia stacjonarne I stopnia, dualne Elektrotechnika, semestr III, studia stacjonarne I stopnia, dualne

Rok akademicki 2020/2021 Rok akademicki 2020/2021 Rok akademicki 2020/2021 Rok akademicki 2020/2021

Pracownia nr 6 (18.11.2020) Pracownia nr 6 (18.11.2020)

dr inż. Jarosław Forenc

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 2/16

Język C

Język C -- deklaracja tablica dwuwymiarowej deklaracja tablica dwuwymiarowej

float tab[3][4]; 0 1 2 3

float tab[3][4];

nazwa liczba kolumn

typ elementów liczba wierszy

0 1 2 3

0 1 2

indeks kolumny

indeks wiersza

Rozmiar tablicy (liczba wierszy, liczba kolumn) to wartość:

– całkowita, dodatnia

– znana na etapie kompilacji programu

(stała liczbowa: 5, #define N 5, const int n = 5;)

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 3/16

Język C

Język C -- odwołania do elementów macierzy odwołania do elementów macierzy

[ ] - dwuargumentowy operator indeksowania

indeks (numer) kolumny

nazwa tablicy

[ ] dwuargumentowy operator indeksowania

tab[1][2];

Indeks:

indeks (numer) wiersza

– stała liczbowa, np. 0, 1, 10

– nazwa zmiennej, np. i, idx

– wyrażenie, np. i*j+5

Brak sprawdzania poprawności indeksów!

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 4/16

Język C

Język C -- inicjalizacja elementów macierzy inicjalizacja elementów macierzy

0 1 2

int T[2][3] = {{1,2,3},{4,5,6}};

int T[2][3] {1,2,3,4};

int T[2][3] = {1,2,3,4,5,6};

1 0

2 3 1 2

4 5 6

0 1

int T[2][3] = {1,2,3,4};

int T[2][3] = {{1},{4,5}};

(2)

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 5/16

Język C

Język C -- inicjalizacja elementów macierzy inicjalizacja elementów macierzy

0 0

0 0 1 2

int T[2][3] = {0};

0

int T[][3] = {{1,2,3},{4,5,6}};

1 0

2 3 1 2

4 5 6

0 1

0 0 0

0 0 0

0 1

wyzerowanie elementów macierzy

pominięcie liczby wierszy

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 6/16

Język C

Język C -- operacje na macierzy operacje na macierzy

#include <stdio.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define N 3 /* liczba wierszy */

#define M 3 /* liczba kolumn */

int main(void) {

M

int tab[N][M];

int i, j;

0 1 2

0

1

2 N

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 7/16

Język C

Język C -- operacje na macierzy operacje na macierzy

/* generowanie pseudolosowe elementów macierzy */

/* generowanie pseudolosowe elementów macierzy */

srand((unsigned int) time(NULL));

for (i=0; i<N; i++) for (j=0; j<M; j++)

tab[i][j] = rand() % 10;

M

9

0

3 1

1 2

6 4 8

9 4 6

0

1

2 N

0 1 2

0

1

2

kolejność zapisywania wartości elementów macierzy (wierszami)

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 8/16

Język C

Język C -- operacje na macierzy operacje na macierzy

/* generowanie pseudolosowe elementów macierzy */

/* generowanie pseudolosowe elementów macierzy */

srand((unsigned int) time(NULL));

for (j=0; j<M; j++) for (i=0; i<N; i++)

tab[i][j] = rand() % 10;

M

9

0

3 1

1 2

6 4 8

9 4 6

0

1

2

kolejność zapisywania

N

wartości elementów

macierzy (kolumnami)

(3)

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 9/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

tablica wypełniona zerami

0

0

0 0

1 2

0 0 0

0

1

N

M

0 0 0 0

0 0 0 0

3 4 5 6

0 0 0

2

N

0 0 0 0

0 0 0 0 0 0 0

3

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 10/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

zapisz do tablicy (wierszami) kolejne liczby całkowite 1, 2, 3, …;

wyświetl elementy tablicy z podziałem na wiersze i kolumny wyświetl elementy tablicy z podziałem na wiersze i kolumny

1

0

2 3

1 2

8 9 10

0

1

N

M

4 5 11 12

6 7 13 14

3 4 5 6

15 16 17

2

N

18 19 20 21 22 23 24 25 26 27 28

3

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 11/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

zapisz do tablicy (kolumnami) kolejne liczby całkowite 1, 2, 3, …;

wyświetl elementy tablicy z podziałem na wiersze i kolumny wyświetl elementy tablicy z podziałem na wiersze i kolumny

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 12/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

zapisz do tablicy wygenerowane pseudolosowo liczby całkowite z zakresu

-9, 9; wyświetl elementy tablicy z podziałem na wiersze i kolumny

 9, ; wyświetl elementy tablicy z podziałem na wiersze i kolumny

-1

0

0 -2

1 2

-6 -7 6

0

1

N

-7 6 -9 6

3 7 -2 6

3 4 5 6

M

9 2 -8

2

N

-7 7 9 9 2 -4 -7 3 9 -2 7

3

(4)

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 13/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

zapisz do tablicy wygenerowane pseudolosowo liczby całkowite z zakresu

-9, 9; wyświetl elementy tablicy z podziałem na wiersze i kolumny

 9, ; wyświetl elementy tablicy z podziałem na wiersze i kolumny

-1

0

0 -2

1 2

-6 -7 6

0

1

N

-7 6 -9 6

3 7 -2 6

3 4 5 6

M

9 2 -8

2

N

-7 7 9 9 2 -4 -7 3 9 -2 7

3

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 14/16

Program INF_D06_1: operacje na tablicy Program INF_D06_1: operacje na tablicy

zastąp wszystkie ujemne elementy tablicy wartością zero;

wyświetl elementy tablicy z podziałem na wiersze i kolumny wyświetl elementy tablicy z podziałem na wiersze i kolumny

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 15/16

Program INF_D06_3: mnożenie macierzy Program INF_D06_3: mnożenie macierzy

Operacja: C = AB

 A[N][M] macierz N×M elementowa

 

 

 

 

=

 

 

33 32 31

23 22 21

13 12 11

33 32 31

23 22 21

13 12 11

33 32 31

23 22 21

13 12 11

b b b

b b b

b b b

a a a

a a a

a a a

c c c

c c c

c c c

 A[N][M] - macierz N×M - elementowa

 B[M][K] - macierz M × K - elementowa

 C[N][K] - macierz N×K - elementowa

N M N

31 33 21 32 11 31 31

31 23 21 22 11 21 21

31 13 21 12 11 11 11

b a b a b a c

b a b a b a c

b a b a b a c

+ +

=

+ +

=

+ +

=

32 33 22 32 12 31 32

32 23 22 22 12 21 22

32 13 22 12 12 11 12

b a b a b a c

b a b a b a c

b a b a b a c

+ +

=

+ +

=

+ +

=

33 33 23 32 13 31 33

33 23 23 22 13 21 23

33 13 23 12 13 11 13

b a b a b a c

b a b a b a c

b a b a b a c

+ +

=

+ +

=

+ +

= K K M

Informatyka (EDS1B1007), studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2020/2021, Pracownia nr 6 16/16

Program INF_D06_3: mnożenie macierzy Program INF_D06_3: mnożenie macierzy

Operacja: C = AB ( A [N][M], B [M][K], C [N][K])

Program w języku C:

(i) (i)

(j)

(j) (k) (k)

 

 

 

 

=

 

 

33 32 31

23 22 21

13 12 11

33 32 31

23 22 21

13 12 11

33 32 31

23 22 21

13 12 11

b b b

b b b

b b b

a a a

a a a

a a a

c c c

c c c

c c c

N M

M K K

N

for (i=0; i<N; i++) for (k=0; k<K; k++) {

C[i][k] = 0.0;

for (j=0; j<M; j++)

C[i][k] = C[i][k] + A[i][j] * B[j][k];

}

K k

N b i

a c

M

j jk ij

ik

1 , 2 , ,

, , 2 , , 1

1

=

⋅ =

= 

=

Cytaty

Powiązane dokumenty

b) Polecenie: Wyświetl imiona, nazwiska i miasta zamieszkania poszczególnych pracowników, posortowane alfabetycznie według nazwiska, a następnie imienia i nazwy miasta. SELECT

nabycie umiejętności efektywnego poszukiwania pracy, pisania CV i listu motywacyjnego oraz prowadzenia rozmowy kwalifikacyjnej w języku angielskim z wykorzystaniem zasobów Internetu

Dalej tworzymy 2 przyciski klikając prawym przyciskiem myszy na szarym polu oraz kursorem najeżdżamy na ikonę Buttons i wybieramy PushButton.. Należy zauważyć, że

Uruchom program, sprawdź efekt podania wartości, która nie występuje w tablicy, wartości występującej w tablicy oraz efekt niepoprawnego podania liczby.. catch z

powyżej podwójnej pętli for, w której tworzymy tablicę w, zadeklaruj trzy zmienne całkowite ld , lu, lz, które posłużą jako liczniki dodatnich, ujemnych i zerowych

Następnie wyświetli zawartość tablicy z podziałem na wiersze i kolumny oraz obliczy ile razy każda liczba występuje w tablicy, wyświetlając tylko te liczby,

 zastąp wszystkie ujemne elementy tablicy wartością zero;. wyświetl elementy tablicy z podziałem na wiersze i kolumny wyświetl elementy tablicy z podziałem na wiersze

Następnie wyświetli zawartość tablicy z podziałem na wiersze i kolumny oraz obliczy ile razy każda liczba występuje w tablicy, wyświetlając tylko te liczby,