Podstawowe elementy w językach programowania, cz. 3 - Programowanie jest łatwe

Jak sterować programem? Do czego służy "pętla" i jak wykorzystywać wielokrotnie raz napisany kod? Zapraszam do ostatniej części Podręcznika do nierzeczywistości.

Entre les trous de la memoire, Dominique Appia

Instrukcje warunkowe

Instrukcja warunkowa pozwala na sterowanie wykonywanym programem. Poznałeś/łaś ją już tworząc algorytmy. Instrukcja warunkowa mówi, czy konkretny blok programu ma się wykonać oraz kiedy ma to nastąpić. Ogólna składnia przybiera postać następującą:

if (prawda) {}
else if (prawda) {}
else if (prawda) {}
….
else {}

Można to przeczytać następująco: jeżeli A to zrób TO, w innym przypadku jeżeli B to zrób TAMTO, w innym przypadku jeżeli C to zrób TAMTO, w innym przypadku (bezwarunkowo) zrób TAMTO. Używamy co najmniej jednego warunku po którym otwieramy nowy blok instrukcji, które wykonają się, gdy warunek jest spełniony. Pozostałych warunków możemy nie używać- wszystko zależy od naszych potrzeb.

// ...
{
  int speed = 0;
  int gear = 0; // określamy bieg
  speed = 10; 

  if (speed > 0) {
    gear = 1; // zwiększamy bieg bo pojazd się porusza
  }

  speed = 40;

  if (speed > 20 && speed < 30) {
    gear = 2; // jeżeli prędkość jest pomiędzy 20 a 30 to bieg drugi
  }
  else if (speed >= 30 && speed < 40) {
    gear = 3; // trzeci bieg bo prędkość większa od 30, mniejsza od 40
  }
  else {
    gear = 4; // niezależnie jaka prędkość, czwarty bieg
  }

  // tutaj program idzie dalej...

}
// ... 

Pętle

Pętla to blok instrukcji, który wykonuje się wielokrotnie- znasz to z algorytmiki. Twórcy języka stworzyli specjalne konstrukcje, które ułatwiają tworzenie pętli. Każda pętla składa się z określenia warunku stopu oraz bloku, który ma się wykonać. Istnieją trzy rodzaje pętli:

while

Pętla while najpierw sprawdza, czy warunek wejściowy jest prawdziwy. Jeżeli jest prawdziwy wykona blok instrukcji. Po zakończeniu bloku wróci do początku i ponownie sprawdzi warunek. Będzie wykonywać się tak długo, dopóki warunek jest prawdziwy

while (warunek) {
  blok instrukcji
}

do ... while

Pętla dowhile jest lekką odwrotnością pętli while- najpierw wykona blok instrukcji a dopiero na końcu sprawdzi warunek. Jeżeli warunek jest prawdziwy, pętla wykona się kolejny raz. Używając tej pętli mamy gwarancję, że blok instrukcji wykona się przynajmniej raz.

do {
 Blok instrukcji
} while (warunek);

for

Pętla for wykona się “dla każdego”. Co to jest każdy jest określane w jej definicji. W pierwszej instrukcji definicji pętli określamy zmienną/zmienne, które będziemy sprawdzać (i = 0). Następnie określamy warunek stopu, czyli kiedy pętla ma się zatrzymać (np. i < 10) a następnie co ma się stać po każdej iteracji, (np. i++). Zapis mógłby mieć następującą formę:

for (i = 0; i < 10; i++) {/* blok instrukcji */}

Czyli dla każdego i, mniejszego od dziesięć pętla się wykona i po każdym obiegu zwiększy wartość i o 1.

for (deklaracja; warunek stopu; po iteracji) { 
  blok instrukcji
}

Funkcje

Gdy już znamy operatory, potrafimy tworzyć zmienne i sterować przepływem programu za pomocą instrukcji warunkowych i pętli, czas dojść do meritum, czyli określenia naszego algorytmu (programu), który tworzymy. Każdy algorytm ma te same cechy- dane wejściowe, proces, który przetwarza te dane i koniec, który kończy się zwróceniem wyniku przetwarzania. Programując tworzymy algorytm i zamykamy go jako konkretną funkcjoność (funkcję) z określonymi parametrami wejściowymi oraz ściśle określonym wynikiem, którego należy oczekiwać (mówi się, że funkcja zwraca wartość). Funkcje przybierają następującą postać ogólną:

_Typ_zwracanej_wartość nazwa_funkcji(typ_argument1 nazwa_argumentu1, … typargN nazwa argN) { }.

Czyli musimy określić co funkcja zwraca (typ zwracanej wartości), jak się nazywa (nazwa funkcji) oraz listę jej argumentów w postaci typu argumentu oraz jego nazwę.

int average(int a, int b, int c) {
  // ...
}

Powyżej definicja funkcji o nazwie average, która zwraca wartość typu int i przyjmuje trzy argumenty typu int a, b, c. Zwróć uwagę, że każda funkcja zwraca tylko jedną wartość. Gdy już zdefiniowaliśmy funkcję możemy ją użyć w dogodnym dla nas miejscu. Wywołanie funkcji może wyglądać następująco:

{
  int a = 5, b = 1, c = 9;
  average(4, 1, 5); // 1)
  average(a, b, c); /// 2)
  int result = average(4, a, 19); // 3)
}

W miejscu 1) wywołujemy funkcję z argumentami o stałych wartościach 4, 1, 5. W miejscu 2) wywołujemy funkcję używając zmiennych a w miejscu 3) wywołujemy funkcję z mieszanymi argumentami a wynik funkcji przypisujemy do zmiennej result.

Posłowie

Na tych zagadnieniach kończy się Podręcznik do nierzeczywistości. Musnąłem w nim podstawy podstaw, aby dać ogólny pogląd na dziedzinę programowania. Od teraz będzie już tylko ciekawiej!


Dodano: 2018-02-02 06:26 przez Piotr Poźniak

podręcznik , języki programowania , instrukcje warunkowe , if , else , pętle , while , for , do while , funkcje , argumenty funkcji ,
Piotr Poźniak
O autorze:

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.