Programowanie współbieżne LABORATORIUM - 7A: FORTRAN 95. Andrzej Baran

Podobne dokumenty
FORTRAN 90 Ruch planet

Programowanie współbieżne... (3)

Historia Kompilatory Podstawy składni Zastosowanie. Język Fortran. Bartosz Radliński. Poznań, 2015

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Laboratorium Programowania Kart Elektronicznych

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Fortran 90/95 wykład 1

Przeciążanie operatorów

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Laboratorium Programowania Kart Elektronicznych

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Fortran90 (oraz FORTRAN77) ekspresowo 1

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Przeciążanie operatorów

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

Programowanie współbieżne WYKŁADY - CZ. 5EX. PRZYKŁAD. LICZBY PIERWSZE. Andrzej Baran

Język programowania PASCAL

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Modelowanie Procesów Jądrowych

Podstawy Programowania 2

Kurs WWW. Paweł Rajba.

Java EE produkcja oprogramowania

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Delphi Laboratorium 3

Programowanie współbieżne... (10) Andrzej Baran 2010/11

Zaawansowane metody programowania. Elementy struktury kodu - dyrektywy - biblioteki i moduły zewnętrzne - kompilacja kodu

Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 )

Zasady Programowania Strukturalnego

Podstawy Programowania

Modelowanie złożonych układów cyfrowych (1)

Polimorfizm a klasy generyczne w języku Java. Zdzisław Spławski 1

Wstęp do Informatyki i Programowania

Style programowania - krótki przeglad

Delphi podstawy programowania. Środowisko Delphi

Programowanie obiektowe w VB cz 2

Programowanie obiektowe

Tworzenie własnych komponentów

Algorytmy i struktury danych

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Wprowadzenie do programowania w języku FORTRAN

Programowanie współbieżne... (12) Andrzej Baran 2010/11

Warunki logiczne instrukcja if

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Jerzy Nawrocki, Wprowadzenie do informatyki

10. Programowanie obiektowe w PHP5

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

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

Wykład 6: Dziedziczenie.

Post-relacyjne bazy danych

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

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

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH

Języki programowania Język programowania Język maszynowy Kod maszynowy

Programowanie modułowe

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Instrukcje języków programowania

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Programowanie współbieżne... (4) Andrzej Baran 2010/11

Informatyka 1. Przetwarzanie tekstów

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

PARADYGMATY PROGRAMOWANIA Wykład 3

Podstawy programowania III

Podstawowe I/O Liczby

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Programowanie obiektowe

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Zaawansowane programowanie w języku C++ Programowanie obiektowe

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Wstęp do programowania

Programowanie obiektowe

Macierzowe algorytmy równoległe

Klasa I A(humanistyczna) - KLASA BEZ DWUJĘZYCZNOŚCI Rozszerzenie: j. polski, historia, WOS/j. angielski * I

Wstęp do Programowania 2

Robert Szmurło. Projektowanie Graficznych Interfejsów Użytkownika

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Podstawy programowania obiektowego

Oprogramowanie S4H, a zmiany VAT.

Drzewa podstawowe poj

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

14. Elementy systemu wykonawczego

Kurs rozszerzony języka Python

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

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Aplikacje w środowisku Java

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Antoni M. Zajączkowski: Abstrakcyjne typy danych i typy prywatne. Pakiet Ulamki 20 maja 2015

PODSTAWY PROGRAMOWANIA

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Transkrypt:

Programowanie współbieżne LABORATORIUM - 7A: FORTRAN 95 Andrzej Baran baran@kft.umcs.lublin.pl

Zadania7. Fortran 95 1. Przeczytaj pracę W.R. Hamiltona On quaternions (http://www.maths.tcd.ie/pub/histmath/people/hamilton/quatern2/quatern2.html). Napisz moduł Quaternions (Fortran95) do działań na kwaternionach (+, -, /, *, conjg, norm). Zastosuj intarface i overloading (przeciażania operatorów). Pamiętaj o mnożeniu przez liczbę (z lewej strony, z prawej strony, real, integer) 2. Napisz interfejs przypisania (=) i drukowania (q_print) kwaternionów. 3. Napisz prosty program używajacy modułu Quaternions i sprawdź proste działania w ciele kwaternionów. 4. Jak wykorzystać kwaterniony w opisie obrotów? Napisz program realizujacy obrót wektora (napisz odpowiedni moduł wektory ) wykorzystujacy moduł Quaternions, Mnożenie w ciele kwaternionów...?

Quaternions I module Quaternions type, public :: quaternion real :: a, b, c, d end type quaternion intrinsic :: conjg private quat_mul_real, real_mul_quat, quat_mul_int, & int_mul_quat, quat_mul, quat_sub, quat_div, & quat_div_real, quat_div_int, quat_conjg interface operator (+) module procedure quat_add interface operator (*) module procedure quat_mul_real module procedure real_mul_quat module procedure quat_mul_int module procedure int_mul_quat module procedure quat_mul interface operator (-) module procedure quat_sub

Quaternions II interface operator (/) module procedure quat_div! module procedure quat_div_real! module procedure quat_div_int interface conjg module procedure quat_conjg contains function quat_add(x,y) result (res), y res % a = x % a + y % a res % b = x % b + y % b res % c = x % c + y % c res % d = x % d + y % d end function quat_add function quat_sub(x,y) result (res), y res % a = x % a - y % a res % b = x % b - y % b res % c = x % c - y % c res % d = x % d - y % d end function quat_sub function quat_conjg(x) result (res)

Quaternions III res % a = x % a res % b = -(x % b) res % c = -(x % c) res % d = -(x % d) end function quat_conjg function quat_mul_real(x,r) result (res)! quat * real real, intent(in) :: r res % a = x % a *r res % b = x % b *r res % c = x % c *r res % d = x % d *r end function quat_mul_real function real_mul_quat(r,x) result (res)! real * quat real, intent(in) :: r res = quat_mul_real(x,r) end function real_mul_quat function int_mul_quat(i,x) result (res)! integer * quat integer, intent(in) :: i

Quaternions IV res = quat_mul_real(x,real(i)) end function int_mul_quat function quat_mul_int(x,i) result (res)! quat * integer integer, intent(in) :: i res = int_mul_quat(i,x) end function quat_mul_int function quat_norm(q) result(res) type(quaternion), intent(in) :: q real res real :: ap, bp, cp, dp ap = q % a bp = q % b cp = q % c dp = q % d res = sqrt(ap*ap+bp*bp+cp*cp+dp*dp) end function quat_norm function quat_div(x,y) result (res), y real r r = 1.0/quat_norm(y)**2 res = quat_mul_real(x,r) end function quat_div

Quaternions V! MULTIPLICATION function quat_mul(x,y) result (res), y real r res%a=0.; res%b=0.; res%c=0.; res%d=0. end function quat_mul subroutine quaternion_print(q) type(quaternion), intent(in) :: q real :: ap, bp, cp, dp ap = q % a bp = q % b cp = q % c dp = q % d print "(a1,4f12.6,a1)", "(",ap,bp,cp,dp,")" end subroutine quaternion_print end module Quaternions!!----------------------------------------------! TEST Program Quater use Quaternions type(quaternion) :: u, v, w u=quaternion(1,2,2,1) v=quaternion(4,3,2,1) w=u+v call quaternion_print(w) call quaternion_print(conjg(w)) call quaternion_print(w/w)

Quaternions VI call quaternion_print(2.*w) call quaternion_print(w*2.) u = quaternion(1,0,0,0) print *, quat_norm(u) end program Quater Uzupełnij moduł Quaternions o brakujące procedury, funkcje, operacje.