Podstawowe elementy modelu AMPL problemu liniowego(pl)

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawowe elementy modelu AMPL problemu liniowego(pl)"

Transkrypt

1 Wstęp Program GUSEK służy do rozwiązywania modeli programowania liniowego i dyskretnego(całkowitoliczbowego i binarnego). Do zapisu modelu zgadnienia programowania liniowego: n Max(Min)z = c j x j j=1 n a ij x j <= b i,i = 1,2,...,m j=1 x j 0,j = 1,2,...,n używa się języka programowania GNU MathProg będącego podzbiorem języka AMPL. Podstawowe elementy modelu AMPL problemu liniowego(pl) Zapis zagadnienia programowania liniowego ma w języku AMPL następujacą bazową strukturę: Reprezentacja algebraiczna 1.Deklaracje zbiorów. 2.Deklaracje parametrów. 3.Deklaracje zmiennych. 4.Reprezentacja modelu(funkcji celu i ograniczeń). Implementacja modelu 5.Rozwiązanie modelu. 6.Prezentacja wyników. 7.Dane wejsciowe. Tablica 1: Elementy modelu AMPL Zaletą tego zapisu jest, że model może być użyty do rozwiązywania liniowych problemówdowolnegorozmiarupoprzezzmianędanychwejściowych:m,n,c j,a ij,b i. W zapisie modelu AMPL muszą być stosowane następujace reguły: 1. Plik musi być zwykłym tekstem(utworzonym dowolnym edytorem). 2. Komentarz może być poprzedzony znakiem# i kończyć się znakiem końca linii(może pojawić się w dowolnym miejscu modelu) lub być dowolnym tekstem zawartym pomiędzy znakami\* Dowolny tekst\*. 3. Każda instrukcja wyłączając komentarz musi się kończyć średnikiem(;).

2 4. Instrukcja języka AMPL może zajmować więcej niż jedną linię, dopuszczalne są znaki przestankowe jak spacja, dwukropek, przecinek, nawiasy okrągłe, kwadratowe, klamrowe oraz operatory matematyczne. Wyjątkiem są łańcuchy(nazwy), które powinny być wzięte w cudzysłowy pojedyńcze lub podwójne, gdzie znaki przestankowe powinny być poprzedzone symbolembackslash(\). 5. Wszystkie słowa kluczowe pisane są małymi literami. 6. W nazwach stosowanych przez użytkownika rozróżnia się duże i małe litery. Nazwy muszą być alfanumeryczne(ciąg znaków zaczynający się od litery) ewentualnie rozdzielone, jeśli potrzeba, podkreśleniem(). Podamy teraz przykład problemu planowania produkcji na którym zilustrujemy budowę modelu AMPL. Przykład 1. Produkcja farb- Firma MKsa Firma MKsa produkuje z dwóch surowców M1 i M2 dwa rodzaje farb: wewnętrzne (FW) i zewnętrzne(fz). Tabela 2 zawiera podstawowe dane: Badania rynku Zużycie(t) surowca na tonę Maksymalny limit farby FZ farby FW dzienny(t) Surowiec M Surowiec M Zysk na tonę(1000pln) 5 4 Tablica 2: Dane do problemu MKsa wykazały, że dzienny popyt na farbę wewnętrzną(fw) nie może przekroczyć o więcej niż jedną tonę popytu na farbę zewnętrzną(fz). Ponadto maksymalny dzienny popyt na farbę wewnętrzną wynosi 2t. Firma MKsa chce wiedzieć ile produkować każdej z farb aby zmaksymalizować dzienny zysk. Definiując zmienne decyzyjne: x 1 -ilość(t)dziennejprodukcjifarbyzewnętrznej(fz), x 2 -ilość(t)dziennejprodukcjifarbywewnętrznej(fw) mamy następujący liniowy model tego problemu: Typyzmiennych:x 1 0, x 2 0. Funkcjacelu: maxz = 5x 1 +4x 2 (Zysk). Ograniczenia: 6x 1 +4x 2 24[SurowiecM1] x 1 +2x 2 6[SurowiecM2] x 1 +x 2 1[Wymaganierynkowe] x 2 2[Limitpopytu]

3 Model tego problemu zapisany w języku AMPL może być postaci(słowa kluczowe pisane są pismem półgrubym) podanej tabeli 3: Wpisując ten plik pod var x1 >= 0; var x2 >= 0; maximize z : 5 x1+4 x2; subject to c1 : 6 x1+4 x2 <= 24; c2 : x1+2 x2 <= 6; c3 : x1+x2 <= 1; c4 : x2 <= 2; solve; display 5 x1+4 x2,x1,x2; Tablica 3: Model problemu MKsa nazwą MKsa.mod(konieczne jest rozszerzenie mod po kropce) do systemu GU- SEK i klikając opcję Run na pasku głównym otrzymamy wyniki: OPTIMAL SOLUTION FOUND 21 X1 = 3 X2 = 1.5 Model has been successfully processed. W podanym powyżej modelu wiersze 1 i 2 to deklaracje zmiennych nieujemnych, funkcja celu modelu jest zadeklarowana w wierszu 3. Wiersz 4 zawiera słowo kluczowe subject to, które można opcjonalnie opuścić. Ograniczenia modelu są zapisane w wierszach 4(można opuścić),5,6,7 i 8. Wiersz 9(solve;) zawiera polecenie rozwiazania modelu a ostatni wiersz: display z, x1, x2; polecenie wydruku wyników tj. optymalnej wartości funkcji celu i optymalnych wartości zmiennych modelu(argumenty instrukcji display rozdzielone są przecinkami). W powyższym przykładzie nie wystąpiły elmenty 1,2 i 7 bazowej struktury modelu AMPL. W następnym rozdziale pokażemy w tabeli 4 inną wersję modelu wykorzystujacą te elementy.

4 Definiowanie zbiorów, parametrów i zmiennych #*********************Modelalgebraiczny********************* # -deklaracjezbiorów(1) set farby; set zasoby; # deklaracjeparametrów(2) param jednostkowyzysk{farby}; param limit{zasoby}; param aij{zasoby,farby}; # -deklaracjezmiennychdecyzyjnych(3) var product{farby} >=0; # -model(4) maximize zysk: sum{j in farby} jednostkowyzysk[j]*product[j]; ograniczenie{i in zasoby}: sum{j in farby} aij[i,j]*product[j] <= limit[i]; # -rozwiązanie(5) solve; # -wydrukwyników(6) display zysk,product; # -danedomodelu(7) data; setfarby:=fzfw; set zasoby:=m1 M2 Rynek Popyt; param jednostkowyzysk:=fz 5 FW 4; paramlimit:=m124m26rynek1popyt2; paramaij:fzfw:= M164 M212 Rynek-11 Popyt01; end; Tablica 4: Model AMPL problemu MKsa z indeksami nazwowymi Algebraiczna reprezentacja modelu(tablica 4) zaczyna się od deklaracji zbiorów, które definiują indeksy ogólnego modelu liniowego. Użytkownik nadaje nazwy zasoby i farby dla zbiorów indeksów odpowiadających odpowiednio zbiorom {i} oraz {j} w modelu liniowym. Konkretne elementy zbiorów zasoby i farby, które definiują problem RMsa są dostarczone w części danych wejściowych(pkt 7 ogólnego schematu) modelu.

5 Parametrami są nazwy nadawane przez użytkownika poprzedzone słowem kluczowym param, które definiują wspólczynniki funkcji celu i współczynniki ograniczeń jako funkcję zmiennych i zbiorów ograniczeń. Parametry: jednostkowyzysk{farby}, aij{zasoby,farby} oraz limit{zasoby} odpowiadająodpowiedniomatematycznymsymbolom c j,a ij i b i modeluliniowego. Indeksy i oraz j są reprezentowane w AMPL odpowiednio zbiorami zasoby i farby. Konkretne wartości tych parametrów są dostarczane w części danych wejściowych modelu AMPL. Zmiennemodelu, x j mająnazwęproduktisąpoprzedzonesłowemkluczowym var. Jak poprzednio produkt jest funkcją zbioru farby. W deklaracji zmiennej możemy dodać warunek nieujemności(>=). W przypadku jego opuszczenia zmienna może przymować dowolne wartości(tj. dodatnie lub ujemne). Ponadto po nazwie zmiennej może wystąpić słowo kluczowe integer lub binary, gdy zmienna ma przyjmować tylko wartości całkowite lub binarne(zero lub jeden) w problemach dyskretnych. Definiowanie funkcji celu i ograniczeń Mając zdefiniowane zbiory, parametry i zmienne modelu(pkty 1,2 i 3) następnym krokiem jest wyrażenie problemu optymalizacji za pomocą tych elementów. Deklaracja funkcji celu określa typ optymalizacji używając słów kluczowych maximize lub minimize. Funkcja celu z ma nazwę zysk, po której występuje dwukropek(:). Wyrażenie matematyczne c j x j jest reprezentowane w języku AMPL następującą instrukcją: j sum{j in farby} jednostkowyzysk[j]*produkt[j]; Indeks j jest wybierany(jego nazwa) przez użytkownika. Zwróć uwagę, że używamy nawiasów klamrowych w {j in farby} aby pokazać, że wartości indeksu j są elementami zbioru farby, a użycie nawiasów kwadratowych [j] reprezentuje indeks. Model może zawierać jedno lub więcej ograniczeń, z których każde musi mieć nazwę nadaną przez użytkownika. W rozpatrywanym modelu mamy jeden zbiór ograniczeń o nazwie limit indeksowany zbiorem zasoby: limit{i in zasoby}: sum{j in farby} aij[i,j]*produkt[j] <= ograniczenie[i];

6 Tainstrukcjajestbezpośrednimzapisemi-tegoograniczenia: j a i,jx j b i. AMPL dopuszcza wprowadzenie ograniczeń dolnych i górnych na wartości zmiennych decyzyjnych. Można to zrobić na etapie deklaracji zmiennych(nie trzeba wprowadzać dodatkowych ograniczeń w modelu). W tym celu deklaruje się dwa parametry o nazwach np. dolneograniczenie i gorneograniczenie jako: param dolneograniczenie{farby}; param gorneograniczenie{farby}; a następnie zmienne są definiowane jako: var produkt{j in farby}>=dolneograniczenie[j],<=gorneograniczenie[j]; UWAGA! Syntaktyka języka nie dopuszcza porównywania wektorów, zatem błędna jest deklaracja: var produkt{farby}>=dolneograniczenie{farby},<=gorneograniczenie{farby}; (Wyjątkiem od tej reguły jest sytuacja, gdy jeden z wektorów jest zerowym- tak np. deklaracja var produkt{farby} >= 0: definiująca warunek nieujemnosci zmiennych jest poprawna). Dla parametrów obowiązują te same reguły i tak deklaracja: param gorneograniczenie{j in farby}>=dolneograniczenie[j]; gwarantuje, że gorneograniczenie jest zawsze nie mniejsze niż dolneograniczenie. Specyfikacja danych wejściowych Algebraiczny model może być zastosowany do problemu o dowolnej liczbie zmiennych i ograniczeń. Zastosowanie tego modelu do problemu MKsa dokonuje się poprzez specyfikację danych, dokonywaną w części modelu po deklaracji dane;(7). Najpierw definiujemy nazwy w części deklaratywnej zbiorów a następnie wykorzystując te definicje przypisujemy numeryczne wartości różnym parametrom. Zbiór farby zawiera nazwy dwu zmiennych FZ i FW. Natomiast zbiór zasoby zawiera elementy o nazwach: M1, M2, Rynek i Popyt. Odpowiednie deklarcje w części danych wejściowych są następujące: setfarby:=fzfw; set zasoby:=m1 M2 Rynek Popyt; Elementy zbioru występujące po znaku operatora:=(symbol zarezerwowany) są oddzielone spacją(lub przecinkiem). Indeksy będące nazwami(symbolami alfanumerycznymi tj. nie będące liczbami) muszą być zawarte w podwójnych apostrofach, jeśli występują poza segmentem danych wejściowych modelu, np. odwołanie się do konkretnej wartości parametru musi mieć postać: farby[ Z ],farby[ FW ],limit[ M1 ],limit[ M2 ],limit[ Rynek ],limit[ Popyt ]. W przeciwnym przypadku indeks będzie błędnie interpretowany jako numeryczny parametr.

7 Można również zdefiniować zbiory w części deklaratywnej modelu algebraicznego(zamiast w części danych wejściowych) i wtedy taka deklaracja ma następująca postać: setfarby:= { FZ, FW }; setzasoby:= { M1, M2, Rynek, Popyt }; Konieczne jest tu użycie nawiasów klamrowych, podwójnych apostrofów i przecinków oddzielających poszczególne elementy zbioru. Definiowanie zbiorów liczbowych Użycie alfanumerycznych nazw dla zbiorów(np. w problemie MKsa nazw farby i zasoby) może być niewygodne dla dużych problemów. W takim przypadku wygodniejsze są indeksy numeryczne(liczbowe), np.: set farby:= 1..2; set zasoby:= 1..4; Zapis 1..4 reprezentuje zbiór(zakres wartości indeksu) {1, 2, 3, 4} i jest szczególnie użyteczny dla dużych zbiorów. Np jest zbiorem 1000 kolejnych liczb od 1 do Instrukcja 1..m(lub n) ma następującą postać ogólną: start..end by krok, gdzie start,end i krok sa parametrami, których warości mogą być podane w częscidata;.jeślistart <end ikrok >0,toelementamitegozbiorusa:start, start+krok, itd. Ostatni największy element ma wartość mniejszą lub równą end. Możebyćrównieżstart >endikrok <0iwtedydeklaracja 10..3by-2 generuje zbiór o elementach 10,8,6,4. Domyślną wartością dla krok jest 1 co oznacza, że deklaracja jest identyczna z deklaracją start..end by 1 start..end. Ogólnie start,end i krok mogą być dowolnymi poprawnymi w AMPL wyrażeniami matematycznyminp.dladanychwartościparametrów minzbiór 2 n..m+n 2 by n/2 jest poprawnie zdefiniowany. Również wartość krok nie musi być liczbą całkowitąnp.dla m = 5in=13elementamizbioru m..nby m/2sąliczby 5,7.5,10,12.5.

8 Parametry jedno i dwu-indeksowe Można zdefiniować ogólnie zakres wartości indeksu najpierw definiując wartości minjakoparmetry: param m; param n; Wtedy zbiory 1..m, i 1..n mogą być używane bezpośrednie w całym modelu(bez potrzeby deklarowania nazw zasoby i farby). Ilustruje to model problemu MKsa podany w tabeli 5. W powyższym modelu mamy dwa jedno-indeksowe parametry: param m; param n; param jednostkowyzysk{1..n}; param limit{1..m}; paramaij{1..m,1..n}; # -zmienne var produkt{1..n}>= 0; # model maximize zysk: sum{j in 1..n}jednostkowyzysk[j]*produkt[j]; limit{i in 1..m}: sum{j in 1..n}aij[i,j]*produkt[j]; # Rozwiązanieiprezentacjawyników solve; display zysk,sum{j in 1..n}jednostkowyzysk[j]*produkt[j],produkt; # danewejściowe data; param m:=4; param n:=2; param jednostkowyzysk:= ; paramlimit:= ; paramaij:12:= ; end; Tablica 5: Model AMPL problemu MKsa z indeksami numerycznymi jednostkowyzysk i limit i jeden dwu-indeksowy parametr aij. Dane dla pierwszego rodzaju parametrów specyfikujemy listując kolejno numer elmentu zbioru a następnie(co najmniej jedna spacja odstępu) jego wartość. W sytuacji, gdy zakres indeksu zdefiniowany jest zbiorem alfanumerycznym tak jak w modelu z tablicy 4 specyfikacja wartości parametrów jednostkowyzysk i limit jest następująca:

9 param jednostkowyzysk:= FZ5 FW4; param limit:= M124 M26 Rynek 1 Popyt 2; Elementy listy mogą być zapisane w jednej linii ale muszą być oddzielone co najmniej jedną spacją. Dane wejściowe dla dwu-indeksowanego parametru aij są zapisywane podobnie z tym, że kolejność kolumn musi być podana po nazwie parametru zakończonej dwukropkiem(aij:) celem eliminacji niejednoznaczności. W przypadku indeksów zadanych zbiorem alfanumerycznym tak jak w modelu 4 specyfikacja jest następujaca: paramaij:fzfw:= M164 M212 Rynek-11 Popyt01; AMPL umożliwia nadanie domyślnychych wartości wszystkim elementom danegoparemetru.załóżmy,żedlaparametru cmamyże c 1 = 11, c 8 = 22oraz c i = 0dla i = 2,3,...,7.Zwykłaspecyfikacjatychdanychbyłabynastępująca: paramc{1..8};... data; paramc:= ; Natomiast bardziej zwartą postać daje użycie nastepujących instrukcji: param c{1..8} default 0;... data; paramc:=111822; Instrukcja display domyślnie wyświetla wyniki na ekranie. Nie jest to jedyny sposób przentacji wyników. Możliwe jest przekazywanie wyników obliczeń na zewnętrzne pliki umieszczając znak > i nazwę pliku(>nazwa), w którym chcemy mieć wyniki, bezpośrednio przed średnikiem kończącym instrukcję. W rozważanych przykładach modeli cały AMPL model znajdował się w jednym pliku, któremu użtkownik nadaje nazwę z rozszerzeniem mod po kropce, np. MKsa.mod. W wielu przypadkach algebraiczny model problemu rozwiązuje się dla kilku zbiorów danych lub dane do modelu ptrzechowywane są na zewnętrzych nośnikach.

10 W tym celu model AMPL może być reprezentowany przez dwa oddzielne pliki: np. dla problemu MKsa plik MKsa.mod zawierający model algebraiczny łącznie z instrukcjami solve i display oraz plik MKsa.dat zawierający dane wejściowe dla modelu. Wyrażenia matematyczne i wyliczalne parametry Język AMPL umożliwia nie tylko wprowadzenie ograniczeń dolnych i górnych na wartości parametrów ale pozwala również na bardziej elastyczne definiowanie parametrów jako złożonych wyrażeń matematycznych, ewentualnie modyfikowanych warunkowo. Dla ilustracji rozważmymy model problemu, w którym maksmalizujemy funkcję celu, której współczynniki są funkcją dwóch paramentrów(r i v). Interesująca część modelu AMPL ma postać: paramr{1..n}> 0, < 1; paramv{1..n}> 0, < 1; var x{1..n}>= 0; maximizez:sum{iin1..n}(r[i] v[i] (r[i]+1)) x[i]; (ograniczenia) Innym sposobem jest w tej sytuacji użycie nowego parametru c którego wartości są obliczane(przy definiowaniu parametru) następująco: paramr{1..n}> 0, < 1; paramv{1..n}> 0, < 1; paramc{iin1..n}=(r[i] v[i] (r[i]+1)); var x{1..n}>= 0; maximizez:sum{iin1..n }c[i] x[i]; (ograniczenia) Wyrażenia definiujące parametr mogą zawierać dowolne arytmetyczne funkcję(np. sin, max, log, sqrt, exp), których obliczana wartość jest wartością numeryczną. Do obliczenia wartości parametrów może być stosowana następująca konstrukcja warunkowa: parametr = if warunek then wyrażenie1 else wyrażenie2; Warunek porównuje arytmetyczne wielkości i symbole(strings) używając operatorów =,<,>,<=,>=,<>(równieżlogicznych / ),któreniemusząbyć funkcjami zmiennych modelu. Konstrukcja może być także używana bez else wyrażenie2 jak również może być zagnieżdzona po else. Konstrukcja if-then-else przypisuje obliczalnemu parametrowi numeryczną wartość wyrażenie1 lub wyrażenie2 zatem jest ona wyrażeniem a nie instrukcją. Zastosowanie tej konstrukcji pokażemy na następującym przykładzie. Firma produkuje pewien produkt w celu zaspokojenia popytu w nadchodzących miesiącach. Jednostkowy koszt produkcji

11 wynosi pzł.dlapierwszym mmiesięcyiwzrastao10%wnastępnych mmiesiącach i o 20% w następnych m miesiącach. Pominiemy ograniczenia w modelu, aby zademonstrować tylko działanie konstrukcji if. Niech x j =ilośćproduktuwytwarzanawmiesiącu j,j = 1,2,...,3m Funkcja celu jest następująca: minz = p(x 1 +x 2 + +x m )+1.1p(x m+1 +x m+2 + +x 2m ) +1.2p(x 2m+1 +x 2m+2 + +x 3m ) Model tego fragmentu w AMPL jest postaci: param p; var x{1..3*m}>= 0; minimize koszt: p*(sum{j in 1..m}x[j]+1.1* sum{j in m+1..2*m}x[j]+ 1.2*sum{j in 2*m+1..3m}x[j]); (ograniczenia) Bardziej zwartym zapisem wykorzystującym konstrukcję if-then-else do zdefiniowaniaparametru c j wfunkcjicelujestnastępującyfragment: param m; param n:=3*m; param p; paramc{jinn}:=if j <= mthenpelse if j > mand j <= 2 mthen1.1*pelse1.2*p; var x{1..n}>= 0; minimize z: sum{j in 1..n}c[j]*x[j]; (ograniczenia)

12 Podzbiory Załóżmy, że w pewnym modelu mamy 7 zmiennych i następujące ograniczenie: x 1 +x 2 +x 5 +x 6 +x 7 27; Takie ograniczenie można zamodelować na kilka sposobów(nowe słowa kluczowe pisane są pogrubionym drukiem): # Sposób1 var x{1..7}>= 0; ograniczenie: sum{j in 1..7:j<= 2 or j>= 5}x[j]<= 27; # Sposób2 var x{1..7}>= 0; ograniczenie: sum{j in 1..2 union 5..7}x[j]<= 27; # Sposób3 var x{1..7}>= 0; ograniczenie: sum{j in 1..7 diff 3..4}x[j]<= 27; # Sposób4 var x{1..7}>= 0; ograniczenie: sum{j in 1..7 diff(1..4 inter 3..7)}x[j]<= 27; # - Wsposobie1zezbioru {jin1..7}usuwasięelement3i4nakładającwarunki na j. Znak dwukropka oddziela zmodyfikowany zbiór od warunków. Słowo kluczowe or odpowiada symbolowi alternatywy logicznej(lub). Słowa kluczowe union, diff i inter odpowiadają operacjom na zbiorach odpowiednio sumie (A B),różnicy(A B)iiloczynowi(A B)zbiorów.

Laboratorium WDEC. Opis posługiwania się pakietem AMPL

Laboratorium WDEC. Opis posługiwania się pakietem AMPL Laboratorium WDEC Opis posługiwania się pakietem AMPL Adam Krzemienowski, Grzegorz Płoszajski Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Pakiet AMPL Pakiet AMPL jest narzędziem

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

Bardziej szczegółowo

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN AHDL - Język opisu projektu. Podstawowe struktury języka Przykładowy opis rewersyjnego licznika modulo 64. TITLE "Licznik rewersyjny modulo 64 z zerowaniem i zapisem"; %------------------------------------------------------------

Bardziej szczegółowo

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski METODA SYMPLEKS Maciej Patan Uniwersytet Zielonogórski WSTĘP Algorytm Sympleks najpotężniejsza metoda rozwiązywania programów liniowych Metoda generuje ciąg dopuszczalnych rozwiązań x k w taki sposób,

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego

Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego Notatki do tematu Metody poszukiwania rozwiązań jednokryterialnych problemów decyzyjnych metody dla zagadnień liniowego programowania matematycznego część III Analiza rozwiązania uzyskanego metodą simpleksową

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Badania operacyjne Problem Model matematyczny Metoda rozwiązania Znaleźć optymalny program produkcji. Zmaksymalizować 1 +3 2 2 3 (1) Przy ograniczeniach 3 1 2 +2 3 7 (2) 2 1 +4 2 12 (3) 4 1 +3 2 +8 3 10

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Wprowadzenie do Mathcada 1

Wprowadzenie do Mathcada 1 Wprowadzenie do Mathcada Ćwiczenie. - Badanie zmienności funkcji kwadratowej Ćwiczenie. pokazuje krok po kroku tworzenie prostego dokumentu w Mathcadzie. Dokument ten składa się z następujących elementów:.

Bardziej szczegółowo

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE 6. Ćwiczenia komputerowe Ćwiczenie 6.1

Bardziej szczegółowo

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE 2.2 Ćwiczenia komputerowe Ćwiczenie

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje

Bardziej szczegółowo

ZAGADNIENIE TRANSPORTOWE

ZAGADNIENIE TRANSPORTOWE ZAGADNIENIE TRANSPORTOWE ZT jest specyficznym problemem z zakresu zastosowań programowania liniowego. ZT wykorzystuje się najczęściej do: optymalnego planowania transportu towarów, przy minimalizacji kosztów,

Bardziej szczegółowo

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH II rok Kierunek Logistyka Temat: Zajęcia wprowadzające. BHP stanowisk

Bardziej szczegółowo

Programowanie w Turbo Pascal

Programowanie w Turbo Pascal Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 11 Funkcje 1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe 1

A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe 1 A. Kasperski, M. Kulej Badania Operacyjne- programowanie liniowe ZAGADNIENIE DUALNE Z każdym zagadnieniem liniowym związane jest inne zagadnienie nazywane dualnym. Podamy teraz teraz jak budować zagadnienie

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Przykład 1 -->s=hello World! s = Hello World! -->disp(s) Hello World! Scilab jest środowiskiem programistycznym i numerycznym dostępnym za darmo z INRIA (Institut Nationale de Recherche en Informatique et Automatique). Jest programem podobnym do MATLABa oraz jego darmowego

Bardziej szczegółowo

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA

Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA 3.2. Ćwiczenia komputerowe

Bardziej szczegółowo

Elementy języków programowania

Elementy języków programowania Elementy języków programowania Olsztyn 2007-2012 Wojciech Sobieski Języki programowania wymyślono po to, by można było dzięki nim tworzyć różnorodne programy komputerowe. Oczekuje się również, że tworzone

Bardziej szczegółowo

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik Programowanie liniowe całkowitoliczbowe Tadeusz Trzaskalik .. Wprowadzenie Słowa kluczowe Rozwiązanie całkowitoliczbowe Założenie podzielności Warunki całkowitoliczbowości Czyste zadanie programowania

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO

ZAGADNIENIA PROGRAMOWANIA LINIOWEGO ZAGADNIENIA PROGRAMOWANIA LINIOWEGO Maciej Patan Uniwersytet Zielonogórski WSTĘP często spotykane w życiu codziennym wybór asortymentu produkcji jakie wyroby i w jakich ilościach powinno produkować przedsiębiorstwo

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 9 Funkcje 1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

MATLAB - laboratorium nr 1 wektory i macierze

MATLAB - laboratorium nr 1 wektory i macierze MATLAB - laboratorium nr 1 wektory i macierze 1. a. Małe i wielkie litery nie są równoważne (MATLAB rozróżnia wielkość liter). b. Wpisanie nazwy zmiennej spowoduje wyświetlenie jej aktualnej wartości na

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Układy równań i nierówności liniowych

Układy równań i nierówności liniowych Układy równań i nierówności liniowych Wiesław Krakowiak 1 grudnia 2010 1 Układy równań liniowych DEFINICJA 11 Układem równań m liniowych o n niewiadomych X 1,, X n, nazywamy układ postaci: a 11 X 1 + +

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13

GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13 Nazwisko i imię: Nr indeksu: 1 2 3 4 Σ MiNI/MatLic/AiPP/2014 2015/Kolokwium-IIA (30) GRUPA ĆWICZENIOWA (ZAKREŚL ODPOWIEDNIĄ): MG8 MG13 MB13 MD13 BT13 Uwaga: Za każde zadanie można uzyskać tę samą liczbę

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych i dynamicznych, symulacji procesów, przekształceń i obliczeń symbolicznych

Bardziej szczegółowo

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Metoda simpleks. Gliwice

Metoda simpleks. Gliwice Sprowadzenie modelu do postaci bazowej Sprowadzenie modelu do postaci bazowej Przykład 4 Model matematyczny z Przykładu 1 sprowadzić do postaci bazowej. FC: ( ) Z x, x = 6x + 5x MAX 1 2 1 2 O: WB: 1 2

Bardziej szczegółowo

Metody i analiza danych

Metody i analiza danych 2015/2016 Metody i analiza danych Macierze Laboratorium komputerowe 2 Anna Kiełbus Zakres tematyczny 1. Funkcje wspomagające konstruowanie macierzy 2. Dostęp do elementów macierzy. 3. Działania na macierzach

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.1 Opis programów Do rozwiązania zadań programowania

Bardziej szczegółowo

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

Wprowadzenie do programu Mathcad 15 cz. 1

Wprowadzenie do programu Mathcad 15 cz. 1 Wpisywanie tekstu Wprowadzenie do programu Mathcad 15 cz. 1 Domyślnie, Mathcad traktuje wpisywany tekst jako wyrażenia matematyczne. Do trybu tekstowego można przejść na dwa sposoby: Zaczynając wpisywanie

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Instrukcja numer 06 Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle Zadanie 06 Pętle w skryptach wiersza poleceń Zadanie omawia zagadnienia związane ze stosowaniem instrukcji

Bardziej szczegółowo

Badania operacyjne. Dr hab. inż. Adam Kasperski, prof. PWr. Pokój 509, budynek B4 adam.kasperski@pwr.edu.pl Materiały do zajęć dostępne na stronie:

Badania operacyjne. Dr hab. inż. Adam Kasperski, prof. PWr. Pokój 509, budynek B4 adam.kasperski@pwr.edu.pl Materiały do zajęć dostępne na stronie: Badania operacyjne Dr hab. inż. Adam Kasperski, prof. PWr. Pokój 509, budynek B4 adam.kasperski@pwr.edu.pl Materiały do zajęć dostępne na stronie: www.ioz.pwr.wroc.pl/pracownicy/kasperski Forma zaliczenia

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008 PętlaforwOctave Roman Putanowicz kwietnia 008 Zakresyioperator : Zakresy(ang. ranges) są wygodnym sposobem definiowania wektorów reprezentujących ciągi arytmetyczne, czyli ciągi w których różnica pomiędzy

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Kompilator języka Basic można bezpłatnie pobrać ze strony z zakładki DOWNLOAD.

Kompilator języka Basic można bezpłatnie pobrać ze strony   z zakładki DOWNLOAD. Kompilator języka Basic można bezpłatnie pobrać ze strony www.justbasic.com z zakładki DOWNLOAD. lub bezpośrednio z linku - > download Just BASIC v1.01! Size: 2.4 MB Po zainstalowaniu na komputerze program

Bardziej szczegółowo

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

III TUTORIAL Z METOD OBLICZENIOWYCH

III TUTORIAL Z METOD OBLICZENIOWYCH III TUTORIAL Z METOD OBLICZENIOWYCH ALGORYTMY ROZWIĄZYWANIA UKŁADÓW RÓWNAŃ LINIOWYCH Opracowanie: Agata Smokowska Marcin Zmuda Trzebiatowski Koło Naukowe Mechaniki Budowli KOMBO Spis treści: 1. Wstęp do

Bardziej szczegółowo

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję. Zadania-6 1 Opracować program obliczający wartość sumy: S n m ai bj i 1 j 1 ln( bi j a) n, m : int; S, a, b : double Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 103 Dla obliczenia

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego 1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia

Bardziej szczegółowo

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5]; 4.3. Przykłady wykorzystania funkcji bibliotecznych 73 MATLAB % definiowanie funkcji function [dx]=vderpol(t,y) global c; dx=[y(2); c*(1-y(1)^2)*y(2)-y(1)]; SCILAB // definiowanie układu function [f]=vderpol(t,y,c)

Bardziej szczegółowo

Wykorzystanie programów komputerowych do obliczeń matematycznych

Wykorzystanie programów komputerowych do obliczeń matematycznych Temat wykładu: Wykorzystanie programów komputerowych do obliczeń matematycznych Kody kolorów: żółty nowe pojęcie pomarańczowy uwaga kursywa komentarz * materiał nadobowiązkowy Przykłady: Programy wykorzystywane

Bardziej szczegółowo

Zadania rachunkowe z termokinetyki w programie Maxima

Zadania rachunkowe z termokinetyki w programie Maxima Zadania rachunkowe z termokinetyki w programie Maxima pliku, polecenia do wpisywania w programie Maxima zapisane są czcionką typu: zmienna_w_maximie: 10; inny przykład f(x):=x+2*x+5; Problem 1 komorze

Bardziej szczegółowo

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego Przykład wykorzystania dodatku SOLVER 1 w arkuszu Ecel do rozwiązywania zadań programowania matematycznego Firma produkująca samochody zaciągnęła kredyt inwestycyjny w wysokości mln zł na zainstalowanie

Bardziej szczegółowo

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie PASCAL Język programowania wysokiego poziomu Opracowany przez Mikołaja Wirtha na początku lat 70 XX wieku Prosty, z silną kontrolą poprawności Stosowany prawie wyłącznie na uczelniach do nauki programowania

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź JAVASCRIPT PODSTAWY materiały dydaktyczne dla uczniów słuchaczy opracowanie: 2004-2007 by Arkadiusz Gawełek, Łódź 1. Czym jest JavaScript JavaScript tak naprawdę narodził się w firmie Netscape jako LiveScript,

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie

Bardziej szczegółowo

Algorytmy przeszukiwania wzorca

Algorytmy przeszukiwania wzorca Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy

Bardziej szczegółowo

OPTYMALIZACJA DYSKRETNA

OPTYMALIZACJA DYSKRETNA Temat nr a: odelowanie problemów decyzyjnych, c.d. OPTYALIZACJA DYSKRETA Zagadnienia decyzyjne, w których chociaż jedna zmienna decyzyjna przyjmuje wartości dyskretne (całkowitoliczbowe), nazywamy dyskretnymi

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

Bardziej szczegółowo

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ). 1.1.1. Obmiar Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p. 4.3.15). Zakładka przypomina swoim wyglądem uproszczony arkusz kalkulacyjny.

Bardziej szczegółowo