Zamknij komunikat

Nowy Office 2013
Do góry Skomentuj

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

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

Daniel Celeda
29 listopada 2005
300 358
Odsłony
Daniel Celeda
29 listopada 2005
300 358
Odsłony

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.

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.

„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.

Zobacz również

Komentarze

bardzo podoba mi sie ten kurs! wreszcie znalazlem kurs ktory powinien zrozumiec chyba kazdy zwykly klikacz;) pierwszy raz spotkalem sie z kursem online dotyczacym programowania w ktorym nie jestem zasypany w pierwszym zdaniu mnustwem nieznanych mi pojec! extra! dzieki bardzo!
prezes, 29 maja 2006, 00:07
Też się ciesze, że to znalazłem :-)
Drum, 29 maja 2006, 18:13
spox też pochwale ten Kurs :">
Addanos, 30 maja 2006, 12:46
Bardzo fajny kurs.Polecam każdemu!
krecik, 7 czerwca 2006, 22:32
własnie sie ucze do zalliczenia z C# i perwszy raz w życiu zaczynam kumać programowanie :)
stephens, 9 czerwca 2006, 04:01
kurs naprawde ok, nawet jezeli ktos nigdy nie programowal napewno nie bedzie mial zadnego problemu ze zrozumieniem
broszkiet, 19 czerwca 2006, 21:40
mi tez się bardzo podoba jest prosty jak żaden inny :D
Jeżyk,, 6 lipca 2006, 22:35
wreszcie coś dla normalnych ludzi
jamaica, 11 lipca 2006, 07:55
coś siestało i druga strona nie wchodzi
jamaica, 11 lipca 2006, 07:58
No niestety... kolejne linki (2, 3, 4...) nie działają... :(
markiz, 15 lipca 2006, 22:35
Początek mnie zaciekawił. Chciałbym doczytać dalej. Czy da się cos zrobić z tymi kolejnymi linkami ?
Paweł, 21 lipca 2006, 15:20
no wlasnie ... poprawcie to ....
olek, 23 lipca 2006, 17:49
fajny kurs czytalem asp ale teraz czekam az bedzie poprawiony ten bo niewiem czyj est cos ciekawego na stronach 2 3 4 chcialbym przeczytac to wszytko pokolei dzieki narazie
lukry, 27 lipca 2006, 14:20
Początek nawet ciekawy. Zobaczymy co dalej.....
Janusz, 30 lipca 2006, 14:03
sprawcie żeby dalsze linki zaczeły działać bo poprawka mi się zbliża wielkimi krokami:)
wibi, 31 lipca 2006, 16:07
jesli chcecie miec calosc tej lekcji to wcisnijcie u gory "wersja do druku"
tomek, 1 sierpnia 2006, 15:32
ok ale gdzie są rozdziały 2-9?? pozdr ps na razie przeczytalem pierwszy rozdzial, bomba!!!
Kuba, 10 sierpnia 2006, 16:15
ej no wszystko spoko... ale dlaczego jest tylko jedna strona, a na dole mam ich 66 do przeglądania... to u mnie jakiś błąd?
??, 10 sierpnia 2006, 19:09
moze i fajny ale strony od 2-9 cos nie dzialaja :(
kostii, 11 sierpnia 2006, 11:16
yyyyy.... Kiedy wreszcie poprawicie te strony(2-9)?? Juz tyle osob zwraca uwage a tu nic...Jak nie bylo tak nie ma tych kolejnych stron :/ Redakcja chyba olala ;P A zapowiada sie ciekawie ten kurs i nieukrywam ze czekam z niecierpliwoscia az pojawia sie kolejne jego strony :P
RaMzEsS, 11 sierpnia 2006, 23:57
chyba nigdy nie bedzie tych stron
s, 26 sierpnia 2006, 20:15
okazało się jednak że wytłumaczenie programowania laikom jest za trudne
safaga, 27 sierpnia 2006, 09:55
patrzcie w/w komentarz Tomka: jesli chcecie miec calosc tej lekcji to wcisnijcie u gory "wersja do druku"
anka, 28 sierpnia 2006, 22:50
POPRAWCIE TE LINKI....
xyz, 30 sierpnia 2006, 09:07
nauczcie sie czytac... KLIK WERSJA DO WYDRUKU I ANULUJCIE DRUKOWANIE I TEKST SIE POJAWI... JEEZ -.- http://www.centrumxp.pl/Druk/147.aspx <<
annonymus, 1 września 2006, 17:50
ahhhh!!!!! nie rozumiem tego !!!!!
;p, 31 maja 2007, 14:20
Dlaczego nie opiszecie kursu Visual Studio na podstawie C++? Cholera, od dawna szukam takiego kursu, akurat kursów takich jak ten są całe masy, zaś o VC++ niewiele słychać...
bartek, 19 czerwca 2007, 17:54
Jeśli chodzi o ten kurs - jest skierowany do początkujących - ale autor tego kursu ma niesamowity dar tłumaczenia - 6 punktów P.S Jeżeli chce ktoś kursu C++ to polecam ten swój własnego autorstwa Podam teraz hiperłącze ale proszę nie posądzać mnie o spamowanie: http://jeremie.plus.w.interia.pl
Mavius, 13 sierpnia 2007, 19:24
No bardzo fajny kurs- jak na razie wszystko ok
JLebi, 9 września 2007, 18:23
Kurs Visual C++? Polecam Megatutorial by Xion : http://xion.org.pl/productions/texts/coding/megatutorial Najlepszy kurs, jaki kiedykolwiek widziałem.. ;">
deX(ter), 5 października 2007, 07:38
do szkoły mi sie przyda ;D
element, 8 grudnia 2007, 23:27
Dobre, ale nie doskonale...
Lennik (Tomik), 9 grudnia 2007, 14:44
To świetne rozwiązanie dla takich (jak ja) którzy uczą się programowania!!Dziękuję i pozdrawiam!!
Pati, 25 stycznia 2008, 21:04
Bardzo dobry kurs i nie ma co gadać, dobry dla każdego początkującego w bardzo prostym języku! Tylko doskonały człowiek może stworzyć coś doskonałego, jak ktoś mi pokaże lepszy kurs programowania w C# to zwrócę honor, ale ten jest rewelacyjny. Jeszcze raz doceniam wysiłek i pracę!!! Dobry pomysł a wykonanie jeszcze lepsze!
escape, 30 stycznia 2008, 20:01
brawo dla tego serwisu!! wreszcie profesjonalny kurs dla ludzi, za darmo!! wielki plus dla portalu centrumxp.pl!! powysyłam znajomym te stronke i sie bedziemy uczyć:)
happy, 27 lutego 2008, 18:55
Polecam...
TTT, 3 lipca 2008, 10:18
bardzo fajny kursik aale czy moge du niego uzywać mS Visul Studio C# 2008
początkujący, 22 października 2008, 20:52
Mam niemałe doświadczenie z Pascalem, C++, PHP i trochę miejsze z innymi językami. Po przeczytaniu całego "kursu" o C# stwierdzam, że kurs to nie jest. Nazwałbym to raczej zbiorem powiązanych tematycznie artykułów. Oczywiście po przeczytaniu całości będziemy dobrze znali język, ale brakuje jakoś takiej kolejności, czy też raczej "fabuły". Poza tym bardzo nierówno rozłożony jest stopień trudności "kursu". Niektóre akrtykuły (np. pierwszy) są banalne, podczas gdy inne dla znajomego doświadczonego programisy .NET niezrozumiałe. Zrozumienie treści często utrudnione jest przez liczne błędy merytoryczne (o zgrozo również w przykładowych kodach) i niedoróbki techniczne. Przydałby się jakiś osobny specjalista, który by to przeczytał i poprawił. To potwierdza regułę, że książek o programowaniu nie powinno się pisać samemu tylko z grupą doświadczonych ludzi.
jja, 8 listopada 2008, 23:55
Dodam, że za całość należy się ocena 4 na 5 możliwych. Temat jest przecież bardzo trudny.
jja, 8 listopada 2008, 23:58
oby tak dalej mistżu....

esetex, 23 listopada 2008, 12:51
Bardzo dobre. Może wreszcie coś pojmę, bo tu bez "fachowego bełkotu". Chciałbym mieć możliwość czytać to samo na komputerze bez dostępu do internetu. Moze więc znajdzie się też (do ściągnięcia) inna forma tego kursu - byłbym ogromnie wdzięczny

Luki, 12 grudnia 2008, 08:45
Pierwszy raz zdarzyło mi się zobaczyć kurs w którym rozumiem o czym mowa. Bravo
Ylamril, 24 grudnia 2008, 20:35
Bardzo fajny kurs ja dopiero zaczynam
Grezsiek1201, 26 stycznia 2009, 17:56
dzieki i zaczynam ! :)

jasiokk, 13 lutego 2009, 12:45
Przeszedłem przez I i II cząść kursu. Jest super moim zdaniem!!!

Grom, 30 marca 2009, 22:13
Ekstra kurs wreszcie coś porządnego!!!
Mracer164, 10 października 2009, 14:26
tyopowo łopatologicznie :) i to mi sie podoba :)
Tethys, 18 października 2009, 12:01
Niedługo coś przeczytam :) Tylko najpierw niech mi się ściągną aplikajce :D
SiteXowY, 7 grudnia 2009, 18:59
Gratulacje i podziekowania dla Autora za ten ciekawy i przyjazny kurs, dobra robota! Strona sie naprawde rozwija oby tak dalej "Modern Zone":) Pozdrawiam
D.A.J, 19 stycznia 2010, 03:15
dzieki wiecej takich kursow
jank, 30 marca 2010, 14:14
Ale super! Wreszcie przyjazny kurs :)))
Msion, 29 maja 2010, 15:10
to sie zapowiada całkiem dobrze ja sie na to pisze
wiedzmin, 22 sierpnia 2010, 20:51
No nareszcie po tylu tygodniach krwawej walki znalazłem odpowiedni kurs dla takiego beginera jak ja ;D Dzięki za kurs, pozdro
Wojtashnikov, 13 września 2010, 18:16
Dobry kurs  . Nie zaglądam na 4programmers, gdzie trzeba najpierw wejść na główną stronę kursu, a potem wybierać rozdział...
Szymon, 2 listopada 2010, 15:02
Swietny artykul! zrozumiale napisany i wreszcie znalazlem to czego szukalem ;)
Damian, 14 lipca 2011, 23:51
Najlepsze jest nie tylko to, że zrozumiały ale i bardzo ciekawie napisany. Z tym poradnikiem i przy tym języku spędze pewnie sporo czasu
Piotrek, 15 lipca 2011, 11:59
Dziwią mnie komentarze typu "wreszcie jakiś kurs dla normalnych ludzi!". Ja sam parę lat temu zacząłem trochę HTML. Potem zacząłem się uczyć VB .NET (myśląc, że to C++ :D) i bez artykułów tego typu się obeszło. Znam teraz trochę VB. NET, C# .NET, Delphi i C++.
kamcio1, 13 listopada 2011, 16:46
Polska Edycja wspaniałej książki do nauki programowania w języku C# ! Head First C# Edycja polska pdf http://headfirstedycjapolska.blogspot.com/
Zenek, 12 lipca 2012, 11:35
musze sie tego wszystkiego nauczyć :D dzięki wielkie
fisiel97, 24 września 2013, 16:02
Nie wiem do na ile początkujących osób skierowany jest ten kurs, ale dla mnie średni. Pierwsza strona kursu, autor pisze kod, definiowane są zmienne które mają pobrać liczbę wprowadzoną w konsoli, a niżej nagle zamiast wyjaśnić ten kod, okazuje się że dostajemy jeszcze dodatkowy kod z konwersją tego, co wprowadzimy w konsoli. Trochę mało konsekwentne tłumaczenie w stosunku do tego co jest w kodzie.
Em, 5 listopada 2013, 16:59
Jak dla początkującego w programowaniu to poległem już na samym początku, bo kurs nie tlumaczy jakiego typu aplikację należy stworzyć, Windows Application, Console Application? Jak otwieram Windows App to wyświetla mi się 100 linijek kodu i nie wiem gdzie mam co wpisać.
Jed, 4 grudnia 2013, 23:52
Po drugie, co to znaczy "Using System"? Nie jest to wytłumaczone.
Jed, 5 grudnia 2013, 12:57
Chlopie naprawde zaje*isty kurs, wreszcie cos ogarniam, a przynajmniej tak mysle ;) OBY WIECEJ TAKICH
Zielony, 25 marca 2014, 20:59
O, dawno nikt nie komentował... Poradnik zapowiada się fajnie.
Nico, 5 maja 2015, 21:34
Mała nieścisłość: raz używasz int.Parse(x), a poniżej Convert.ToInt32()
CShark, 7 lipca 2015, 16:57
zaczynam zobaczymy jak będzie ale narazie super
Kastor, 9 kwietnia 2016, 14:29

Dodaj swój komentarz

Zasady publikacji komentarzyZasady publikacji komentarzy

Redakcja CentrumXP.pl nie odpowiada za treść komentarzy publikowanych na stronach Portalu
i zastrzega sobie prawo do usuwania wypowiedzi, które:

  • zawierają słowa wulgarne, obraźliwe, prowokujące i inne naruszające dobre obyczaje;
  • są jedynie próbami reklamowania stron internetowych (spamowanie poprzez umieszczanie linków);
  • przyczyniają się do złamania prawa bądź warunków licencyjnych oprogramowania (cracki, seriale, torrenty itp.);
  • zawierają dane osobowe, teleadresowe, adresy mailowe lub numery GG;
  • merytorycznie nie wnoszą nic do dyskusji lub nie mają związku z tematem komentowanego newsa, artykułu bądź pliku.