piątek, 10 września 2010

Kurs JavaScript cz.4

Przetwarzanie warunkowe i pętle

Instrukcja przetwarzania warunkowego pozwala na zastąpienie bloku if..else w niektórych przypadkach. Przypisuje się je często do zmiennych. Konstrukcja tej instrukcji wygląda następującą:

(wyrażenie warunkowe)? wartość1 : wartość2

I wypadało by to wytłumaczyć, tak więc czyta się to tak: jeżeli wyrażenie warunkowe jest prawdziwe to całość przyjmuje wartość1, a jeśli jest fałszywe przyjmuje wartość2. Mam nadzieję, że jest to zrozumiałe, a teraz czas na jakiś przykład który sprawdza czy liczba jest dodatnia czy ujemna:

<script type="text/javascript">
<!-- ukrycie kodu przed przeglądarkami nie obsługujących JavaScript
var x = prompt("Podaj liczbę: ");
var wynik = (x < 0)? "ujemna":"dodatnia";
document.write("Ta liczba jest: "+wynik);
// koniec kodu JavaScrip t-->
</script>

A teraz przedstawię to za pomocą użycia instrukcji if..else:


<script type="text/javascript">
<!-- ukrycie kodu przed przeglądarkami nie obsługujących JavaScript
var x = prompt("Podaj liczbę: ");
var wynik;
if(x < 0) 
{
    wynik = "ujemna";
} else wynik = "dodatnia";
document.write("Ta liczba jest: "+wynik);
// koniec kodu JavaScript -->
</script>

Mam nadzieję, że wszyscy to rozumieją, bo nie jest to trudne. Przetwarzanie warunkowe można również zastosować tak:

<script type="text/javascript">
<!-- ukrycie kodu przed przeglądarkami nie obsługujących JavaScript
document.write("Ta liczba jest: " + (((prompt("Podaj liczbę: ")<0)? "ujemna":"dodatnia"));
// koniec kodu JavaScript -->
</script>

Jest to może bardziej zawiły kod, ale jeśli zastosujemy taki zapis, nie będziemy musieli używać zmiennych pomocniczych.

Pętle

Pętle to wyrażenia programowe służące do wykonywania powtarzających się czynności np. jeśli chcemy wypisać coś na stronie 100 razy, to wpisywanie 100 razy instrukcji document.write("coś") to było by to bardzo uciążliwe. Dzięki pętlą możemy powtórzyć taką czynność 100 razy pisząc tylko raz instrukcję document.write.

Pętla for

Składnia pętli for:

for (wyrażenie początkowe; wyrażenie warunkowe; wyrażenie modyfikujące)
{
     blok instrukcji
}

Wyrażenie początkowe stosowane jest do zainicjowania zmiennej używanej jako licznik przebiegu pętli. Wyrażenie warunkowe określa warunek, jaki musi być spełniony, aby wykonać kolejne przejście pętli. Wyrażenie modyfikujące używane jest w celu modyfikacji zmiennej będącej licznikiem pętli. Czas na jakiś przykład:

<script type="text/javascript">
<!-- ukrycie kodu przed przeglądarkami nie obsługujących JavaScript
for(var i = 1; i < 100; i++)
{
    document.write("Pętla wykonała: " + i + " przejść");
}
// koniec kodu JavaScript -->
</script>

Wszystko to należy rozumieć tak: dopóki i jest mniejsze od 100 to zwiększamy wartość i o 1(inkrementacja) i wykonuj instrukcję document.write.

Oczywiście zapis pętli można zmienić do takich form:

var i = 1;
for(;warunek; wyrażenie modyfikujące)
{
   blok instrukcji
}

for(var i = 1; warunek;)
{
   blok instrukcji;
   wyrażenie modyfikujące;
}

var i = 1;
for(;warunek;)
{
   blok instrukcji;
   wyrażenie modyfikujące;
}

Można to robić na różne sposoby, ale najłatwiej i najczytelniej jest umieszczać wszystkie wyrażenie i modyfikacje w nawiasie po słowie kluczowym for. Należy pamiętać, że pomiędzy wyrażeniami wewnątrz nawiasu trzeba umieszczać średnik. Istnieje jeszcze inne rodzaje użycia pętli for np. pętla nieskończona:

for(;;)
{
   blok instrukcji;
}

Nie mamy tutaj wyrażenia początkowego, warunkowego ani modyfikującego, więc pętla będzie się wykonywać dopóki nie braknie nam pamięci. Jest również taka możliwość:

for(;;)
{
   document.write("Cześć!");
   if(i++ > 100) break;
}

Muszę podkreśli tutaj kilka zmian: użyliśmy w instrukcji if warunku odwrotnego do w poprzednich przykładach, dlaczego? Już wyjaśniam, dopóki i jest mniejsze od 100 chcemy aby wykonywała się instrukcja document.write, a jeśli i będzie większe od 100 to warunek będzie spełniony i instrukcje w if wykonają się, u nas jest to kolejna zmiana czyli słowo kluczowe break. Po jej napotkaniu następuje przerwanie wykonywanie pętli, niezależnie od stanu zmiennej sterującej(w naszym przypadku jest to i). Istnieje jeszcze jedna instrukcja modyfikująca zachowanie pętli, jest to continue. Po jej napotkaniu następuje przerwanie bieżącej iteracji i rozpoczęcie kolejnej, czyli przeskoczenia do początku pętli. Tak więc pokarzę to na przykładzie:

<script type="text/javascript"> 
<!-- ukrycie kodu przed przeglądarkami nieobsługującymi JavaScript
for (var i = 1; i <= 100; i++)
{
  if ((i % 2) != 0)   // jeśli reszta z dzielenia nie równa się 0
    continue;          // jeśli warunek będzie spełniony to instrukcja document.write() nie zostanie wykonana...
  document.write (i + " "); // ...ponieważ instrukcja continue powoduje przejście do początku pętli
}
// koniec kodu JavaScript -->
</script>

Można oczywiście zapisać to bez słowa kluczowego continue:

<script type="text/javascript"> 
<!-- ukrycie kodu przed przeglądarkami nieobsługującymi JavaScript
for (var i = 1; i <= 100; i++)
{
  if ((i % 2) == 0) // jeśli reszta z dzielenia równa jest 0 to wykona się poniższa instrukcja
    document.write (i + " ");
}
// koniec kodu JavaScript -->
</script>

Pętla while

Pętla while ma następującą składnię:

while(wyrażenie warunkowe)
{
   blok instrukcji;
}

Wyrażenie warunkowe musi być spełnione, żeby blok instrukcji się wykonał.

Przykład:

<script type="text/javascript"> 
<!-- ukrycie kodu przed przeglądarkami nieobsługującymi JavaScript
var i = 0;
while(i++ < 100)
{
    document.write("Moja strona");
}
// koniec kodu JavaScript -->
</script>

Myślę, że wszystko jest jasne, oczywiście możemy tutaj używać instrukcji break i continue.

Pętla do..while

Pętla do..while ma następującą składnię:

do
{
   blok instrukcji;
}
while(wyrażenie warunkowe);

Ta pętla jest bardzo podobna do pętli while, istniejąca różnica to moment sprawdzania wyrażenia warunkowego. While robi to na początku a do..while na końcu, więc jeśli warunek jest fałszywy przy pierwszym przejściu pętla while nie wykona się ani razu, a pętla do..while wykona się raz.

Przykład porównania pętli while i do..while:

var i = 15;
while(i < 10)
{
   document.write(i);
   i++;
}

var i = 15;
do
{
   document.write(i);
   i++;
}
while(i < 10);

Podczas przechodzenia pętli while warunek sprawdzany jest na początku i pętla się nie wykona, a pętla do..while sprawdza warunek po wykonaniu się ciała pętli, czyli jeśli warunek jest fałszywy to i tak pętla do..while wykona się raz!

Istnieje jeszcze jedna pętla, ale opiszę ją dopiero podczas omawiania tablic bo jest z nimi związana.

Za niedługo ukaże się kolejna część kursu JavaScript dla początkujących.

Zapraszam do komentowania.

P.S Jeśli tekst zawiera jakieś błędy lub o czymś zapomniałem to proszę o kontrakt.

czwartek, 9 września 2010

Czas...

Niestety mam bardzo mało czasu na pisanie dalszych części kursu Java Script dla początkujących, więc będę umieszczał kolejne części raz na tydzień. Zaczynam poważniej zajmować się programowaniem i chcę temu poświęcić jak najwięcej czasu, ale nie chcę rezygnować z prowadzenia bloga. Przygotowuję kurs na temat programowanie PHP, a dokładniej zabezpieczeniach z połączeniem z bazą danych MySQL oraz metody zabezpieczeń przeciwko SQL Injection, XSS, RFI, LFI.

niedziela, 5 września 2010

Kurs JavaScript cz.3

3. Zmienne c.d/Instrukcja warunkowa if.


Zmienianie wartości zmiennych oraz jej typu:

var zmienna = "Szymon";
document.write("Masz na imię: " + zmienna + " i masz: ");
zmienna = 18;
document.write(zmienna + " lat.");

Wyświetlanie zmiennych:

var imie = "Szymon":
document.write("Twoje imię to:" + imie + "\n");

Pobieranie danych:

prompt("Podaj swoje imię: ");

Przypisywanie pobranego tekstu do zmiennej:

var zmienna = prompt("Podaj swoje imię: ");
document.write("Masz na imię: " + zmienna + "!");

Można również tak:

document.write("Siema: " + prompt("Podaj imię: ") + "!");

Nie jest to zbyt czytelny zapis, ale uzyskujemy bardziej zwięzły zapis i nie musimy używać zmiennej pomocniczej.

Operacje na zmiennych

Operacje na zmiennych możemy podzielić na:
- operacje arytmetyczne
- operacje logiczne
- operacje bitowe
- operacje przypisania
- operacje na łańcuchach znaków
- operacje porównania

Operacje arytmetyczne to nic innego jak: dodawanie, odejmowanie, możenie, dzielenie. Zapisujemy je za pomocą znaków znanych z matematyki: +,-,*,/.

Oto przykład:

var zmienna1 = 12;
var zmienna2 = 30;
var suma = zmienna1 + zmienna2;
document.write("Suma liczb wynosi:" + suma);
zmienna1 = zmienna2 + 7;
zmienna2 = zmienna1 + 9;
suma = zmienna1 + zmienna2;
document.write("A teraz suma wynosi:" + suma);
document.write("Można również zrobić tak: " + (suma+10) + " !");
zmienna1 = zmienna2 * suma;
zmienna2 = suma / zmienna1;
suma = zmienna2 - zmienna1;
zmienna1 = 5;
document.write("A teraz troszkę pomieszane: " + (suma*zmienna1) + " ale cóż, trzeba mieszać żeby coś z tego wyszło!");

Tak, więc widzisz, że można dodawać, odejmować, mnożyć i dzielić zmienne przez siebie jak i przez liczby, pamiętajmy jednak o jednym, gdy chcemy wykonać operacje na zmiennych w document.write() musimy umieścić je w nawiasie tak by nie wynikły z tego błędy. I pomiędzy dwa znaki plusa. Plus umożliwia nam "sklejenie" dwóch ciągów znaków lub zmiennych.

Inkrementacja i dekrementacja

Przekładając to na chłopski rozum: inkrementacja to zwiększanie wartości o 1, a dekrementacja to zmniejszenie wartości o 1. Trudne? Nie przejmuj się z czasem się przyzwyczaisz :D A teraz wypadało by podać jakiś przykład(UWAGA! Spróbuj się domyślić jaki będzie wynik!):

var jeden = 1;
var dwa = 2;
var trzy = 3;
var cztery = 4;
document.write("Jeden: " + (jeden++) + "<br>");
document.write("Dwa: " + (++dwa) + "<br>");
document.write("Trzy: " + (trzy--) + "<br>");
document.write("Cztery: " + (--cztery) + "<br>");
document.write("Czy już wiesz jak to działa?");

Jeśli nie wiecie jak to działa, należy wam się wytłumaczenie:
dwa plusy(++) - inkrementacja(zwiększanie o 1)
dwa minusy(--) - dekrementacja(zmniejszanie o 1)

Jest jednak różnica pomiędzy znakami z przodu zmiennej a po niej, jeśli umieścimy znak ++ lub -- przed nazwą zmiennej, jej wartość zostanie od razu zmieniona i wynik można zobaczyć od razu, a gdy umieścimy znak ++ lub -- po nazwie zmiennej wartość zmiennej zostanie zmieniona, lecz nie zostanie ona wyświetlona od razu, a dopiero w następnej instrukcji z użyciem nazwy tej zmiennej, dla zobrazowania tych słów przykład:

var x = 1;
var y = 1;


y = x++;
document.write("Wartość y: " + y + "<br>"); // w tej chwili wartość zmiennej y wynosi 1
document.write("Wartość x: " + (++x) + "<br>"); // w tej chwili wartość zmiennej x wynosi 3? dlaczego?
document.write("Wartość y: " + (y++) + "<br>"); // i tutaj wartość y zostanie wyświetlona jako 1!
document.write("Wartość y:" + y + "<br>"); // a teraz 2!

Czy wiesz już jak to działa? Mam nadzieję, że tak :D Druga instrukcja wypisania może co niektórych zadziwić, ale jak ktoś jest bystry to może zauważyć, że instrukcja przypisania y = x++; zwiększa wartość zmiennej x o 1, a zmiennej y nie modyfikuje, ponieważ wartość zmiennej x dostępna będzie dopiero w następnej instrukcji(nie jest zmieniana w tym dokładnie w tej instrukcji)!. Mam nadzieję, że wszyscy zrozumieli o co w tym chodzi.


Operacje na bitach


Rodzaj działania
Symbol w JavaScript
bitowe AND
&
bitowe OR
|
XOR
^
przesunięcie bitowe w lewo
<< 
przesunięcie bitowe w prawo
>> 
przesunięcie bitowe w prawo z wypełnieniem zerami
>>> 


Operacje przypisania


Argument 1
Operator
Argument 2
Znaczenie
X
+=
Y
X = X +Y
X
–=
Y
X = X – Y
X
*=
Y
X = X * Y
X
/=
Y
X = X / Y
X
%=
Y
X = X % Y
X
<<=
Y
X = X << Y
X
>>=
Y
X = X >> Y
X
>>>=
Y
X = >>> Y
X
&=
Y
X = X & Y
X
|=
Y
X = X | Y
X
^=
Y
X = X ^ Y


Operacje logiczne i porównania

Argumentami operacji logicznych tego typu muszą być wyrażenia posiadające wartość logiczną(TRUE lub FALSE). Przykład:

10 < 20 zwróci TRUE ponieważ 10 jest mniejsze od 20


Operator
Znaczenie
==
Zwraca TRUE, jeśli argumenty są sobie równe.
!=
Zwraca TRUE, jeśli argumenty są różne.
< 
Zwraca TRUE, jeśli argument prawostronny jest większy od lewostronnego.
> 
Zwraca TRUE, jeśli argument prawostronny jest mniejszy od lewostronnego.
>=
Zwraca TRUE, jeśli argument prawostronny jest mniejszy lub równy lewostronnemu.
<=
Zwraca TRUE, jeśli argument prawostronny jest większy lub równy lewostronnemu.


W grupie logicznych operatorów wyróżniamy:
- operator AND(&&) - np. 10 < 20 && 20 < 30 - daje wynik TRUE - 2 argumenty muszą być prawdziwe
- operator OR(||) - np. 10 < 20 || 20 > 30 - wystarczy że 1 argument jest prawdziwy
- operator NOT(!) - negacja - zmienia wartość argumentu na odwrotny

Czas na jakiś przykład:

var imie = prompt("Podaj imię: ");
if(imie == null) || (imie == "")
{
    document.write("Dlaczego nie podałeś imienia?");

else
{
   document.write("Witaj: " + imie + "!");
}

Przy okazji opiszę instrukcję warunkową if. Instrukcja warunkowa if sprawdza czy podane warunki w nawiasach są prawdziwe(w tym wypadku wystarczy tylko jeden prawdziwy warunek), jeśli tak wykona się blok kodu pomiędzy klamrami, jeśli jest fałszywy(w tym wypadku oby dwa argumenty muszą być fałszywe) wykona się blok kodu po słowie else(słowo oznacza: w przeciwnym wypadku). Jeśli czegoś nie rozumiesz nie martw się tym, z czasem zrozumiesz o co w tym wszystkich chodzi.

Operacje na łańcuchach znaków

Aby połączyć dwa łańcuchy znaków używamy znaku plusa lub dajemy nazwę zmiennej po niej przecinek po przecinku dwa cudzysłowy, pokażę to na przykładzie:

var zmienna1 = "Ala ma";
var zmienna2 = "kota";


document.write(zmienna1 + " " + zmienna2 + "<br>");
document.write(zmienna1, " ", zmienna2, "<br>");


var zmienna3 = 4;
var zmienna4 = 10;


document.write("Suma zmiennych: ", zmienna3+zmienna4, "<br>");
document.write("Suma zmiennych podejście drugie: " + (zmienna3+zmienna4));

W czwartej instrukcji wypisania nie musimy używać nawiasów podczas dodawania zmiennych, ponieważ mogłyby wyniknąć z tego błędy(znak plus przed i po nazwie pierwszej zmiennej).

Za niedługo ukaże się kolejna część kursu JavaScript dla początkujących.

Zapraszam do komentowania.

P.S Jeśli tekst zawiera jakieś błędy lub o czymś zapomniałem to proszę o kontrakt.

sobota, 4 września 2010

Kurs JavaScript cz.2

2. Formatowanie tekstu/Zmienne

W tej części kursu przedstawię formatowanie tekstu w JavaScript i podstawową wiedzę o zmiennych. Chciałbym też dodać, że po każdej instrukcji napisanej w JavaScript powinien znaleźć się średnik. Istnieją różne rodzaje formatowania tekstu, pierwszy to dodawanie znaczników HTML-a:

document.write("<b>Pogrubiony tekst</b><br>");

JavaScript umożliwia wstawianie wszystkich znaczników HTML-a, jest to bardzo przydatne np. poprzez skrypt możemy umieścić zdjęcie:

document.write("<img scr=zdjecie.jpg>");

Do przechodzenia do nowej linii służy znacznik <br> lub znak specjalny \n używamy go w ten sposób:

document.write("Zaraz przejdę do nowej linii.\n");

Oczywiście istnieje również document.writeln(), ale w tym wypadku musimy umieścić tekst pomiędzy znacznikami <pre></pre> np.:

document.writeln("<pre>Przechodzi do nowej linii.</pre>");

Poniżej zamieszczam listę znaków specjalnych do formatowania tekstu w JavaScript:

\n - znak nowej linii
\t - tabulator
\b - backspace
\r - enter
\f - wysunięcie kartki

Istnieją również funkcje formatujące tekst:

fontsize() - rozmiar tekstu
fontcolor() - kolor tekstu

italics() - kursywa
bold() - pogrubienie
strike() - przekreślenie
sub() - index dolny
sup() - index górny
big() - zwiększa czcionkę o 1 pt
small() - zmniejsza czcionkę o 1 pt

Sposób użycia:

document.write("Tekst".fontsize(4));

Czyli po cudzysłowie umieszczamy kropkę i nazwę funkcji. Kolory można podawać jako nazwy kolorów z HTML-a lub w formacie RGB, poniżej zamieszczam link do strony na której możecie sprawdzić jakie kolory są dostępne:

http://www.statom.pl/HTML/kolory.html

Funkcje formatujące można również łączyć np.:

document.write("Duży przekreślony, pogrubiony, kolorowy tekst".fontsize(5).fontcolor("blue").bold().strike());

Umieszczając kropkę po nazwie funkcji łączymy właściwości tych funkcji.
Jeśli chcemy umieścić np. cudzysłów musimy go poprzedzić jednym ukośnikiem np.:

document.write("\"Wiem, że nic nie wiem.\"");

Zmienne

Zmienna jest to element programu/skryptu, któremu przypisujemy jakąś wartość, każda zmienna posiada swoją nazwę i swój typ. W każdej części programu wartość zmiennej może być zmieniona, w zależności czy jest to zmienna lokalna czy globalna, ale o tym powiem później. W języku JavaScript rozróżniamy kila typów zmiennych: liczby, wartości logiczne, łańcuchy znaków, wartość NULL.

Zmienne deklarujemy w następujący sposób:

var nazwazmiennej = 1;

Najpierw podajemy słowo kluczowe var a potem nazwę zmiennej. Dozwolone nazwy zmiennych:

zmienna
nazwa_zmiennej
nazwa_mojej_zmiennej
zmienna1
_zmienna
__zmienna
MojaZmienna

Są to tylko przykładowe kombinacje, można używać podkreśliników, liczb(dopiero po jakiejś literce lub podkreślniku), dużych i małych liter. W języku JavaScript odróżniane są duże i małe litery!

Niedozwolone nazwy zmiennych:

0zmienna - nie wolno używać liczb jako pierwszego znaku w nazwie zmiennej
moja zmienna - nie wolno stosować spacji
nie można nazwać zmiennych słowami kluczowymi języka
nie można stosować innych znaków niż liczby, podkreślnik, np. + lub -
nie można stosować narodowych znaków np, ą,ę,ó,à,ê itp.\
nie stosujemy takich samych nazw dla zmiennych

Zmienne tekstowe deklarujemy tak:

var zmienna = "Mój kot ma na imię Burek";
var zmienna1 = 'Mój pies ma na imię Azor';
var literka = 'a';

Pojedyncze literki umieszczamy w apostrofach, a ciągi znaków w cudzysłowach, nie jest powiedziane, że nie można ich umieszczać w apostrofach, ale przyjęte jest, że umieszczamy ciągi znaków w cudzysłowach.

Zmienne liczbowe:

var zmienna2 = 30;
var zmienna3 = 13.4;
var zmienna4 = 0x10; // zapis szesnastkowy
var zmienna5 = 2e3; // zapis wykładniczy

Wartości logiczne:

var zmienna6 = TRUE; // prawda
var zmienna7 = FALSE; // fałsz

Dla osób znające uwaga: wartości TRUE i FALSE nie mają przełożenia na liczby.

Wartość NULL:

Jest to pewien specjalny typ danych, który oznacza nic(null). Wartość ta jest zwracana przez niektóre funkcje. Zapoznam was z nią w dalszej części kursu.

Za niedługo ukaże się kolejna część kursu JavaScript dla początkujących.

Zapraszam do komentowania.

P.S Jeśli tekst zawiera jakieś błędy lub o czymś zapomniałem to proszę o kontakt.

piątek, 3 września 2010

Kurs JavaScript cz.1

Postanowiłem napisać swój własny kurs języka JavaScript dla początkujących.

1. Wstęp do JavaScript

JavaScript jest językiem skryptowym, umożliwiającym ożywić statyczne strony www napisanych w HTML-u. Jest on językiem obiektowym, o składni wywodzącej się z C++. Jeśli ktoś zna C++ nie będzie miał problemów z JavaScript-em. Kod JavaScript można umieścić w kodzie HTML, w osobnym pliku lub w znacznikach HTML-a. Poniżej zamieszczam przykłady załączania kodu JavaScript do HTML-a. Kod JavaScript powinien być umieszczany przed znacznikiem <body>, ale nie jest to przymusowe.


Sposób I

<html>
<head>
</head>
<script type="text/javascript">
document.write("Hello World!");
</script>
<body>
</body>
</html>


Sposób II

<html>
<head>
</head>
<script type="text/javascript" src=plik.js>
</script>
<body>
</body>
</html>

Sposób III

<html>
<head>
</head>
<body>
<a onclick="alert(\'Witam!\')" href="index.html">link</a>
</body>
</html>


Znacznik <script> musi zawierać opcję type="text/javascript" lub language="JavaScript". Ta pierwsza jest aktualnie używana, a ta druga jest starszą wersją, nie jest wymagane używanie jednego czy drugiego, ale ja stosuję tą aktualną wersję(opcja 1). Pliki z kodem JavaScript zapisujemy w pliku z rozszerzeniem *.js.


Sposoby wyświetlania/pobierania tekstu:
document.write() - wypisuje tekst podany w nawiasie
document.writeln() - wypisuje tekst podany w nawiasie i dodaje znak końca linii
alert() - wyświetla okienko dialogowe z tekstem podanym w nawiasie
confirm() - wyświetlanie okienka dialogowego z potwierdzeniem, zawiera przyciski OK(true) i ANULUJ(false)
prompt() - jest to pobieranie tekstu od użytkownika


Komentarze:
Istnieją 3 sposoby komentowania tekstu:


// komentarz ten działa tylko w 1 linii aż do znaku nowej linii


/*
komentarz blokowy wszystko co jest umieszczone między tymi znakami zostanie uznane za komentarz
*/



<!--
dla przeglądarek nie obsługujących JavaScript
// koniec kodu JavaScript  -->

Za niedługo ukaże się kolejna część kursu JavaScript dla początkujących.


Zapraszam do komentowania.


P.S Jeśli tekst zawiera jakieś błędy lub o czymś zapomniałem to proszę o kontakt.

czwartek, 2 września 2010

Szkoła - znowu :(

Znowu zaczęła się szkoła, mniej czasu wolnego itp. Postaram się umieszczać posty na temat podstaw języka C++. Akurat będę miał to na lekcjach Metodologii (Enterologii) Programowania z nauczycielem, który nie potrafi za dużo, czyta coś z książki i tłumaczy, chociaż sam tego nie potrafi, zapatrzony jest w Pascalu i Delphi, inne języki uważa za coś trudnego, więc ich się nie będzie uczył, postaram się stworzyć jakąś osobną stronę o tematyce programowania w C++. Będę miał również Moduł Specjalizacyjny, którego sam nie wybieram, trochę to dziwne, chciałbym mieć wybór swojej specjalizacji. Będzie to chyba PHP lub JavaScript i Sieci Komputerowe(prawdopodobnie Novell). Kończę nudzenie i zapraszam do komentowania.

środa, 1 września 2010

Początki z MFC

Zaczynają naukę Visual C++ wiedziałem, że kiedyś nadejdzie taki czas by nauczyć się korzystać z MFC. Poniżej zamieszczam przykładowy program, który nic nie robi :D


// Podstawowy program MFC
#include // dla biblioteki klas.


// Definicja klasy aplikacji.
class COurApp:public CWinApp
{
public:
  virtual BOOL InitInstance();
};


// Definicja klasy okna.
class COurWnd:public CFrameWnd
{
public:
  // Konstruktor.
  COurWnd()
  {
    Create(0, L"Nasza prosta aplikacja MFC");
  }
};


// Funkcja tworząca instancję głównego okna aplikacji.
BOOL COurApp::InitInstance(void)
{
  // Konstruuje obiekt okna w wolnej pamięci
  m_pMainWnd = new COurWnd;
  m_pMainWnd->ShowWindow(m_nCmdShow); // ...i wyświetla go.
  return TRUE;
}


// Definicja obiektu aplikacji w zakresie globalnym.
COurApp AnApplication; // Definiuje obiekt aplikacji.


Źródło: http://helion.pl/ksiazki/vcppo.htm


Z biegiem czasu będę zamieszczał kody źródłowe do swoich programów.

Piractwo i Wolne Oprogramowanie

Zapraszam do zapoznania się z artykułem:
http://thecamels.org/2010/09/01/piractwo-i-wolne-oprogramowanie/

wtorek, 31 sierpnia 2010

Reklamy na twojej stronie www

Jeśli chcesz zarabiać, poprzez umieszczanie płatnych reklam na twojej stronie to polecam ci kilka programów partnerskich:

- Google AdSense
- mBank
- Allegro
- CpmProfit (http://www.cpmprofit.com/?ref=Masayashi)
- bet-at-home

Wszystkie te serwisy płacą za umieszczanie reklam na twojej stronie. Allegro, mBank i bet-at-home płacą za zarejestrowanie się z twojej reklamy do ich serwisu, mBank oferuje 0.60% od zaciągniętego kredytu, Allegro oferuje 10zł za zarejestrowanie się przez twoją reklamę oraz 30% wpłat poleconego w ciągu roku, bet-at-home oferuje 30% zarobków poleconego na 1 poziomie, 10% na drugim poziomie i 5% na trzecim poziomie.
Google AdSense i CpmProfit oferują wyświetlanie płatnych reklam na twojej stronie, z Google AdSense dostajesz pieniądze za kliknięcia w reklamy, które są umieszczone na twojej stronie, CpmProfit za wyświetlanie i klikanie w reklamy na twojej stronie. Jeśli weźmiesz udział we wszystkich programach i zareklamujesz się odpowiednio możesz zarobić naprawdę spore pieniądze.

Zapraszam do komentowania!

Przywracanie i naprawa GRUB-a

Często zdarza się, że bootloader nie startuje(nie wiadomo z jakiej przyczyny, a czasami sami coś pomieszamy :D) i wypadałoby go jakoś naprawić. Mnie też się to przytrafiło kilka razy(przyczyny były różne :D), więc postanowiłem opisać wam jak to zrobić, na kilka sposobów. Najpierw pokaże najprostszy:

Sposób I Instalacja GRUB-a w MBR za pomocą LiveCD

1. Uruchamiamy jakiś system LiveCD(Ubuntu, Debian, Knoppix) i jeśli nie pamiętamy rozkładu naszych partycji możemy wydać polecenie w konsolce(z poziomu root-a):

fdisk -l


2. Jeśli już znamy rozkład partycji możemy przejść do instalacji GRUB-a. W konsolce jako root podajemy kolejno polecenia:

mkdir /mnt/root
mount -t ext3 /dev/hda3 /mnt/root
mount -t proc none /mnt/root/proc
mount -o bind /dev /mnt/root/dev
chroot /mnt/root /bin/bash
grub

!zamiast hda3 wpisz swoją partycję!

3. Powinieneś ujrzeć taki wpis w konsolce:

grub>


4. Wpisujemy kolejne polecenie:

find /boot/grub/stage1

5. Pokaże wam to co zostało znalezione i podajemy kolejne polecenia(podaj swoją partycję):

root (hd0, 2)
setup (hd0)

Numerowanie dysku zaczyna się od 0(hd0)! więc jeśli dla przykładu użyjemy partycję hda3 będzie ona miała numer 2!


6. Po restarcie wszystko powinno wrócić do normy.

Sposób II Odzyskiwanie GRUB-a


1. Wkładamy do napędu płytę instalacyjną z Debianem i podajemy polecenie:

rescue - dla trybu tekstowego
rescuegui - dla trybu graficznego


2. Postępujemy wg poleceń instalatora tak jak przy instalacji, montujemy dyski, myszkę, klawiaturę, konfigurację internetu itp. W pewnym momencie następnym krokiem będzie "Uruchom konsolę odzyskiwania".

3. W tej konsoli wybieramy partycję na której mamy zainstalowany system. Załaduje ci się powłoka systemu w trybie rescue. Sprawdź plik /boot/grub/menu.lst i sprawdź czy nie ma w nim błędów.

4. Przykładowy wpis w /boot/grub/menu.lst :


title        Debian GNU/Linux, kernel 2.6
root        (hd0,2)
kernel        /boot/vmlinuz-2.6 root=/dev/hda3 ro
initrd        /boot/initrd.img-2.6
savedefault
boot


5. Teraz zapisujemy plik konfiguracyjny GRUB-a i po restarcie wszystko powinno wrócić do normy.

Zapraszam do komentowania!