Tablice statyczne

Transkrypt

Tablice statyczne
Podstawy informatyki
Informatyka Stosowana
Zajęcia nr 8
autor: Grzegorz Smyk
Wydział Inżynierii Metali i Informatyki Przemysłowej
Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie,
Rok akademicki: 2015/2016
Informacje
teoretyczne
Tablice::Tablice statyczne
Odwoływanie się do
elementów tablicy:
int tab[3] = { 1, 2, 3 };
Wartości:
tab[0] = 1;
tab[1] = 2;
tab[2] = 3;
Jeśli umiemy się odwołać
do elementu, możemy
wywołać na nim:
cin>>element;
cout<<element;
Referencja
• Typ referencyjny jest
połączeniem
funkcjonalności typu
wskaźnikowego ze
składnią typu
bezpośredniego
• Definicja zmiennej typy
referencyjnego
tworzona jest przez
dodanie symbolu „&”
przez nazwą zmiennej
typu wskaźnikowego.
Wskaźniki - inicjalizacja
• Wskaźnik – zmienna
wskaźnikowa – w
której zapisywany jest
nie obiekt, a adres
komórki pamięci,
inicjalizowana jest
przez dodanie „*”
przed nazwą zmiennej;
• Dzięki wskaźnikom
możemy przechowywać
np. adres innej
zmiennej oraz
umożliwić bezpośredni
dostęp do tej zmiennej.
Tablice dynamiczne
Istnieje możliwość dynamicznej
alokacji pamięci dla tablicy przy
wykorzystaniu wskaźników.
Generujemy wtedy tablicę o
zalokowanej pamięci o zadanym
rozmiarze.
Istnieje możliwość zrobienia też
dynamicznej tablicy
wielowymiarowej, generuje się
wtedy tablicę wskaźników na
wskaźniki.
int** tab = new int*[a];
Wskaźniki vs tablice
Nazwa tablicy jest wskaźnikiem na
adres jej pierwszego elementu.
int *wsk = tab;
Zmienne wskaźnikowe można
przesuwać, więc zapis
tab[0] = 0;
tab[1] = 1;
…
tab[9] = 9;
Jest równoznaczny z:
*wsk = 0;
*(wsk+1) = 1;
…
*(wsk+9) = 9;
String – tablica charow
Aby rozpocząć pracę ze zmiennymi
przechowującymi tekst, należy
użyć narzędzia:
Std::string
A także należy dodać plik
nagłównowy:
#include <string>
String – tablica charow
Na zmiennej typu string możemy operować tak samo
jak każdej innej zmiennej lub tak jak na tablicy
charów odwołując się do poszczególnych elementów
w tablicy.
Możliwe jest dodawanie (sklejanie)
zmiennych typu string jednak nie
można sklejać w następujący
sposób:
string zmienna = „nowy ” + „wyraz”
Zadania
Zadania:
1. Napisz program, który możliwi wczytanie z klawiatury
przy pomocy pętli 10 wartości zmiennych typu „string”.
Wyświetl na ekranie elementy, które rozpoczynają się na
samogłoski.
2. Napisz
program
w
którym
użytkownik
zostanie
poproszony o podanie hasła (przechowane w kodzie jako
zmienna const). Jeśli trzykrotnie poda błędne hasło,
program zakończy działanie z komunikatem.
Zadania:
3. Zmodyfikuj program dla podania PIN’u (4 znaki liczbowe).
Napisz prosty craker, który sprawdzi wszystkie możliwe
kombinacje oraz wyświetli znaleziony PIN na ekranie (zmierz
czas działania programu).
4. Napisz program, który wykona szyfrowanie i odszyfrowanie
hasła przy pomocy Szyfru Cezara (pomiń polskie znaki).
5. Zmodyfikuj szyfr cezara by działał dla uniwersalnego
klucza (wielkość przesunięcia)
Zadania
6.
-
Napisz prosty craker haseł dla znaków ASCII:
Tylko dużych
Tylko małych
Dużych i małych
Wykonaj testy prędkości łamania hasła dla:
- Ilości znaków 4-8,
- Kombinacji przedziałów znaków
TABLICA ASCII
Prezentacja udostępniona na licencji Creative Commons:
Uznanie autorstwa, Na tych samych warunkach 3.0.
Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na
dowolne wykorzystywanie treści pod warunkiem wskazania
autorów jako właścicieli praw do prezentacji oraz zachowania
niniejszej informacji licencyjnej tak długo, jak tylko na utwory
zależne będzie udzielana taka sama licencja. Tekst licencji
dostępny jest na stronie:
http://creativecommons.org/licenses/by-sa/3.0/deed.pl