Programowanie abstrakcyjne - Wprowadzenie

Literatura

Literatura uzupełniająca:

Przykład: sortowanie

Sortowanie bąbelkowe

bool done=false;
while(!done){
  done = true;
  for(int j=1;j < ilość elementów ciągu ;++j){
    if( element (j+1)-szy jest mniejszy niż element j-ty )){
      zmień miejscami element j-ty i (j+1)-szy;
      done=false;
}}}

Przykład: algorytmy numeryczne

Sumowanie ciągu liczb

liczba suma=0;
zbiorLiczb z;
for each liczba x in z{
  suma+=x;
}

Przykład: algorytmy animacji

Animacja mrugania

void mrugaj(Figura& f, int ileRazy){
  for(int i=0;i<ileRazy;i++){
    f.schowaj();
    delay(0.3);
    f.pokaz();
    delay(0.3);
  }
}

Potrzeba abstrakcyjnego programowania

Polimorfizm

Polimorfizm to technika programowania umożliwiająca implementowanie algorytmów w których obiekty różnego typu są traktowane jak obiekty tego samego typu o pewnym wspólnym zakresie umiejętności, pomimo tego, że szczegóły realizacji tych umiejętności dla obiektów różnego typu mogą być istotnie różne. W zasadzie wszystkie techniki programowania abstrakcyjnego bazują na jakiejś formie polimorfizmu.

Wyróżniamy dwa rodzaje polimorfizmu: