Programowanie - wykłady, UE IiE ISIZ, programowanie


Wykład z 16-10-2007

Programowanie (w znaczeniu szerszym) - jednoznaczne formułowanie zadań oraz sposobu ich rozwiązania za pomocą komputera prowadzącego do szeregu czynności.

Czynności składające się na proces programowania:

Programowanie (w znaczeniu węższym) to kodowanie algorytmu w wybranym języku programowania.

Algorytm - zbiór reguł postępowania (przepis) mający na celu w skończonej liczbie kroków przetworzenie informacji wejściowych (danych) na informacje wyjściowe (wyniki).

Problemy związanie z opracowaniem algorytmu:

Kodowanie algorytmu w języku programowania:

Jako ograniczenia zawężające możliwość wyboru języka przyjmuje się m.in. :

Cechy dobrego programu:

System programowania (środowisko programistyczne):

Język programowania - zbiór symboli oraz reguł syntaktycznych i semantycznych (znaczeniowych) stosowanych w trakcie definiowania sposobu przetwarzania określonego zadania.

Elementy języka programowania:

Translacja - proces tłumaczenia programu źródłowego na wynikowy :

Kompilator - analizuje program napisany w określonym języku programowania (program źródłowy) i tłumaczy go na równoważny funkcjonalnie program w języku wewnętrznym (program wynikowy).

Interpretator - pobiera kolejne instrukcje programu, sprawdza ich poprawność, rozpoznaje jaką czynność należy wykonać i wykonuje ją. Oznacza to, że każde uruchomienie programu wymaga jego tłumaczenia.

Programy interpretowane działają bardzo wolno w porównaniu z programami kompilowanymi. Zaletą jest możliwość wykonania tylko fragmentu programu, łatwe lokalizowanie.

Testowanie

W praktyce testowanie programu na wszystkich możliwych danych teoretycznych jest niemożliwe.

Najczęściej stosuje się test:

Systemy programowania poza translatorem obejmują:

Translator - program tłumaczący, pozwalający „przetłumaczyć”, przekształcić kod programu napisany w języku zrozumiałym dla programisty (tzw. program źródłowy) w kod maszynowy czyli postać programu wykonalną na danym sprzęcie.

Nauka o algorytmach:

Potoczne rozumienie pojęcia „algorytm”:

Pojęcie dziedziny algorytmu:

Sposoby zapisu algorytmów:

Algorytm powinien przedstawiać kolejne jego kroki. Do zapisu tych kroków mogą być stosowane zapisy werbalne i formalne, np.:

I generacja:

Kod maszynowy - czyli ciąg zer i jedynek stanowiący binarny zapis funkcji procesora wraz z ich parametrami.

II generacja:

Języki zwane asemblerami lub językami adresów symbolicznych, są językami niskiego poziomu. Funkcje procesora są w nich kodowane za pomocą tzw. mnemoników czyli krótkich i prostych poleceń będących dokładnym odpowiednikiem procedur które może wykonać procesor.

Asemblery jako języki niskiego poziomu słabo nadają się do tworzenia rozbudowanego oprogramowania użytkowego, dlatego stosuje się je głównie do tworzenia elementów oprogramowania systemowego zwłaszcza tych, w których najważniejsza jest szybkość działania i zgodność ze sprzętem komputerowym. Program napisany w języku asemblera musi zostać przetłumaczony na język maszynowy.

III generacja:

To języki wysokiego poziomu, których poszczególne instrukcje odpowiadają ciągom wielu rozkazów wewnętrznych komputera. Oferują one dla programistów takie udogodnienia, jak np. proceduralność czyli możliwość jednokrotnego zaprogramowania rozbudowanych procedur, a następnie wielokrotnego odwoływania się do nich w programie.

Wśród języków wysokiego poziomu wyróżnia się języki:

IV generacja:

Zaawansowane technologicznie systemy programowania które jakby ukrywają przed programistą stopień skomplikowania tworzonych aplikacji, umożliwiając mu koncentrowanie się na aspektach merytorycznych.

Wykład z 30-10-2007

Algorytm (cechy):

Własności:

Opis algorytmu:

Opis danych:

Opis działań na danych (działania różnorodne, rodzaje działań) :

Metody zapisu:

Schemat blokowy - graficzny zapis przedstawiający opis i kolejność wykonywania czynności realizujących danych algorytm. Operacje przedstawione są pomocą skrzynek/bloków.

0x08 graphic
0x08 graphic
Skrzynka graniczna - początek lub koniec algorytmu

0x08 graphic

Skrzynka operacyjna - różne działania

0x08 graphic

Skrzynka wejścia/wyjścia - wprowadzanie/wyprowadzanie danych

Skrzynka warunku (blok operacyjny) - sprawdzanie warunku (czy np. x>0), wychodzą z niej 2 połączenia - TAK i NIE

0x08 graphic
0x08 graphic
0x08 graphic

Tak Nie

Wielowybór - wybór z kilku możliwych sytuacji

Zasady budowy:

0x08 graphic
Schematy NS - w nich cały algorytm jest prezentowany jako prostokąt:

0x08 graphic
0x08 graphic
Sekwencje poleceń to prostokąt podzelony poziomą linią:

Selekcja: w trójkąt wpisuje się warunek selekcji, a prostokąty pod nim odpowiadają kolejnym krokom algorytmu:

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Iteracja (powtórzenie) - prostokąt to czynność powtarzana


Dopóki „W” dopóty „R”

„powtarzaj .... aż do”


0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Pseudokod - przeważnie modyfikowana wersja języka PASCAL, np.:

S:=0

I:=0

Dokóki i<10 rób

Wprowadź liczbę(a)

Czy a>5

Jak tak to s:=s+a

I:=i+1

Powtarzaj

Drukuj S

Koniec

Konstrukcje algorytmiczne - z rodziny Algol'60, np. Pascal, Modula 2, MODSIM, C, C++, C#, Visual Basic, Nava. W większości przypadków, logika wspólna dla nich wszystkich.

Schemat sekwencji działań

Semantyka - wykonywanie kolejnych kroków algorytmu zgodnie z zadaną sekwencją (Start -> krok 1 -> krok 2 -> krok 3 -> Stop)

Selekcja (instrukcja warunkowa) - działa wg jednego ze schematów: jeśli sprawdzony warunek W, wykonaj A/ jeśli sprawdzony jest warunek W, wykonaj A; w przeciwnym razie wykonaj B

Schemat instrukcji selekcji (alternatywny):

Iteracja - wielokrotne powtarzanie grupy czynności aż do spełnienia warunku (ze znaną ilością powtórzeń/ze spełnieniem określonego warunku przed lub po wykonaniu działania)

Metoda czarnej skrzynki - weryfikacje poprawności algorytmu poprzez analizę uzyskanych wyników po zadaniu określonego zestawu danych wejściowych.

Wykład z 13-11-2007 Dane i ich reprezentacje

Rodzaje informacji - cyfrowe i analogowe. Informacją cyfrową nazywamy informację przedstawioną w postaci słów cyfrowych. Słowo cyfrowe to dowolny ciąg składający się z symboli 0 i/lub 1. W słowach cyfrowych wyróżnia się najstarszą i najmłodszą pozycję, tj. bit najbardziej i najmniej znaczący.

Dziesiętny system liczbowy:

Do zapisu dowolnej liczby system wykorzystuje dwa symbole (cyfry): 0 i 1
Dowolną liczbę w systemie dwójkowym możemy przedstawić jako następującą sumę:

0x01 graphic

0x08 graphic
20:2=10

10:2=5

5:2=2 reszta 1 kierunek odczytu

2:2=1

1:2=0 reszta 1

czyli 20D=10100B

Heksadecymalny - do zapisu dowolnej liczby system wykorzystuje 16 symboli (cyfr i liczb). Dowolną liczbę w systemie 16-tkowym możemy przedstawić jako sumę:

0x01 graphic

0x01 graphic

450:16 = 28 reszty 2

28:16 = 1 reszty 12 (C) 450D=1C2H

1:16 = 0 reszty 1

Kodowanie liczb i tekstu:

Naturalny kod binarny (NKB)

Jeżeli dowolnej liczbie dziesiętnej przyporządkujemy odpowiadającą jej liczbę binarną to otrzymamy NKB.

Długość K słowa binarnego reprezentowanego przez liczbę dziesiętną A musi spełniać warunek: A<2K<2A+1

Kodowanie znaków:

ASCII - to kod 7bitowy definiujący 128-elementowy zestaw znaków o wartościach kodowych od 0 do 127. Zestaw zawiera litery łacińskie (duże i małe), cyfry i znaki interpunkcji oraz różne znaki specjalne.

Kod ASCII rozszerzony, wprowadza dodatkowe 128 znaków wykorzystujących mało używany 8 bit.

Typy danych: dane elementarne (proste) i złożone (struktury danych).

Dane: para składająca się z nazwy i wartości; dane stałe i zmienne; deklaracja danych; inicjowanie danych - nadanie początkowej wartości; przypisanie wartości.

Struktury danych - konstrukcje języka programowego wykorzystywane do reprezentowania modeli danych.
Modele danych są implementowane za pomocą struktur danych i wykorzystujących je programów.

Modele danych:

Podstawowe struktury danych:

Tablica - jest złożoną strukturą danych, która zawiera zbiór elementów tego samego typu. Każdy element tablicy jest identyfikowany przez jego numer (indeks) oraz posiada wartość.

Stos - struktura liniowa uporządkowanych danych które umożliwiają dostęp tylko do jednego elementu - ostatniego, który został wstawiony (wierzchołek).

Działania na nim można porównać do stosu talerzy: nie można usunąć talerza znajdującego się na dnie stosu nie usuwając wcześniej wszystkich innych. Nie można także dodać nowego talerza gdzieś indziej niż na samą górę. LIFO (last in - first out ).

Kolejka - struktura liniowo uporządkowanych danych w których dodawać nowe dane można jedynie na koniec kolejki, a usuwać z początku. Procedura usunięcia danych z końca kolejki jest taka jak w przypadku stosu, z 1 różnicą, że usuwamy dane od początku, a nie od końca. FIFO (first in - first out).

Wykład z 27-11-2007 Ewolucje programowania

Paradygmaty programowania:

Programowanie proceduralne:

Charakteryzuje się tym, że program musi zawierać pełen opis rozwiązywania problemu (algorytmu) w postaci sekwencji elementarnych czynności (instrukcji).

W programowaniu proceduralnym określa się JAK ma przebiegać proces przetwarzania, aby z wprowadzonych danych otrzymać żądane wyniki.

Z myślą o tym programowaniu zostały zaprojekt. języki: Fortran, Algol, Pascal, C.

Program składa się z 2 części:

Punktem centralnym w programowaniu proceduralnym jest instrukcja.

Program musi zawierać szczegółowy opis kolejnych kroków postępowania zgodnie z przyjętym algorytmem - JAK przetwarzać.

Zaletą podejścia proceduralnego jest to, że wiele pojęć łatwiej jest zaprezentować w postaci procedur niż za pomocą np. deklaracji.

Programowanie deklaratywne:

Jest to styl programowania polegający na określeniu związków (relacji) pomiędzy danymi, a wynikami.

Wymagane jest określenie CO ma zostać przetworzone zamiast JAK ma przebiegać proces przetwarzania.

Omawiany styl programowania opiera się na logice.

Najbardziej popularnym językiem tej klasy jest PROLOG, w którym wykorzystywano klauzulową odmianę logiki (klauzulę Horna), ponieważ język klauzul jest prostszy niż standardowy język logiki.

Zadanie do rozwiązania przedstawione jest w postaci celu, natomiast fakty oraz reguły określają obiekty konieczne do rozwiązania danego problemu oraz związki, jakie między takimi obiektami zachodzą.

Fakt - bezwarunkowo prawdziwe stwierdzenie.

Reguła - warunkowe stwierdzenie o istnieniu pewnych zależności między obiektami.

Na przykład:

Fakt - dziecko (Kain, Ewa) oznacza ,że Kain jest dzieckiem Ewy.

Reguła - matka (X,Y):- kobieta (X), dziecko (X,Y) oznacza, że „X” jest matką „Y” jeśli „X” jest kobietą i „Y” dzieckiem „X”.

W arkuszu kalkulacyjnym - wzory (formuły), funkcja.

Zalety:

Programowanie obiektowe:

Program jest opisem działania zbioru wzajemnie powiązanych obiektów. Obiekty kontaktują się ze sobą za pomocą komunikatów.

Programowanie obiektowe różni się od tradycyjnego programowania tym, że centralnym punktem jest obiekt, a nie instrukcja.

Obiekty:

Zawierają zarówno metody (funkcje), jak i pola (zmienne). Pojawienie się idei obiektu rozwiązało kilka problemów:

Klasy:

Klasa stanowi specyfikację (wzorzec) jednego lub więcej obiektów. Często istnieje potrzeba tworzenia wielu obiektów tego samego typu (tej samej klasy). Np. klasa samochód. Obiekty: Ford, Mercedes, Toyota.

Klasy i obiekty:

Cechy programowania obiektowego:

Abstrakcja - programując abstrahujemy od szczegółów, które na danym etapie nie są istotne

Hermetyzacja (enkapsulacja) - wszystkie dane i funkcje w programie grupujemy wokół klas, udostępniając je jedynie upoważnionym przez nas klasom

Dziedziczenie - tworzenie pewnej klasy zwanej rozszerzoną (ang. Extended) na podstawie innej klasy, zwanej bazową (ang. Base class).

Dziedziczenie łatwo pozwala dodawać nowe cechy i możliwości do istniejących klas. Dzięki temu mechanizmowi można wykorzystać istniejące klasy do innych celów.

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Polimorfizm - polega na traktowaniu obiektów różnych klas w ten sam sposób. Aby to było możliwe rozpatrywane klasy muszą być pochodnymi tej samej klasy bazowej.

W praktyce polimorfizm polega zwykle na wywoływaniu metody, która w rzeczywistości powoduje wykonanie różnych metod dla obiektów różnych klas.

Na przykład wywołanie metody obliczPole() dla obiektu klasy Kwadrat spowodowałoby wywołanie metody z klasy Kwadrat podczas gdy dokładnie to samo wywołanie ale dla obiektu klasy Prostokąt, wywoływałoby inną metodę obliczPole(), z klasy Prostokąt.

Polimorfizm upraszcza projektowanie i implementowanie programu.

Wywołana metoda na rzecz pewnego obiektu, nie musi być zdefiniowana bezpośrednio w klasie opisującej obiekt, ale w którejś z klas nadrzędnych.

Jeśli jednak z jakiegoś powodu metoda stworzona w klasie nadrzędnej nam nie odpowiada, możemy w nowo tworzonej podklasie zdefiniować nową wersję tej metody.

W trakcie wykonywania programu automatycznie dobrana zostaje metoda najbliższa obiektowi, na rzecz którego metoda została wykonana.

Wykład z 11-12-2007 Metodyki programowania

Programowanie ekstremalne - ma na celu wydajne tworzenie małych i średnich „projektów wysokiego ryzyka”, czyli takich, w których nie wiadomo do końca co się tak naprawdę robi i jak to prawidłowo zrobić. Przyświeca temu koncepcja prowadzenie projektu informatycznego, wywodząca się z obserwacji innych projektów, które odniosły sukces.

Podstawą ekstremalnego programowania jest synergia, wynikająca ze stosowania rozmaitych praktyk, które same w sobie mają wiele zalet, lecz mogą być trudne w zastosowaniu. Łączne użycie tych praktyk, ma zapewniać zaniknięcie niedogodności każdej z nich. Podstawowe założenia zostały sformułowane przez Kenta Becka.

Zalecenia:

Sprawy kontrowersyjne:

Programowanie w cyklu kształcenia informatyków:

Złożoność algorytmów

Czynniki wpływające na złożoność algorytmów:

Złożoność obliczeniowa algorytmów - analiza algorytmów:

Złożoność obliczeniowa algorytmu - ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie wprowadzili J. Hartmanis i R.Stearns. Najczęściej przez „zasób” rozumie się czas oraz pamięć, dlatego używa się określeń „złożoność czasowa” i „złożoność pamięciowa”.

Rodzaje złożoności algorytmu:

Funkcja kosztu zasobowego algorytmu - stanowi odwzorowanie zadania w umowne jednostki kosztu algorytmu (np. rozmiar zasobów, jednostki monetarne).

FKz : RZ -> WKz , gdzie FKz - funkcja kosztu zasobowego, Rz - rozmiar zadania, WKz - wartość kosztu zasobowego.

Nie tylko koszty zasobowe są brane pod uwagę. Często analizuje się inne koszty realizacji algorytmów (np. pieniądze).

Złożoność obliczeniowa - rozróżnia się 2 typy złożoności: pesymistyczną (czyli w najgorszym przypadku), oczekiwaną.

Notacja O(f(N)) oznacza złożoność algorytmu rzędu f(N), gdzie „f” to pewna funkcja zmiennej „N”. Jest to funkcja pomnożona przez pewną stałą, dlatego możemy powiedzieć, że np. wyszukiwanie w poprzednim algorytmie wymaga czasu O(N), a wstawianie elementu wymaga stałego czasu O(1).

Używając notacji O() nie jest ważny czas wyrażony w sekundach lecz zależność szybkości działania algorytmu od liczby elementów.

Najczęściej spotykane złożoności: O(1), O(logN), O(N).

Charakterystka wybranych języków programowania

Język programowania jest środkiem umożliwiającym zapis algorytmów w postaci zrozumiałej dla człowieka, a równocześnie przetwarzanej do postaci zrozumiałej dla komputera (maszyny algorytmicznej).

Kod źródłowy programu przetworzenie programu źródłowego w kod maszynowy kod wynikowy programu (w języku maszynowym).

Semiotyka języka programowania - zajmuje się badaniem symboli, znaków. W jej skład wchodzą:

Zapis algorytmu w języku programowania jest traktowany jako zapis formalny. Program komputerowy jest uznawany za jeden z rodzajów modeli matematycznych. Jest to algorytmiczny model zadania, czy też rzeczywistości, którą modelujemy.

Syntaktyka języka programowania - jest częścią ogólnej teorii znaków (semiotyki) i zajmuje się strukturą i formą wyrażeń, a także dopuszczalnymi zmianami ich formy (przekształceniami). Wyróżnia się 2 rodzaje reguł składniowych: reguły formowania (określające zbiór wyrażeń poprawnie zbudowanych na określonym alfabecie języka) i reguły przekształcania.

Najczęściej przyjmuje się, że mamy do czynienia z dwoma podzbiorami syntaktyki:

syntaktyką formalną (która jest rozumiana jako ogólne badania formalne dotyczące języków logiki i matematyki, jak również języków naturalnych) i syntaktyką logiczną (która zajmuje się badaniem języków logiki i matematyki, np. rachunek predykatów, rachunek zdań).

Zapis definicji syntaktyki programowania:

<operator arytmetyczny> ::= + |-|*|/|^|DIV|MOD

<operator logiczny> ::= AND|OR|NOT|XOR|=

<nawias> ::=[|]|(|)|{|}|'|begin|end

Semantyka języka programowania zajmuje się interpretacją formuł zapisanych zgodnie z określonymi regułami syntaktycznymi języka. Tarski zaproponował używanie pojęcia semantyka naukowa dla określenia semantyki zajmującej się formalnym badaniem prawdziwości formuł w zakresie znaczeniowym definiowanego języka. Od lat 70-tych rozwija się tzw. semantyka wartości logicznych.

Kryteria (intuicyjne) oceny języków programowania:

Kod maszynowy

Jedyną zrozumiałą bezpośrednio dla komputera (mikroprocesora) formą przedstawiania instrukcji stanowią liczby binarne (dwójkowe), które dla lepszej czytelności dla człowieka zapisywane są często w postaci liczb szesnastkowych. Program zapisywany w takiej postaci jest nazywany kodem (językiem) maszynowym.

Pierwsza kolumna kodu przedstawia adresy pamięci operacyjnej, a pozostałe kolumny kody.

Języki wyższego rzędu

Niedogodności programowania w Asemblerze doprowadziły do powstania języków programowania wyższego rzędu.

Cechy tych języków:

Pascal - nazwa języka wywodzi się od nazwiska matematyka Blaise'a Pascala, został opracowany w 1971r. na politechnice w Zurychu przez Niklausa Wirtha. Mocnymi stronami tego języka są: możliwość stosowania w nim technik programowania strukturalnego, szeroka klasa algorytmów dająca w sposób naturalny zapisywać się w nim, język jest ścisły ale jednocześnie prosty i czytelny, jest łatwo i efektywnie implementowany. Pascal jest powszechnie stosowany w nauczaniu programowania.

SQL - jest znany jako standardowy język programowania relacyjnych baz danych. Istnieje wiele wersji języka SQL, pierwsza z nich została opracowana w laboratorium IBM w San Jose. Język ten, nazwany pierwotnie Sequel, był stosowany jako część projektu System R, powstającego we wczesnych latach 70-tych. Język Sequel rozwinął się od tego czasu i jego nazwa została zmieniona na SQL (Structure Query Language - Strukturalny Język Zapytań). Większość obecnych systemów baz danych obsługuje język SQL.

C++ , jego autorem jest Bjarne Stroustrup, język powstał w 1979 r. Jest on nadzbiorem, z pewnymi wyjątkami, języka C. Najważniejszą cechą tego języka jest pojęcie klasy, jako typu definiowanego przez użytkownika. Klasy w C++ umożliwiają stosowanie technik programowania obiektowego. Zachowuje on jednak zdolność C do efektywnej współpracy z podstawowymi obiektami sprzętowymi (bitami, bajtami, adresami itp.). C++ jest językiem ogólnego przeznaczenia, jego podstawową dziedziną zastosowań jest programowanie systemowe.

Jest to język, którego nowe i różnorodne właściwości rozbudowane zostały na fundamencie istniejącej już składni - języka C. Z tego powodu jest on nazywany hybrydowym językiem obiektowym.

JAVA - platforma JAVA2 ma trzy wersje:

Platforma .NET

.NET jest platformą stworzoną Microsoft jako odpowiedź na dwa produkty firmy SUN - język JAVA i technologię J2EE.

.NET Framework składa się z maszyny wirtualnej (CLR) oraz biblioteki klas (CLI). Dzięki takiemu projektowi środowiska pojawiła się możliwość pisania programów w różnych językach i kompilacji ich do jednakowego kodu pośredniego (CLI).

Główne języki programowania: C#, Visual Basic, J#, C++

Mimo zapowiedzi Microsoftu, platforma .NET Framework nie jest w pełni przenośna, ponieważ działa jedynie na systemach z rodziny Windows. Dlatego powstały alternatywne projekty:

MONO czyli darmowa implementacja .NET rozwijana przez firmę XIMIAN

DotGNU portable .NET

Wykład z 08-01-2008 Programowanie z wykorzystaniem komponentów wielokrotnego użycia

Programowanie z użyciem wielokrotnym kodu

Założenia:

Użycie wielokrotne funkcji: można wielokrotnie użyć komponenty programowe takie jak pojedyncze funkcje matematyczne.

Użycie wielokrotne komponentów: można wielokrotnie używać komponentów programu użytkowego mających różne rozmiary od podsystemów do pojedynczych obiektów.

Użycie wielokrotne systemów programów użytkowych - można ponownie użyć cały system programów użytkowych przez włączenie go w niezmienionej postaci do innych systemów albo budowę rodziny programów użytkowych działających na różnych platformach lub dostosowanych do potrzeb użytkownika.

Praktyka programowania: użycie wielokrotne funkcji jest uznane w postaci standardowych bibliotek funkcji nadających się do wielokrotnego użytku takich jak biblioteki matematyczne czy graficzne.

Zalety użycia wielokrotnego:

Wymaganie stawiane tworzeniu oprogramowania z użyciem wielokrotnym:

Koszty i kłopoty:

Podejścia do tworzenia programów z użyciem gotowych komponentów:

Generowanie programów: polega na umieszczaniu wielokrotnie używanej wiedzy w systemie generowania programów (w generatorze), który może posługiwać się językiem specyficznym dla dziedziny zastosowania.

W opisie programu użytkowego w abstrakcyjny sposób określa się które komponenty do wielokrotnego użycia mają być wykorzystane.

Typy generatorów:

Programowanie komponentowe:

Komponenty:

Interfejsy komponentów:

Poziomy abstrakcji komponentów:

Frameworks:

Użycie wielokrotne produktów COTS: podejście produktów COTS może być zastosowane do każdego komponentu oferowanego przez zewnętrznego dostawcę.

Rodziny programów użytkowych:

Start

Stop

i=i+1

Int a,b,c

x>0

Tak Nie

x>0

Warunek powtarzania pętli

W

W R

R

R

W

Warunek powtarzania

pętli

W R

R

OSOBA

Student 1 roku

Student

Pracownik administracji

Pracownik naukowy



Wyszukiwarka

Podobne podstrony:
ZARZĄDZANIE-przywodztwo kier - wykład 7, UE IiE ISIZ, Zarzadzanie - Pyka, zarzadzanie wyklady
ZARZĄDZANIE - funkcje i cele- wykład 5, UE IiE ISIZ, Zarzadzanie - Pyka, zarzadzanie wyklady
ZARZĄDZANIE - str org - wykład 6, UE IiE ISIZ, Zarzadzanie - Pyka, zarzadzanie wyklady
ZARZĄDZANIE-przywodztwo kier - wykład 7, UE IiE ISIZ, Zarzadzanie - Pyka, zarzadzanie wyklady
Makroekonomia wykład 2 dr, UE IiE ISIZ, Makroekonomia, Makro 1-3
Makroekonomia wyklad 3 dr K, UE IiE ISIZ, Makroekonomia
Makroekonomia wykład 1 dr, UE IiE ISIZ, Makroekonomia, Makro 1-3
Makroekonomia wykład 3 dr K, UE IiE ISIZ, Makroekonomia, Makro 1-3
sciaga by jacek, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
mat fin, UE IiE ISIZ, Matematyka finansowa - Zeug Żebro
sciaga3, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
pytania wszystkie, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
poziomy, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
sciaga2i, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
siz egz, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
siz- egzamin- ¶ci±ga, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
SIZ-examy, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
CRM, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam
egzam siz, UE IiE ISIZ, Prezentacje - Sroka, Sroczka, sizm i simeb materiały exam

więcej podobnych podstron