piątek, 20 października 2017

Zasięg zmiennej

Rodzaje zmiennych



Mimo że w języku C i C++ występuje wiele rodzajów zmiennych, to ze względu na tematykę tej lekcji zajmiemy się tylko jednym podziałem zmiennych. Wszystkie zmienne można podzielić na zmienne globalne i zmienne lokalne.

W dużym uproszczeniu różnica między tymi dwoma rodzajami zmiennych jest następująca: zmienne globalne są to takie zmienne, które są dostępne w całym programie i przez cały czas jego działania, natomiast zmienne lokalne są dostępne tylko w pewnej części programu, zazwyczaj tylko w pewnej chwili działania programu, a nie przez cały czas.



Zmienne globalne



Zaletą zmiennych globalnych jest to, że są one widoczne w całym programie. Nie miało to dużego znaczenia w przypadku naszych dotychczasowych programach, jednak nabierze bardzo dużego znaczenia, kiedy przedstawię Ci pojęcie funkcji w C++.

Zmienne globalne deklaruje się (i ewentualnie inicjalizuje) pomiędzy blokiem dołączonych plików nagłówkowych a funkcją main. Ponieważ są to zwykłe zmienne (mają tylko dodatkowe właściwości), to deklaracja, inicjalizacja oraz posługiwanie się tymi zmiennymi wygląda dokładnie tak samo, jak to robiliśmy w dotychczasowych programach.

Ponieważ zmienne globalne są widoczne w całym programie, zatem są również widoczne wewnątrz funkcji main. Oznacza to, że wewnątrz funkcji main (oraz wszystkich innych funkcji), możemy dokonywać wszystkich operacji jakie są tylko możliwe dla zmiennej danego typu.

                                                           

                                          Zmienna lokalna


zmienna zdefiniowana i dostępna wyłącznie w określonym bloku programu, tworzona w momencie wejścia do tego bloku oraz usuwana z pamięci w momencie wyjścia z danego bloku. Tym samym zasięg zmiennej lokalnej oraz czas jej życia pokrywają się i obejmują blok, w którym zmienna lokalna jest zdefiniowana. Zmienna lokalna ma więc określony, ograniczony zakres istnienia i dostępności. To w jakich blokach programowych można tworzyć zmienne lokalne definiuje składnia konkretnego języka programowania. Typowymi blokami, w których można w różnych językach programowania tworzyć zmienne lokalne, są moduły, podprogramy oraz w pewnych językach programowania także instrukcje blokowe (lub inne instrukcje strukturalne, np. pętla for w języku C[1][2][3] i inne). Zmienna lokalna w danym bloku przesłania zdefiniowaną zmienną globalną lub zmienną lokalną z bloku nadrzędnego o tym samym identyfikatorze. Tym samym programista nie może wprost, za pomocą danego identyfikatora, w bloku o zdefiniowanej zmiennej lokalnej, odwołać się do zmiennej zewnętrznej o tym samym identyfikatorze co zdefiniowana zmienna lokalna, choć może to zrobić za pomocą innych konstrukcji, jeżeli są dostępne w danym języku programowania, np. selekcja, wskaźniki, przemianowanie, nakładanie zmiennych lub inne.



Stosowanie procedur i funkcji

1. Modele programowania
-liniowe  Program liniowy (w skrócie PL) jest to problem minimalizacji/maksymalizacji liniowej funkcji celu o 
n argumentach x1,x2,,xn przy zachowaniu pewnej liczby równości lub nierówności liniowych (będziemy je nazywać ograniczeniami) zawierających zmienne xi.

-strukturalne  paradygmat programowania opierający się na podziale kodu źródłowego programu na procedury i hierarchicznie ułożone bloki z wykorzystaniem struktur kontrolnych w postaci instrukcji wyboru i pętli. Rozwijał się w opozycji do programowania wykorzystującego proste instrukcje warunkowe i skoki. Programowanie strukturalne zwiększa czytelność i ułatwia analizę programów, co stanowi znaczącą poprawę w stosunku do trudnego w utrzymaniu „spaghetti code” często wynikającego z użycia instrukcji goto.
Początki programowania strukturalnego przypadają na Lata 60. XX wieku, a ważnym głosem w dyskusji o programowaniu strukturalnym był list Edsgera Dijkstry Goto Statement considered harmful.
Język programowania zgodny z paradygmatem programowania strukturalnego nazywa się językiem strukturalnym.
-modularne paradygmat programowania zalecający stosowanie nadrzędności modułów w stosunku do procedur i bloków tworzących program. Moduł grupuje funkcjonalnie związane ze sobą dane oraz procedury i jest reprezentacją obiektu jednokrotnie występującego w programie. Programowanie takie wykorzystywane jest przez wyspecjalizowane języki programowania, np. AdaModula-2Pascal, Fortran90.

-obiektowe  paradygmat programowania, w którym programy definiuje się za pomocą obiektów – elementów łączących stan(czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań.
Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów.
Największym atutem programowania, projektowania oraz analizy obiektowej jest zgodność takiego podejścia z rzeczywistością – mózg ludzki jest w naturalny sposób najlepiej przystosowany do takiego podejścia przy przetwarzaniu informacji.
-zdarzeniowe metodologia tworzenia programów komputerowych, która określa sposób ich pisania z punktu widzenia procesu przekazywania sterowania między poszczególnymi modułami tej samej aplikacji. Programowanie sterowane zdarzeniami jest mocno powiązane ze środowiskami wieloprocesowymi (nie mylić z komputerami wieloprocesorowymi), z graficznymi środowiskami systemów operacyjnych oraz z programowaniem obiektowym.
Jest to paradygmat programowania, według którego program jest cały czas „bombardowany” zdarzeniami (events), na które musi odpowiedzieć, i zakładający, że przepływ sterowania w programie jest całkowicie niemożliwy do przewidzenia z góry.Jest też używane przez wysoce wydajne serwery sieciowe – zdarzeniami są tu żądania połączenia, nadejście danych do odbioru, zwolnienie się miejsca w buforach wysyłania odbiorów, itd

2. Programowania zstępujące i wstępujące


3.Zalety stosowania podprogramów (procedur i funkcji)

piątek, 6 października 2017

Algorytm z pętlą zagnieżdżoną

1.Specyfikacja
Zadanie: Napisz listę kroków algorytmu, który umożliwi wyprowadzenie na ekran
monitora prostokąta o bokach n, m, narysowanego za pomocą znaków
(m- liczba znaków * w poziomie, n- liczba znaków *w pionie).
Wnętrze prostokąta powinno być wypełnione znakami *.

Dane: liczby naturalne dodatnie, określające ilość znaków *
w prostokącie o bokach m, n.

Wynik: prostokąt o wymiarach m x n, zbudowany ze znaków.

2.Schemat blokowy


3.Listing
#include <iostream>
using namespace std;
int main ()
{
    int i, j, n, m;
    cout << "Wprowadz wartosc n: ";
    cin >> n;
    cout << "Wprowadz wartosc m: ";
    cin >> m;
    for (i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
   cout << "*";
        cout << endl;
    }
    return 0;

}

Algorytym Iteracyjny iloczyn n liczb

1.Specyfikacja
Iteracja polega na wielokrotnym powtarzaniu tej samej operacji.
Iteracje implementujemy , stosując tzw. pętlę. Z pętlą mamy do czynienia,
gdy w pewnym kroku alogrytmu wracamy do jednego z wcześniejszych kroków,
co powoduje, że kroki te mogą zostać wykonane wiele razy.

Zadanie: Oblicz iloczyn n liczb całkowitych
Dane: n dowolnych liczb całkowitych kolejno zapamiętywanych w zmiennej a.
Wynik: wartość iloczynu: iloczyn.
Lista kroków:
1. Zacznij algorytm
2. Zmiennej iloczyn oraz zmiennej  i przypisz wartość jeden: iloczyn:=1; i:=1.
3. Wprowadż liczbę całkowitą i zapamiętaj ją w zmiennej a.
4. Pomnóż iloczyn przez wprowadzoną liczbe a: iloczyn := iloczyn x a.
5. Jeśli i nie równa się n, zwiększ licznik o jeden (i:=i+1) i wróc do kroku 3.
6. Wprowadź wynik: iloczyn.
7. Zakończ algorytm.
2.Schemat blokowy


3.Listing programu

#include <iostream>
using namespace std;
int main()
{
    int i, a, iloczyn, n;
    cout << "Podaj liczbe do przemnozenia ";
    cin >> n;
    iloczyn=1;
    for (i=0; i<n; i++)
    {
        cout  << "podaj " << i+1 << " liczbe ";
        cin >> a;
        iloczyn*=a;
    }
    cout << "iloczyn to: " << iloczyn;
    return 0;

}


niedziela, 8 stycznia 2017

niedziela, 13 listopada 2016

Komunikacja i wymiana informacji w internecie

                       Komunikacja i wymiana informacji w internecie

Poczta elektorniczna(e-mail)- usługa internetowa, w nomenklaturze prawnej określana zwrotem świadczenie usług drogą elektroniczną, służąca do przesyłania wiadomości tekstowych, jak i multimedialnych, tzw. listów elektronicznych – stąd zwyczajowa nazwa tej usługi.
Znalezione obrazy dla zapytania poczta elektroniczna


Czat-rodzaj rozmowy między dwoma lub wieloma użytkownikami komputerów za pośrednictwem Internetu lub innej sieci komputerowej, polegającej na naprzemiennym przesyłaniu wiadomości tekstowych
Znalezione obrazy dla zapytania czat


komunikator- program komputerowy pozwalający na przesyłanie natychmiastowych komunikatów pomiędzy dwoma lub większą liczbą komputerów, poprzez sieć komputerową, zazwyczaj Internet (dlatego komunikatory internetowe). Od poczty elektronicznej różni się tym, że oprócz samej wiadomości, przesyłane są także informacje o obecności użytkowników, co zwiększa znacznie szansę na prowadzenie bezpośredniej konwersacji.
Znalezione obrazy dla zapytania komunikator

Forum Dyskusyjne przeniesiona do struktury stron WWW forma grup dyskusyjnych, która służy do wymiany informacji i poglądów między osobami o podobnych zainteresowaniach przy użyciu przeglądarki internetowej.

Fora dyskusyjne są obecnie bardzo popularną formą grup dyskusyjnych w Internecie. Prowadzą je praktycznie wszystkie portale, większość wortali, znaczna liczba ISP. Są one także powszechne na stronach wielu instytucji, czasopism, przedsiębiorstw, uczelni itp. a także spotykane są liczne fora zakładane prywatnie.
Grupa Dyskusyjna-ogólna nazwa wszelkich form dyskusji internetowej przypominających wymianę korespondencji, a nie rozmowy w czasie rzeczywistym. Grupy dyskusyjne przyjmują formę list dyskusyjnych pozwalających na automatyczną wymianę e-maili, grup Usenetowych, grup występujących w Fidonecie i forów dyskusyjnych dostępnych przez bramki WWW.
Znalezione obrazy dla zapytania GRUPA DYSKUSYJNA
Web 2.0 -potoczne określenie serwisów internetowych, powstałych po 2001, w których działaniu podstawową rolę odgrywa treść generowana przez użytkowników danego serwisu.

Wbrew numeracji wersji oprogramowania, Web 2.0 nie jest to nowy World Wide Web ani Internet, ale jest on innym sposobem na wykorzystanie jego dotychczasowych zasobów. Uważa się, że serwisy Web 2.0 zmieniają paradygmat interakcji między właścicielami serwisu i jego użytkownikami, oddając tworzenie większości treści w ręce użytkowników.
Znalezione obrazy dla zapytania WEB 2.0

Blog rodzaj strony internetowej zawierającej odrębne, zazwyczaj uporządkowane chronologicznie wpisy. Blogi umożliwiają zazwyczaj archiwizację oraz kategoryzację i tagowanie wpisów, a także komentowanie notatek przez czytelników danego dziennika sieciowego. Ogół blogów traktowany jako medium komunikacyjne nosi nazwę blogosfery.

Znalezione obrazy dla zapytania blog

FTP - protokół transferu plików (ang. File Transfer Protocol) – protokół komunikacyjny typu klient-serwer wykorzystujący protokół TCP według modelu TCP/IP (krótko: połączenie TCP), umożliwiający dwukierunkowy transfer plików w układzie serwer FTP–klient FTP.
Znalezione obrazy dla zapytania ftp
P2P - model komunikacji w sieci komputerowej zapewniający wszystkim hostom te same uprawnienia, w odróżnieniu od architektury klient–serwer

Chmura - definiować można na dwa sposoby. Pierwszym z nich jest chmura obliczeniowa, z angielskiego cloud computing, drugim zaś chmura publiczna, tudzież dyski w chmurze, oferowane przez największych potentatów świata IT, przez niezależne firmy czy organizacje oraz przez producentów sprzętu, komputerów, smartfonów, tabletów, a nawet przez firmy telekomunikacyjne. Owszem, istnieją jeszcze serwery plików NAS, które pozwalają nam stworzyć swoją własną chmurę w domowym zaciszu, ale tym zajmiemy się w odpowiednim czasie, bowiem jest to temat odmienny, z chmurą w powyższym rozumieniu jedynie zbieżny