Języki Programowania. Dobre praktyki. Wojciech Sobieski
|
|
- Bogdan Gajda
- 7 lat temu
- Przeglądów:
Transkrypt
1 Języki Programowania Dobre praktyki Wojciech Sobieski Olsztyn,
2 Dobre praktyki zasady pisania kodu źródłowego: poprawiające czytelność ułatwiające wprowadzenie zmian i modyfikacji (nawet po dłuższym czasie) ułatwiające wykorzystywanie tych samych rozwiązań (nawet fragmentów kodu), w różnych programach przyspieszające pisanie programów pozytywnie wpływające na końcową jakość programów... Im więcej aspektów się kontroluje, tym lepsza jest jakość programu! Skromny, działający program jest bardziej użyteczny niż program imponujący, ale niedokończony
3 jawna deklaracja typów zmiennych program test x = 2.45 y = 3.78 n = x + y print *, n read * end przykład błędnego wyniku (6 zamiast 6.23), będącego skutkiem niejawnej deklaracji typu aby uniknąć podobnych sytuacji należy stosować instrukcję IMPLICIN NONE
4 kontrola typu wyniku program test implicit none integer(kind=4) :: n = 12 print *, n/3. print *, n/3 read * end przykład wpływu sposobu zapisu liczby na typ wyniku: może prowadzić do błędów
5 nawiasy program test implicit none real(kind=4) :: x = 1. real(kind=4) :: y = 2. real(kind=4) :: z = 3. print *, x/y*z print *, x/(y*z) read * end przykład błędnych obliczeń wynikających z braku nawiasów
6 przemyślana i logiczna struktura nazw nazewnictwo adekwatne do dziedziny (np. F, l, zamiast a, b) program test implicit none real(kind=4) :: real(kind=4) :: real(kind=4) :: real(kind=4) :: real(kind=4) :: a = 100. b = 10. c = 2.e-6 d = 2.08e11 e = (a*b)/(c*d) a b c d e przykład złego nazewnictwa identyfikatorów: trudno odgadnąć, co liczy ten program i jakie jest znaczenie poszczególnych zmiennych (w rzeczywistości program liczy wydłużenie pręta na podstawie prawa Hooka) print '(A,F6.2)', 'wynik : ', e*1000. read * end
7 możliwie krótkie nazwy zmiennych (styl wielbłąda) program test implicit none real(kind=4) :: MaksymalnaTemperaturaRoczna real(kind=4) :: MinimalnaTemperaturaRoczna MaksymalnaTemperaturaRoczna = 32 MinimalnaTemperaturaRoczna = -28 print *, 'zakres = ', MaksymalnaTemperaturaRoczna - MinimalnaTemperaturaRoczna read * end przykład zbyt długich nazw, utrudniających pisanie wyrażeń lepiej by było: T_Rok_Max, T_Rok_Min lub T_max, T_min
8 jedna instrukcja w jednym wierszu wersja 1: program test;implicit none;real(kind=4)::x(1:20,1:30); integer(kind=4)::i,j;do,i=1,20;do,j=1,30;x(i,j)=0.;enddo;enddo;read *;end wersja 2: program test implicit none real(kind=4) :: x(1:20,1:30) integer(kind=4) :: i,j do, i = 1, 20 do, j = 1, 30 x(i,j)=0. end do end do obie wersje są poprawne, ale druga jest znacznie czytelniejsza read * end
9 analogiczna symbolika w różnych programach realizujących podobne algorytmy (np. lx, ly, nx, ny, dx, dy, t, dt, n_iter) real(kind=8) real(kind=8) :: lx = 10.0!dlugosc na kierunku x :: ly = 10.0!dlugosc na kierunku y integer(kind=8) :: nx = 50 integer(kind=8) :: ny = 50!liczba komorek siatki na kierunku x!liczba komorek siatki na kierunku y real(kind=8) :: dx!krok na kierunku x real(kind=8) :: dy!krok na kierunku y patrząc na ten fragment kodu, widać, że w programie będzie generowana dwuwymiarowa siatka obliczeniowa (fragment programu Dyfuzja2D)
10 komentowanie znaczenia zmiennych (najlepiej wraz z jednostką)!wczytanie parametrow zadania: open(unit=1,file='dane/input.dat') read(1,*) ro!gestosc read(1,*) mi!wspolczynnik lepkosci dynamicznej read(1,*) lref!dlugosc charakterystyczna dla liczby Reynoldsa read(1,*) uref!predkosc charakterystyczna dla liczby Reynoldsa read(1,*) alx!aktualna dlugosc domeny w kierunku x read(1,*) aly!aktualna dlugosc domeny w kierunku y... close(1) przykład stosowania opisów zmiennych w miejscu ich odczytywania z pliku: zrobiono tak, gdyż deklaracje zmiennych zapisane są w osobnym pliku tekstowym, dołączanym instrukcją INCLUDE i opisu zmiennych nie widać w głównym kodzie źródłowym (fragment programu Mac)
11 grupowanie nazw wg logicznych kryteriów integer(kind=8) :: sc_n!liczba zrodel integer(kind=8),allocatable :: sc_i(:)!indeks x komorki, w ktorej ma dzialac zrodlo integer(kind=8),allocatable :: sc_j(:)!indeks y komorki, w ktorej ma dzialac zrodlo integer(kind=8),allocatable :: sc_k(:)!indeks z komorki, w ktorej ma dzialac zrodlo real(kind=8),allocatable :: sc_t_start(:)!poczatkowy czas dzialania zrodla real(kind=8),allocatable :: sc_t_stop(:)!koncowy czas dzialania zrodla real(kind=8),allocatable :: sc_f(:)!wartosc zrodla integer(kind=8) :: sc_l!licznik zrodel przykład grupowania nazw: wszystkie zmienne dotyczące tzw. źródeł (tu: źródeł ciepła) rozpoczynają się od tych samych liter (fragment programu Dyfuzja3D)
12 deklarowanie zmiennych w blokach tematycznych (np. zmienne dotyczące siatki obliczeniowej, warunków brzegowych, warunków początkowych, metod rozwiązywania równań itp.) integer(kind=4) :: n!licznba punktow na wykresach integer(kind=4) :: i,j!liczniki petli real(kind=4) :: Re_min!poczatek zakresu liczb Reynoldsa real(kind=4) :: Re_max!koniec zakresu liczb Reynoldsa real(kind=4),allocatable :: x(:) real(kind=4),allocatable :: y(:)!tablica punktow x!tablica punktow y real(kind=4) :: dx!krok przestrzenny real(kind=4) :: f1,f2,f3,f4!funkcja pomocnicze (Almedeij) real(kind=4) :: a!funkcja pomocnicza (FlammerBlanks) real(kind=4) :: dana!bieazaca wartosc Re real(kind=4) :: wynik(15)!tablica wynikow dla danego Re
13 deklarowanie stałych w jednym miejscu programu (najlepiej na samym początku lub w pliku dołączanym) przykład zastosowania pliku dołączanego, służącego do definicji podstawowych parametrów programu (tu stosowane jest statyczne przypisanie pamięci)
14 parametryzacja programu (np. rozmiaru zadania) program test implicit none real(kind=4) :: x(1:20,1:30) integer(kind=4) :: i,j do, i = 1, 20 do, j = 1, 30 x(i,j) = 0. end do end do read * end przykład niepoprawnej budowy kodu źródłowego: zmiana rozmiaru siatki obliczeniowej wymaga korekty wszystkich pętli w programie: należy wprowadzić dodatkowe parametry (np. nx i ny)
15 stosowanie parametrów wywołania!saving arguments of the software calling: if (command_argument_count() == 2) then call getarg(1,dir) dir = trim(dir) call getarg(2,tmp) read(tmp,*) ns else print '(/a$)', read * stop end if ' No arguments... ' przykład zastosowania parametrów wywołania: przekazanie nazwy przykładu, który ma być analizowany oraz jego rozmiaru (fragment programu PathFinder)
16 dynamiczne zarządzanie pamięcią integer(kind=8) :: ns!the total number of spheres in the bed integer(kind=8),allocatable :: n(:)!the numbers of all spheres real(kind=8),allocatable :: x(:)!the X-coordinates of sphere centers real(kind=8),allocatable :: y(:)!the Y-coordinates of sphere centers real(kind=8),allocatable :: z(:)!the Z-coordinates of sphere centers real(kind=8),allocatable :: d(:)!the diameters of all spheres logical(kind=4),allocatable :: flag(:)!the particle "flag" przykład zastosowania dynamicznej alokacji pamięci: rozmiar układu został określony przez parametr wywołania i nie trzeba kompilować programu oddzielnie dla każdego przypadku obliczeniowego (fragment programu PathFinder)
17 komentarze!poczatek petli po czasie do i = 1, n!wybor stalej tlumienia w zaleznosci od kierunku ruchu: if (u.gt.0) then c = cd else c = cg end if!obliczenie pochodnych: dydt = u dudt = -g-(k/m)*(y-w0)-c*u*abs(u)/m!obliczenie nowych wartosci zmiennych: y = y+dydt*dt u = u+dudt*dt t = t+dt!zakonczenie petli po czasie: end do przykład komentarzy w kodzie źródłowym (fragment programu Drgania)
18 komentarze nagłówkowe! ! autor: wojciech sobieski! kontakt: data utworzenia: ! ostatnia modyfikacja: ! program powierzchnia_swobodna implicit none integer :: n integer :: m real,allocatable :: x(:) real,allocatable :: z(:) real,allocatable :: zr(:)!liczba wezlow!liczba iteracji w cyklu!tablica wspolrzednych x!tablica wspolrzednych z!tablica wspolrzednych z dla rysunku przykład komentarza nagłówkowego w kodzie źródłowym (fragment programu Powierzchnia)
19 komentarze nagłówkowe! ! Program Fourier v. 1.4 (C) Sobieski & Trykozko 2014!! ver. 1.0 (W.S.) scianka jednowarstwowa (rozwiazanie klasyczne),! siatka regularna, wizualizacja Gnuplot! ver. 1.1 (W.S.,A.T.) scianka jednowarstwowa (rozwiazanie macierzowe),! siatka regularna, wizualizacja Gnuplot! ver. 1.2 (W.S.,A.T.) scianka wielowarstwowa (rozwiazanie macierzowe),! siatka regularna, wizualizacja Gnuplot! ver. 1.3 (W.S.,A.T.) scianka wielowarstwowa (rozwiazanie macierzowe),! siatka nieregularna, wizualizacja Gnuplot i ParaView! ver. 1.4 (W.S.) scianka wielowarstwowa (rozwiazanie macierzowe),! siatka nieregularna, wizualizacja Gnuplot I! ParaView, obliczenia ciepla, sledzenie zbieznosci! obliczen, rozne metody rozwiazywania ukladow rownan!! ostatnia zmiana: 21 grudnia 2015! przykład komentarzy w kodzie źródłowym (fragment programu Fourier 1D, FVM)
20 Komentarze nagłówkowe bywają mocno rozbudowane i zawierają: opis działania programu sposób użycia jak wywołać program listę i opis ważniejszych zmiennych opis plików WE/WY nazwy używanych podprogramów nazwy wszelkich specjalnych metod, które zostały użyte, wraz ze wskazaniem, gdzie można znaleźć dalsze informacje informacje o czasie działania (jeśli ma to znaczenie) wymagania sprzętowe i systemowe opis specjalnych poleceń dla operatora / użytkownika informacje o autorach i kontaktach datę napisania (ew. datę ostatniej modyfikacji lub numer wersji)
21 przykład rozbudowanego komentarza wstępnego (komponent mxprotector do środowiska Delphi)
22 komentarze podprogramów! ! funkcja liczy pole powierzchni pod krzywa:! real function calka(x,n,dx) implicit none real :: x(n) real :: dx integer :: n integer :: i!odstep miedzy punktami na kierunku x!liczba przedzialow dyskretyzacji!licznik petli calka=0 do i=2,n calka = calka+((x(i)+x(i-1))/2.)*dx end do end function calka przykład opisu funkcji: łatwiej ją znaleźć w kodzie źródłowym i od razu wiadomo, jakie jest jej zadanie (fragment programu Powierzchnia)
23 odstępy pionowe program test implicit none real(kind=4) :: l!dlugosc [m] real(kind=4) :: dl!zmiana dlugosci [m] real(kind=4) :: F!sila [N] real(kind=4) :: A!pole przekroju [m^2] real(kind=4) :: E!modul Younga [N/m^2] l = 10. dl = 0. F = 100. A = 2.e-6 E = 2.08e11 dl = (F*l)/(A*E) print '(A,F6.2,A)', 'Pret wydluzy sie o : ', dl*1000., ' [mm]' read * end program byłby czytelniejszy, gdyby dodać puste linie pomiędzy fragmentami realizującymi różne zadania
24 wcięcia i odstępy poziome!nalozenie biezacych zrodel: do i = 1, nx do j = 1, ny do k = 1, nz do sc_l = 1, sc_n if (sc_i(sc_l) == i.and. sc_j(sc_l) == j.and. sc_k(sc_l) == k) then if (t > sc_t_start(sc_l).and. t < sc_t_stop(sc_l)) f(i,j,k) = sc_f(sc_l) end if end do end do end do end do dzięki wcięciom wyraźniej widać gdzie jest początek i koniec danej pętli (fragment programu Dyfuzja 3D)
25 etykiety (rosnące ze skokiem > 1)!parametry domyslne ukladu (jak zawiedzie plik): 20 continue g = 9.81 m = 0.5 l = 2. ax = pi/8.!8 ay = pi/12.!12 dt = 0.01 print '(a)', ' przyjeto wartosci domyslne: '!wyswietlenie parametrow: 30 continue print '(/a35,f12.6)', ' przyspieszenie ziemskie [m/s^2] :', g print '(a35,f12.6)', ' masa ciezarka [kg] : ', m print '(a35,f12.6)', ' dlugosc liny [m] : ', l print '(a35,f12.6)', ' poczatkowe wychylenie na x [m] : ', ax print '(a35,f12.6)', ' poczatkowe wychylenie na y [m] : ', ay przykład poprawnego nadawania etykiet: jeśli zajdzie potrzeba, można wstawić etykietę między dwa inne bloki (fragment programu Lissajous)
26 podział algorytmu na niezależne od siebie części elementarne (najlepiej z wykorzystaniem funkcji i procedur)!definicja siatki: call define_grid(lx,ly,gn_x,gn_y,gc_x,gc_y)!definicja warunkow brzegowych: call define_boundary(gc_x,gc_y,s,b_s,b_n,b_e,b_w)!definicja dodatkowych zrodel: call define_source(s,sx_min,sx_max,sy_min,sy_max,source)!pobranie liczby iteracji: print '(/A$)', ' podaj liczbe iteracji: ' read (*,*,err=10) iter print *, ''!uruchomienie obliczen: call solver_mrs(gc_x,gc_y,s,b_s,b_n,b_e,b_w,iter,sx_min,sx_max,sy_min,sy_max,source) przykład budowy kodu z podziałem na jednostkowe zadania (fragment programu Poisson jest to większość programu głównego, reszta zdefiniowana jest w odseparowanych procedurach)
27 rozwiązywanie danego zadania tylko raz (najlepiej z wykorzystaniem funkcji i procedur) program test implicit none include 'hook_types.inc' oblicz(f,l,a,e) = (F*l)/(A*E) include 'hook_values.inc' dl = oblicz(f,l,a,e) print '(A,F6.2,A)', 'Pret wydluzy sie o : ', dl*1000., ' [mm]' read * end przykład zastosowania funkcji lokalnej do obliczania wydłużenia pręta zgodnie z prawem Hooka: gdyby zaszła potrzeba modyfikacji wzoru obliczeniowego, wystarczy zmienić funkcję
28 tworzenie uniwersalnych rozwiązań (najlepiej z wykorzystaniem funkcji i procedur)... call gaussj(ac,bt,t_nowe,n_c-2)...! ! Metoda Gauss-Jordan! subroutine gaussj(a,b,x,n) implicit none include 'fourier.prec'!plik definiujacy precyzje obliczen... integer(kind=prec) real(kind=prec) real(kind=prec) real(kind=prec) :: n :: a(n,n) :: b(n) :: x(n) przykład procedury rozwiązującej układ równań liniowych metodą bezpośrednią Gaussa-Jordana posiada ona uniwersalne nazwy zmiennych, odwołujące się do symboliki matematycznej: a macierz współczynników, b wektor prawej strony, x wektor wartości szukanych, n rozmiar układu (procedura użyta w programie Profil, Mac oraz Fourier 1D)
29 przewidywanie wszystkich możliwych sytuacji program test implicit none real(kind=4) :: delta = -4 if (delta > 0) then print *, ' dwa miejsca zerowe' else if (delta == 0) then print *, ' jedno miejsce zerowe' end if read * end przykład błędnej instrukcji warunkowej (wyobraźmy sobie, że program wylicza miejsca zerowe funkcji): gdy delta jest mniejsza od zera to nie ma rozwiązania, ale program powinien jakoś sensownie zareagować tu będzie wykonywał się dalej
30 ciągłe testowanie kodu! Definicja wezlow tworzacych scianki: is_solid_node = 0 do i = 1, lx is_solid_node(i,1) = 1 is_solid_node(i,ly) = 1 end do! Definicja wezlow tworzacych przeszkode: is_solid_node(int(lx/2),int(ly/2)) = 1 is_solid_node(int(lx/2-1),int(ly/2)) = 1 is_solid_node(int(lx/2),int(ly/2-1)) = 1 is_solid_node(int(lx/2-1),int(ly/2-1)) = 1 is_solid_node(int(lx/2+1),int(ly/2)) = 1 is_solid_node(int(lx/2),int(ly/2+1)) = 1 is_solid_node(int(lx/2+1),int(ly/2+1)) = 1 is_solid_node(int(lx/2-1),int(ly/2+1)) = 1 is_solid_node(int(lx/2+1),int(ly/2-1)) = 1 is_solid_node(int(lx/2-2),int(ly/2)) = 1 is_solid_node(int(lx/2+2),int(ly/2)) = 1 is_solid_node(int(lx/2),int(ly/2-2)) = 1 is_solid_node(int(lx/2),int(ly/2+2)) = 1 przykład sprawdzenia, czy dany fragment programu działa poprawnie: po zdefiniowaniu węzłów odbijających, tablica is_solid_node została zapisana do pliku i przedstawiona za pomocą środowiska Gnuplot ponieważ efekt jest zgodny z oczekiwaniami, program można pisać dalej
31 wieloplatformowość rozwiązań (Fortran)!pobiera sciezke biezacego katalogu: call getcwd(tmp) if (trim(tmp(:1)) == '/') then print *, 'Linux' sign = '/' call system('clear') else print *, 'Windows' sign = '\' call system('cls') end if przykład programu uwzględniającego możliwość kompilacji i działania w różnych systemach operacyjnych: w systemach Windows oraz UNIX\Linux inne są znaki łączące katalogi i pliki w ścieżkach oraz inne są polecenia systemowe (fragment programu PathFinder)
32 wieloplatformowość rozwiązań (Lazarus) {$IFDEF Windows} WriteLn(tmp,'win'); sign := '\'; {$ENDIF Windows} {$IFDEF Unix} WriteLn(tmp,'lin'); sign := '/'; {$ENDIF Unix} przykład programu wykorzystującego specjalne dyrektywy, których realizacja zależy od rodzaju systemu operacyjnego, w którym program jest wykonywany (fragment programu fouriergui napisanego w środowisku Lazarus)
33 wieloplatformowość rozwiązań (Gnuplot) set title 'Wykres zbieznosci - porownanie' set xlabel 'Numer iteracji' set ylabel 'x[n+1] - x[n]' set yrange [0.0:0.0001] set grid plot 'zbieznosc-jacobi.txt' title 'Jacobi' with lines lt 1, \ 'zbieznosc-gauss-seidel.txt' title 'Gauss-Seidel' with lines lt 2, \ 'zbieznosc-sor.txt' title 'SOR' with lines lt 3 set terminal png set output '!zbieznosc-suma.png' replot pause mouse 'Wykres zapisano do pliku...' exit gnuplot przykład skryptu Gnuplota działającego tak samo w różnych systemach operacyjnych (fragment programu Profil) UWAGI: unikać terminala windows; sposób wyświetlania (rodzaje linii, kolory) mogą być różne w różnych systemach operacyjnych
34 wieloplatformowość rozwiązań (VTK)!saving the input data in VTK format for ParaView: open(1,file=trim(dir)//sign//trim(dir)//'.in.vtk') write(1,'(a)') '# vtk DataFile Version 2.1' write(1,'(a)') 'The bed' write(1,'(a)') 'ASCII' write(1,'(a)') '' write(1,'(a)') 'DATASET UNSTRUCTURED_GRID' write(unit=tmp,fmt='(i6)') ns write(1,'(a)') 'POINTS '//trim(tmp)//' double' do i = 1, ns write(1,'(3f16.8)') x(i),y(i),z(i) end do write(1,'(a)') 'POINT_DATA '//trim(tmp) write(1,'(a)') 'SCALARS Diameter double' write(1,'(a)') 'LOOKUP_TABLE default' do i = 1, ns write(1,'(f16.8)') d(i) end do close(1) przykład zapisu danych do standardowego pliku VTK (fragment programu PathFinder)
35 otwartość stosowanych narzędzi gfortran Free Pascal & Lazarus BPL / SH Gnuplot ParaView & VTK programy obliczeniowe nakładki na programy obliczeniowe programy obliczeniowe wykorzystywanie specjalistycznych bibliotek wizualizacja wyników wspomagające skrypty powłoki wykresy 2D i 3D (w tym animacje) wizualizacje 3D (w tym animacje) Inne: Python, C, Scilab,...
36 Dziękuję Wojciech Sobieski Olsztyn,
Języki Programowania. Instrukcje języków programowania. Wojciech Sobieski
Języki Programowania Instrukcje języków programowania Wojciech Sobieski Olsztyn, 2001-2016 Instrukcje Instrukcja w programowaniu jest to najmniejszy samodzielny element imperatywnego języka programowania.
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
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)
Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII
Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII
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
Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
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
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
do MATLABa programowanie WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa programowanie WYKŁAD Piotr Ciskowski instrukcje sterujące instrukcja warunkowa: if instrukcja wyboru: switch instrukcje iteracyjne: for, while instrukcje przerwania: continue, break,
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
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
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Zad. 5: Układ równań liniowych liczb zespolonych
Zad. 5: Układ równań liniowych liczb zespolonych 1 Cel ćwiczenia Wykształcenie zdolności abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie problemów związanych z programowaniem uogólnionym
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,
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
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
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,
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program
Zad. 3: Układ równań liniowych
1 Cel ćwiczenia Zad. 3: Układ równań liniowych Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
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ę
Pętle iteracyjne i decyzyjne
Pętle iteracyjne i decyzyjne. Pętla iteracyjna for Pętlę iteracyjną for stosuje się do wykonywania wyrażeń lub ich grup określoną liczbę razy. Licznik pętli w pakiecie MatLab może być zwiększany bądź zmniejszany
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
Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16
M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16
Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
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
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
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
Podstawy MATLABA, cd.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA, cd. 1. Wielomiany 1.1. Definiowanie
Bash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Zmienne i struktury dynamiczne
Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest
Podstawy Programowania.
Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki
Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.
Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice. Język PHP Język interpretowalny, a nie kompilowany Powstał w celu programowania
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
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,
Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb
Zad. 3: Rotacje 2D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich struktur
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
Styl programowania. Olsztyn 2006-2012. Wojciech Sobieski
Olsztyn 2006-2012 Wojciech Sobieski Jedną z podstawowych zasad obowiązujących podczas pisania programów jest czytelność i przejrzystość kodów źródłowych. Dobrze napisany kod umożliwi innym programistom
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
Od żłobka do przedszkola - mini szkolenie z użytkowania pakietu OpenFOAM. Karol Wędołowski 06.04.2011
Od żłobka do przedszkola - mini szkolenie z użytkowania pakietu OpenFOAM Karol Wędołowski 06.04.2011 Część 2. Struktura case'u na przykładzie przepływu w zagłębieniu 1. Potrzebne katalog i pliki W tej
Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
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
Podstawy Programowania
Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke O mnie... dr inż. Małgorzata Janik Zakład Fizyki
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
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
//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)
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
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ęść
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
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...)
zajęcia 2 Definiowanie wektorów:
zajęcia 2 Plan zajęć: definiowanie wektorów instrukcja warunkowa if wykresy Definiowanie wektorów: Co do definicji wektora: Koń jaki jest, każdy widzi Definiowanie wektora w Octave v1=[3,2,4] lub: v1=[3
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
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:
Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.
Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną. Tomasz Chwiej 9 sierpnia 18 1 Wstęp 1.1 Dyskretyzacja n y V V 1 V 3 1 j= i= 1 V 4 n x Rysunek 1: Geometria układu i schemat siatki obliczeniowej
Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:
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
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
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 3 Konstrukcje sterujące Krzysztof Banaś Podstawy programowania 1 Kod źródłowy i wykonanie programu Kod źródłowy w języku programowania zawiera przepis wykonania programu
System operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje
TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.
TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE 1. Po uruchomieni programu Greenfoot początkowa scena ma następujące składniki: a. obiekty scenerii i jeden obiekt ruchomy, b. obraz tła, jeden lub więcej
Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com
Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku
Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
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
#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Podstawy programowania
Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Wizualizacja danych 2D i 3D - Gnuplot
Wizualizacja danych 2D i 3D - Gnuplot dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Laboratorium 8 Plan Podstawy wykresów trójwymiarowych Generowanie wykresów powierzchniowych
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
Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego
Zad. 4: Rotacje 2D 1 Cel ćwiczenia Wykształcenie umiejętności modelowania kluczowych dla danego problemu pojęć. Definiowanie właściwego interfejsu klasy. Zwrócenie uwagi na dobór odpowiednich struktur
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
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
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
Język programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
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ą
Praktyka Programowania
Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów mgr inż. Arkadiusz Chrobot 10 listopada 2010 1 Preprocesor Preprocesor jest programem uruchamianym przed właściwym procesem kompilacji
Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika)
Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika) 1 1 Cel ćwiczenia Celem ćwiczenia jest rozwiązanie równań ruchu ciała (kuli) w ośrodku
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38
Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38 Umiejętność, która otwiera
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Wykład 5. Metoda eliminacji Gaussa
1 Wykład 5 Metoda eliminacji Gaussa Rozwiązywanie układów równań liniowych Układ równań liniowych może mieć dokładnie jedno rozwiązanie, nieskończenie wiele rozwiązań lub nie mieć rozwiązania. Metody dokładne
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
Instrukcje sterujące. Programowanie Proceduralne 1
Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +
Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4
Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest
Język C zajęcia nr 7. Uwagi dotyczące stylu programowania
Język C zajęcia nr 7 Uwagi dotyczące stylu programowania Program można pisać w sposób mniej lub bardziej porządny i systematyczny. Przejrzyste programy pozwalają na znacznie łatwiejszą ich analizę i ewentualne
Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego
Pascal 1. Pliki tekstowe Przykład 1.1. Zapis do pliku tekstowego {deklaracja zmiennej tekstowej 'plik'} plik: text; {skojarzenie zmiennej plikowej 'plik' z plikiem na dysku (podajemy lokalizacje)} {tworzenie
Różniczkowanie numeryczne
Różniczkowanie numeryczne Przyjmijmy, że funkcja ciągła y = f(x) = 4sin(3x)e -x/2, gdzie x 0,2π, dana jest w postaci dyskretnej jako ciąg wartości y odpowiadających zmiennej niezależnej x, również danej
Układy równań liniowych. Ax = b (1)
Układy równań liniowych Dany jest układ m równań z n niewiadomymi. Liczba równań m nie musi być równa liczbie niewiadomych n, tj. mn. a a... a b n n a a... a b n n... a a... a b m m mn n m
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
I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA
I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na