• Nie Znaleziono Wyników

Pracownia nr Pracownia nr 9 9 (08/11.05.2018 (08/11.05.2018))

N/A
N/A
Protected

Academic year: 2021

Share "Pracownia nr Pracownia nr 9 9 (08/11.05.2018 (08/11.05.2018))"

Copied!
4
0
0

Pełen tekst

(1)

Informatyka 1 Informatyka 1

Politechnika Białostocka

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

Elektrotechnika, semestr II, studia

Elektrotechnika, semestr II, studia stacjonarne stacjonarne I stopniaI stopnia Rok akademicki 2017/2018

Rok akademicki 2017/2018

Pracownia nr Pracownia nr 9 9 (08/11.05.2018 (08/11.05.2018))

dr inż. Jarosław Forenc

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 2/14

Tablica elementów Tablica elementów

Tablica - ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu

Wektor - tablica jednowymiarowa

5 3 -2 0 -4

3.1 0.2 2.3 -1.3 1.5 1.1 -4.0

a Z x & M +

- liczby całkowite - liczby rzeczywiste - znaki

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 3/14

Deklaracja tablicy Deklaracja tablicy

typ nazwa[rozmiar];

inttab[5];

indeks

rozmiar tablicy to wartość:

całkowita, dodatnia, znana na etapie kompilacji programu (stała liczbowa: 5, #defineN7, const intn = 6;) inttab[5];

doubletab1[7];

chartab2[6];

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 4/14

Odwołania do elementów tablicy Odwołania do elementów tablicy

[ ] - dwuargumentowy operator indeksowania

nazwa[indeks]

drugi argument operatora pierwszy argument operatora

indeks:

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

nazwa zmiennej, np. i, idx

wyrażenie, np. i*j+5

(2)

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 5/14

Odwołania do elementów tablicy Odwołania do elementów tablicy

inttab[4];

tab[0] = 3;

tab[1] = -5;

tab[1] = -5;

tab[2] = 1;

tab[3] = 2;

Każdy element tablicy traktowany jest tak samo jak zmienna typu int

printf("%d",tab[0]); scanf("%d",&tab[0]);

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 6/14

Odwołania do elementów tablicy Odwołania do elementów tablicy

przy odwołaniach do elementów tablicy kompilator nie sprawdza poprawności indeksów

int tab[5];

0 1 2 3 4

int tab[5];

tab[5] = 10;

-błąd!!! - nie istnieje element tab[5]

kompilator nie zasygnalizuje błędu i wykona operację

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

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 7/14

Inicjalizacja wektora Inicjalizacja wektora

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

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

int tab[5] = { 1, 2, 3, 4, 5, 6 }; - błąd kompilacji

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

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 8/14

Odwołania do elementów tablicy Odwołania do elementów tablicy

zapisujemy do elementów tablicy kolejne liczby:

1, 2, …, 5

int tab[5]; int tab[5], i;

int tab[5];

tab[0] = 1;

tab[1] = 2;

tab[2] = 3;

tab[3] = 4;

tab[4] = 5;

int tab[5], i;

for (i=0; i<5; i++)

tab[i] = i+1;

(3)

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 9/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

#include <stdio.h>

#define N 10 int main(void) {

int tab[N];

{

int tab[N];

int i;

/* wczytanie elementów wektora */

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

printf("Podaj liczbe nr %d: ",i+1);

scanf("%d",&tab[i]);

}

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 10/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

#include <stdio.h>

#define N 10 int main(void) {

int tab[N];

Podaj liczbe nr 1: 15 Podaj liczbe nr 2: 38 Podaj liczbe nr 3: 23 Podaj liczbe nr 4: 96 Podaj liczbe nr 5: 12 {

int tab[N];

int i;

/* wczytanie elementów wektora */

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

printf("Podaj liczbe nr %d: ",i+1);

scanf("%d",&tab[i]);

}

Podaj liczbe nr 5: 12 Podaj liczbe nr 6: 40 Podaj liczbe nr 7: 33 Podaj liczbe nr 8: 67 Podaj liczbe nr 9: 92 Podaj liczbe nr 10: 12

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 11/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

/* wyświetlenie elementów wektora */

printf("Elementy wektora:\n");

for (i=0; i<N; i++) printf("%4d", tab[i]);

printf("%4d", tab[i]);

printf("\n");

Elementy wektora:

15 38 23 96 12 40 33 67 92 12

15 38 23 96 12

0 1 2 3 4

40 33 67 92 12

5 6 7 8 9

N = 10

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 12/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

/* suma i średnia arytmetyczna elementów wektora */

int suma = 0; float srednia;

for (i=0; i<N; i++) suma = suma + tab[i];

suma = suma + tab[i];

srednia = (float) suma/N;

printf("Suma: %d, srednia: %f\n", suma, srednia);

Suma: 428, srednia: 42.799999

15 38 23 96 12

0 1 2 3 4

40 33 67 92 12

5 6 7 8 9

N = 10

(4)

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 13/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

/* wyszukanie elementu o najmniejszej wartosci */

int min = tab[0];

for (i=1; i<N; i++) if (tab[i]<min) if (tab[i]<min) min = tab[i];

printf("Wartosc elementu najmniejszego: %d\n",min);

Wartosc elementu najmniejszego: 12

15 38 23 96 12

0 1 2 3 4

40 33 67 92 12

5 6 7 8 9

N = 10

Informatyka 1, studia stacjonarne I stopnia dr inż. Jarosław Forenc

Rok akademicki 2017/2018, Pracownia nr 9 14/14

Przykład

Przykład -- operacje na wektorze operacje na wektorze

/* generowanie pseudolosowe elementów wektora */

srand((unsigned int) time(NULL)); /* stdlib.h, time.h */

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

tab[i] = rand()% 100; /* stdlib.h */

tab[i] = rand()% 100; /* stdlib.h */

4 82 17 96 87 79 18 10 11 25

srand((unsigned int) time(NULL)); - inicjalizacja generatora rand() - zwraca liczbę pseudolosową z zakresu 0 ... 32767 rand() % 100 - zwraca liczbę pseudolosową z zakresu 0 ... 99

Cytaty

Powiązane dokumenty

Przy odwołaniach do elementów tablicy kompilator nie sprawdza poprawności indeksów.

JEŻELI(test_logiczny; wartość_gdy_prawda; wartość_gdy_fałsz) - sprawdza czy warunek jest spełniony i zwraca jedną wartość jeśli PRAWDA, a drugą wartość, jeśli

Arial: Tekst o rozmiarze 20 punktów Arial Narrow: Tekst o rozmiarze 20 punktów Arial Narrow: Tekst o rozmiarze 20 punktów Calibri: Tekst o rozmiarze 20 punktów Comic Sans MS: Tekst

Student, który zalicza na ocenę bardzo dobry (5) powinien (oprócz wymagań na ocenę 4):.. identyfikować i umieć wyjaśnić przyczyny podstawowych błędów w

Przy odwołaniach do elementów tablicy kompilator nie sprawdza poprawności indeksów.

Tylko piękno – Aldona – może pisać tak piękne listy (bardzo bym się cieszył, gdyby zachowały się odpisy Jej listów). [...] Uczucia tego według dokładnej analizy nie można

Oświadczenie Wnioskodawcy zawierające deklarację udzielenia nieodpłatnej licencji Skarbowi Państwa w zakresie wszystkich praw własności intelektualnej wnoszonych do projektu,

Zakres przedmiotu Umowy obejmuje również wykonanie przez Wykonawcę wszelkich robót, które są bezpośrednio i pośrednio związane z wykonaniem Przedmiotu Umowy, a tym samym