Konfiguracja sprzętu i oprogramowania

Algorytmizacja procesów funkcjonowania systemów. Formalizacja i algorytmizacja procesów funkcjonowania systemów - dokument Opis modelu matematycznego

FORMALIZACJA I ALGORYTMIZACJA PROCESU FUNKCJONOWANIA SYSTEMU

KOLEJNOŚĆ TWORZENIA I WDRAŻANIA MASZYN MODELI SYSTEMU

Z rozwojem Informatyka Najskuteczniejszą metodą badania dużych systemów stało się modelowanie maszyn, bez którego nie da się rozwiązać wielu poważnych problemów ekonomicznych. Dlatego jednym z pilnych zadań inżynierów szkolenia jest opanowanie teorii i metod modelowania matematycznego z uwzględnieniem wymogów spójności, pozwalającej nie tylko budować modele badanych obiektów, analizować ich dynamikę i umiejętność sterowania eksperymentować maszynowo z modelem, ale także oceniać w pewnym stopniu adekwatność stworzonych modeli do badanych systemów, granice stosowalności i prawidłowo organizować modelowanie systemów w nowoczesnej technologii komputerowej.

Metodyczne aspekty modelowania. Przed rozważeniem matematycznych, algorytmicznych, programowych i stosowanych aspektów symulacji komputerowej konieczne jest zbadanie ogólnych aspektów metodologicznych dla szerokiej klasy modeli matematycznych obiektów realizowanych w technologii komputerowej. Symulacje z wykorzystaniem technologii komputerowej umożliwiają zbadanie mechanizmu zjawisk zachodzących w rzeczywistym obiekcie przy dużych lub małych prędkościach, gdy w pełnoskalowych eksperymentach z obiektem trudno (lub niemożliwe) jest śledzenie zmian zachodzących w krótkim czasie, lub gdy uzyskanie wiarygodnych wyników wiąże się z długim czasem eksperymentu. W razie potrzeby model maszyny umożliwia niejako „rozciąganie” lub „kompresowanie” czasu rzeczywistego, ponieważ modelowanie maszyny wiąże się z pojęciem czasu systemowego, który różni się od czasu rzeczywistego. Dodatkowo za pomocą symulacji maszyny w systemie dialogowym możliwe jest przeszkolenie personelu pracującego z systemem do podejmowania decyzji w zarządzaniu obiektem, np. przy organizacji gry biznesowej, co pozwala na rozwinięcie niezbędnych umiejętności praktycznych za wdrożenie procesu zarządzania.

Istotą modelowania maszynowego systemu jest przeprowadzenie eksperymentu na komputerze z modelem, który jest pewnym pakietem oprogramowania, który formalnie i (lub) algorytmicznie opisuje zachowanie elementów systemu. S w procesie jego funkcjonowania, tj. w ich interakcji ze sobą i środowiskiem zewnętrznym MI. Modelowanie maszyn jest z powodzeniem stosowane w przypadkach, w których trudno jednoznacznie sformułować kryterium oceny jakości funkcjonowania systemu, a jego celu nie da się w pełni sformalizować, gdyż pozwala połączyć możliwości programowe i sprzętowe komputera z zdolność osoby do myślenia w kategoriach nieformalnych. W przyszłości główna uwaga zostanie zwrócona na modelowanie systemów na komputerach uniwersalnych jako najskuteczniejsze narzędzie do badań i rozwoju systemów różnych poziomów.

Wymagania użytkownika dotyczące modelu. Sformułujmy podstawowe wymagania dla modelu m proces działania systemu S.

    Kompletność modelu powinna zapewnić użytkownikowi możliwość uzyskania niezbędnego zestawu oszacowań charakterystyk systemu z wymaganą dokładnością i niezawodnością.

    Elastyczność modelu powinna umożliwiać odtworzenie różnych sytuacji przy zmianie struktury, algorytmów i parametrów systemu.

    Czas opracowania i wdrożenia modelu dużego systemu powinien być jak najkrótszy, z uwzględnieniem ograniczeń dostępnych zasobów.

    Struktura modelu musi być blokowa, tj. umożliwiać wymianę, dodawanie i usuwanie niektórych części bez przerabiania całego modelu.

    Wsparcie informacyjne powinno być okazją efektywna praca modele z bazą danych systemów określonej klasy.

    Program i środki techniczne powinien zapewnić sprawną (pod względem szybkości i pamięci) maszynową implementację modelu oraz wygodną komunikację z użytkownikiem.

    Celowe (planowane) eksperymenty komputerowe z modelem systemu powinny być realizowane w podejściu analityczno-symulacyjnym w obecności ograniczonych zasobów obliczeniowych.

Biorąc pod uwagę te wymagania, bierzemy pod uwagę główne przepisy, które obowiązują podczas modelowania systemów na komputerze S, a także ich podsystemy i elementy. W maszynowej symulacji systemu S charakterystyka procesu jego funkcjonowania określana jest na podstawie modelu M, zbudowany na podstawie dostępnych wstępnych informacji o modelowanym obiekcie. Po otrzymaniu Nowa informacja o obiekcie, jego model jest korygowany i dopracowywany z uwzględnieniem nowych informacji, tj. proces modelowania, w tym opracowanie i implementacja maszynowa modelu, jest iteracyjny. Ten iteracyjny proces trwa aż do uzyskania modelu. m, które można uznać za adekwatne w ramach rozwiązania problemu badań i projektowania systemu S.

Komputerowe modelowanie systemów może być stosowane w następujących przypadkach:

a) studiować system S przed jego zaprojektowaniem, w celu określenia wrażliwości charakterystyk na zmiany struktury, algorytmów i parametrów obiektu modelowania oraz środowiska zewnętrznego;

b) na etapie projektowania systemu S do analizy i syntezy różnych wariantów systemu i wyboru spośród konkurencyjnych wariantu, który spełniałby określone kryterium oceny efektywności systemu przy przyjętych ograniczeniach;

c) po zakończeniu projektowania i wdrożenia systemu, tj. w trakcie jego eksploatacji, uzyskanie informacji uzupełniających wyniki pełnoskalowych testów (eksploatacji) rzeczywistego systemu oraz uzyskanie prognoz ewolucji (rozwoju) system na czas.

Istnieją ogólne przepisy, które mają zastosowanie do wszystkich powyższych przypadków symulacji maszynowej. Nawet w przypadkach, w których poszczególne metody modelowania różnią się od siebie i występują różne modyfikacje modeli, np. w zakresie maszynowej implementacji algorytmów modelowania z wykorzystaniem określonych narzędzi programowych i sprzętowych, w praktyce modelowania systemowego można sformułować ogólne zasady, które mogą stanowić podstawę metodologii symulacji maszyn.

Etapy modelowania systemu. Rozważ główne etapy modelowania systemu S, które obejmują: budynek model koncepcyjny systemy i ich formalizacja; algorytmizacja modelu systemu i jego maszynowa implementacja; pozyskiwanie i interpretacja wyników modelowania systemów.

Ryż. 1. Związek między etapami modelowania systemu

Zależność pomiędzy wymienionymi etapami modelowania systemu a ich elementami składowymi (podetapami) można przedstawić w postaci diagramu sieciowego przedstawionego na rys.1. 1. Wymieniamy te podetapy: 1.1 - postawienie problemu modelowania maszynowego systemu; 1.2 - analiza problemu modelowania systemu; 1.3 - określenie wymagań dotyczących wstępnych informacji o modelowanym obiekcie i organizacji jego gromadzenia; 1.4 - stawianie hipotez i przyjmowanie założeń; 1.5 - definicja parametrów i zmiennych modelu; 1.6 - ustalenie głównej treści modelu; 1.7 - uzasadnienie kryteriów oceny skuteczności systemu; 1.8 - definicja procedur aproksymacyjnych; 1.9 - opis modelu koncepcyjnego systemu; 1.10 - walidacja modelu koncepcyjnego; 1.11 - przygotowanie dokumentacji technicznej do pierwszego etapu; 2.1 - budynek schemat logiczny modele; 2.2 - uzyskanie współczynników matematycznych; 2.3 - sprawdzenie niezawodności modelu systemu; 2.4 - dobór narzędzi obliczeniowych do modelowania; 2.5 - sporządzenie planu realizacji prac programistycznych; 2.6 - budowanie schematu programu; 2.7 - sprawdzenie poprawności schematu programu; 2.8 - programowanie modelu; 2.9 - weryfikacja wiarygodności programu; 2.10 - przygotowanie dokumentacji technicznej do II etapu; 3.1 - planowanie eksperymentu maszynowego z modelem systemu; 3.2 - określenie wymagań dla urządzeń obliczeniowych; 3.3 - wykonywanie obliczeń roboczych; 3.4 - analiza wyników modelowania systemu; 3.5 - prezentacja wyników symulacji; 3.6 - interpretacja wyników symulacji; 3.7 - podsumowanie wyników symulacji i wydanie rekomendacji; 3.8 - sporządzenie dokumentacji technicznej do III etapu.

Tym samym proces modelowania systemu S sprowadza się do realizacji wymienionych podetapów, pogrupowanych w trzy etapy. Na etapie budowy modelu koncepcyjnego
i jego sformalizowanie, przeprowadza się badanie modelowanego obiektu pod kątem wyróżnienia głównych składowych procesu jego funkcjonowania, wyznacza się niezbędne przybliżenia i uzyskuje się uogólniony schemat modelu systemu S, który jest przekształcany w model maszyny
na drugim etapie modelowania przez algorytmizację sekwencyjną i programowanie modelu. Ostatni trzeci etap modelowania systemu sprowadza się do wykonania, zgodnie z otrzymanym planem, obliczeń roboczych na komputerze z wykorzystaniem wybranego oprogramowania i sprzętu, uzyskania i interpretacji wyników modelowania systemu S uwzględnienie wpływu środowiska zewnętrznego MI. Oczywiście przy budowaniu modelu i jego maszynowej implementacji, gdy uzyskuje się nowe informacje, możliwe jest zrewidowanie wcześniej podjętych decyzji, tj. proces modelowania jest iteracyjny. Rozważmy bardziej szczegółowo zawartość każdego z etapów.

BUDOWA MODELU KONCEPCYJNEGO SYSTEMU I JEGO FORMALIZACJA

Na pierwszym etapie modelowania maszyny - budowa model koncepcyjny
systemy S i jego formalizacja - formułuje się model i konstruuje jego schemat formalny, czyli głównym celem tego etapu jest przejście od sensownego opisu obiektu do jego modelu matematycznego, czyli procesu formalizacji. Symulacja systemów na komputerze jest obecnie najbardziej wszechstronną i efektywną metodą oceny cech dużych systemów. Najbardziej odpowiedzialne i najmniej sformalizowane momenty w tej pracy to granica między systemem S i środowisko zewnętrzne MI, uproszczenie opisu systemu i zbudowanie najpierw koncepcyjnego, a następnie formalnego modelu systemu. Model musi być adekwatny, w przeciwnym razie niemożliwe jest uzyskanie pozytywnych wyników symulacji, czyli badanie procesu funkcjonowania systemu na nieodpowiednim modelu traci sens. Pod odpowiedni model zrozumiemy model, który z pewnym przybliżeniem na poziomie rozumienia modelowanego systemu S programista modelu odzwierciedla proces jego funkcjonowania w środowisku zewnętrznym mi.

Przejście od opisu do modelu blokowego. Najbardziej racjonalne jest zbudowanie modelu funkcjonowania systemu na zasadzie bloku. W tym przypadku można wyróżnić trzy autonomiczne grupy bloków takiego modelu. Bloki z pierwszej grupy są symulatorem wpływów środowiskowych mi na system S; bloki z drugiej grupy są właściwie modelem procesu funkcjonowania badanego systemu S; bloki trzeciej grupy- pomocnicze i służą do maszynowej realizacji bloków dwóch pierwszych grup oraz do utrwalania i obróbki wyników symulacji.

Rozważmy mechanizm przejścia od opisu procesu funkcjonowania jakiegoś hipotetycznego systemu do modelu tego procesu. Dla jasności przedstawiamy ideę opisywania właściwości procesu funkcjonowania systemu S, czyli o jego modelu koncepcyjnym
w jaki sposób zbiór niektórych elementów warunkowo przedstawionych za pomocą kwadratów, jak pokazano na ryc. 2, a. Kwadraty te opisują niektóre podprocesy badanego procesu funkcjonowania systemu S, wpływ środowiska mi itp. Przejście od opisu systemu do jego modelu w tej interpretacji sprowadza się do wyłączenia z rozważania niektórych pomniejszych elementów opisu (elementów 5-8, 39-41, 43-47 ). Zakłada się, że nie mają one istotnego wpływu na przebieg procesów badanych za pomocą modelu. Część elementów ( 14, 15, 28, 29, 42 ) zastąpione linkami pasywnymi , odzwierciedlające wewnętrzne właściwości systemu (ryc. 2, b). Niektóre elementy 1-4, 10, 11, 24, 25 zostaje zastąpiony przez czynniki wejściowe x i wpływy środowiskowe . Możliwe są również substytucje łączone: elementy 9, 18, 19, 32, 33 zastąpiony przez link pasywny oraz wpływ środowiska zewnętrznego mi . Elementy 22, 23, 36, 37 odzwierciedlają wpływ systemu na środowisko, tak.

Ryż. 2. Model systemu: a - konceptualistyczny; b - blok

Pozostałe elementy systemu S pogrupowane w bloki
, odzwierciedlające proces funkcjonowania badanego systemu. Każdy z tych bloków jest wystarczająco autonomiczny, co wyraża się w minimalnej liczbie połączeń między nimi: zachowanie tych bloków musi być dobrze przestudiowane i dla każdego z nich budowany jest model matematyczny, który z kolei może zawierać pewną liczbę podbloków. wybudowany model blokowy proces funkcjonowania badanego systemu S ma na celu analizę charakterystyki tego procesu, którą można przeprowadzić przy maszynowej implementacji powstałego modelu.

Matematyczne modele procesów. Po przejściu z opisu symulowanego systemu S do jej modelki
, skonstruowane zgodnie z zasadą blokową, konieczne jest budowanie modeli matematycznych procesów zachodzących w różnych blokach. Model matematyczny to zbiór zależności (na przykład równania, warunki logiczne, operatory), które określają charakterystykę procesu funkcjonowania systemu S w zależności od struktury systemu, algorytmów zachowania, parametrów systemu, wpływów środowiskowych MI, warunki początkowe i czas. Model matematyczny jest wynikiem formalizacji procesu funkcjonowania badanego systemu, tj. skonstruowanie formalnego (matematycznego) opisu procesu z niezbędnym w ramach badania stopniem zbliżenia do rzeczywistości.

Aby zilustrować możliwości formalizacji, rozważ proces funkcjonowania pewnego hipotetycznego systemu S, które można podzielić na T podsystemy z charakterystykami, z parametrami, w obecności działań wejściowych i wpływy środowiska. Następnie układ relacji formy

(1)

Jeśli funkcje
byłyby znane, to relacje (1) okazałyby się idealnym modelem matematycznym procesu funkcjonowania systemu S. Jednak w praktyce uzyskanie modelu jest wystarczające prosta forma dla dużych systemów jest najczęściej niemożliwy, więc zwykle proces funkcjonowania systemu S w rozbiciu na szereg elementarnych podprocesów. Jednocześnie konieczne jest przeprowadzenie podziału na podprocesy w taki sposób, aby budowa modeli poszczególnych podprocesów była elementarna i nie powodowała trudności w formalizacji. Zatem na tym etapie istotą formalizacji podprocesów będzie wybór typowych schematów matematycznych. Na przykład dla procesów stochastycznych mogą to być schematy automatów probabilistycznych (schematy P), schematy kolejkowe (Q-schemat) itp., które dość dokładnie opisują główne cechy rzeczywistych zjawisk składających się na podprocesy, z punktu widzenia rozwiązywanych problemów aplikacyjnych.

Zatem formalizacja procesu funkcjonowania dowolnego systemu S musi być poprzedzone badaniem jego składowych zjawisk. W efekcie pojawia się sensowny opis procesu, będący pierwszą próbą jednoznacznego określenia wzorców charakterystycznych dla badanego procesu oraz sformułowania zastosowanego problemu. Wymowny opis jest materiałem źródłowym dla kolejnych etapów formalizacji: budowy sformalizowanego schematu procesu funkcjonowania systemu oraz matematycznego modelu tego procesu. Aby zasymulować proces funkcjonowania systemu na komputerze, konieczne jest przekształcenie modelu matematycznego procesu na odpowiedni algorytm modelowania i program komputerowy.

Podetapy pierwszego etapu modelowania. Rozważmy bardziej szczegółowo główne podetapy budowania modelu koncepcyjnego
system i jego formalizacja (patrz rys. 1).

1.1. Przedstawienie problemu symulacji maszynowej systemu. Podano jasne sformułowanie zadania badania konkretnego systemu. S i skupia się na takich zagadnieniach jak: a) rozpoznanie istnienia problemu i potrzeby symulacji maszynowej; b) wybór metod rozwiązania problemu z uwzględnieniem dostępnych zasobów; c) określenie zakresu zadania i możliwości jego podziału na podzadania.

Niezbędna jest również odpowiedź na pytanie o priorytet rozwiązywania różnych podzadań, ocena skuteczności możliwych metod matematycznych oraz narzędzi programowych i sprzętowych do ich rozwiązania. Uważne przestudiowanie tych zagadnień pozwala nam sformułować zadanie opracowania i rozpocząć jego realizację. W takim przypadku możliwe jest zrewidowanie początkowego sformułowania problemu w trakcie modelowania.

1.2. Analiza problemu modelowania systemów. Analiza problemu pomaga przezwyciężyć trudności, które pojawią się w przyszłości przy jego rozwiązywaniu poprzez modelowanie. W rozważanym drugim etapie główna praca sprowadza się właśnie do analizy, w tym: a) wyboru kryteriów oceny efektywności procesu funkcjonowania systemu S; b) definicja endogenicznych i egzogenicznych zmiennych modelu M; c) wybór możliwych metod identyfikacji; G) wykonanie wstępnej analizy treści drugiego etapu algorytmizacji modelu systemu i jego maszynowej implementacji; e) wykonanie wstępnej analizy treści trzeciego etapu pozyskiwania i interpretacji wyników modelowania systemu.

1.3. Określenie wymagań dotyczących wstępnych informacji o modelowanym obiekcie i organizacji jego gromadzenia. Po ustaleniu problemu z modelowaniem systemu S określane są wymagania dotyczące informacji, z których uzyskuje się jakościowe i ilościowe dane wyjściowe niezbędne do rozwiązania tego problemu. Dane te pomagają dogłębnie zrozumieć istotę problemu, metody jego rozwiązania. W związku z tym na tym podetapie dokonuje się: a) wyboru niezbędnych informacji o systemie; S i środowisko MI; b) przygotowanie danych a priori; c) analiza dostępnych danych eksperymentalnych; d) wybór metod i środków wstępnego przetwarzania informacji o systemie.

Należy przy tym pamiętać, że zarówno adekwatność modelu, jak i wiarygodność wyników symulacji zależy od jakości początkowej informacji o przedmiocie modelowania.

1.4. Stawianie hipotez i przyjmowanie założeń. Hipotezy przy budowaniu modelu systemu S służą do wypełnienia „luk” w zrozumieniu problemu przez badacza. Stawiane są również hipotezy dotyczące możliwych wyników modelowania systemu S, którego ważność sprawdzana jest podczas eksperymentu maszynowego. Założenia zakładają, że niektóre dane są nieznane lub nie można ich uzyskać. Można postawić założenia dotyczące znanych danych, które nie spełniają wymagań do rozwiązania problemu. Założenia pozwalają na przeprowadzenie uproszczeń modelu zgodnie z wybranym poziomem modelowania. Przy stawianiu hipotez i formułowaniu założeń brane są pod uwagę następujące czynniki: a) ilość informacji dostępnych do rozwiązywania problemów; b) podzadania, dla których informacje są niewystarczające; c) ograniczenia zasobów czasowych na rozwiązanie problemu; d) oczekiwane wyniki symulacji.

Tak więc w trakcie pracy z modelem systemu S możliwy jest wielokrotny powrót do tego podetapu, w zależności od uzyskanych wyników symulacji i nowych informacji o obiekcie.

1.5. Definicja parametrów i zmiennych modelu. Przed przystąpieniem do opisu modelu matematycznego konieczne jest określenie parametrów układu
, zmienne wejściowe i wyjściowe
,
, wpływ środowiska
. Ostatecznym celem tego podetapu jest przygotowanie do budowy modelu matematycznego systemu S, funkcjonowanie w środowisku zewnętrznym MI, dla których konieczne jest uwzględnienie wszystkich parametrów i zmiennych modelu oraz ocena stopnia ich wpływu na proces funkcjonowania systemu jako całości. Opis każdego parametru i zmiennej powinien być podany w następującej formie: a) definicja i krótki opis; b) oznaczenie symbolu i jednostkę miary; c) zakres zmian; d) miejsce zastosowania we wzorze.

1.6. Ustalenie głównej treści modelu. Na tym podetapie ustalana jest główna treść modelu oraz wybierana jest metoda budowy modelu systemu, które są opracowywane na podstawie przyjętych hipotez i założeń. W tym przypadku brane są pod uwagę następujące cechy: a) sformułowanie problemu modelowania systemu; b) struktura systemu S i algorytmy jego zachowania, wpływ środowiska zewnętrznego MI; c) możliwe metody i środki rozwiązania problemu modelowania.

1.7. Uzasadnienie kryteriów oceny efektywności systemu. Aby ocenić jakość procesu funkcjonowania symulowanego systemu S konieczne jest wybranie pewnego zestawu kryteriów oceny sprawności, tzn. w ujęciu matematycznym problem sprowadza się do uzyskania wskaźnika oceny sprawności w funkcji parametrów i zmiennych systemu. Funkcja ta jest powierzchnią odpowiedzi w badanym obszarze zmian parametrów i zmiennych oraz pozwala na określenie odpowiedzi układu. Wydajność systemu S można oszacować za pomocą kryteriów całkowych lub cząstkowych, których wybór zależy od rozważanego problemu.

1.8. Definicja procedur aproksymacyjnych. Aby przybliżyć rzeczywiste procesy zachodzące w systemie S, Powszechnie stosowane są trzy rodzaje procedur: a) deterministyczne; b) probabilistyczne; c) wyznaczenie wartości średnich.

Na procedura deterministyczna wyniki symulacji są jednoznacznie określone przez dany zestaw działań wejściowych, parametrów i zmiennych systemu S. W tym przypadku nie ma elementów losowych, które wpływają na wyniki symulacji. probabilistyczny(losowo) procedura jest używany, gdy elementy losowe, w tym wpływy środowiskowe MI, wpływają na charakterystykę procesu funkcjonowania systemu S i kiedy konieczne jest uzyskanie informacji o prawach rozkładu zmiennych wyjściowych. Procedura wyznaczania wartości średnich jest używany, gdy podczas modelowania systemu interesujące są średnie wartości zmiennych wyjściowych w obecności elementów losowych.

1.9. Opis modelu koncepcyjnego systemu. Na tym podetapie budowania modelu systemu: a) opisano model koncepcyjny
w abstrakcyjnych terminach i pojęciach; b) opis modelu podano przy użyciu typowych schematów matematycznych; c) hipotezy i założenia są ostatecznie akceptowane; d) wybór procedury aproksymacji rzeczywistych procesów przy budowie modelu jest uzasadniony. Dlatego na tym podetapie przeprowadzana jest szczegółowa analiza problemu, rozważane są możliwe metody jego rozwiązania oraz podany jest szczegółowy opis modelu koncepcyjnego.
, który jest następnie wykorzystywany w drugim etapie symulacji.

1.10. Walidacja modelu koncepcyjnego. Po modelu koncepcyjnym
opisane, konieczne jest sprawdzenie poprawności niektórych koncepcji modelu przed przystąpieniem do kolejnego etapu modelowania systemu S. Sprawdzenie rzetelności modelu pojęciowego jest dość trudne, ponieważ proces jego budowy jest heurystyczny i taki model jest opisywany w abstrakcyjnych terminach i pojęciach. Jedna z metod walidacji modelu
- zastosowanie operacji przejścia odwrotnego, co pozwala na analizę modelu, powrót do przyjętych przybliżeń i na koniec ponowne rozważenie rzeczywistych procesów zachodzących w symulowanym systemie S. Walidacja modelu koncepcyjnego
powinna zawierać: a) weryfikację intencji modelu; b) ocena wiarygodności wstępnych informacji; c) rozważenie sformułowania problemu modelowania; d) analiza przyjętych przybliżeń; e) badanie hipotez i założeń.

Dopiero po dokładnym sprawdzeniu modelu koncepcyjnego
należy przejść do etapu maszynowej implementacji modelu, ponieważ błędy w modelu
nie zapewniają wiarygodnych wyników symulacji.

1.11. Przygotowanie dokumentacji technicznej do pierwszego etapu. V koniec fazy budowania modelu koncepcyjnego
i jego sformalizowanie sporządzany jest raport techniczny dla etapu, który zawiera: a) szczegółowe przedstawienie problemu modelowania systemu S; b) analiza problemu modelowania systemu; c) kryteria oceny skuteczności systemu; d) parametry i zmienne modelu systemu; e) hipotezy i założenia przyjęte przy konstrukcji modelu; f) opis modelu w abstrakcyjnych terminach i pojęciach; g) opis oczekiwanych wyników symulacji.

Podetapy pierwszego etapu modelowania. Algorytmizacja modeli systemów i ich implementacja maszynowa

Informatyka, cybernetyka i programowanie

Formy reprezentacji algorytmów modelowania Podetapy pierwszego etapu modelowania Rozważmy bardziej szczegółowo główne podetapy konstruowania modelu pojęciowego systemu MC i jego formalizacji, patrz sformułowanie celu i sformułowanie problem symulacji komputerowej systemu. Podano jasne sformułowanie zadania celu i sformułowanie studium konkretnego układu S, przy czym główną uwagę zwrócono na takie zagadnienia jak: rozpoznanie istnienia celu i potrzeby symulacji komputerowej; b wybór metod rozwiązania problemu z uwzględnieniem dostępnych zasobów; do definicji...

Wykład 12. Podetapy pierwszego etapu modelowania. Algorytmizacja modeli systemów i ich implementacja maszynowa. Zasady budowy algorytmów modelowania. Formy reprezentacji algorytmów modelowania

Podetapy pierwszego etapu modelowania

Rozważmy bardziej szczegółowo główne podetapy budowania modelu koncepcyjnego M K system i jego formalizacja (patrz rys. 3.1)

1.1. sformułowanie celu i sformułowanie problemu modelowania maszynowego systemu.Podano jasne sformułowanie zadania celu i sformułowanie badania konkretnego systemu. S nacisk kładziony jest na takie kwestie, jak: a) rozpoznanie istnienia celu i potrzeby symulacji maszyny; b) wybór metod rozwiązania problemu z uwzględnieniem dostępnych zasobów; c) określenie zakresu zadania i możliwości jego podziału na podzadania. W procesie modelowania możliwa jest korekta wstępnego sformułowania problemu, w zależności od celu modelowania i celu funkcjonowania systemu.

1.2. Analiza problemu modelowania systemów.Analiza obejmuje następujące pytania: a) wybór kryteriów oceny efektywności procesu funkcjonowania systemu S ; b) definicja endogenicznych i egzogenicznych zmiennych modelu m ; c) wybór możliwych metod identyfikacji;
d) wykonanie wstępnej analizy treści drugiego etapu algorytmizacji modelu systemu i jego maszynowej implementacji; e) wykonanie wstępnej analizy treści trzeciego etapu pozyskiwania i interpretacji wyników modelowania systemu.

1.3. Określenie wymagań dotyczących wstępnych informacji o modelowanym obiekcie i organizacji jego gromadzenia.Po ustaleniu problemu z modelowaniem systemu S określane są wymagania dotyczące informacji, z których uzyskuje się jakościowe i ilościowe dane wyjściowe niezbędne do rozwiązania tego problemu. Ten podetap realizowany jest:
a) wybór niezbędnych informacji o systemie
S i środowisko E ;
b) przygotowanie danych a priori; c) analiza dostępnych danych eksperymentalnych; d) wybór metod i środków wstępnego przetwarzania informacji o systemie.

1.4. Stawianie hipotez i przyjmowanie założeń.Hipotezy przy budowaniu modelu systemu S służą do wypełnienia „luk” w zrozumieniu problemu przez badacza. Stawiane są również hipotezy dotyczące możliwych wyników modelowania systemu S, którego ważność sprawdzana jest podczas eksperymentu maszynowego. Założenia zakładają, że niektóre dane są nieznane lub nie można ich uzyskać. Można postawić założenia dotyczące znanych danych, które nie spełniają wymagań do rozwiązania problemu. Założenia pozwalają na przeprowadzenie uproszczeń modelu zgodnie z wybranym poziomem modelowania. Przy stawianiu hipotez i formułowaniu założeń brane są pod uwagę następujące czynniki: a) ilość informacji dostępnych do rozwiązywania problemów; b) podzadania, dla których informacje są niewystarczające; c) ograniczenia zasobów czasowych na rozwiązywanie problemów; d) oczekiwane wyniki symulacji.

1.5. Definicja parametrów i zmiennych modelu.Przed przystąpieniem do opisu modelu matematycznego konieczne jest określenie parametrów układu, zmienne wejściowe i wyjściowe, wpływ środowiska zewnętrznego i ocenić stopień ich wpływu na proces funkcjonowania systemu jako całości. Opis każdego parametru i zmiennej należy podać w postaci: a) definicja i krótki opis; b) oznaczenie symbolu i jednostkę miary; c) zakres zmian; d) miejsce zastosowania we wzorze.

1.6. Ustalenie głównej treści modelu.Na tym podetapie ustalana jest główna treść modelu oraz wybierana jest metoda budowy modelu systemu, które są opracowywane na podstawie przyjętych hipotez i założeń. Uwzględnia to następujące cechy:
a) sformułowanie celu i sformułowanie problemu modelowania systemu;
b) struktura systemu
S i algorytmy jego zachowania, wpływ środowiska zewnętrznego MI; c) możliwe metody i środki rozwiązania problemu modelowania.

1.7. Uzasadnienie kryteriów oceny efektywności systemu.Do oceny jakości procesu funkcjonowania symulowanego systemu konieczne jest określenie zestawu kryteriów oceny efektywności w funkcji parametrów i zmiennych systemu. Funkcja ta jest powierzchnią odpowiedzi w badanym obszarze zmian parametrów i zmiennych oraz pozwala na określenie odpowiedzi układu.

1.8. Definicja procedur aproksymacyjnych.Aby przybliżyć rzeczywiste procesy zachodzące w systemie S, Powszechnie stosowane są trzy rodzaje procedur: a) deterministyczne; b) probabilistyczne; c) wyznaczenie wartości średnich.

Dzięki procedurze deterministycznej wyniki symulacji są jednoznacznie określone przez dany zestaw działań wejściowych, parametrów i zmiennych systemu S. W tym przypadku nie ma elementów losowych, które wpływają na wyniki symulacji. Procedurę probabilistyczną (randomizowaną) stosuje się, gdy elementy losowe, w tym wpływ środowiska zewnętrznego MI, wpływają na charakterystykę procesu funkcjonowania systemu S i kiedy konieczne jest uzyskanie informacji o prawach rozkładu zmiennych wyjściowych. Procedurę wyznaczania wartości średnich stosuje się, gdy podczas modelowania systemu interesujące są średnie wartości zmiennych wyjściowych przy obecności elementów losowych.

1.9. Opis modelu koncepcyjnego systemu.Na tym podetapie budowania modelu systemu: a) opisano model koncepcyjny M K w abstrakcyjnych terminach i pojęciach; b) ustawiono funkcję docelową; c) opis modelu podano przy użyciu typowych schematów matematycznych;
d) ostatecznie przyjęto hipotezy i założenia; e) wybór procedury aproksymacji rzeczywistych procesów przy budowie modelu jest uzasadniony.

1.10. Walidacja modelu koncepcyjnego.Po modelu koncepcyjnym M K opisane, konieczne jest sprawdzenie poprawności niektórych koncepcji modelu przed przystąpieniem do kolejnego etapu modelowania systemu S. Jedna z metod walidacji modelu M K : wykorzystanie operacji przejścia odwrotnego, które pozwalają na analizę modelu, powrót do przyjętych przybliżeń, a na koniec ponowne rozważenie rzeczywistych procesów zachodzących w symulowanym systemie. Walidacja modelu koncepcyjnego M K powinna zawierać: a) weryfikację intencji modelu; b) ocena wiarygodności wstępnych informacji; c) rozważenie sformułowania problemu modelowania; d) analiza przyjętych przybliżeń; e) badanie hipotez i założeń.

1.11. Przygotowanie dokumentacji technicznej do pierwszego etapu.Pod koniec fazy budowania modelu koncepcyjnego M K i jego sformalizowanie sporządzany jest raport techniczny etapu, który zawiera:
a) szczegółowe przedstawienie problemu modelowania systemu
S; b) analiza problemu modelowania systemu; c) kryteria oceny skuteczności systemu;
d) parametry i zmienne modelu systemu; e) hipotezy i założenia przyjęte przy konstrukcji modelu; f) opis modelu w abstrakcyjnych terminach i pojęciach; g) opis oczekiwanych wyników symulacji systemu
S.

3.3. Algorytmizacja modeli systemów i ich implementacja maszynowa

W drugim etapie modelowania - etapie algorytmizacji modelu i jego maszynowej implementacji - utworzony w pierwszym etapie model matematyczny jest wcielany w konkretny model maszyny.

Zasady konstruowania algorytmów modelowania

Proces działania systemu S można uznać za sukcesywną zmianę jego stanów w przestrzeni dwuwymiarowej. Oczywiście zadanie zamodelowania procesu funkcjonowania badanego systemu S jest budowa funkcji z , na podstawie którego można obliczyć interesujące cechy procesu funkcjonowania systemu. Aby to zrobić, muszą istnieć relacje łączące funkcje z ze zmiennymi, parametrami i czasem, a także warunkami początkowymi w chwili czasu.

Dla systemu deterministycznego, w którym nie ma czynników losowych, stan procesu w danym momencie można jednoznacznie określić na podstawie relacji modelu matematycznego przy użyciu znanych warunków początkowych. Jeśli krok jest wystarczająco mały, to w ten sposób można uzyskać wartości przybliżone z .

Dla systemu stochastycznego, tych. system, na który mają wpływ czynniki losowe, funkcja stanów procesu z w chwili czasu i zależności modelu, wyznacz tylko rozkład prawdopodobieństwa dla chwili czasu. W ogólnym przypadku warunki początkowe mogą być również losowe, określone przez odpowiedni rozkład prawdopodobieństwa. W tym przypadku struktura algorytmu modelowania układów stochastycznych odpowiada układowi deterministycznemu. Tylko zamiast stanu konieczne jest obliczenie rozkładu prawdopodobieństwa dla możliwych stanów.

Ta zasada konstruowania algorytmów modelowania nazywa się zasada. To najbardziej uniwersalna zasada, która pozwala określić kolejne stany procesu funkcjonowania systemu. S w określonych odstępach czasu. Jednak z punktu widzenia kosztów czasu maszyn czasami okazuje się to nieopłacalne.

Rozważając procesy funkcjonowania niektórych systemów, można stwierdzić, że charakteryzują się one dwoma rodzajami stanów: 1) specjalnymi, tkwiącymi w procesie funkcjonowania systemu tylko w określonych momentach czasu (momenty odbioru danych wejściowych). lub działania kontrolne, zakłócenia środowiskowe itp.); 2) nie wyjątkowy, w którym cały proces trwa przez cały czas. Stany specjalne charakteryzują się również tym, że stan funkcjonuje w tych momentach zmiany czasu gwałtownie, a pomiędzy stanami specjalnymi zmiana współrzędnych następuje płynnie i w sposób ciągły lub w ogóle nie występuje. Tak więc po symulacji systemu S dopiero poza jej stanami specjalnymi w tych momentach czasu, w których te stany zachodzą, można uzyskać informacje niezbędne do skonstruowania funkcji. Oczywiście dla opisywanego typu systemów algorytmy modelowania mogą być konstruowane zgodnie z „zasadą stanów specjalnych”. Oznacz skok (przekaźnik) zmiany stanu z jak , oraz „zasada stanów specjalnych” jako zasada .

„Zasada” umożliwia wielu systemom znaczne obniżenie kosztów czasu komputera na implementację algorytmów modelowania w porównaniu z „zasadą”. Logika konstruowania algorytmu modelowania realizującego „zasadę” różni się od rozważanej dla „zasady” tylko tym, że zawiera procedurę wyznaczania momentu czasu odpowiadającego kolejnemu szczególnemu stanowi systemu S. Do badania procesu funkcjonowania dużych systemów racjonalne jest wykorzystanie połączonej zasady konstruowania algorytmów modelowania, które łączą zalety każdej z rozważanych zasad.

Formy reprezentacji algorytmów modelowania

Wygodną formą reprezentacji logicznej struktury modeli jest diagram. Na różnych etapach modelowania kompilowane są uogólnione i szczegółowe schematy logiczne algorytmów modelowania, a także schematy programowe.

Uogólnione (powiększone) schemat algorytmu modelowaniazestawy porządek ogólny działania podczas modelowania systemów bez wyjaśniania szczegółów. Uogólniony schemat pokazuje, co należy zrobić na kolejnym etapie modelowania.

Szczegółowy schemat algorytmu modelowaniazawiera udoskonalenia, których nie ma w schemacie uogólnionym. Szczegółowy diagram pokazuje nie tylko, co należy zrobić na kolejnym etapie modelowania systemu, ale także jak to zrobić.

Schemat logiczny algorytmu modelowaniareprezentuje logiczną strukturę modelu procesowego funkcjonowania systemu S. Schemat logiczny wskazuje uporządkowaną w czasie sekwencję operacji logicznych związanych z rozwiązaniem problemu modelowania.

Schemat programu wyświetla kolejność wdrażanie oprogramowania algorytm modelowania przy użyciu określonego oprogramowania i języka algorytmicznego.

Schemat logiczny algorytmu oraz schemat programu można wykonać zarówno w powiększonej, jak i szczegółowej formie. Symbole najczęściej używane w praktyce modelowania komputerowego pokazano na ryc. 3.3, który pokazuje główne, specyficzne i specjalne symbole procesu. Należą do nich: główny bohater: a - proces; symbole specyficzne dla procesu: b - rozwiązanie; c - przygotowanie; g - uprzednio ustalony proces; e- ręczna obsługa; Symbole specjalne: e - złącze; g - terminator.

Przykładowy obraz diagramu algorytmu modelowania pokazano na ryc. 3.3, h .

Zazwyczaj schemat jest najwygodniejszą formą przedstawienia struktury algorytmów modelowania, na przykład w postaci diagramy wykresów (ryc. 3.3, i). Tutaj - początek - koniec - obliczenia - formacja - sprawdzenie stanu,- lada, - wydanie wyniku, gdzie g to całkowita liczba instrukcji algorytmów modelowania. Jako wyjaśnienie wykresu grafowego algorytmu, treść operatorów została ujawniona w tekście, co pozwala na uproszczenie reprezentacji algorytmu, ale komplikuje z nim pracę.

abh ja

w

j w

Ryż. 3.3. Symbole i schematy algorytmów modelowania

BIBLIOGRAFIA

1. Sowieci B.Ya. Systemy modelowania: podręcznik. dla uczelni / B.Ya. Sowietow, S.A. Jakowlew. M.: Wysz. szkoła, 2001. 343 s.

2. Sowieci B.Ya. Systemy modelowania: podręcznik. dla uczelni / B.Ya. Sowietow, S.A. Jakowlew. 2. wyd. M.: Szkoła Wyższa, 1998. 319 s.

3. Tarasik wiceprezes Modelowanie matematyczne systemy techniczne: studia. dla uczelni / V.P. Tarasika. M.: Nauka, 1997. 600 s.

4. Wprowadzenie do modelowania matematycznego: podręcznik. dodatek dla uczelni / wyd. P.V. Tarasowa. Moskwa: Intermet Engineering, 2000. 200 s.

5. Iwczenko G.I. Statystyki matematyczne: instruktaż dla uczelni wyższych / G.I. Iwczenko, Ju.I. Miedwiediew. M.: Wyższe. szkoła, 1984. 248 s.

6. Alyanakh I.N. Modelowanie systemy komputerowe/ W. Sojusz. L.: Mashinostroenie, 1988. 233 s.

7. Shannon R. Symulacja systemów – sztuka i nauka / R. Shannon. M.: Mir, 1978. 308 s.

P 3

P 4

F 5

R 6

K 7


Jak również inne prace, które mogą Cię zainteresować

15330. Tworzenie wnętrza basenu w 3Ds Max 1,96 MB
Temat 6: Tworzenie wnętrza basenu W wyniku tych prac powinieneś otrzymać wyrenderowaną scenę pokazaną na rysunku. 1. Formy dwuwymiarowe. Modyfikatory form dwuwymiarowych Cel: opanowanie technologii tworzenia d
15332. Podstawy pracy ze nieruchomymi obrazami w programie do grafiki 3D 3ds max 4,96 MB
Temat 5: Podstawy pracy z obrazami statycznymi w programie grafika 3D 3dsmaks. Etapy tworzenia scen trójwymiarowych Projekt Stwórzmy narożnik części pokoju, w której znajduje się stół. Na stole jest szklanka lodu. Dla określonych...
15333. Procesy włączania i wyłączania obwodu z kondensatorem 1,71 MB
Oblicz t wstępnego przełączania t = 0 początkowy t = 0 i stan ustalony t → ∞ wartości prądów i napięć na kondensatorze w obwodzie. 1. w dwóch przypadkach: 1. klucz otwiera się; 2. klucz jest zamknięty. R1= 330 omów; R2=220 omów; U= 15 V; C= 10 uF Rys...
15334. Procesy włączania i wyłączania obwodu z cewką indukcyjną 75 KB
Informacje ogólne Obwód z jedną cewką, a także obwód z jednym kondensatorem, jest opisany równaniem różniczkowym pierwszego rzędu. Dlatego wszystkie prądy i napięcia w trybie przejściowym zmieniają się wykładniczo z tym samym stałym czasem
15335. Badanie procesów przejściowych w liniowych obwodach elektrycznych 94 KB
Przygotowanie do pracy W obwodzie zamkniętym na rys. 1, po odłączeniu go od źródła napięcia stałego lub przemiennego, mogą wystąpić tłumione oscylacje sinusoidalne ze względu na początkowy zapas energii w polu elektrycznym kondensatora oraz w polu magnetycznym
15336. Badanie algorytmu Dijkstry i implementacja go dla danego grafu w języku programowania C++ 344,5 KB
Praca laboratoryjna nr 1 w dyscyplinie Struktury i algorytmy przetwarzania danych Cel pracy: Badanie algorytmu Dijkstry i jego implementacji dla danego grafu w języku programowania C. Algorytm Dijkstry angielski. Algorytm Dijkstrasa na grafach wymyślony przez N
15337. Nauka algorytmu Heapsort i implementacja go w języku programowania C++ 49 KB
Praca laboratoryjna nr 2 w dyscyplinie Struktury i algorytmy przetwarzania danych Cel pracy: Poznanie algorytmu sortowania sterty i implementacja go w języku programowania C. Przydział pracy Napisz program generujący tablica numeryczna Ra
15338. Badanie algorytmu wyszukiwania w głąb i implementacja go w języku programowania C++ 150 KB
Praca laboratoryjna nr 3 z dyscypliny Struktury i algorytmy przetwarzania danych Cel pracy: Poznanie algorytmu przeszukiwania w głąb i jego implementacja w języku programowania C. Zadanie Zaimplementować algorytm przeszukiwania w głąb. Oszacuj czas...

Drugim etapem modelowania jest etap algorytmizacji modelu i jego maszynowej implementacji. Ten etap to etap mający na celu wdrożenie pomysłów i schematów matematycznych w postaci modelu maszyny m proces funkcjonowania systemów S.

Proces działania systemu S można uznać za sukcesywną zmianę jego stanów w przestrzeni k-wymiarowej. Zadanie modelowania procesu funkcjonowania badanego systemu S jest budowa funkcji z, na podstawie których można obliczyć interesujące charakterystyki procesu funkcjonowania systemu. Wymaga to relacji łączących funkcje z ze zmiennymi, parametrami i czasem oraz warunkami początkowymi w chwili czasu t=t 0 .

Istnieją dwa rodzaje stanów systemu:

  • 1) specjalny, nieodłączny od procesu funkcjonowania systemu tylko w pewnych momentach;
  • 2) niepojedynczy, w którym proces trwa przez resztę czasu. W tym przypadku funkcja stanu z i (T) może zmieniać się gwałtownie, a między specjalnymi - płynnie.

Algorytmy modelowania może być skonstruowany zgodnie z „zasadą stanów osobliwych”. Oznacz skok (przekaźnik) zmiany stanu z w jaki sposób z, oraz „zasada stanów specjalnych” jako zasada z.

« Zasada z" umożliwia wielu systemom znaczne obniżenie kosztów czasu komputera na implementację algorytmów modelowania. model matematyczny model statystyczny

Wygodną formą reprezentacji logicznej struktury modeli procesów funkcjonowania systemów i programów komputerowych jest diagram. Na różnych etapach modelowania zestawiane są następujące schematy algorytmów i programów modelowania:

Uogólniony (powiększony) schemat algorytmu modelowania określa ogólną procedurę modelowania systemu bez wyjaśniania szczegółów.

Szczegółowy schemat algorytmu modelowania zawiera udoskonalenia, których nie ma w schemacie uogólnionym.

Schemat logiczny algorytmu modelowania reprezentuje czysto logiczną strukturę modelu procesu funkcjonowania systemu S.

Schemat programu wyświetla kolejność implementacji oprogramowania algorytmu modelowania przy użyciu określonego oprogramowania. Schemat programu to interpretacja schematu logicznego algorytmu modelowania przez twórcę programu na podstawie określonego języka algorytmicznego.

Etapy algorytmizacji modelu i jego maszynowej implementacji:

  • 1. Budowa schematu logicznego modelu.
  • 2. Uzyskanie współczynnika matematycznego.
  • 3. Walidacja modelu systemu.
  • 4. Wybór narzędzia do modelowania.
  • 5. Przygotowanie planu realizacji prac programistycznych.
  • 6. Specyfikacja i budowa schematu programu.
  • 7. Weryfikacja i walidacja schematu programu.
  • 8. Przeprowadzenie programowania modelu.
  • 9. Sprawdzenie niezawodności programu.
  • 10. Przygotowanie dokumentacji technicznej do II etapu.

Modelowanie, algorytmizacja i programowanie

Obecnie wzrasta udział pracy umysłowej w czynnościach każdej osoby, konieczne jest rozwiązywanie praktycznych problemów związanych z przetwarzaniem, przechowywaniem i przekazywaniem informacji. Jednocześnie rośnie liczba osób zatrudnionych zawodowo. praca informacyjna. Aby to zautomatyzować, komputer służy jako uniwersalny środek pracy z informacją.

Rozwiązywanie problemu za pomocą komputera obejmuje następujące czynności gradacja:

Przyjrzyjmy się bliżej każdemu z tych kroków.

1. Stwierdzenie problemu. Budynek model informacyjny

Z reguły zadania praktyczne są sformułowane dość jasno z punktu widzenia użytkownika, ale takie sformułowanie nie ma wystarczającej jasności i rygoru.

Aby taki problem mógł zostać rozwiązany za pomocą komputera, konieczne jest uzupełnienie opisu problemu:

W tym celu ważne jest, aby zdefiniować podstawowe właściwości obiektów i zjawisk, które są omówione w zadaniu, pomijając te nieistotne.

Czasami o tym zapominają. Na przykład, jeśli w zadaniu wymagane jest określenie powierzchni górnej powierzchni stołu (blatu), bez wahania mówią, że konieczne jest zmierzenie długości i szerokości. Jednak podstawową właściwością stołu może być to, że jest okrągły, wtedy trudno mówić o długości i szerokości. Dodatkowo, nawet jeśli zostanie ustalone, że blat ma kształt prostokątny, należy zgodzić się, że drobne nierówności nie mają znaczącego wpływu na wielkość powierzchni.

W przykładzie tabeli prostokątnej długość i szerokość nie mogą być liczbami ujemnymi, ani nie mogą być nierealistycznie duże lub małe.

Wszystkie te formularze informacyjne model informacji o zadaniu .

Główną właściwością modelu jest uproszczenie badanego zjawiska, przy zachowaniu jego zasadniczych właściwości. Model informacyjny zadania można nazwać informacją o występujących w zadaniu obiektach i zjawiskach, istotnych z punktu widzenia zadania i zapisanych w formie tekstowej, liczbowej lub innej sygnału.

Kroki budowania modelu informacyjnego:

Podajmy definicję pojęcia „model” i możliwe klasyfikacje.

Model to sformalizowany opis obiektu, układu obiektów, procesu lub zjawiska, wyrażony przez zależności matematyczne, zbiór liczb i (lub) tekstów, wykresów, tabel, formuł słownych itp.

Proces tworzenia (a czasem badania) modelu nazywamy modelowaniem.

Metodę poznania, polegającą na badaniu przedmiotu po jego właściwościach, nazywamy modelowaniem.

Klasyfikacja modelu

Według obszaru zastosowania

Klasyfikacja czasowa

W drodze prezentacji

Zgodnie z formą prezentacji można wyróżnić następujące typy modele informacyjne:

2. Formalizacja problemu

Na tym etapie jest naprawienie modelu informacyjnego, jest wybrany Formularz reprezentacja dane, które tworzą model informacji najwygodniejszy do przetwarzania komputerowego. Często pierwsze dwa etapy nie mają wyraźnej granicy i można je traktować jako całość.

Po skompletowaniu opisu problemu tworzony jest model sformalizowany, tj. opisowy model informacji jest pisany przy użyciu jakiegoś języka formalnego, np. matematycznego.

3. Budowa algorytmu

Pojęcie algorytmu jest jednym z podstawowych pojęć informatyki. Algorytmizacja wraz z modelowaniem działa jako ogólna metoda informatyki.

Algorytmy są przedmiotem systematycznego badania dyscypliny naukowej z pogranicza matematyki i informatyki, sąsiadującej z logiką matematyczną - teoria algorytmów.

Samo słowo „algorytm” pochodzi od algorytmi – łacińskiej formy zapisu imienia wielkiego matematyka IX wieku al-Khwarizmi, który sformułował zasady wykonywania operacji arytmetycznych. Początkowo algorytmy rozumiały tylko zasady wykonywania czterech operacji arytmetycznych na liczbach wielowartościowych.

Algorytm to jasna i precyzyjna instrukcja dla wykonawcy, aby wykonał sekwencję działań mających na celu osiągnięcie wyznaczonego celu lub rozwiązanie postawionego zadania.

Zgodnie z tą definicją receptury na zrobienie dowolnego lekarstwa czy ciasteczka to algorytmy. A zasada bezpiecznego przejścia dla pieszych przez jezdnię ulicy jest również algorytmem. Zgodnie z ich przeznaczeniem algorytmy mogą być zarówno „domowe”, jak i obliczeniowe.

Wykonawca to ktoś lub coś, co może wykonać bardzo konkretny zestaw działań. Posiada następujące właściwości:

Cały zestaw poleceń, które dany executor może wykonać, nazywany jest systemem poleceń executora (SCI).

Formalne przedstawienie algorytmy to podstawa sterowania urządzenia automatyczne. Rzeczywiście, najprostsze operacje, na które podczas tworzenia algorytmu dzieli się proces rozwiązywania problemu, mogą być również realizowane przez maszynę specjalnie stworzoną do wykonywania poszczególnych poleceń algorytmu i wykonywania ich w kolejności określonej w algorytmie.

Jednak osoba może być również formalnym wykonawcą. Jeśli nie zna celu pracy, którą wykonuje, będzie musiał ściśle przestrzegać instrukcji.

Komputer jest formalnym wykonawcą algorytmów. Aby mógł rozwiązać problem ściśle według instrukcji, musi otrzymać algorytm rozwiązania. Zatem algorytm jest informacją kontrolną.

Właściwości algorytmów

Dyskretność algorytmu

Wykonanie algorytmu podzielone jest na sekwencję indywidualną kroki. Wykonaj instrukcje każdego kroku zespół. Tak więc algorytm jest sekwencją poleceń, które określają działania wykonawcy. Algorytm ma strukturę nieciągłą (dyskretną): dopiero po wykonaniu jednej komendy executor może rozpocząć wykonywanie kolejnej. Ta właściwość nazywa się dyskretnością.

Przejrzystość algorytmu

Poprawnie skomponowany algorytm zawiera tylko te polecenia, które są zawarte w systemie poleceń executora, dla którego został napisany. Ta właściwość nazywa się zrozumiałością. .

Zrozumiałe dla wykonawcy są te polecenia, które może wykonać.

Na przykład, osoba, która nie umie dodawać liczb jednocyfrowych (nie znając tabeli dodawania) nie będzie mogła skorzystać z kolejności dodawania liczb wielocyfrowych opisanej przez al-Khwarizmi.

Dokładność algorytmu

Ważną właściwością algorytmu jest dokładność (pewność, jednoznaczność).Każde polecenie algorytmu musi być jednoznacznie odebrane przez wykonawcę i zakładać jego konkretne działanie. Po wykonaniu kroku algorytmu wykonawca musi dokładnie wiedzieć, który krok wykonać jako następny. Przykładem niedokładnego algorytmu jest fraza z przepisu „wsyp 2-4 łyżki cukru” lub klasyczne powiedzenie „wykonania nie można ułaskawić”.

Wydajność i skończoność algorytmu

Wykonanie algorytmu powinno prowadzić do wyniku (właściwości wydajność) w skończonej liczbie kroków (skończona własność).

Masowy charakter algorytmu

Pożądane jest, aby algorytm spełniał właściwość masy , tych. może być wykorzystany do rozwiązania nie tylko jednego konkretnego problemu, ale także pewnej klasy problemów tego samego typu.

na przykład, zasada dodawania liczb wielocyfrowych nie zależy od liczby cyfr w terminach ani ich składu cyfrowego. Działa, nawet jeśli liczba nie jest dziesiętna, ale w system pozycyjny rachunek różniczkowy o dowolnej podstawie całkowitej.

Sposoby pisania algorytmów

W praktyce najczęściej spotykane są następujące formy algorytmów naprawy:

sposób werbalny

Dla osoby najważniejsza jest metoda werbalna.

Na przykład. Napisz algorytm znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych.

Algorytm może wyglądać następująco:

ustawić dwie liczby;

jeśli liczby są równe, weź dowolną z nich jako odpowiedź i zatrzymaj się, w Inaczej kontynuować wykonywanie algorytmu;

określić największą z liczb;

zamień większą z liczb na różnicę między większą i mniejszą z liczb;

powtórz algorytm z kroku 2.

Opisany algorytm ma zastosowanie do dowolnych liczb naturalnych i powinien prowadzić do rozwiązania problemu. Przekonaj się sam, używając tego algorytmu do określenia największego wspólnego dzielnika 125 i 75.

Metoda werbalna nie jest powszechnie stosowana z następujących powodów:

Pseudo kod

Pseudokod to system notacji i reguł jednolitego i precyzyjnego pisania algorytmów.

Pseudokod jest zorientowany na człowieka, ale ułatwia tłumaczenie na język programowania, ponieważ wymaga przestrzegania pewnych zasad notacji. Przykładem pseudokodu jest szkolny język algorytmiczny.

Zauważ, że istnieje różnica między pojęciami „języka algorytmicznego” i „języków programowania”; Przede wszystkim wykonawca w języku algorytmicznym może oznaczać nie tylko komputer, ale także urządzenie do pracy „w środowisku”. Program napisany w języku algorytmicznym niekoniecznie jest przeznaczony dla komputera. Praktyczna implementacja języka algorytmicznego to osobna kwestia w każdym konkretnym przypadku.

Jak każdy język, język algorytmiczny ma swoje własne słownictwo. Podstawą tego słownika są słowa służące do zapisu poleceń wchodzących w skład systemu poleceń wykonawcy danego algorytmu. Takie polecenia nazywane są poleceniami prostymi. W języku algorytmicznym używa się słów, których znaczenie i sposób użycia są ustalone raz na zawsze. Te słowa nazywane są słowami służbowymi. Użycie słów serwisowych sprawia, że ​​zapis algorytmu jest bardziej wizualny, a forma prezentacji różnych algorytmów jest jednolita.

Algorytm napisany w języku algorytmicznym musi mieć nazwę. Wskazane jest dobranie nazwy tak, aby było jasne, jakie rozwiązanie opisuje dany algorytm. Aby wyróżnić nazwę algorytmu, przed nim jest napisane słowo serwisowe ALG (ALGORYTM). Za nazwą algorytmu (zwykle z Nowa linia) zapisuje jego polecenia. Aby wskazać początek i koniec algorytmu, jego polecenia są zawarte w parze słów serwisowych BEGIN (START) i KON (END). Polecenia są pisane sekwencyjnie.

Kolejność pisania algorytmu:

Nazwa algorytmu ALG

seria instrukcji algorytmu

Graficzna reprezentacja algorytmów

Można przedstawić algorytm skompilowany dla jakiegoś wykonawcy różne sposoby: za pomocą opisu graficznego lub słownego, w formie tabeli, sekwencji formuł napisanych w języku algorytmicznym (język programowania). Zatrzymajmy się w opis graficzny algorytm zwany schematem blokowym . Metoda ta ma szereg zalet ze względu na swoją widoczność, która zapewnia w szczególności wysoką „czytelność” algorytmu i jednoznaczne wyświetlanie w nim sterowania.

Przede wszystkim definiujemy pojęcie schematu blokowego.

Schemat blokowy to ukierunkowany wykres, który wskazuje kolejność wykonywania poleceń algorytmu.

Schemat blokowy to reprezentacja graficzna algorytm.

Na schemacie blokowym każdemu rodzajowi akcji (wprowadzanie danych początkowych, obliczanie wartości wyrażeń, weryfikacja warunków, kontrola powtarzalności akcji, zakończenie przetwarzania itp.) odpowiada figura geometryczna , reprezentowany jako znak blokowy. Symbole blokowe łączą się linie przejściowe które określają kolejność wykonywania czynności.

Na schemacie blokowym działania algorytmu (bloki) są przedstawione w następujący sposób figury geometryczne:

Do uporządkowania działań w algorytmie stosuje się różne formy, zwane konstrukcjami algorytmicznymi. Istnieją trzy główne konstrukcje algorytmiczne: podążanie, rozgałęzianie, pętla. W matematyce udowodniono twierdzenie, że każdy algorytm można skompilować przy użyciu tylko tych trzech konstrukcji algorytmicznych, chociaż istnieją inne konstrukcje, które skracają notację algorytmu, ułatwiają pracę z nim i ułatwiają zrozumienie.

Śledź budowę (algorytm liniowy)

Śledź budowę - jest to forma organizacji działań, gdy działania wykonywane są sekwencyjnie, jedna po drugiej.

Tutaj jako szereg poleceń może być:

W rzeczywistości każdy algorytm można podzielić na dość duże bloki, które będą zawierać inna kolejność wszystkie wymienione powyżej obiekty iz takich bloków skomponować algorytm liniowy.

Przykład

Zadanie: Oblicz obszar koła, jeśli znany jest promień.

Dany: R to promień okręgu.

Znajdować: S to obszar koła.

Rozwiązanie: S=3,14 R2

Wybierzmy język rosyjski do zapisania algorytmu w tej postaci i wypiszmy sekwencję poleceń, których wykonanie przy danej wartości promienia pozwoli nam znaleźć obszar:

Odczytaj wartość R.

Pomnóż wartość R przez 3,14.

Pomnóż wynik drugiego działania przez wartość R.

Zapisz wynik jako wartość S.

W języku schematów blokowych

Ta forma zapisu polega na zastąpieniu typowych poleceń algorytmicznych pewnymi kształtami geometrycznymi. Algorytm rozwiązania tego problemu jest następujący (patrz rys.).

Projekt oddziału

Projekt oddziału jest formą organizacji działań, w której w zależności od spełnienia (niespełnienia) określonego warunku, wykonywana jest jedna z dwóch serii poleceń.

Jeśli< stan: schorzenie >

następnie< seria poleceń 1 >

Inaczej< seria poleceń 2 >

koniec gałęzi

Przykład

Zadanie: Oblicz

Dany: x to wartość argumentu.

Znajdować:y – wartość funkcji.

Rozwiązanie:

X jeśli x<0

Pojawienie się powstałego schematu graficznego (patrz rys.) wyjaśnia, dlaczego odpowiadający mu algorytm nazwano rozgałęzieniem.

Zróbmy prezentacja ustna tego algorytmu.

Początek

Jeśli x>0 to

y := x

Inaczej

Początek

Y:= -x

Koniec oddziału

Wpisz wartość w

Kończyć się

Przeznaczyć pełna i niekompletna konstrukcja warunkowa.

Wprowadźmy notację:

Q – stan;

P 1 , P 2 , … P N - akcje, które są wykonywane, jeśli warunek jest spełniony;

T 1 , T 2 , … T N - akcje, które są wykonywane, jeśli warunek jest fałszywy.

Schemat blokowy i algorytm wyglądają tak (patrz tabela):

Konstrukcje warunkowe

Kompletny

niekompletny

R1

R 2

P N

Inaczej

T1

T 2

T N

Koniec oddziału

R1

R 2

P N

Koniec gałęzi.

Konstrukcja pętli

Konstrukcja pętli to forma organizacji akcji, w której wykonanie tej samej sekwencji akcji powtarza się kilkakrotnie.

Czynności, które należy powtórzyć kilka razy, nazywane są ciało pętli . Treść pętli to seria poleceń. Algorytm musi zawsze zawierać wskaźnik, który oddziela treść pętli od głównej części algorytmu.

Istnieją dwa główne typy pętli: pętla z parametrem i pętla z warunkiem.

Pętla z parametrem

Stosuje się go, gdy z góry znana jest liczba powtórzeń.

W którym parametr (zmienna pętli) zmienia się z wartości początkowej na wartość końcową z danym krokiem i określa liczbę powtórzeń.

Zapis cyklu z parametrem w języku algorytmicznym wygląda tak:

początkowy końcowy krok

dla <имя параметра> z < значение > zanim < значение > krok <изменения>

parametr parametr parametr parametr

<тело цикла>

Pętla Warunkowa

Stosuje się go, gdy liczba powtórzeń nie jest z góry znana i zależy od spełnienia pewnego warunku.

Rozróżnij cykle z warunkiem wstępnym i z stan końcowy .

Pętla z warunkiem wstępnym(pożegnanie pętli)

Warunek jest sprawdzany przed kolejnym wykonaniem treści pętli.

Zapis w języku algorytmicznym oraz w formie schematu blokowego:


PA<условие>

< тело цикла >

Dopóki warunek jest spełniony (odpowiedni Wyrażenie logiczne oznacza "prawda") treść pętli jest powtarzana . Gdy tylko warunek przestanie być spełniony, wykonanie pętli zostaje zatrzymane (wyjście przez fałsz).

Jeśli warunek nie jest początkowo spełniony, ciało pętli może nigdy nie zostać wykonane.

Pętla z warunkiem końcowym(cykl „przed”)

Warunek jest sprawdzany po kolejnym wykonaniu ciała pętli, czyli Treść pętli musi zostać wykonana przynajmniej raz.


powtarzać

< тело цикла >

zanim< условие >



Treść pętli jest wykonywana, jeśli warunek nie jest spełniony.(odpowiednie wyrażenie logiczne ma wartość „false”). Gdy tylko warunek zostanie spełniony, wykonywanie treści pętli zostaje zatrzymane (true exit).



4. Programowanie

Aby algorytm mógł zostać wykonany przez komputer, musi być napisany w zrozumiałym dla niego języku. Jednak komputer odbiera i może przetwarzać tylko kody binarne (sekwencje zer i jedynek). Dlatego początkowe dane i polecenia algorytmu muszą być przedstawione w kodach binarnych. Jest to jednak bardzo niewygodne dla osoby, dlatego opracowywane są języki do pisania algorytmów, które z jednej strony są zbliżone do języków naturalnych, a z drugiej są budowane według wystarczająco surowych zasad, aby że zapisane na nich algorytmy mogą być automatycznie tłumaczone, zgodnie z formalnymi zasadami, na kody binarne. Takie języki nazywają się języki programowania, a algorytm napisany w takim języku (podobnie jak algorytm napisany w kodach binarnych) nazywa się program.

Wraz z nadejściem komputery osobiste etap sporządzania algorytmu łączy się na wiele sposobów z etapem programowania w taki sam sposób, jak z etapem następnym.

Technologie programowania

Programowanie algorytmiczne (modułowe)

Główną ideą programowania algorytmicznego jest podział programu na kolejność modułów, z których każdy wykonuje jeden lub więcej działania. Jedynym wymaganiem dla modułu jest to, aby jego wykonanie zawsze zaczynało się od pierwszego polecenia i zawsze kończyło się na ostatnim (czyli nie można dostać się do poleceń modułu z zewnątrz i przekazać sterowanie z modułu innym poleceniom z pominięciem ostatniego).

Algorytm w wybranym języku programowania jest napisany za pomocą za pomocą poleceń opisu danych, obliczenia wartości oraz kontrola sekwencji programu.

Tekst programu to liniowa sekwencja instrukcji przypisania, pętla i instrukcje warunkowe. W ten sposób można rozwiązywać niezbyt skomplikowane problemy i pisać programy zawierające kilkaset linijek kodu.

To programowanie wykorzystuje następujące elementy:

Programowanie strukturalne

Tworząc aplikacje średniej wielkości (kilka tysięcy linijek kodu źródłowego) posługujemy się programowanie strukturalne, czyj to pomysł? struktura programu powinna odzwierciedlać strukturę rozwiązywanego problemu aby algorytm rozwiązania był wyraźnie widoczny z tekstu źródłowego. Aby to zrobić, konieczne jest posiadanie środków do stworzenia programu nie tylko za pomocą trzech prostych operatorów, ale także za pomocą narzędzi, które dokładniej odwzorowują konkretną strukturę algorytmu. W tym celu koncepcja rutyny - zestaw operatorów, które wykonują żądaną akcję i nie zależą od innych części kodu źródłowego. Program podzielony jest na wiele małych podprogramów (zajmujących do 50 instrukcji - krytyczny próg szybkiego zrozumienia celu podprogramu), z których każdy wykonuje jedną z czynności przewidzianych w pierwotnym zadaniu. Łącząc te podprogramy, możliwe jest utworzenie ostatecznego algorytmu już nie z prostych operatorów, ale z kompletnych bloków kodu, które mają określone obciążenie semantyczne, a do takich bloków można się odwoływać po nazwie. Okazuje się, że podprogramy to nowe operatory lub operacje językowe zdefiniowane przez programistę.

Umiejętność korzystania z podprogramów odnosi się do języka programowania do klasy języki proceduralne.

Obecność podprogramów pozwala na zaprojektowanie i rozwój aplikacji z góry na dół - to podejście nazywa się odgórny projekt . Najpierw wybieranych jest kilka podprogramów, które rozwiązują najbardziej globalne zadania (na przykład inicjalizacja danych, część główna i zakończenie), następnie każdy z tych modułów jest uszczegółowiony na niższym poziomie, rozbijając z kolei na niewielką liczbę innych podprogramów, i tak dalej, aż całe zadanie nie zostanie ukończone.

Takie podejście jest wygodne, ponieważ pozwala osobie stale myśleć na poziomie przedmiotu, bez schodzenia do określonych operatorów i zmiennych. Ponadto możliwe staje się nie natychmiastowe wdrażanie niektórych podprogramów, ale tymczasowe odroczenie do czasu ukończenia innych części. Na przykład, jeśli istnieje potrzeba obliczenia złożonej funkcji matematycznej, to osobny podprogram takiej kalkulacji, ale jest on zaimplementowany tymczasowo przez jednego operatora, który po prostu przypisuje wstępnie wybraną wartość. Kiedy cała aplikacja zostanie napisana i zdebugowana, możemy zacząć implementować tę funkcję.

Ważne jest, aby małe podprogramy były znacznie łatwiejsze do debugowania, co znacznie zwiększa ogólną niezawodność całego programu.

Bardzo ważną cechą podprogramów jest ich zdolność do: ponowne użycie . Zintegrowane systemy programowania są dostarczane z dużymi bibliotekami standardowych procedur, które pozwalają znacznie zwiększyć produktywność poprzez wykorzystanie czyjejś pracy do tworzenia powszechnie używanych procedur.

Programowanie sterowane zdarzeniami

Z aktywną dystrybucją systemu Okna i pojawienie się wizualizacji RAD - środowiska, eventowe podejście do tworzenia programów zyskało dużą popularność - programowanie sterowane zdarzeniami.

Ideologia systemu Okna na podstawie wydarzeń. Osoba kliknęła przycisk, wybrała pozycję menu, nacisnęła klawisz lub przycisk myszy - in Okna generowany jest odpowiedni komunikat , który jest wysyłany do odpowiedniego okna programu. Struktura programu utworzonego za pomocą programowania zdarzeń jest następująca. Główna część to jedna nieskończona pętla, który pyta Okna , czekając na nową wiadomość. Po wykryciu wywoływany jest podprogram odpowiedzialny za przetwarzanie. odpowiedniego zdarzenia (nie wszystkie zdarzenia są przetwarzane, są ich setki, ale tylko niezbędne) i podobny cykl odpytywania trwa do momentu otrzymania komunikatu „Zamknij”.

Wydarzenia mogą być zwyczaj , wynikające z działań użytkownika, systemowy , pochodzące z systemu operacyjnego (na przykład wiadomości z timera) oraz programowy , generowane przez sam program (na przykład wykryto błąd i należy go przetworzyć).

Programowanie wydarzeń to rozwój odgórnych pomysłów projektowych, w których reakcje programu na różne wydarzenia są stopniowo definiowane i uszczegóławiane.

Rozwój idei programowania strukturalnego i eventowego znacznie zwiększył produktywność programistów i umożliwił tworzenie aplikacji o setkach tysięcy linii w rozsądnym czasie (kilka miesięcy). Jednak ten tom zbliżył się już do granic ludzkich możliwości i potrzebne były nowe technologie do opracowywania programów.

Programowanie obiektowe oparte na koncepcjach obiekt , klasa i na trzech kluczowych koncepcjach - kapsułkowanie , dziedzictwo oraz wielopostaciowość .

W językach programowania koncepcja jest realizowana obiekt jako zbiór właściwości (struktury danych specyficzne dla tego obiektu) i metody ich przetwarzanie (podprogramy zmiany właściwości) i wydarzenia, na które dany przedmiot może reagować i które prowadzą z reguły do ​​zmiany właściwości przedmiotu.

Obiekty mogą mieć identyczną strukturę i różnić się tylko wartościami właściwości. W takich przypadkach program tworzy nowy typ na podstawie pojedynczej struktury obiektu (podobnie jak tworzone są nowe typy dla struktur danych). Nazywa się to klasa, a każdy konkretny obiekt, który ma strukturę tej klasy, jest nazywany instancją klasy .

Agregacja danych C metody w jednym typie (klasie) nazywa się kapsułkowanie. Oprócz łączenia, enkapsulacja pozwala ograniczyć dostęp do danych obiektowych i implementacji metod klas. Dzięki temu programiści mają możliwość wykorzystania w swoich aplikacjach gotowych klas bazując jedynie na opisie tych klas.

Najważniejszą cechą klasy jest możliwość tworzenia na jej podstawie nowych klas za pomocą dziedzictwo wszystkie jego właściwości i metody oraz dodawanie własnych. Klasa, która nie ma poprzednika, nazywana jest klasą bazową. .

na przykład , klasa „uczeń” ma właściwości „imię i nazwisko”, „rok przyjęcia”, metody „uczestniczy w zajęciach” i „podejmuj egzaminy”. Utworzona na jej podstawie klasa „student niestacjonarny” dziedziczy wszystkie te właściwości i metody, do których dodatkowo dodawana jest właściwość „miejsce pracy” oraz metoda „przyjdź na sesję”. Dziedziczenie umożliwia tworzenie nowych klas poprzez ponowne wykorzystanie istniejącej. źródło i bez marnowania czasu na przepisywanie.

W większości przypadków metody klasy bazowej klas potomnych muszą zostać przedefiniowane – obiekt klasy „student niestacjonarny” w zupełnie inny sposób realizuje metodę „attend classs” niż obiekt klasy „full- student czasu”. Wszystkie przesłonięte metody przez pisownię (nazwa) będą pasować do metod obiektu bazowego, jednak kompilator rozpozna po typie obiektu (jego klasie), którą konkretną metodę należy zastosować i nie wywoła metody „attend classs” klasa „uczestniczyć w zajęciach” dla klasy „korespondent” obiekt. uczeń”. Ta właściwość obiektów do przesłaniania metod dziedziczonej klasy i poprawnego ich używania nazywa się wielopostaciowość.

  1. Kapsułkowanie- związek w obiekcie jego właściwości i możliwych operacji (metod) na nim. Połączenie danych z prawidłowymi działaniami na tych danych prowadzi do „narodzin” nowego elementu w projektowaniu programów - obiektu, a obiekt działa tak, jak zawiera, i tylko na tym, co jest w nim opisane. Niedopuszczalne jest uzyskiwanie dostępu do danych obiektu w inny sposób niż poprzez jego działania. Obiekty zawierające tę samą listę właściwości i operacji są łączone w zajęcia . Każdy pojedynczy obiekt jest instancja klasy . Instancje klasy mogą mieć różne wartości właściwości.

Na przykład system plików komputera może zawierać setki lub tysiące plików. Wszystkie pliki mają ten sam zestaw właściwości (nazwa, położenie w systemie plików) i operacji (zmiana nazwy, przenoszenie lub kopiowanie) i tworzą klasę obiektów FILES. Każdy oddzielny plik jest instancją tej klasy i posiada określone wartości właściwości (nazwa, lokalizacja itp.).

  1. Dziedzictwo– definiuje relacje między klasami: obiekty klasa dzieci mają wszystkie właściwości przedmiotów klasa rodzicielska . Oznacza to, że każdy kolejny obiekt pochodny dziedziczy właściwości i działania swoich poprzedników. Mechanizm dziedziczenia pozwala na przedefiniowanie lub dodanie nowych danych i metod przetwarzania, tworzenie hierarchii klas.

Na przykład. W wektorze edytory graficzne obraz zbudowany jest z prymitywów graficznych - punktu, linii, koła itp.

Jednym z graficznych prymitywów jest klasa obiektów POINT. W tej klasie każdy obiekt posiada określone właściwości (Współrzędne, Kolor), na których możliwe są odpowiednie operacje (Przesuń, Zmień kolor). Klasę elementów POINT można zdefiniować za pomocą tabeli

Nieruchomości

Współrzędne (x,y)

poruszający

Zmiana koloru

Z klasy elementów POINT można uzyskać nową klasę CIRCLE, dodając nową właściwość Promień i operację Modyfikuj promień. Klasę elementów OKRĄG można zdefiniować za pomocą tabeli.

Nieruchomości

Współrzędne (x,y)

poruszający

Zmiana koloru

Promień (R)

Zmiana promienia

Wszystkie obiekty klasy CIRCLE dziedziczą właściwości i operacje klasy POINT. Klasa POINT nazywana jest klasą nadrzędną, klasa CIRCLE jest klasą potomną. Graficznie wygląda to tak:


dziedzictwo

  1. Wielopostaciowość– możliwość wykonywania tych samych operacji na obiektach należących do różnych klas, z zachowaniem indywidualnych metod ich realizacji dla każdej klasy. Oznacza to, że tę samą operację na obiektach różnych klas można wykonać różnymi metodami.

Na przykład. Większość klas obiektów w środowisku WINDOWS/OFFICE charakteryzuje się zestawem tych samych operacji - zmiana nazwy, przenoszenie, kopiowanie, usuwanie itp. Mechanizmy realizacji tych działań nie są takie same dla różnych klas. Tak więc, aby skopiować folder, musisz wykonać sekwencję działań, aby zmienić system plików, a aby skopiować znak, wprowadź zmiany w dokumencie. Operacje te będą wykonywane przez różne programy.

programowanie wizualne

Technologie programowania obiektowego, eventowego i strukturalnego są dziś łączone wSystemy RAD, które zawierają wiele gotowych klas, reprezentowanych jako wizualny składniki , które są dodawane do programu jednym kliknięciem. Programista musi jedynie zaprojektować wygląd okien swojej aplikacji i określić sposób obsługi głównych zdarzeń - jakie instrukcje zostaną wykonane po naciśnięciu przycisków, wybraniu pozycji menu, czy kliknięciu myszą. Środowisko samo wygeneruje cały pomocniczy kod źródłowy, pozwalając programiście w pełni skoncentrować się tylko na implementacji algorytmu.

Rozwój tej technologii wiąże się z pojawieniem się GUI. Jest to technologia tworzenia aplikacji w postaci obiektów graficznych, z późniejszym tłumaczeniem na kod programu. W latach 90. pojawiła się technologia RAD - Rapid Application Development - szybki rozwój aplikacji. Wszystkie niezbędne elementy projektowe i sterujące są tworzone i utrzymywane nie przez ręczne programowanie, ale za pomocą gotowych elementów wizualnych, które przeciąga się myszą do projektowanego okna. Właściwości i zachowanie komponentów są konfigurowane za pomocą proste edytory, przedstawiający wizualnie cechy odpowiednich elementów. W takim przypadku kod źródłowy programu generowany jest automatycznie przez środowisko RAD.

Środowiska RAD są przeznaczone do rozwoju, przy aktywnym udziale użytkowników, systemy informacyjne do zastosowań biznesowych. RAD ma na celu zapewnienie dużej szybkości rozwoju systemu przy jednoczesnej poprawie jakości Produkt oprogramowania i zmniejszenie jego kosztów.

Spośród uniwersalnych języków programowania najpopularniejsze są dziś:

BASIC (Basic) - do rozwoju wymaga szkolenia wstępnego (szkoła ogólnokształcąca);

Pascal (Pascal) - wymaga specjalnego przeszkolenia (szkoły z zaawansowanym
studia przedmiotowe i ogólnotechniczne);

C++ (C++), Java (Java), C Sharp (C#) - wymagają profesjonalnego przeszkolenia (specjalistyczne szkoły średnie i wyższe).

Dla każdego z tych języków programowania istnieje obecnie wiele systemów programowania produkowanych przez różne firmy i skoncentrowanych na: różne modele PC i OS. Oto najbardziej popularne środowiska wizualne szybki projekt programy dla Windows:

Podstawowe: Microsoft Visual Basic;

Pascal: Borland Delphi

C++: Microsoft Visual C++;

Java: BorlandJBuilder

C#: Microsoft studio wizualne.NET, Borland C#Builder.

Do tworzenia aplikacji serwerowych i rozproszonych można wykorzystać system programowania Microsoft Visual C++, produkty firmy Borland i prawie dowolne narzędzia programistyczne Java.

5. Wpisanie programu do pamięci komputera. Pierwsze uruchomienie

W dużych centrach obliczeniowych, przy rozwiązywaniu wystarczająco dużych i złożonych problemów, wprowadzaniem programów zajmują się ludzie o specjalnym zawodzie, operatorzy komputerowi. Oprócz wprowadzania programów operatorzy wykonują przygotowanie danych - wprowadzanie danych do pamięci, zapis na nośnikach zewnętrznych. Programista pracujący na komputerze PC sam wprowadza program i dane.

Po wejściu do programu następuje jego uruchomienie próbne. W przypadkach, które należy uznać za wyjątkowe, program jest wykonywany natychmiast i daje pewien rezultat. Znacznie częściej trzeba znaleźć powody, dla których program nie działa lub nie działa tak, jak powinien, i je poprawić - debugować program.

6. Debugowanie i testowanie programu

Proces wyszukiwania i poprawiania błędów w programie nazywa się debugowanie. Podczas pisania mogą wystąpić błędy w wyniku naruszenia zasad pisania programów w języku programowania – tzw. syntaktyczny błędy. Specjalne programy narzędziowe (programy kontroli składniowej), które są częścią systemu programowania, pomagają je wykryć i skorygować. System analizuje program i wysyła komunikat o lokalizacji i charakterze błędu. Często błędy związane są z tym, że nie można wykonać jakiejś poprawnej składniowo konstrukcji (np. dzielenie przez zero lub próba przypisania wartości rzeczywistej do liczby całkowitej). W tym przypadku pojawia się również komunikat z podaniem przyczyny niepowodzenia i wskazaniem, którego konkretnego polecenia nie udało się wykonać.

Dużo trudniej znaleźć błędy popełnione przy kompilacji algorytmu, co ostatecznie prowadzi do zła praca programy: brak wyniku, zapętlenie, błędny wynik. W takim przypadku przydatna może być kontrola wykonania programu krok po kroku.

Ważnym krokiem w procesie debugowania jest: testowanie programy, tj. testowanie go poprzez wprowadzenie testu - określonego zestawu danych początkowych, dla którego z góry znany jest wynik pracy poszczególnych bloków lub programu jako całości.

Często w ramach opracowywania modelu informacyjnego na dane źródłowe nakładane są ograniczenia. W takim przypadku program powinien odpowiedzieć na wprowadzenie błędnych wartości: przerwać pracę lub zażądać ponownego wejścia. Z reguły program zapewnia ochronę przed wprowadzeniem błędnych danych lub innymi nieprzewidzianymi działaniami użytkownika. Następnie w trakcie procesu testowego sprawdzana jest jakość takiego zabezpieczenia.

Możliwość pomyślnego wybrania testu, w którym błąd (jeśli występuje) jest najbardziej prawdopodobny, oraz zapewnienie różnych opcji ruchu proces obliczeniowy, a także działania użytkownika (czasem bardzo nieprzewidywalne), a zatem ochrona programu przed wszelkimi niespodziankami to świetna sztuka programisty.

Najprostszy przykład testu: czy program zawiera gałęzie, czyli należy wybrać sposób działania w zależności od spełnienia warunku, konieczne jest sprawdzenie jego działania z tymi danymi początkowymi, na podstawie których warunek jest spełniony, oraz z tymi, na podstawie których nie jest spełniony.

Do niedawna etapy 4, 5 i 6 były niezbędnymi etapami rozwiązywania problemu za pomocą komputera. Jednocześnie języki programowania i systemy były narzędziami programowymi, za pomocą których tworzono nowe programy do rozwiązywania problemów użytkowników. Jednak wraz z rozszerzeniem zakresu zadań, do których wykorzystywany jest komputer, rośnie liczba osób, które nie będąc zawodowymi programistami wykorzystują komputer w swojej pracy.

W związku z tym powstały różne narzędzia programowe, które są podstawą Technologie informacyjne służy do rozwiązywania różnych praktycznych problemów, takich jak przetwarzanie tekstu i arkusze kalkulacyjne, tworzenie obrazów graficznych, dostęp do informacji przechowywanych w bazie danych, rozwiązywanie problemu matematycznego, obliczanie projektu technicznego i wiele więcej. Aby je rozwiązać, użytkownik komputera ma do dyspozycji rozbudowane oprogramowanie.

W procesie budowania modelu informacyjnego zadania użytkownik określa, jakie czynności będzie musiał wykonać, aby osiągnąć wynik, i zgodnie z tym decyduje, jakie narzędzie programowe zdobyć przewagę. Jeżeli do jego dyspozycji jest odpowiedni program do rozwiązania tego problemu, to użytkownik wybiera go jako narzędzie (SZBD, arkusz kalkulacyjny, pakiet matematyczny itp.). Jeśli nie możesz skorzystać z gotowego oprogramowania aplikacyjnego, będziesz musiał skorzystać z technologii programowania.

7. Uzyskiwanie i analiza wyników

Niezależnie od zastosowanej technologii rozwiązywania problemów na komputerze, niezbędnym krokiem będzie uzyskanie i przeanalizowanie wyniku: sprawdzana jest zgodność uzyskanych wyników z oczekiwanymi w ramach zbudowanego modelu informacyjnego problemu, a także zakres do którego wynik jest skorelowany z rzeczywistą praktyką.

Na tym etapie ujawnia się, jak skonstruowany model informacji odpowiada rzeczywistości. Faktem jest, że im więcej właściwości obiektów i zjawisk uznaje się za istotne i uwzględnia się, tym bardziej model odzwierciedla rzeczywistość. Jednak uwzględnienie dużej liczby cech prowadzi do komplikacji modelu, trudności w matematycznym wyrażaniu zależności między cechami. Zwykle starają się znaleźć równowagę między kompletnością zgodności modelu informacyjnego z rzeczywistym stanem rzeczy a jego złożonością w procesie dopracowywania modelu (stopniowo zwiększając liczbę branych pod uwagę istotnych właściwości).

Pytania, na które należy się przygotować praca kontrolna na temat „Modelowanie, algorytmizacja, programowanie”

Opóźnienia transakcji w określonym czasie. Modelowanie statyczne służy do opisu zachowania obiektu w dowolnym momencie. Symulacja dynamiczna odzwierciedla zachowanie obiektu w czasie. Modelowanie dyskretne służy do wyświetlania obiektu w określonym momencie.


Udostępnij pracę w sieciach społecznościowych

Jeśli ta praca Ci nie odpowiada, na dole strony znajduje się lista podobnych prac. Możesz także użyć przycisku wyszukiwania


Inne powiązane prace, które mogą Cię zainteresować.vshm>

9929. Algorytmiczne metody ochrony informacji 38.36 KB
Do normalnego i bezpiecznego funkcjonowania tych systemów konieczne jest zachowanie ich bezpieczeństwa i integralności. Czym jest kryptografia Kryptografia to nauka o szyfrach - przez długi czas była klasyfikowana, ponieważ służyła głównie do ochrony tajemnic państwowych i wojskowych. Obecnie stosowane są metody i środki kryptografii, aby zapewnić: bezpieczeństwo informacji nie tylko państwowe, ale także organizacje osób prywatnych. Jak dotąd algorytmy kryptograficzne dla przeciętnego konsumenta to tajemnica z siedmioma pieczęciami, choć wielu już…
1927. Modelowanie systemów 21,47 KB
W studenckiej pracowni komputerowej znajdują się dwa minikomputery i jedno urządzenie do przygotowywania danych (PDD). Studenci przychodzą z przerwą 8 ± 2 minuty, a jedna trzecia z nich chce korzystać z UPD i komputera, a reszta tylko z komputera. Dopuszczalna kolejka w maszynowni to cztery osoby, w tym jedna pracująca w UPD.
1974. MODELOWANIE POWIERZCHNI 233,46 KB
Model powierzchniowy i cyfrowy Podstawą reprezentacji danych na powierzchni Ziemi są cyfrowe modele terenu. Powierzchnie to obiekty, które są najczęściej reprezentowane przez wartości wysokości Z rozmieszczone na obszarze określonym przez współrzędne X i Y. DEM to sposób cyfrowego przedstawiania topografii powierzchni Ziemi. zbieranie stereopar obrazów jest pracochłonne i wymaga specyficznej oprogramowanie ale jednocześnie pozwala na uzyskanie pożądanego stopnia szczegółowości odwzorowania powierzchni Ziemi.
2156. modelowanie oświetlenia 125,57 KB
Dla obserwatora znajdującego się w dowolnym punkcie jasność punktu, który widzi, zostanie wyrażona w następujący sposób. gdzie V jest jasnością dla hw; E to współczynnik odbicia albedo powierzchni. W porównaniu do metody Lamberta, ten model zmniejsza jasność punktów, na które patrzymy pod kątem 90 i zwiększa jasność tych punktów, na które patrzymy od niechcenia.Zastosowanie praw oświetlenia podczas syntezy obiektu obrazu. 7 Jasność jest liczona w jednym punkcie, na przykład w środku ciężkości dla wielokątów wypukłych lica Lamberta i ...
8080. Modelowanie trójskładnikowe 18,3 KB
Symulacja trójskładnikowa Symulacja trójskładnikowa jest szeroko stosowana do wykrywania wyścigów sygnału, które mogą wystąpić w obwodzie. Modelowanie zbioru wejściowego odbywa się w 2 etapach. Przykład: przeprowadź modelowanie trójskładnikowe przy użyciu metody E. Modelowanie trójskładnikowe z rosnącą niepewnością B ten algorytm dla każdego lt wskazane są maksymalne i minimalne wartości opóźnienia t.
6675. Symulacja 56.71 KB
Proces ten składa się z dwóch dużych etapów: opracowania modelu i analizy opracowanego modelu. Modelowanie pozwala badać istotę złożonych procesów i zjawisk poprzez eksperymenty nie z rzeczywistym systemem, ale z jego modelem. W dziedzinie tworzenia nowych systemów modelowanie jest środkiem badawczym Ważne funkcje przyszły system na najwcześniejszych etapach jego rozwoju.
5651. Modelowanie systemu produkcyjnego 391.61 KB
Komputer bierze udział w zarządzaniu sprzęt technologiczny. Aby monitorować stan sprzętu, co 20 minut uruchamiany jest jeden z trzech rodzajów zadań. Co 5 minut pracy procesora każde zadanie wyprowadza wyniki pracy do bazy danych
4640. SYMULACJA MONTAŻU CYFROWEGO 568,49 KB
Na kryształach współczesnego LSI można umieścić wiele funkcjonalnych bloków starych komputerów wraz z łańcuchami połączeń. Rozwój i testowanie takich kryształów jest możliwe tylko dzięki matematycznym metodom modelowania przy użyciu potężnych komputerów.
6206. Modelowanie w badaniach naukowych 15,78 KB
Wielki sukces i uznanie w niemal wszystkich branżach nowoczesna nauka przyniósł metodę modelowania XX wieku. Jednak metodologia modelowania jest od dawna rozwijana samodzielnie przez poszczególne nauki. Dopiero stopniowo zaczęto realizować rolę modelowania jako uniwersalnej metody poznania naukowego.
3708. Modelowanie za pomocą splajnów 465,08 KB
Określają również stopień krzywizny segmentów splajnu sąsiadujących z tymi wierzchołkami. Segment jest częścią linii splajnu pomiędzy dwoma sąsiednimi wierzchołkami. W programie 3ds Mx używane są cztery typy wierzchołków: Corner Corner - wierzchołki sąsiadujące z segmentami, do których nie mają krzywizny; Gładki Wygładzony wierzchołek, przez który krzywa splajnu jest rysowana z zagięciem i ma taką samą krzywiznę segmentów po obu stronach; Bezier Wierzchołek Beziera podobny do gładkiego, ale pozwalający kontrolować krzywiznę segmentów splajnu po obu stronach wierzchołka....
Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!