Programowanie w języku Fortran 90/95 - Program własny rozwiązywania równania falowego

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

Download "Programowanie w języku Fortran 90/95 - Program własny rozwiązywania równania falowego"

Transkrypt

1 PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W CHEŁMIE Instytut Matematyki i Informatyki Kierunek: Matematyka Specjalność: Matematyka z Informatyką Arkadiusz Gadecki Nr albumu 2887 Programowanie w języku Fortran 90/95 - Program własny rozwiązywania równania falowego Praca dyplomowa napisana pod kierunkiem prof. dr hab. Krzysztofa Murawskiego CHEŁM 2008

2 1 Oświadczenie o autorstwie pracy Oświadczam, że niniejszą pracę przygotowałem samodzielnie. Wszystkie dane, definicje, wzory i sformułowania pochodzące z literatury są opatrzone odpowiednimi odsyłaczami. Praca przedłożona do oceny nie była dotychczas publikowana w żadnej formie. Imię i nazwisko autora pracy... (data i podpis autora pracy)

3 2 Spis treści 1 Wstęp 3 2 Cel i zakres pracy 4 3 PODSTAWY JĘZYKA FORTRAN 90/ Struktura programu Typy zmiennych Podstawowe elementy języka Parametry zmiennej Instrukcja IF Instrukcja CASE Instrukcja DO Postawowe instrukcje wejścia i wyjścia Zmienne indeksowane TABLICE Deklaracja tablicy Dynamiczne tworzenie tablic Konstruktor tablicy Zmiana kształtu tablicy PODPROGRAMY (SEGMENT SUBROUTINE) Podprogramy wewnętrzne Podprogramy zewnętrzne Funkcje Moduły Podprogram rekurencja (RECURSIVE) Podprogram naturalny (PURE) Struktury Wskaźniki Intrukcje wejścia i wyjścia NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO Równanie falowe - postać numeryczna Program rozwiązujący równanie falowe Podsumowanie i wnioski 32 6 Literatura 33

4 WSTĘP 3 1 Wstęp W połowie lat 50-tych grupa naukowców z firmy IBM, prowadzona przez Johna Buckusa( ojca języka Fortran ), opracowała nowy język, który rewolucyjnie uprościł programowanie komputerów, przede wszystkim przez intuicyjny sposób kodowaia formuł matematycznych. Nazwa języka Fortran powstała jako akronim słów Formula Translation. Język ten szybko został zaakcteptowany przez użytkowników i od momentu powstania ulegał ciągłym modyfikacjom. Pierwsza standaryzacja nastapiła w 1960 roku, gdy American Standards Association (ASA) opublikowała krótki dokument określajacy podstawowy zestaw własności, jakim implementacja języka powinny się charakteryzować. Tak powstał Fortran IV. Następna standaryzacja znana była pod nazwą Fortran 66, ponieważ jej standaryzacja nastąpiła w 1966 roku. Wzorzec ten był jednak na potrzeby użytkowników zbyt ubogi i tworzone w tym czasie implementacje zawierały wiele rozszerzeń. W latach siedemdziesiątych nastąpiła bardzo ważna stadaryzacja języka Fortran znana jako Fortran 77, niedługo potem była standaryzacją światową. W tym czasie dokonywał się rozwój takich języków jak: C, C++ cz Ada. Następcą Fortranu 77 zosał Fortran 90 o możliwościach porównywalnych do tych wyżej wymienionych języków. Standard ten jest standardem światowym (ISO/IEC 1539:1991). Aktualnie obowiązującym standardem jest Fortran 95, który już nieznacznie różni się od swojego poprzednika. Fortran dysponuje wielką liczbą bibliotek, które pozwalają rozwiązać praktycznie każde zadanie numeryczne. Najważniejsze przyczyny, z powodu których Fortran jest wykorzystywany i rozwijany do dziś, to: szybkość obliczeń oraz wysoka wydajność kodu generowanego przez kompilatory Fortrana, wynikająca m.in. z jego długiej obecności na rynku programistycznym, znakomita skalowalność i przenośność oprogramowania (pomiędzy różnymi platformami sprzętowymi i systemami operacyjnymi), a także dostępność bibliotek dla programowania wieloprocesorowego i równoległego.

5 CEL I ZAKRES PRACY 4 2 Cel i zakres pracy Mój wybór na temat pracy padł na Fortran 90/95 ponieważ bardzo interesują mnie ogólnie języki programowania i staram się poznać ich jak najwięcej. Moja praca będzie poświęcona przedstawieniu języka Fortran 90/95 jako użytecznego narzędzia do obliczeń wszelkiego rodzaju równań matematycznych jedakże ja skupię się na problemie obliczania równania falowego. Oczywiście chcąc rozwinąć temat opisze sam język programowania. Praca ta więc jest skierowana do grona ludzi interesujących sie zarówno programowaniem jak również samą matematyką. W I rodziale mojej pracy opisałem najbardziejuzyteczne komendy, funkcje, wyrażenia które przydadzą się aby mile zacząć programowanie z Fortranem 90/95. Wszystkie te procedury będą opisane w podpunkatch w celu łatwiejszego zrozumienia i przyswojenia. Dzięki tak opisanym komendom, funkcjom, i wyrażeniom będziemy mogli w łatwy sposób powrócić do nich w celach przypomnienia sobie czegoś co pomineliśmy lub wyleciało nam z głowy. W II rodziale natomiast przejdziemy do zastosowań owych komend, fukcji czy wyrażeń w konkretnych przykładach programów dotyczących właśnie tytułowgo równania falowego. Zobaczymy jak bardzo są one użyteczne zarówno w opisanych przeze mnie programach, jak również dobrze je można wykorzystać w inncyh podobnych programach obliczeniowych tego typu.

6 PODSTAWY JĘZYKA FORTRAN 90/ PODSTAWY JĘZYKA FORTRAN 90/ Struktura programu Każdy program pisany w języku Fortran powinien zaczynać się słowamem kluczowym: Program [name] i kończyć. End Program [name] W [name] wpisujemy oczywiście własną nazwę programu. Między tymi dwoma elmentami będzie się zawierał cały program główny. Oczywiście dochodzą do tego jeszcze inne elementy takie jak modouły czy funkcje ale o nich później. 3.2 Typy zmiennych Jak w każdym języku programowania wyróżniamy różne typy zmiennych dla Fortrana są to: INTEGER - typ całkowity - dla liczb całkowitych, REAL - typ rzezeczywity - dla liczb rzeczywistych, COMPLEX - typ zespolony - dla liczb zespolonych, LOGICAL - typ logiczny - dla danych logicznych (o wartościach.true.- prawda i.false. - fałsz), CHARACTER - typ tekstowy - dla danych tekstowych. Nazwy dla każdego z typów muszą spełniać określone zasady 1 : długość nazwy do 31 znaków pierwszy znak musi być literą tylko litery, podkreślenia i cyfry sa dopuszczalne wielkie i małe litery nie są rozróżniane nazwy mogą być identyczne ze słowami kluczowymi nazwy moga byc takie same jak nazwy funkcji wewnęrznych 1 D.Chrobak, FORTRAN Praktyka Programowania, Wydawnictwo MIKOM, Warszawa 2003

7 PODSTAWY JĘZYKA FORTRAN 90/ Podstawowe elementy języka Program pisany w języku Frotran składa się z kolejnych linii, w których zapisywane są instrukcje. Tworząc taki program możemy używać nastepujących symboli 2 : a) liter alfabetu łacińskiego b) cyfr - A B C D E F G H I J K L M N O P R S T U V W X Y Z - a b c d e f g h i j k l m n o p r s t u v w x y z c) znaków specjalnych + - plus - - minus / - dzielenie - mnożenie. - kropka, - przecinek = - równość - odstęp ( - nawias lewy ) - nawias prawy - cudzysłów : - dwukropek! - wykrzyknik % - procent ; - średnik < - znak mniejszości > - znak większości? - znak zapytania $ - dolar - podkreślenie 2 J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000

8 PODSTAWY JĘZYKA FORTRAN 90/ Parametry zmiennej Nadanie parametru zmiennej, a nastęnie nadanie jej nazwy odbywa się za pomocą schematu: Typ danej [(KIND=liczba zarezerwowanych bajtów)] :: nazwa zmiennej Każdy z typów ma dodatkowy paramter (KIND), który określa liczbę zarezerwowanych bajówy w pamięci komputera. W tabeli 1 3 przedstawione są wszystkie typy zmiennych z pełnymi opisami. Tabela 1: Tablica typów dla danego parametru Typ Wartość Specyfikacja zmiennej parametru INTEGER 1 Zakres: -127 do 127 INTEGER 2 Zakres: do INTEGER 4 Zakres: do REAL 4 Zakres: do Dokładnośc: 7-8 miejsc znaczących REAL 8 Zakres: do Dokładnośc: miejsc znaczących COMPLEX 4 Zakres: do Dokładnośc: 7-8 miejsc znaczącyc COMPLEX 8 Zakres: do Dokładnośc: miejsc znaczących LOGICAL 1 Wartość:.TRUE. i.false. LOGICAL 4 Wartość:.TRUE. i.false. CHARACTER 1 Zestaw znaków ASCII 3.5 Instrukcja IF W instrukcji tej wyróżniamy dwie postaci: a) IF (wyrażenie logiczne) instrukcja uwarunkowana Jej działanie jest następujące: Jeśli wyrażenie logiczne ma wartosć.true., realizowana jest instrukja 3 J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000

9 PODSTAWY JĘZYKA FORTRAN 90/95 8 będąca kontynuacją linii, a nazywana instrukją uwawarunkowaną. Gdy wyrażenie logiczne ma wartość.false., instrukcja uwarunkowana jest pomijana i wykonywana jest następna linia programu. b) Postać druga (zwana blokową - bardziej odpowiadająca naturalnemu sposobowi forułowania warunków): [nazwa konstrukcji] IF (wyrażenie logiczne)then Grupa instukcji wykonywalnych, gdy wyrażenie logiczne ma wartość.true. ELSE Grupa instukcji wykonywalnych, gdy wyrażenie logiczne ma wartość.false. END IF [nazwa konstrukcji] Jesli wartość wyrażenia logicznego jest prawdą, należy wykonać zestaw kolejnych instrukcji do słowa kluczowego ELSE w przeciwnym wypadku należy wykonać zestaw kolejnych instrukcji od słowa kluczowego ELSE do słowa kluczowego END IF. 3.6 Instrukcja CASE Ta instrukcja służy do możliwości wyboru, jest ona strukturą sterującą. Ogólna jej postać jest następująca: [nazwa konstrukcji] SELECT CASE (określenie przypadku) CASE (lista przypadków)[nazwa konstrukcji] blok instrukcji do wykonania CASE (lista przypadków)[nazwa konstrukcji] blok instrukcji do wykonania. CASE DEFAULT [nazwa konstrukcji] blok instrukcji do wykonania END SELECT [nazwa konstrukcji] Jeśli nie pojawi się żaden z przypadków, możemy wykonać odpowiednie instrukcje, korzystając z opcji CASE DEFAULT.

10 PODSTAWY JĘZYKA FORTRAN 90/ Instrukcja DO Oto jej postać: [nazwa konstrukcji] DO [,] zmienna = wartość poczatkowa zmiennej, wartość końcowa zmiennej, [przyrost zmiennej w każdym cyklu] [blok instrukcji do wykonania] END DO[nazwa konstrukcji] Instrukcja ta wykonuje się wielokrotnie zwiększając bądź zmniejszając się o zmienną kontrolowaną(np. i) w każdym cyklu aż do uzyskania warotści końcowej zmiennej. 3.8 Postawowe instrukcje wejścia i wyjścia Instrukcjami pozwalającymi na wczytanie przez program danych i ich wyprowadzenie na zewnątrz są instrucje READ i WRITE 4 : READ (numer strumienia danych, postać danych) lista zmiennych do wczytania WRITE (numer strumienia danych, postać danych) lista zmiennych do wysłania gdzie: numer strumienia danych jest liczbą całkowitą, która określa skąd dane będą przesyłane postać danych może zawierać przepis na postać danych (format) Symbol gwiazdki (*) zamiast numeru strumienia danych i postaci danych nazywa się formatem swobodnym. Przykład: WRITE (*,*) Podaj wartość x: READ (*,*) x Instrukcja WRITE wyśle na ekran monitora podpowiedź do użytkownika programu o nadaniu wartości zmiennej x. Następnie w isnstrukcji READ nadajemy jej wartość, którą wpisujemy z klawiatury. Kolejną ciekawą instrukją I/O(czyli input/output) jest instrukcja OPEN, która kojarzy nazwę zbioru na dysku z symbolicznym numerem strumienia danych: OPEN (UNIT = numer strumienia danych, FILE = nazwa zbioru STATUS = status zbioru) 5 4 E. B. James, F. O Brien, P. Whitehead, Fortran kurs programowania, WNT

11 PODSTAWY JĘZYKA FORTRAN 90/95 10 gdzie: numer strumienia danych jest liczbą całkowitą nazwa zbioru zawiera informacje o nazwie zbioru, jaki kojarzymy z numerem strumiena danych status zbioru przyjmuje postać stałej tekstowej o treści OLD (gdy oczekujemy że zbiór istnieje na dysku) lub NEW (gdy oczekujemy że zbiór nie istnieje na dysku). Przykład: OPEN(UNIT=1, FILE= Dane.dat, STATUS= OLD ) Następuje tutaj skojarzenie strumiena danych o numerze 1 ze zbiorem o nazwie Dane.dat. Jeżeli w instrukcji READ lub WRITE pojawi się numer strumienia 1, będzie to znaczyło, iż informacje bedą czytane ze zbioru Dane.dat lub do niego zapisywane. 3.9 Zmienne indeksowane TABLICE Tablice zawsze pełniły ważną rolę w Fortranie. Najczęściej się je stosuje tak skonstruowane, by każdy element lub grupa elementów odpowiadały węzłowi siatki obliczeniowej 6. Tablica jest charakteryzowana przez liczbę wymiarów i rozmiar, który określa dopuszczany zakres indeksów w każdym wymiarze Deklaracja tablicy Ogólna postać: Typ zmiennej, DIMENSION (wymiar,rozmiar):: [nazwa] Przykład: REAL, DIMENSION (0:1, 5:7) :: a Tablica ta składa się z dwóch wierszy (0 i 1) oraz trzech kolumn (5,6,7) jest ona dwuwywmiarowa o rozpiętości w poziomie 3 i pionie 2. Tabela 2 przestawia taką tablice. Tabela 2: Przykładowa tablica a(0,5) a(0,6) a(0,7) a(1,5) a(1,6) a(1,7) 6 D.Chrobak, FORTRAN Praktyka Programowania, Wydawnictwo MIKOM, Warszawa 2003

12 PODSTAWY JĘZYKA FORTRAN 90/95 11 Deklarując tablice należy mieć na uwadze, że: wartość dolnej granicy zmienności indeksu od wartość górnej granicy oddzielamy dwukropkiem jeżeli wartość dolnej granicy zmienności indeksu nie została określona to domyślnie przyjmuje wartość 1 podanie wartość górnej granicy zmienności indeksu jest obowiązkowe wartość górnej granicy zmienności indeksu musi być większa lub równa wartości dolnej granicy jeżeli dla dowolnego indeksu wartości górnej granicy zmienności indeksu jest mniejsza od dolnej to macierz zostanie utworzona, ale jej rozmiar będzie równy 0 wartość granicy zakresu może być liczbą rzeczywistą, przy czym brana pod uwagę będzie jedynie jej część całkowita Operowanie tablicami odbywa się w taki sam sposób jak zmiennymi prostymi. Przykład:... tablica a(1,1)=1 tablica a(1,2)=2 tablica a(2,1)=3 tablica a(2,2)=4 tablica b=tablica a Najpierw przypisujemy konkretnym komórkom tablicy a wartości, a następnie zwiększamy każdą z tych wartości o 1.0 przypisujemy je tablicy b Dynamiczne tworzenie tablic W Fortanie 90 pojawiała się bardzo ciekawa możliwość nadawania wymiaru tablicy, co było nie spotykane we wcześniejszych wersajch języka. Dynamiczne tworzenie tablic daje możliwość użytkownikowi określenie wymiaru tablicy w momencie jej tworzenia co jest bardzo wygodne. Służą do tego słowa kluczowe takie jak: ALLOCATABLE, ALLOCATE i DEALLOCATE. 7 J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000

13 PODSTAWY JĘZYKA FORTRAN 90/ Konstruktor tablicy Jeśli tablica jest jednowymiarowa, to istnieje mechanizm umożliwiający bezpośrednie nadanie wartości elementom tablicy w czasie jej deklarowania. Mechanizm ten nazywany jest konstruktorem tablicy. Zaraz po nadaniu nazwy tablicy możemy wpisać wartość kolejnych elementów, które muszą się zawierać między ogranicznikami (/ /). Przykład:... INTEGER, DIMENSION (3) :: a=(/ 1, 2, 3 /) Zmiana kształtu tablicy Funkcja RESHAPE powoduje skopiowanie zawartości tablicy o danym kształcie do tablicy o innym kształcie. Umożliwia ona utworzenie tablicy o zadeklarowanym kształcie z elementów tablicy wskazanej jako źródło danych. Przykład:... REAL, DIMENSION (2,3):: a=reshape((/1, 2, 3, 4, 5, 6/),(2,3)) REAL, DIMENSION (3,2):: b=reshape(a,(3,2)) W powyższym fragmencie programu użyty został konstruktor tablicy jednowymiarowej do nadania wartości elementom tablicy dwuwymiarowej przez wykorzystanie funkcji RESHAPE PODPROGRAMY (SEGMENT SUBROUTINE) Niektóre fragmenty programy mogą się powtarzać lub być wykorzystane przez innych programistów. Możliwe jest zatem wyodrębnienie ich i przedstawienie w postaci podprogramu. W Fortranie 90 występują 3 kategorie podprogramów 8 : A) Wewnętrzne B) Zewnątrzne C) W modułach 8 adam/fortran/

14 PODSTAWY JĘZYKA FORTRAN 90/95 13 Deklaracja podoprgramu wygląda tak: SUBROUTTINE nazwa (lista parametrów formalnych)... deklaracja... treść procedury... RETURN END SUBROUTINE nazwa Aby skorzystać w programie głównym z podprogramu należy użyć instrukcji: CALLnazwa(lista prametrów formalnych) Jak widać program główny z podprogramem wymienia informacje za pomocą listy prametrów formalnych, tak więc zadeklarowane zmienne muszą być tego samego typu, aby program mógł się wykonać Podprogramy wewnętrzne Treść takiego programu, jak nazwa wskazuje znajduje się wewnątrz prgramu głównego. Oddzielony jest od instrukcji segmentu instrukją CONTAINS, która sygnalizuje obecność podprogramu 9. Zmienne i deklaracaje segmentu programu głównego są dostępne dla podprogramu wewnętrznego, natomiast odwrotnie nie, czyli zmienne i deklaracaje podprogramu nie są dostępne dla programu głównego. PROGRAM [nazwa] IMPLICIT NONE... treść segmentu głownego... CALL nazwa() STOP CONTAINS SUBROUTTINE nazwa (lista parametrów formalnych) IMPLICIT NONE... deklaracja RETURN END SUBROUTINE nazwa END PROGRAM [nazwa] Podprogramy zewnętrzne Podprogramy zewnętrzne znajdują sie poza segmentem głównym programu. 9 Oliveira, Writing Scientific Software, Wydawnictwo Cambridge University Press, 2006

15 PODSTAWY JĘZYKA FORTRAN 90/95 14 Występujące w procedurze zmiennne nazywane są zmiennymi lokalnymi, gdyż występują tylko w obszarze procedury. Łącznik czyli prototyp kodu umieszczony we fragmencie kodu znajduje się między słowami kluczowywmi INTERFACE, a END INTERFACE, które umieszczone są w segmencie programu głównego. W łączniku tym znajdują się lista parametrów formalnych, czyli ustalona lista niezbędnych danych jakie powinny być przekazane z programu głownego i jako procedury przekazane z powrotem do programu głównego. Stosujemy w tym celu atrybut INTENT() o wartości IN dla dla zmiennych przekazywanych przez segment główny do podprogramu, o wartości OUT dla zmiennych przekazywanych w przeciwnym kierunku oraz IN OUT dla zmiennych przekazywanych w obu kierunkach. SUBROUTTINE nazwa (lista parametrów formalnych) IMPLICIT NONE... deklaracja... treść procedury... RETURN END SUBROUTINE nazwa PROGRAM [nazwa] IMPLICIT NONE INTERFACE SUBROUTTINEnazwa(lista parametrów formalnych) IMPLICIT NONE... deklaracja RETURN END SUBROUTINEnazwa END INTERFACE... treść segmentu głównego... STOP END PROGRAM[nazwa] Funkcje Tego typu podprogramy wykorzystujemy, gdy wynikiem działania programu jest wartość tylko jednej zmiennej.wywołanie funkcji odbywa się przez napisanie jej nazwy z listą paraemtrów aktualnych.

16 PODSTAWY JĘZYKA FORTRAN 90/95 15 Ogólna postać to: FUNCTION nazwa (lista parametrów formalnych)... deklaracje... treść procedury... nazwa=wyrażenie (arytmetyczne, logiczne) RETURN END FUNCTIONnazwa Wewnątrz podprogramu o tej postaci musi występować podstawienie wyniku działania procedury pod nazwą funkcji lub musi być użyta opcja RESULT(), zawierająca nazwę zmiennej, która jest rezultatem działania funkcji. Zastosowanie funkcji w programie(metoda podprogramu wewnętrzengo): PROGRAM [nazwa] IMPLICIT NONE... treść segmentu głównego... CALL nazwa() STOP CONTAINS FUNCTION nazwa (lista parametrów formalnych) IMPLICIT NONE... deklaracja... treść... RETURN END FUNCION nazwa END PROGRAM [nazwa] Można też za pomocą podprogramu zewnętrzengo. Różnica funkcji od procedury plega na tym, że funkcja przekazuje jedną zmienna procedura więcej niż jedna. Opcja RESULT Zamiast podstawienia pod nazwę funkcji rezulatu działania można wskazać zmienna będacą rezultatem działania. Do tego typu zastosowań wykorzystuje się opcję ze słowem kluczowym RESULT 10 : 10 J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000

17 PODSTAWY JĘZYKA FORTRAN 90/95 16 FUNCTION nazwa (lista parametrów formalnych) RESULT (zwracana wartość) IMPLICIT NONE... deklaracja... treść... RETURN END FUNCION nazwa Funkcje standardowe W tabeli 3 podane są najczęściej używane funkcje opisane w bibliotece procedur języka fortran: Tabela 3: Funkcje występujące w fortranie Wartość bezwzględna a ABS(a) Funkcja wykładnicza e a Logarytm naturalny a Lograytm dziesiętny Funkcja sinus a(argument w radianch) Funkcja arcus sinus a Funkcja cosinus a(argument w radianch) Funkcja arcus cosinus a Funkcja tanges a(argument w radianch) Funkcja arcus tanges a Pierwiastek kwadratowy Suma elementów tablicy, wzdłuż wymiaru dim, spełniajacych warunek zawarty w maska Iloczyn elementów tablicy, wzdłuż wymiaru dim, spełniajacych warunek zawarty w maska Iloczyn macierzy A i B Generator liczb losowych Inicjalizacja generatora liczb losowych EXP(a) ALOG(a) ALOG10(a) SIN(a) ASIN(a) COS(a) ACOS(a) TAN(a) ATAN(a) SQRT(a) SUM(a,dim,maska) PRODUCT(a,dim,maska) MATMUL(a,b) RANDOM NUMER(r) RANDOM SEED() Moduły Jest on jednostką programów o różnym przenaczeniu. Inne programy odwołuja się do modułu uzyskując dostęp do stałych danych badź definicji. W module specyfikacje

18 PODSTAWY JĘZYKA FORTRAN 90/95 17 są globalne dla wszystkich segmentów, w których zostały użyte. Dostęp do modułu uzyskuje się za pomocą instrukcji USE i nazwa modułu 11. Podprogramy modułu podobnie jak podprogramy innych segmentów programu, mogą zostać zorganizowane w grupy przez nadanie im wspólnej nazwy. Wymaga to zdefiniowania jawnego interfejsu dla tych podprogramów. Postać: MODULE nazwa... deklaracje... END MODULE nazwa Idee wyokysania modułu ilustruje schemat (Tabela 4): Tabela 4: Schemat modułu Moduł A Segment główny USE moduł A Segment pomocniczy SUBROUTINE h() USE moduł A Oba te segmenty główny i pomocniczy mają dostęp do stałych i definicji zamieszczonych w module. Moduły wykorzytuję się głównie do: definicji typów danych, deklaracji globalnych(w skali całego programu) obiektów danych, definicji nowych operatorów lub referncji istniejących operatorów wewnętrznych, tworzenie bibliotek podprogramów, w tym interfejsów do podprogramwów zewnętrznych, Podprogramy umieszczone w modułach mają szersze zastosowanie od podprogramów wewnętrzynych i zewnętrznych. 11 D.Chrobak, FORTRAN Praktyka Programowania, Wydawnictwo MIKOM, Warszawa 2003

19 PODSTAWY JĘZYKA FORTRAN 90/95 18 Cechy główne modułu: * mogą wywołać wszystkie segmenty korzystające z tego modułu, * ma on bezpośredni dostęp do zmiennych zawartych w module między instrukcją MODULE, a porzedzającym jego opis, * wszystkie zmienne delaklarowane w podprogramie są zminnymi lokalnymi niedostępnymi na zewnątrz, Podprogram rekurencja (RECURSIVE) Program rekurencyjny charakteryzuje się tym, że może wywołać sam siebie. Nagłówek programu musi zawierać słowo RECURSIVE, jeżeli jest to funkcja to musi również zawierać słowo kluczowe RESULT. Jedna z postaci: RECURSIVE FUNCTION nazwa (lista parametrów formalnych) RESULT (zwracana wartość)... deklaracje warunków formalnych treść... END FUNCTION Podprogram naturalny (PURE) Nagłówek tego podprogramu musi zawierać słowo kluczowe PURE. Tego typu programy charakteryzują się następujcymi cechami: nie jest możliwe odwołanie się to zmiennych globalnych argumenty muszą być deklarowane z atrubutem INTENT dla funkcji dopuszczany jest atrybut INTENT (IN) instrukcje WRITE i READ mogą pojawić się tylko wtedy, gdy operacje, które wykonują, odnoszą się do tak zwanych plików wewnętrznych podprogram podprogramu zewnętrzego PURE musi być tego samego rodzaju Jedna z postaci: PURE SUBROUTINE nazwa (lista parametrów formalnych)... deklaracje warunków formalnych treść... END SUBROUTINE

20 PODSTAWY JĘZYKA FORTRAN 90/ Struktury Służą one przede wszystkim tworzeniu własnych typów danych, mogą zawierać informacje typu tekstowego i numerycznego. Fortran zapewnia możliwość tworzenia takich typów nazwanych w odróżnieniu od typów własnych typami pochodnymi 12. Aby utworzyć taką zmienną trzeba zadeklarować jej typ. W deklaracji zawarte są opisy szczegółowe elementów składowych tworzonego typu. Dostęp do elementów struktury możliwy jest przez podanie nazwy zmiennej, następnie separatora w postaci znaku (%) i dalej nazwy elementu składowego typu. Deklaracja typu pochodnych odbywa się w segmencie programu głównego: PROGRAM [nazwa] IMPLICIT NONE TYPE::nazwa... deklaracje... END TYPE nazwa TYPE (nazwa) :: nazwa zmiennej nazwa zmiennej%dkelaracje z TYPE = warości STOP END PROGRAM [nazwa] Wygląd struktury(tabela 5): Tabela 5: Przykład struktury tab a Różnica pomiędzy strukturą a tablicą STRUKTURA TABLICA elementy moga być danymi różnych typów elementy mogą zawierać dane tylko tego samego typu (np. REAL) indeksami jest opowiedni tekst poprzedzony indeksami sa liczby typu całkowitego znakiem % pisane w nawiasach dostęp do elementu odbywa się porzez dostęp do elementu odbywa się podanie nazwy przypisyanej do typu i porzez podanie nazwy tablicy i nazwy po separatorze (%) numeru indeksu (np. tab a(3)) (np. student%imię (struktura obywatel) ) 12 J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000

21 PODSTAWY JĘZYKA FORTRAN 90/ Wskaźniki Wskaźniki są wykorzystywane w różnych językach programowania i również w Fortranie znalazły swoje miejsce. Różnica pomiędzy zmienną, a wskaźnikiem polega na tym, że zmienna zawiera dane, a wskaznik określa miejsce gdzie przechowywane są te dane. Wskaźniki zostały wprowadzone w celu usprawnienia dostępu do złożonych typów zmiennych takich jak tablice czy struktury 13. Wskaźnik jak nazwa wskazuje musi coś wskazywać, musi zawierać informacje o własnościach tego obiektu, konieczne jest jego deklarowanie za pomocą atrybutu POITNER wraz z dokładnym opisem własności wskazanego obiektu, może on wkazywać tylko te obiekty, które zostały zadeklarowane do wskazania przez słowo kluczowe TARGET. Wskaźnik wiążemy ze wskazanym obiektem za pomocą instrukcji =>. Pzykłdowa postać: PROGRAM[nazwa] IMPLICIC NONE... Deklaracja wzkaźnika obiektu POITNER :: nazwa wskaźnika TARGET :: nazwa co ma wskazywać... nazwa wskaznika => nazwa co ma wskazywać STOP END PROGRAM [nazwa] Za pomocą wskaźnika możemy doprowadzić do stworzenia dynamicznej tablicy przez słowo kluczowe ALLOCATE (), które wcześniej nie były deklarowane. Daje się zauważyć różnice pomiędzy zmianną, która na stałe związana jest tym samym obszarem pamięci, a wskaźnikiem który w czasie działania programu może wskazywać na różne obszary pamięci. Samo zadeklarowanie wskaźnika nie powoduje powiązania go z jakim kolwiek obiektem, dopiero zancznik (=>) wskazuje na obiekt i tworzy takie powiązanie. Wskaźnik może znajdować się w dwóch stanach: * powiązanym (gdy wskazuje na jakiś obiekt) * nie określony (gdy nie jest przypisany do żadnego obiektu) Za pomocą funkcji ASSOCIATED(nazwa wskaźnika), która zwraca wartości logiczne.true.- gdy jest powiązany oraz.false.- gdy jest nie określony programista ma 13 D.Chrobak, FORTRAN Praktyka Programowania, Wydawnictwo MIKOM, Warszawa 2003

22 PODSTAWY JĘZYKA FORTRAN 90/95 21 możliwość kontroli statusu wskaźnika. Do wymuszenia zerwania powiązania, a zatem do osiągnięcia statusu wskaźnika nie określonego, stosowana jest funkcja NULLIFY(nazwa wskaźnika) Intrukcje wejścia i wyjścia Nie rzadko zdarza się, że w przypadku bardzo skoplikowanych obliczeń konieczne jest zapisanie na dysk dużej ilości danych potrzebnych do późniejszych obliczeń (np za pomocą innego programu). Omawiana wcześniej instrukcja OPEN zawiera bogatą listę parametrów, umożliwiajacą między innymi zadeklarowanie postaci zapisu danych na dysk. W różnych dziedzinach nauki spotykamy się z koniecznościa rozwiązania dużych ukłdów równiań liniowych. Rozwiązania takie skłdaja się zazwyczaj z dwóch etapów: eliminacji wprost uzyskania ostatecznego rozwiązania wstecz

23 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 22 4 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 4.1 Równanie falowe - postać numeryczna Postać numeryczna równania falowego 14 : Warunki brzegowe: u tt (x, t) = c 2 u xx (x, t) dla 0 < x < a i 0 < t < b (1) Dokonujemy dyskretyzacji po czasie: oraz u(0, t) = 0 i u(a, t) = 0 dla 0 t b, (2) u tt (x, t) = u(x, 0) = f(x) dla 0 x a, (3) u t (x, 0) = q(x) dla 0 < x < a. (4) u(x, t + k) 2u(x, t) + u(x, t k) k 2 + O(k 2 ) (5) u(x + h, t) 2u(x, t) + u(x h, t) u xx (x, t) = + O(h 2 ) (6) h 2 Następnie rozwiązujemy równość 15 : u i,j+1 2u i,j + u i,j 1 k 2 Podstawiająć do równania (7) r = ck h = c 2 u i+1,j 2u i,j + u i 1,j h 2 (7) otrzymujemy: Ostatecznie otrzymujemy: u i,j+1 2u i,j + u i,j 1 = r 2 (u i+1,j 2u i,j + u i 1,j ) (8) u i,j+1 = (2 2r 2 )u i,j + r 2 (u i+1,j + u i 1,j ) u i,j 1 (9) Z wykorzystaniem tych pomocnych równań stworzyłem program do równania falowego napisany w języku Fortran, który znajduje się w następnym podrodziale. 14 J. H. Mathews and K. D. Fink, Numerical MethodsUsing MATLAB (3rd Edition), Prentice Hall M.Motyka, Symulacje komputerowe w fizyce, Wydawnictwo Helion, Warszawa 2002

24 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 23 Kompilator jaki wykorzystałem do napisania mojego programu równania falowego nosi nazwę Silverfrost FTN95. Jest ona program konsolowym przeznaczonym głownie do programowania w języku Fortran 90/95, ale można w nim pisać również programy w C++ czy Javie. Kompilator Silverfrost FTN95, który uwalnia nas od czarno-białego okienka MS-DOSa. Co daje nam ten kompilator? Otóż proszę państwa daje nam Plato3 IDE!(rys. 1) IDE to Zintegrowane środowisko programistyczne, a to znaczy że mamy do czynienia z zespołem aplikacji, wspomagających programowanie tak, a żeby stało się ono proste i przyjemne. Plato posiada to co każde szanujące się IDE powinno posiadać, czyli np. kolorowanie składni, wbudowany kompilator czy niekończące się cofnij. Rysunek 1: Wygląd kompilatora

25 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO Program rozwiązujący równanie falowe Program rf implicit none interface function Fi(i,H) result(y) implicit none integer,intent(in):: i real,intent(in) :: H real :: arg real :: y end function Fi function Gi(i,H) result(y) implicit none integer,intent(in):: i real,intent(in) :: H real :: arg real :: y end function Gi end interface integer :: i,j real :: X, T real:: C integer :: N, M real :: K, R, H, R2, R22, S1, S2 real,dimension(1000,1000)::u! Liczniki dla pętli! maximum x i maximum t! Stała rówania falowego! Wymiar siatki! Pomocnicze równania! Siatka-Amplitudy write(*,*) Skończona-różnica rozwiązania równania falowego - write(*,*)!proces wprowadzania danych przez użytkownika write(*,*) Podaj X (Przedział graniczny dla x) write(*,*) write(*,*) Dla przykładu : 1 write(*,*) read(*,*)x write(*,*) Podaj T (Przedział graniczny dla t) write(*,*)

26 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 25 write(*,*) Dla przykładu : 0.5 write(*,*) read(*,*)t write(*,*) Wprowadziłes X =,X, T =, T write(*,*) write(*,*) write(*,*) Proszę wprowadzić wymiar siatki dla x-kierunek : write(*,*) write(*,*) Dla przykładu : 20 write(*,*) read(*,*)n write(*,*) Proszę wprowadzić wymiar siatki dla y-kierunek : write(*,*) write(*,*) Dla przykładu : 30 write(*,*) read(*,*)m write(*,*) Wprowadziłeś N =,N, M =,M write(*,*) write(*,*) Proszę wprowadzić stała równania falowego : write(*,*) write(*,*) Dla przykładu : 2 write(*,*) read(*,*)c write(*,*) Wprowadziłeś C =,C write(*,*)!stałe stworzone H = X / ( N - 1 );!delta x K = T / ( M - 1 );!delta t R = C * K / H; R2 = R * R; R22 = R * R / 2.0; S1 = R * R; S2 = * R * R;

27 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 26!Otoczenie graniczne do j=1,m,1 U(1,j)=0!ustalone U(N,j)=0!ustalone end do!rozwiązania dla t=t 0 i t=t 1 do i=2,n-1,1 U(i,1)=Fi(i,H) U(i,2)=S1 * Fi(i,H) + K * Gi(i,H) + R22 * ( Fi(i+1,H) + Fi(i-1,H) ) end do!iteracje w czasie petla1: do j=3,m,1 petla2: do i=2,n-1,1 U(i,j) = S2 * U(i,j-1) + R2 * ( U(i-1,j-1) + U(i+1,j-1) )- U(i,j-2) end do petla2 end do petla1!wynik rozwiązania na ekran petla1: do j=1,m,1 write(*,*)(k * (j - 1)) petla2: do i=1,n,1 write(*,*) krok,i, ==,U(i,j) end do petla2 end do petla1 open(unit=2,file= wyniki.txt,status= new )!Wynik rozwiazania do pliku petla1: do j=1,m,1 write(2,*)(k * (j - 1)) petla2: do i=1,n,1 write(2,*)u(i,j) end do petla2 end do petla1 End Program rf

28 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 27!Siatka funkcji dla amplitudy function Fi(i,H) result(y) implicit none integer :: i real :: x i real :: y,h arg = H * (i - 1) if( (x i >= 0).and. (x i <= 1.0) ) then y=sin ( * x i) else write (*,*) Fi() :Argument poza zasięgiem! Wyjście! write (*,*) x i :, x i end if return end function Fi!Funckja siatki dla szybkości function Gi(i,H) result(y) implicit none integer :: i real :: x i real :: y,h arg = H * (i - 1) if( (x i >= 0).and. (x i <= 1.0) ) then y=0 else write (*,*) Gi() :Argument poza zasięgiem! Wyjście! write (*,*) x i :, x i end if return end function Gi Program [równanie falowe] jest podzielony na kilka części, a ja postaram się jak najbardziej przybliżyć te części. Mianowicie pierwsza cześć programu to jest program główny, gdzie zawarte są najważniejsze elementy programu. Druga nie mniej ważna to funkcji (funkcja Fi i Gi )zdefiniowane poza programem głównym. Pierwsza z funkcji czyli Fi odpowiada za wielkość siatki kartezjańskiej dla amplitudy, natomiast druga z funkcji Gi odpowiada za szybkość rozchodzenia się fali. Obie funkcje pobierają licznik

29 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 28 pierwszej pętli (i) oraz zmienną pomocniczą (H) oraz zwracają y. Zarówno w funkcji Fi i Gi obliczana jest wartość x i i sprawdzane czy mieści się w przedziale <0,1>, jeżeli tak to wykonywane są określone działania. W pierwszej części programu głównego są zdefiniowane prototypy funkcji jakie zostały opisane poza nim, aby program mógł z nich skorzystać w celu poprawnego działania. Dalej są zdefiniowane potrzebne zmienne do działania programu m.in. maximum x i t czy stała równani falowego. Kolejna cześć programu jest już typowo wizualna ponieważ jej zadanie jest wyświetlenie na ekranie tego czego będzie potrzebował program do obliczenia równania falowego. W dalszej części są stworzone zmienne pomocnicze służące do prostszego zapisu programu i nie pogubienia się w nim podczas tworzenia. Po tej części mamy serce programu, w którym wyróżnione są dwie pętle po j i po i oraz trzecia najważniejsza pętla podwójna w której będzie dokonywało się sedno obliczeń i tworzenie fal. Ostatnia część programu to przestawienie wyników na ekran i zapis do pliku tych że wyników. Program ten jak już wyżej wspomniałem jast napisany przy wykorzystaniu równań z podroziału(4.1), bez których ciężko by mi było go napisać. Chciałbym przedstawić opis programu, który działa w ten sposób, że wpierw trzeba wprowadzić kolejne zmienne: 1. warunków brzegowych (A,B) (Rysunek 2) 2. wielkość siatki (N,M) (Rysunek 3) 3. prędkość z jaką fala ma się poruszać(c) (Rysunek 3) Rysunek 2: Wprowadzenie zmiennych A i B

30 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 29 Rysunek 3: Wprowadzenie zmiennych N, M, C Ostatecznie mamy wynik programu po wprowadzonych danych(rysunek 4) Rysunek 4: Wynik programu

31 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 30 Na podstawie powyższych rysunków przestawiających działanie mojego programu można jednoznacznie stwierdzić czy program działa poprawnie czy też nie. Jednakże chcąc obalić wszelkiego rodzaju spekulacje na ten temat posłużę się dodatkowym programem do zwizualizowania moich danych, a mianowicie programem gnuplot. Gnuplot 16 - program do tworzenia wykresów w 2 i 3 wymiarach. Praca z programem odbywa się w wierszu poleceń lub trybie wsadowym. Domyślnie ustawiony jest terminal x11 (rys. 5). Rysunek 5: Gnuplot terminal Dzięki temu, że program [równanie falowe] zapisuje swoje wyniki działania do pliku tekstowego (wyniki.txt), można w bardzo łatwy sposób przenieść te wyniki do programu gnuplot. Wystarczy tylko za pomocą opcji open wyznaczyć ścieżkę bezwzględną do pliku wyniki.txt tam, gdzie został on zapisany (rys. 6). 16

32 NUMERYCZNE ROZWIĄZANIE RÓWNANIA FALOWEGO 31 Rysunek 6: Wyznaczanie ścieżki do pliku wyniki.txt Ostatecznie otrzymujemy wykres na podstawie pliku wyniki.txt.(rys. 7) Rysunek 7: Rozwiazanie dla czasu t=0.5

33 PODSUMOWANIE I WNIOSKI 32 5 Podsumowanie i wnioski Program do obliczania równania falowego tylko potwierdza fakt, że język programowania jakim jest Fortran 90/95 jaki samo programowanie w tym języku jest przeznaczone dla osób dosyć dobrze znających się na matematyce, fizyce czy innych naukach ścisłych. Tylko po to, aby w pełni wykorzystać możliwości jakie drzemią w tym języku. Fortran jest używany od blisko pięćdziesięciu lat i jest on powszechnie stosowany przy prowadzeni przede wszystkim obliczeń numerycznych, co nikogo nie dziwi. Obliczenia aerodynamiczne samolotów, wytrzymałości ich struktur czy obliczenia cieplne, prowadzone są wyłącznie w tym języku. Podczas pisania programu dostrzegłem wiele zalet tego języka, a mianowicie: prostota zapisu, szybkość obliczeń oraz bezpieczeństwo. Co rozumiem przez bezpieczeństwo? Jeżeli chodzi o język Fortran to kompilator w jakim pracowałem bardzo rygorystycznie kontrolował poprawność użycia typów zmiennych, przekroczenia zakresów tablic czy przenoszenia informacji między programem głównym a procedurami. Z jednej strony może trochę ogranicza to możliwość języka, ale z drugiej strony chroni to przed niekiedy poważnymi konsekwencjami pomyłek. W przypadku złożonych struktur, do których możemy zaliczyć równanie falowe, jest to ogromną zaletą. Kończąc nasuwa się prosty wniosek, jeżeli ktoś nauczy się programować w języku Fortran poprzez, chociażby napisanie takiego złożonego programu jak równanie falowe na pewno mu się to przyda. Poszerzy swoją wiedzą o język programowania, który może wykorzystać niezliczonych ilościach zastosowań.

34 LITERATURA 33 6 Literatura [1] D.Chrobak, FORTRAN Praktyka Programowania, Wydawnictwo MIKOM, Warszawa 2003 [2] J. R. Piechna, Programowanie w języku Fortran 90 i 95 Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2000 [3] J. H. Mathews and K. D. Fink, Numerical Methods Using MATLAB (3rd Edition), Prentice Hall 1999 [4] E. B. James, F. O Brien, P. Whitehead, Fortran kurs programowania, Wydawnictwo WNT, 1974 [5] Oliveira, Writing Scientific Software, Wydawnictwo Cambridge University Press, 2006 [6] M.Motyka, Symulacje komputerowe w fizyce, Wydawnictwo Helion, Warszawa 2002 [7] [8] adam/fortran/ [9] aniat/fortran90/ [10] [11] [12]

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

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

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

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

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

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

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

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

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

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

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Liczby w jaki sposób komputery je widzą? Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Czy wiesz, jak komputery wykonują

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

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

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

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

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

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

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

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

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

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

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

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

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

Fortran 90/95 wykład 1

Fortran 90/95 wykład 1 Fortran 90/95 wykład 1 Janusz Andrzejewski 05/03/13 PLAN Historia Co złego w FORTRANie 77 Co nowego w Fortranie 90/95 Nowy styl Typy danych, deklaracja zmiennych i stałych Struktury danych Przekazywanie

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

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Podstawy programowania Laboratorium Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji Instrukcja warunkowa if Format instrukcji warunkowej Przykład 1. if (warunek) instrukcja albo zestaw

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

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

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. Złożone typy danych - TABLICE TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. * Może przechowywać dowolny typ danych, typ

Bardziej szczegółowo

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; } Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

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

Matlab Składnia + podstawy programowania

Matlab Składnia + podstawy programowania Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe

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

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

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ 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 zasad

Bardziej szczegółowo

Wykresy i interfejsy użytkownika

Wykresy i interfejsy użytkownika Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka

Bardziej szczegółowo

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; } Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

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

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

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

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

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

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne. Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne. Definicja. Niech a i b będą dodatnimi liczbami rzeczywistymi i niech a. Logarytmem liczby b przy podstawie

Bardziej szczegółowo

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53: Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla

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

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

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

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

Języki Programowania. Elementy języków programowania. Wojciech Sobieski

Języki Programowania. Elementy języków programowania. Wojciech Sobieski Języki Programowania Elementy języków programowania Wojciech Sobieski Olsztyn, 2001-2016 Definicja Elementy języków programowania cechy i funkcjonalności charakterystyczne dla różnych (tu: arytmetycznych)

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Tablice. Jones Stygar na tropie zmiennych

Tablice. Jones Stygar na tropie zmiennych Tablice Jones Stygar na tropie zmiennych Czym jest tablica? Obecnie praktycznie wszystkie języki programowania obsługują tablice. W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg (lub wektor),

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4 Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium cyfrowej techniki pomiarowej Ćwiczenie 4 Zapis danych do pliku w programie LabVIEW 1. Zapis i odczyt sygnałów pomiarowych Do zapisu

Bardziej szczegółowo

Laboratorium nr 1. i 2.

Laboratorium nr 1. i 2. Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych

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

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

Podstawy Programowania Algorytmy i programowanie

Podstawy Programowania Algorytmy i programowanie Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,

Bardziej szczegółowo

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

Elementy metod numerycznych - zajęcia 9

Elementy metod numerycznych - zajęcia 9 Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie

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

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

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

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania, SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Wykład 3 1 SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Przykład Bingo 2 Treść przykładu Jak wygląda karta do

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

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

Wprowadzenie do programowania w języku FORTRAN

Wprowadzenie do programowania w języku FORTRAN Wprowadzenie do programowania w języku FORTRAN Wprowadzenie Fortran jest językiem programowania zorientowanym głównie na zagadnienia matematyczne i zastosowania inżynierskie. Nazwa jest akronimem słów

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

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

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Języki formalne i techniki translacji

Języki formalne i techniki translacji Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn

Bardziej szczegółowo

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

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

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

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