01. "Programowanie" - z czym to się je?

01. "Programowanie" - z czym to się je?

Autor: Daniel Celeda

Opublikowano: 11/29/2005, 12:00 AM

Liczba odsłon: 303918

Zarówno w Internecie, jak i wśród dostępnych książek na rynku, mało jest pozycji, które skierowane są do początkujących programistów - początkujących w prawdziwym tego słowa znaczeniu. Moim celem było napisanie kursu języka C# skierowanego właśnie do takich osób. Zadanie z początku wydawało się proste, jednak z upływem czasu zauważyłem, że chyba łatwiej pisze się o rzeczach bardziej zaawansowanych. Wiele razy łapałem się na tym, że nie tłumaczyłem podstawowych pojęć potrzebnych do zrozumienia danego zagadnienia – jednak chyba za dużo przebywam w towarzystwie innych programistów i komputerów J . Mam nadzieje, że uda mi się przekazać minimum wiedzy potrzebne do rozpoczęcia samodzielnej przygody z programowaniem. Ze względu na ograniczoną objętość kursu, a zarazem próbę jak najdokładniejszego tłumaczenia podstaw programowania, wiele ważnych aspektów zostanie pominiętych. W przypadku trudności w zrozumieniu niektórych części, bądź ewentualnych błędów zachęcam do udzielania się na forum CentrumXP.pl. Postaram się na bieżąco wprowadzać poprawki.

Programowanie czyli tworzenie aplikacji

Programowanie to pisanie instrukcji, które ma wykonywać komputer. Niestety współczesne komputery nie znają języka człowieka, a więc to my musimy poznać język jakim posługuje się komputer. Komputer „rozumie” kod maszynowy, czyli ciąg 1 i 0. Całe szczęście my nie musimy go poznawać. A więc jak porozumieć się z tym tajemniczym urządzeniem? Do tego celu powstały języki programowania oraz kompilatory. Język programowania składa się ze słów, które jesteśmy w stanie zrozumieć, a dokładniej – nauczyć się jakie działanie powoduje dane słowo. Operując pewną pulą tych wyrazów, jesteśmy w stanie pisać programy komputerowe, a ściślej rzecz ujmując – kod źródłowy, który na kod maszynowy (jedynki i zera) tłumaczą kompilatory.  

Algorytm

Algorytm to sposób na osiągnięcie jakiegoś celu. Program komputerowy realizuje zawsze jakiś algorytm. W uproszczeniu program komputerowy składa się z danych oraz instrukcji, które na tych danych operują. My także co chwila wykonujemy jakiś algorytm. Przykładem może być gotowanie obiadu:
Cel: gotowy obiad
Dane: składniki
Instrukcje: - weź składniki
- obierz ziemniaki
- pokrój mięso
- …
Wynik: gotowa potrawa

Co prawda tego za nas program komputerowy nie zrobi (może w przyszłości J ), ale inne zadania jak najbardziej.

Cel: oblicz wynik
Dane: 7 i 8
Instrukcje: dodaj
Wynik: 15

Program, który realizuje takie zadanie będzie wyglądać w większości języków podobnie, dlatego posłużę się kodem uogólnionym (nie napisanym w konkretnym języku) tzw. „pseudokodem”. Program komputerowy wykonuje instrukcje w kolejności takiej samej jak by czytał tekst, czyli od góry do dołu i od lewej do prawej strony.

Dodaj
{
        Zwróć 7 + 8
}
Dodaj

Powyżej mamy instrukcje: „Dodaj”,” Zwróć” , „+”, oraz dane: „7” i „8”. Pierwsze 4 linijki to definicja instrukcji „Dodaj”.
Czym jest definicja?
Zacznijmy od tego, że język programowania oprócz słówek podstawowych, takich jak np. „Zwróć”, pozwala nam definiować własne instrukcje składające się z podstawowych. Można by to porównać do tworzenia nowych wyrazów w jakimś języku. Może właśnie tak powstało słowo „gotować” J Zamiast wypowiadać całą sekwencję zdań:

  • „Obierz ziemniaki”,
  • „Wlej wodę do garnka”,
  • „Posól wodę”

Wystarczy, że powiemy „Ugotuj ziemniaki”. Tak samo w C# możemy ze słówek podstawowych stworzyć nową instrukcję. Tak więc definiując instrukcję „Dodaj” możemy jej później użyć wielokrotnie (robimy to w linijce piątej), tak samo jak instrukcji podstawowych.

@STRONA@

Zmienne

Aby nasze programy były uniwersalne musimy zapewnić im interakcję z użytkownikiem, czyli możliwość komunikacji. Przykład:

Cel: dodaj dwie liczby
Dane: X i Y
Instrukcje: - pobierz dane
- dodaj liczby
Wynik: X + Y

Poniżej znajduje się program w pseudokodzie, który najpierw definiuje nową instrukcję dodającą dwie liczby, a następnie pobiera dane od użytkownika i je dodaje.

Dodaj(zmienna1, zmienna2)
{
        Zwróć zmienna1 +  zmienna2
}
X = Pobierz liczbę
Y = Pobierz liczbę
Dodaj(X, Y)

X oraz Y to zmienne, czyli pojemniki na dane. Dane można do nich wkładać, wyjmować lub podmieniać. W definicji instrukcji „Dodaj” określamy, że będziemy podawać jej dwie zmienne (zmienna1 oraz zmienna2), a następnie zwracali ich sumę. Zmienne podawane jako dane wejściowe dla instrukcji nazywają się parametrami i w przypadku mnogiej ich ilości rozdzielane są przecinkami. Następnie do zmiennej X wkładamy liczbę pobraną od użytkownika. To samo robimy ze zmienna Y. Na koniec nakazujemy instrukcji „Dodaj” dodać zawartości zmiennych X oraz Y. Wracając do słówka „gotować”, możemy sobie wyobrazić, że też otrzymuje dwie zmienne:

  • co ugotować,
  • jaką ilość.
Definicja wyglądałaby tak:

Gotuj(co, jak)
{
        Obierz co,
        Wlej wodę do garnka,
        …
}

Następnie pobranie danych od użytkownika.

zmienna_potrawa = Podaj co mam ugotować
zmienna_ilość = Podaj ile

Teraz możemy wykonać instrukcję.

Gotuj(zmienna_potrawa, zmienna_ilość)

Jak pewnie każdy zauważył nazwy zmiennych są różne. W C#, trzymając się kilku zasad, zmienne możemy praktycznie nazywać dowolnie.

@STRONA@

„Prawdziwy” program w C#

using System;
namespace PierwszyProgram {
     class NaszaKlasa
    {
         static int Dodaj(int zmienna1, int zmienna2)
         {
             return zmienna1 + zmienna2;
         }
         static void Main(string[] args)
         {
             string x = Console.ReadLine();
             string y = Console.ReadLine();
             int wynik = Dodaj(int.Parse(x), int.Parse(y));
              Console.WriteLine(wynik);
         }
     }
}

Niestety nie wygląda tak prosto jak pseudokod ale mam nadzieję, że niedługo wszystko się wyjaśni (w końcu to dopiero pierwsza część z dwudziestu). W tej chwili wystarczy jak wychwycimy kilka instrukcji, które odpowiadają tym z pseudokodu.

Definicja instrukcji:

static int Dodaj(int zmienna1, int zmienna2)
{
        return
zmienna1 + zmienna2;

}

Pobranie danych do zmiennych:

int x = Convert.ToInt32(Console.ReadLine());
int y = Convert.ToInt32(Console.ReadLine());

Pobranie danych do zmiennej „wynik”. Danymi jest wynik działania instrukcji “Dodaj”.

int wynik = Dodaj(x, y);

Instrukcja wyświetlająca wynik na monitorze:

Console.WriteLine(wynik);

W miarę postępów czynionych podczas nauki stopniowo wszystko powinno stawać się zrozumiałe.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia