01. "Programowanie" - z czym to się je?
Autor:
Daniel Celeda
Opublikowano:
29 listopada 2005
Odsłon:
184 256
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:
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.
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