Laboratorium 3

Tablice

Tablica jest strukturą danych złożoną z określonej liczby elementów tego samego typu. Przykładowo int T[5] jest deklaracją 5-cio elementowej tablicy (wektora) typu int, wtedy kolejne elementy tablicy to T[0], T[1], T[2], T[3], T[4]. Dostęp do poszczególnych elementów tablicy uzyskuje się poprzez użycie operatora [ ], tak jak w przykładzie poniżej:
for ( i=0 ; i<5 ; i++ )
  T[i]=i*i;

W języku C++ indeks tablicy zawsze zaczyna się od 0. Tak więc w rozważanym przykładzie T[4] jest ostatnim elementem tablicy (a nie T[5]!!!).

Można też tworzyć tablice dwu- i więcej wymiarowe. Na przykład

double A[10][10];
jest deklaracją tablicy dwuwymiarowej o rozmiarze 10x10. Przykład: tab.cpp.

Znaki, łańcuchy znaków

Typ znakowy to char. Łańcuchy w języku C++ to tablice znaków (tablice typu char ).
char z='a';
char Tekst[]="Abc";
Instrukcje te deklarują zmienną znakową z, oraz łańcuch znaków Tekst, oraz inicjują je. Wtedy T[0]='A', T[1]='b', T[2]='c' oraz T[3]='\0' (znacznik końca łańcucha).

W C i C++ typ znakowy jest typem całkowitym, tzn. zmienne znakowe można traktować tak jak liczby całkowite równe ich kodom ASCII. Zatem

cout << (int)'A';
spowoduje wypisanie kodu znaku A. Instrukcja (int)'A' powoduje zrzutowanie wartości typu char na typ int. Ponadto na zmiennych znakowych można wykonywać działania arytmetyczne. Np.
char x='a', y='f';
x++;
y=y+'A'-'a';
Po tych instrukcjach zmienna x jest równa 'b', zaś y jest równa 'F' (w zmiennej y litera została zamieniona na dużą). Przykład: ex1.cpp.

Instrukcja switch

Instrukcja switch jest instrukcją wielokrotnego wyboru. Ma ona postać:
switch ( wyrazenie ){
  case W1: Instrukcje
  case W2: Instrukcje
  default: Instrukcje
}
Wykonanie tej instrukcji polega na:
  1. Obliczenie wartości wyrażenia,
  2. Jeśli jedna z etykiet W1, W2, ... ma taką samą wartość jak wyrażenie, to wykonywane są instrukcje od tego przypadku aż do końca bloku (wykonywanie bloku można przerwać instrukcją break;),
  3. Jeśli żadna z etykiet nie pasuje wykonywanie przypadku default: (przypadek ten jest opcjonalny).

Operacje na plikach tekstowych

Operacje na plikach tekstowych możemy wykonywać podobnie jak na standardowych strumieniach cin i cout. Przykład: cat.cpp.