→ Slide 1

Tablice

Tablica przechowuje ciąg elementów tego samego typu, np. liczb całkowitych typu int.

Tablica posiada swoją nazwę, ma określony typ elementów składowych oraz rozmiar.

→ Slide 2

Deklaracja tablicy

Deklaracja tablicy wygląda w następujący sposób:

int t[10];

Powyższa instrukcja tworzy tablicę o nazwie t, która pomieści 10 liczb całkowitych typu int.

→ Slide 3

Indeksowanie tablic

Do poszczególnych elementów tablicy odnosimy się poprzez numer elementu, gdzie elementy są numerowane (indeksowane) liczbami: 0, 1, 2, 3, …

Przykłady posługiwania się tablicami:

float tablica[100];
 
tablica[0] = 1.23;
tablica[99] = 1.0 / 3;
tablica[1] = tablica[0] - 1 ;

* Elementy tablicy są numerowane od 0. * Wynika z tego, że dla N elementowej tablicy ostatni dozwolony indeks to N-1. * Przekroczenie zakresu tablicy może się zakończyć błędem w czasie działania.

Przykład niepoprawnego użycia tablicy:

int x[10];
x[10] = 42;
→ Slide 4

Iteracja po elementach

W typowych zastosowaniach iteruje się po kolejnych elementach tablicy za pomocą pętli while lub for.

Przykład: wyzerowanie wszystkich elementów tablicy:

int i = 0;
int tab[100];
 
while( i < 100)
{
   tab[i] = 0;
   i = i + 1;
}

Pętla for pozwala zrealizować to samo w bardziej zwięzły sposób, np,:

int i;
int tab[100];
 
for (i=0; i<100; i++) tab[i] = 0;
→ Slide 5

Kopiowanie tablic

Jeżeli chcemy skopiować zawartość tablicy do innej tablicy wówczas należy przekopiować każdy element osobno.
Przykładowo, dla danych tablic a i b kopiowanie pierwszych 10-ciu elementów może wyglądać tak:

int i = 0;
 
while ( i < 10 )
{
   a[i] = b[i];
   i++;
}
→ Slide 6

Przykładowy program

Poniższy program wyznacza sumę oraz wartość średnią N liczb rzeczywistych podanych przez użytkownika.

suma.c
#include <stdio.h>
 
int main()
{
   int n, i;
   float tablica[100];
   float suma = 0.0;
 
   printf("Ile liczb: ");
   scanf("%d", &n);
 
   printf("Podaj kolejne liczby:\n");
 
   i=0;
   while(i<n)
   {
      scanf("%f", &tablica[i]);
   	  i++;
   }
 
   for(i=0; i<n; i++) 
      suma = suma + tablica[i];
 
   printf("Suma = %f\n", suma);
   printf("Srednia = %f\n", suma/n);
 
   return 0;
}
↓ Slide 7

Ćwiczenia

↓ Slide 8

Ćwiczenie: Odwracanie kolejności liczb

Napisz program, który wczyta n liczb rzeczywistych a następnie wyświetli je w odwrotnej kolejności.

Dane: liczba n określająca ilość liczb oraz sekwencja n liczb rzeczywistych. Zakładamy, że n < 1000
Wynik: sekwencja n liczb rzeczywistych w odwrotnej kolejności niż podana na wejściu.

Przykład:

n=5
1.3
0.0
-2
6
3.14

Wynik:

3.14
6
-2
0.0
1.3
→ Slide 9

Zadanie: Sortowanie liczb

Napisz program o nazwie sortowanie.c, który posortuje ciąg liczb rzeczywistych w kolejności od najmniejszej do największej. Spróbuj samodzielnie zaprojektować i zaimplementować algorytm sortowania.

Dane wejściowe (podaje użytkownik):

  • liczba całkowita n określająca ilość liczb
  • sekwencja n liczb rzeczywistych (zakładamy, że liczb nie będzie więcej niż 1000)

Wynik:

  • sekwencja n liczb wypisanych w kolejnych liniach w rosnącej kolejności.

Przykład:

n=5
1.3
0.0
2
6
3.14

Wynik:

0.000000
1.300000
2.000000
3.140000
5.000000
6.000000

Rozwiązanie w postaci pliku zawierającego program w języku C umieść tutaj