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



Podobne dokumenty
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

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

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

Podstawy programowania

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Konstrukcja alternatywy

Algorytm 2.1. Rys Czy zupa jest słona? Przygotuj. Gotowe danie START. Przepis... STOP NIE TAK

Programowanie w Turbo Pascal

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Jerzy Nawrocki, Wprowadzenie do informatyki

Cw.12 JAVAScript w dokumentach HTML

Pascal - wprowadzenie

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

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Wstęp do Programowania, laboratorium 02

Jerzy Nawrocki, Wprowadzenie do informatyki

Programowanie w języku Python. Grażyna Koba

JAVAScript w dokumentach HTML (1)

Język programowania PASCAL

Instrukcja standardowa Writeln

Algorytm. a programowanie -

Podstawy Programowania

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

Język ludzki kod maszynowy

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Programowanie i techniki algorytmiczne

Specyfikacja zadania informatycznego nr 1

Algorytmy od problemu do wyniku

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Języki programowania zasady ich tworzenia

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Pliki. Operacje na plikach w Pascalu

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

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

C++ wprowadzanie zmiennych

Algorytmika i programowanie usystematyzowanie wiadomości

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

Wstęp do programowania

Definicje. Algorytm to:

Ilość cyfr liczby naturalnej

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

1 Podstawy c++ w pigułce.

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

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

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Technologie informacyjne - wykład 12 -

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Wykład PASCAL - Pliki tekstowe

Wykład z Technologii Informacyjnych. Piotr Mika

Programowanie komputerowe. Zajęcia 1

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Schematy blokowe. Algorytmy Marek Pudełko

Podstawy programowania

Wstęp do programowania

Języki i metodyka programowania. Wprowadzenie do języka C

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

ALGORYTMY I PROGRAMY

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Podstawy programowania w C++

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Turbo Pascal. Zadania z programowania z przykładowymi rozwiązaniami

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

Algorytmy i struktury danych

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!

1. Wypisywanie danych

Wstęp do programowania. Wykład 1

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

Algorytm. Krótka historia algorytmów

Programowanie w języku Pascal

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Instrukcja warunkowa i wyboru

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

Zapisywanie algorytmów w języku programowania

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

Wprowadzenie komentarzy do programu

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Wprowadzenie do języka Pascal

Podstawy Programowania Algorytmy i programowanie

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Podstawy Programowania.

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

x 2 = a RÓWNANIA KWADRATOWE 1. Wprowadzenie do równań kwadratowych 2. Proste równania kwadratowe Równanie kwadratowe typu:

Programowanie Delphi obliczenia, schematy blokowe

IX. Wskaźniki.(3 godz.)

Luty 2001 Algorytmy (7) 2000/2001

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Pomorski Czarodziej 2016 Zadania. Kategoria C

Transkrypt:

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

Analiza potrzeb i wymagań Co należy obliczyć (dane wyjściowe) Jakie mamy dane (dane wejściowe) Według jakiego wzoru dane wyjściowe obliczamy z danych wejściowych Przygotowanie danych testowych (tzn. dla jakich przykładowych danych wejściowych jakie powinny wyjść wyniki) Opracowanie algorytmu Konstrukcja algorytmu w pewnym formalizmie: Ustalenie listy zmiennych odpowiadających danym wejściowym, danym wyjściowym, zmiennych pomocniczych i ich typów Ustalenie kolejnych kroków obliczania wyników Ustalenie warunków, w jakich program działa poprawnie (do jakich zakresów mogą należeć dane wejściowe)

Kodowanie Zapisanie algorytmu w konkretnym języku programowania (np. w PASCALu) na nośniku elektronicznym w pliku o właściwym rozszerzeniu (np..pas) Kompilacja Uruchomienie kompilatora języka programowania dla naszego konkretnego pliku. Poprawianie błędów, jakie wskazuje kompilator

Testowanie Testy poprawności działania w zwykłych przypadkach zastosowań Testy działania w warunkach ekstremalnych zastosowań Analiza skutków ubocznych Analiza katastrof Krótko- i długotrwałe efekty skutków ubocznych Analiza zachowania w wypadku korzystania w sposób niedopuszczalny Analiza i usuwanie przyczyn niepoprawnego działania w warunkach zwykłych i ekstremalnych Stosowanie Praktyczne wykorzystywanie programu Dla celów dokumentacyjnych należy treść zadania, przykłady testowe, program źródłowy oraz program wykonawczy przechowywać w archiwum na dyskietce. Dobrze jest także posiadać wydruk na papierze: treści zadania, przykładów testowych, programu źródłowego, a także odręczne notaki opisujące algorytm

Algorytm powitania START Wypisz( Dzień dobry ) STOP Program w języku Pascal Cześć program dzdobry; {nazwa programu} {uz yte biblioteki} { Wlasciwy program} Write('Dzien` dobry') {Wypisanie na ekran} { w tych klamrach piszemy komentarz }

Mały słownik angielsko-polski Program [progrem] Uses [juzyz] Begin [bygin] End {end] Write [łrajt] Read [rid] Variable [warjabl] Real [ril] Integer [intidżer] Program Używa Zaczynaj Kończ Pisz Czytaj Zmienna Liczba rzeczywista Liczba całkowita Omówienie Program zaczyna każdy program, a kropka (.) go kończy Begin i end to rama, wewnątrz której kodujemy algorytm W klamry { } zamykamy komentarze dopiski i adnotacje nie będące treścią programu. obramowują napisy, które chcemy wypisać na ekranie Dla Pascala duże i małe litery znaczą to samo. W tekście programu używamy tylko liter łacińskich Ważnym znakiem w programie jest średnik (;) oddziela on od siebie kolejne instrukcje

Jak tekst programu staje się programem dla maszyny Tekst źródłowy - kompilator - plik obiektowy - linker - program Kompilator = translator języka wysokiego poziomu, którego programy wynikowe mogą być wprowadzone do pamięci i wykonane dopiero po zakończeniu tłumaczenia (w odróżnieniu od interpretatora). Programy wynikowe kompilatora mogą być przechowywane, łączone z innymi programami i wielokrotnie wykonywane znacznie szybciej niż programy interpretowane. Linker - konsoliduje pliki wynikowe kompilatora z bibliotekami systemowymi I użytkownika, by dać w wyniku program wykonawczy Jak tekst programu staje się programem dla maszyny C - code h - library header EDYTOR.obj KOMPILATOR.exe BIBLIOTEKARZ.lib LINKER

Równanie AX+B=0 START -Wczytaj(A) -Wczytaj(B) -X :=-B/A -Wypisz(X) STOP program rownanie; var A,B,X : real; read(a); read(b); X :=-B/A; write(x) Omówienie var A,B,X : real; ta instrukcja informuje o tym, jakie zmienne wystąpią w programie (A,B,X) oraz co mogą przechowywać (liczby rzeczywiste) := to znak przypisania, tzn. zmiany zawartości zmiennej po lewej stronie wynikiem operacji po prawej stronie := UWAGA: Możemy typ każdej zmiennej podać oddzielnie: var A: real; B : real; X : real;

Styl pisania programów program rownanie; var A,B,X : real; read(a); read(b); X :=-B/A; write(x) Program można pisać tak lub tak program rownanie; var A,B,X : real; read(a); read(b); X :=-B/A; write(x) Styl pisania programów Dobrze jest informować użytkownika, co od niego chcemy i co oznacza pokazywany wynik program rownanie; var A,B,X : real; write( Proszę podać parametr A: ); read(a); write( Proszę podać parametr B: ); read(b); X :=-B/A; write( Rozwiązanie wynosi: ); write(x)

Styl pisania programów Dobrze jest informować użytkownika, co program robi program rownanie; var A,B,X : real; Begin writeln( Rozwiązywanie równania A*X+B=0 ); write( Proszę podać parametr A: ); read(a); write( Proszę podać parametr B: ); read(b); X :=-B/A; write( Rozwiązanie wynosi: ); write(x) Kalkulator na dodawanie liczb rzeczywistych START -Wczytaj(X) -Wczytaj(Y) -WYN :=X+Y -Wypisz(WYN) STOP program dodawanie; var X,Y,WYN : real; read(x); read(y); WYN :=X+Y; write(wyn)

Zadanie Opracować kalkulator dzielenia liczb całkowitych ANALIZA Liczby całkowite dzieli się z resztą, np.. 45:7=6 reszty 3, 42:7=6 reszty 0, itd.. W PASCALu jest specjalny operator do dzielenia liczb całkowitych: div oraz do obliczania reszty z dzielenia mod. Zmienne zawierające liczby całkowite muszą mieć typ integer. Kalkulator na dodawanie liczb rzeczywistych START -Wczytaj(X) -Wczytaj(Y) -WYN :=X div Y -RESZTA:=X mod Y -Wypisz(WYN) -Wypisz(RESZTA) STOP program dziel_z_reszta; var X,Y: integer; RESZTA,WYN : integer; read(x); read(y); WYN :=X div Y; RESZTA:=X mod Y; writeln(wyn); writeln(reszta)

Sekwencyjność Algorytm (program) jest sekwencyjny, jeżeli instrukcje są wykonywane kolejno po sobie bez przeskoków i bez nawrotów sterowania W języku PASCAL kolejno po sobie następujące instrukcje oddzielamy od siebie średnikami (;) Krok algorytmu sekwencyjnego Krok algorytmu sekwencyjnego jest Albo operacją przypisania (x:=7+y) Albo wywołaniem procedury (read(x)) Operacja przypisania ma postać <zmienna> := <wyrażenie> powoduje zmianę zawartości <zmiennej> na wartość <wyrażenia> := nazywamy operatorem przypisania

Wyrażeniem jest: Stała np.. 7 Zmienna np.. X Wyrażenie Wyrażenie poprzedzone operatorem jednoargumentowym, np.. 7, -x Dwa wyrażenia połączone operatorem, np.. 7+x, y-z, x*2, 8/z, z div 5, z mod 4 Wyrażenie ujęte w nawiasy okrągłe, np.. (x+8) Wywołanie funkcji, np.. sin(x), cos(y), sqrt(x) Bardziej złożony przykład wyrażenia ((x+2)*(x-7)+y)+sin(x+(-y+z)/((a+4)*(a-4))) Procedura Procedura to gotowy kawałek programu, zwykle przygotowany przez kogoś innego, spełniający określone zadanie. Znamy procedury: Read do czytania z klawiatury Write do pisania na ekran Poznamy wiele innych

Zadanie Napisać program szukający rozwiązania układu dwóch równań liniowych. Analiza Układ równań liniowych ma postać a1 x + b1 y = c1 a2 x + b2 y = c2 Rozwiązanie jest następujące: Obliczamy wyznacznik główny Obliczamy wyznacznik x Obliczamy wyznacznik y x =wyznacznik x / wyznacznik główny y =wyznacznik y / wyznacznik główny Analiza c.d. wyznacznik główny (WYZG) a1 b1 a2 b2 wyznacznik x (WYZX) c1 b1 c2 b2 wyznacznik y (WYZY) a1 c1 a2 c2 Wyznacznik liczy się wg wzoru: a1 b1 a2 b2 = a1*b2 a2*b1

Układ równań liniowych START -Wczytaj(a1,b1,c1) -Wczytaj(a2,b2,c2) -WYZG:=a1*b2-a2*b1 -WYZX:=c1*b2-c2*b1 -WYZY:=a1*c2-a2*c1 -X=WYZX/WYZG -Y=WYZY/WYZG -Wypisz(X,Y) STOP program uklad_rownan var X,Y: real; a1,b1,c1, a2,b2,c2:real; WYZG,WYZX,WYZY:real; read(a1,b1,c1); read(a2,b2,c2); WYZG:=a1*b2-a2*b1; WYZX:=c1*b2-c2*b1; WYZY:=a1*c2-a2*c1; X=WYZX/WYZG; Y=WYZY/WYZG; writeln(x,y) Zadanie Napisać program szukający pierwiastków równania kwadratowego ANALIZA (sqrt - pierwiastek) Równanie kwadratowe ma postać: a x 2 + b x + c = 0 Rozwiązuje się je następująco: Delta = b 2 4 a c X1 = (-b (Delta)) /(2a) X2 = (-b + (Delta) )/(2a)

Równanie kwadratowe START -Wczytaj(a,b,c) -Delta = b * b 4* a* c -X1:= (-b sqrt(delta))/(2*a) -X2:= (-b+sqrt(delta))/(2*a) -Wypisz(X1) -Wypisz(X2) STOP program rownanie_kw; var X1,Y2: real; a,b,c,delta:real; read(a,b,c); Delta = b * b 4*a*c; X1:= (-b sqrt(delta))/(2*a); X2:= (-b + sqrt(delta))/(2*a); writeln(x1); writeln(x2) Zadanie Zamień odległość w metrach na odległość w mm, cm, dm, i km ANALIZA 1 m = 1000 mm 1 m = 100 cm 1 m = 10 dm 1 m = 0.001 km

Jednostki START -Wczytaj(odl) -Wypisz(odl*1000, mm ) -Wypisz(odl*100, cm ) -Wypisz(odl*10, dm ) -Wypisz(odl*0.001, km ) program uklad_rownan var odl: real; write( Podaj odległość w metrach: ); read(odl); writeln (odl*1000, mm ) writeln(odl*100, cm ) writeln(odl*10, dm ) writeln(odl*0.001, km ) STOP