Podstawy programowania



Podobne dokumenty
Podstawy programowania

Podstawy programowania

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy programowania

Podstawy programowania Java

Podstawy programowania w języku C++

Podstawy programowania

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy programowania w języku C i C++

Podstawy programowania w języku C++

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Definicje. Algorytm to:

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

Pliki. Operacje na plikach w Pascalu

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

Podstawy programowania

Wstęp do informatyki- wykład 2

Podstawy programowania

Algorytm. a programowanie -

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

Schematy blokowe. Algorytmy Marek Pudełko

Język programowania PASCAL

Podstawy Programowania

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

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

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

Programowanie w języku Python. Grażyna Koba

Podstawy i języki programowania

Kilka prostych programów

Podstawy programowania

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

JAVAScript w dokumentach HTML (1)

1 Wprowadzenie do algorytmiki

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Definicja algorytmu brzmi:

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

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}

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Instrukcja standardowa Writeln

Wykład PASCAL - Pliki tekstowe

#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 ); }

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Zapis algorytmów: schematy blokowe i pseudokod 1

Technologie informacyjne - wykład 12 -

Wstęp do programowania. Wykład 1

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

Podstawy programowania w języku C++

Języki programowania zasady ich tworzenia

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

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

Język ludzki kod maszynowy

Podstawy programowania

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).

Programowanie Delphi obliczenia, schematy blokowe

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

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

Luty 2001 Algorytmy (7) 2000/2001

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?

Algorytmika i Programowanie VBA 1 - podstawy

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

Cw.12 JAVAScript w dokumentach HTML

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

C++ wprowadzanie zmiennych

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Podstawy programowania

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

ETAP I SZKOLNY. Czas rozwiązywania testu 30 minut. Za każdą poprawną odpowiedź otrzymujesz 1pkt. POWODZENIA!!

Podstawy programowania w języku C++

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};

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

Podstawy programowania w C++

Elementy języków programowania

Programowanie w Turbo Pascal

Podstawy programowania w języku C++

Algorytm. Krótka historia algorytmów

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

Wstęp do programowania

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

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

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

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

wagi cyfry pozycje

Co to jest arkusz kalkulacyjny?

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Podstawy programowania w języku C++

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Programowanie strukturalne

ALGORYTMY I PROGRAMY

Warsztaty dla nauczycieli

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

PODSTAWY OBSŁUGI ARKUSZA KALKULACYJNEGO

Języki programowania obiektowego Nieobiektowe elementy języka C++

Transkrypt:

Podstawy programowania Część druga Pierwsze programy Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa. Opracowanie to jest chronione prawem autorskim. Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne. Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione.

Problem do rozwiązania Problem Należy napisać program pozwalający na przeliczenie odległości podanej w kilometrach na mile amerykańskie. Scenariusz działania programu: Jak się za to zabrać? Załóżmy, że nic nie wiemy o programowaniu... Copyright Roman Simiński Strona : 2

Spojrzenie użytkownika komputer to czarna skrzynka Użytkownika interesuje CO potrafi zrobić komputer a nie JAK to robi.... Copyright Roman Simiński Strona : 3

Spojrzenie programisty komputer od środka Programista musie wiedzieć jak zmusić komputer, żeby zrobił to co trzeba. Copyright Roman Simiński Strona : 4

Algorytm, czyli JAK TO SIĘ ROBI! Programista musi znać sposób rozwiązania problemu, który stanowi przedmiot programu. Ten sposób określa algorytm. Algorytm określa dane oraz skończony ciąg operacji, jakie należy na tych danych wykonać, aby rozwiązać dowolny problem z określonej klasy. Inaczej mówiąc, algorytm określa dane oraz plan akcji, jakie należy wykonać, aby osiągnąć założony cel. Copyright Roman Simiński Strona : 5

Cechy algorytmu Algorytm ma być: Poprawny dla każdego poprawnego zestawu informacji wejściowych prowadzić do poprawnych rezultatów. Jednoznaczny każdorazowo, dla każdego poprawnego zestawu informacji wejściowych, prowadzić do tych samych rezultatów. Szczegółowy aby ktoś albo coś wykonujący algorytm rozumiał dokładnie opisane operacje i potrafił je wykonać. Uniwersalny pozwalał na rozwiązanie dowolnego problem z określonej klasy, a nie dotyczył pewnych przypadków.. Copyright Roman Simiński Strona : 6

Metody zapisu algorytmów Wykorzystuje się różne metody zapisu algorytmów: Język naturalny (potoczny) określający ciąg kroków algorytmu. Notacje graficzne, najpopularniejsze są schematy blokowe. Pseudokod połączenie języka naturalnego i notacji matematycznej z elementami języków programowania. Zapis w postaci kodu programu w pewnym języku programowania. Copyright Roman Simiński Strona : 7

Co to za dane, co to za operacje? Dane, które program pamięta w czasie swojego działania Wykonanie programu Obliczenia, sterowanie, nawroty, decyzje itp., itd.... Pamięć podręczna procesora Procesor i spółka Pamięć zewnętrzna Urządzenia wejścia i wyjścia Dane, które mają być zapamiętane trwale Operacje wejścia-wyjścia Copyright Roman Simiński Strona : 8

A co z przeliczaniem z kilometrów na mile? Czy w tym problemie występują jakieś dane? Pamięć podręczna procesora 100 km, ile to mil? 100 Operacja odczytu z klawiatury 100 Copyright Roman Simiński Strona : 9

Jak dane są przechowywane w pamięci operacyjnej? Zmienna jest to element programu, rezydujący w pamięci operacyjnej, przeznaczony do przechowywania wartości. Każda zmienna ma swój typ Każda zmienna ma swoją nazwę Zmienna Pamięć operacyjna Copyright Roman Simiński Strona : 10

Rola nazwy zmiennej Nazwa zmiennej jednoznacznie identyfikuje ją w programie. Posługując się nazwą zmiennej, odwołujemy się do zapisanej w niej wartości. Każda zmienna ma swoją nazwę Nazwy zmiennych powinny być unikatowe w obrębie danego fragmentu programu Nazwa zmiennej: To słowo, skrót, akronim lub ich zbitek, wymyślony przez programistę. Zwykle nazwa zmiennej może zawierać tylko litery, cyfry i znaki podkreślenia. Copyright Roman Simiński Strona : 11

Rola typu zmiennej Typ zmiennej określa jakie wartości można do niej wstawiać. Każda zmienna ma swój typ Typ zmiennej określa dokładnie: Jakie wartości może przyjmować konkretna zmienna, i z jakiego zakresu mogą one pochodzić. Jakie operacje można wykonywać na zmiennej. Ile bajtów zmienna zajmuje w pamięci operacyjnej. Copyright Roman Simiński Strona : 12

Zmienne a przeliczenie odległości Potrzebujemy miejsca w pamięci operacyjnej, w którym przechowamy na czas działania programu odległość w kilometrach, podaną przez użytkownika. Potrzebujemy zatem zmiennej, zdolnej do przechowania liczby rzeczywistej, niech ta zmienna nazywa się Kilometry. Copyright Roman Simiński Strona : 13

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry? 100 km, ile to mil? Świat użytkownika Copyright Roman Simiński Strona : 14

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry Odczytaj liczbę z klawiatury 100 km, ile to mil? Świat użytkownika Copyright Roman Simiński Strona : 15

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry Odczytaj liczbę z klawiatury Przelicz na mile:??? 100 km, ile to mil? Świat użytkownika Copyright Roman Simiński Strona : 16

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry Odczytaj liczbę z klawiatury Przelicz na mile: Przemnóż zawartość zmiennej Kilometry przez 0.625 100 km, ile to mil? Świat użytkownika Copyright Roman Simiński Strona : 17

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry Odczytaj liczbę z klawiatury Przelicz na mile: Przemnóż zawartość zmiennej Kilometry przez 0.625 100 km, ile to mil? Wyprowadź wynik na ekran Świat użytkownika Copyright Roman Simiński Strona : 18

Zmienne a przeliczenie odległości Świat programisty Zmienna Kilometry Odczytaj liczbę z klawiatury Przelicz na mile: Przemnóż zawartość zmiennej Kilometry przez 0.625 Czy to już jest algorytm? Tak! Tylko algorytmy zwykle się zapisuje inaczej.... 100 km, ile to mil? Wyprowadź wynik na ekran Świat użytkownika Copyright Roman Simiński Strona : 19

Algorytm przeliczenia odległości opis słowny Algorytm Niech Kilometry i Wynik będą zmiennymi typu liczba rzeczywista. Wyświetl informacje o programie. Wyświetl tekst zachęty do wprowadzenia liczby kilometrów. Odczytaj liczbę z klawiatury, zapisz w zmiennej Kilometry. Przelicz na mile: Wynik = zawartość zmiennej Kilometry pomnożonej przez 0.625. Wyprowadź Wynik na ekran. Copyright Roman Simiński Strona : 20

Algorytm przeliczenia odległości schemat blokowy Start Wyświetl info Wczytaj Kilometry Wynik := Kilometry * 0.625 Wyświetl Wynik Stop Copyright Roman Simiński Strona : 21

Podstawowe elementy schematów blokowych Bloki początku i końca algorytmu: Start Stop Blok operacji wejścia/wyjścia Blok wykonawczy Blok decyzyjny Copyright Roman Simiński Strona : 22

Podstawowe elementy schematów blokowych Blok operacji wykonywanej poza rozważanym algorytmem Łączniki stronnicowe Łącznik międzystronnicowy Punkt łączący i komentarz objaśniający Copyright Roman Simiński Strona : 23

Od algorytmu do programu program, który robi nic Program KilometryNaMile; Program,, End to słowa kluczowe. Słowa kluczowe to identyfikatory zastrzeżone i nie mogą być inaczej stosowane niż określa to standard języka. Program oznacza nagłówek programu, po którym występuje identyfikator oznaczający jego nazwę. (tutaj: KilometryNaMile). i End nawiasy syntaktyczne instrukcji złożonej. Wykonanie instrukcji złożonej polega na sekwencyjnym wykonaniu jej instrukcji wewnętrznych. Jednomodułowy program w języku Pascal jest zdaniem, na końcu którego występuje znak kropki. Średnik ; w języku Pascal jest separatorem rozdzielającym, służy do oddzielania od siebie instrukcji oraz definicji i deklaracji. Copyright Roman Simiński Strona : 24

Od algorytmu do programu identyfikatory Program KilometryNaMile; Programista może pewne elementy programu nazywać. Właściwy dobór nazw wprowadza dodatkowe informacje o nazywanym obiekcie i zwiększa czytelność programu. Nazwy muszą być identyfikatorami. Identyfikator to ciąg liter, cyfr i znaków podkreślenia rozpoczynający się od litery, przy czym znak podkreślenia traktowany jest jako litera. Polskie znaki nie są traktowane jako litery. Poprawne identyfikatory J23, PI, Delta, x, _y, Linia, Dlugosc Niepoprawne identyfikatory J 23, 2PI, 007, liczba linii, dlugość W języku Pascal nie jest istotna wielkość liter, te identyfikatory są jednakowe: Liczbalinii LICZBALINII LICZBAlinii LiCzBaLiNiI Copyright Roman Simiński Strona : 25

Od algorytmu do programu wyprowadzanie napisów Program KilometryNaMile; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); WriteLn procedura standardowa, wyprowadzająca dane do strumienia wyjściowego programu, dołączająca znacznik końca linii. Napisy (inaczej literały łańcuchowe) są w języku Pascal ujmowane w znaki apostrofa: 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' Kursor Copyright Roman Simiński Strona : 26

Od algorytmu do programu wyprowadzanie napisów Program KilometryNaMile; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); WriteLn( 'Co ś tam' ); Wyświetl Coś tam, przenieś kursor do początku następnej linii Kursor WriteLn; Wyświetl nic, przenieś kursor do początku następnej linii Copyright Roman Simiński Strona : 27

Od algorytmu do programu zmienne Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Var słowo kluczowe oznaczające: tutaj początek sekcji deklaracji zmiennych. Kilometry : Real i Wynik : Real deklaracje zmiennych typu rzeczywistego. Deklaracja zmiennej określa jej nazwę, która musi być identyfikatorem oraz typ wartości, jakie zmienna może przechowywać. Copyright Roman Simiński Strona : 28

Od algorytmu do programu zmienne Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Real nazwa predefiniowanego typu zmiennopozycyjnego służącego do reprezentacji liczb rzeczywistych. Liczby rzeczywiste w systemach komputerowych stanowią dyskretny i skończony podzbiór zbioru liczb rzeczywistych. Zakres wartości tego typu zależny jest od implementacji. Copyright Roman Simiński Strona : 29

Od algorytmu do programu struktura Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; Definicje i deklaracje WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Część akcyjna programu Copyright Roman Simiński Strona : 30

Od algorytmu do programu procedura Write Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); Write procedura standardowa, wyprowadzająca dane do strumienia wyjściowego programu, kursor umieszczany jest za wyprowadzonymi informacjami. Kursor Copyright Roman Simiński Strona : 31

Od algorytmu do programu wprowadzanie danych Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); ReadLn procedura standardowa wczytująca dane ze strumienia wejściowego programu. Znacznik nowego wiersza (Enter) jest pomijany. Dane wstawiane są do zmiennych stanowiących parametry wywołania procedury. Strumień wejściowy programu to zwykle klawiatura. Copyright Roman Simiński Strona : 32

Od algorytmu do programu procedura ReadLn Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Przed wywołaniem ReadLn: Zawartość zmiennej Kilometry??? 100 + klawisz Enter Wywołanie: ReadLn( Kilometry ); Po wywołaniu ReadLn: Zawartość zmiennej Kilometry 100 Copyright Roman Simiński Strona : 33

Od algorytmu do programu instrukcja przypisania Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; := Operator przypisania Instrukcja przypisania powoduje nadanie zmiennej występującej po lewej stronie symbolu operatora przypisania := wartości wyrażenia umieszczonego po stronie prawej. Przed wykonaniem przypisania: Zawartość zmiennej X??? Przypisanie: X := 500; Po wykonaniu przypisania: Zawartość zmiennej X 500 Copyright Roman Simiński Strona : 34

Od algorytmu do programu ewaluacja wyrażenia arytmetycznego Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; Przed wykonaniem przypisania: Zawartość zmiennej Kilometry 100 Po wykonaniu przypisania: Przypisanie: Zawartość zmiennej Wynik 62.5 62.5 Wynik := Kilometry * 0.625; 100 * 0.625 Copyright Roman Simiński Strona : 35

Od algorytmu do programu wyprowadzanie wyniku Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; WriteLn( 'To w milach: ', Wynik ); Copyright Roman Simiński Strona : 36

Od algorytmu do programu formatowanie Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; WriteLn( 'To w milach: ', Wynik : 10 : 2 ); Copyright Roman Simiński Strona : 37

Od algorytmu do programu formatowanie, sztuczka Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; WriteLn( 'To w milach: ', Wynik : 0 : 2 ); Copyright Roman Simiński Strona : 38

Od algorytmu do programu daj szansę zobaczyć wynik Program KilometryNaMile; Var Kilometry : Real; Wynik : Real; WriteLn; WriteLn( 'Przeliczanie odleglosci wyrazonej w kilometrach na mile' ); Write( 'Podaj odleglosc w kilometrach: ' ); ReadLn( Kilometry ); Wynik := Kilometry * 0.625; WriteLn( 'To w milach: ', Wynik : 0 : 2 ); WriteLn( 'Nacisnij Enter by zakonczyc program...' ); ReadLn; ReadLn( Kilometry ); Czekaj na liczbę, zakończ po naciśnięciu klawisza Enter ReadLn; Czekaj na nic, zakończ po naciśnięciu klawisza Enter Copyright Roman Simiński Strona : 39

Od algorytmu do programu drobna optymalizacja Program KilometryNaMile; Var Kilometry : Real; Wynik : Real;... Wynik := Kilometry * 0.625 ; WriteLn( 'To w milach: ', Wynik : 0 : 2 );... Zmienna Wynik jest zbędna (zasada przechodniości): Program KilometryNaMile; Var Kilometry : Real;... WriteLn( 'To w milach: ', Kilometry * 0.625 : 0 : 2 );... Copyright Roman Simiński Strona : 40

Jeszcze dwa podobne przykłady Problem Napisać program przeliczający temperaturę wyrażona w stopniach Farenheit a na temperaturę w stopniach Celsjusza, oraz drugi program, dokonujący operacji odwrotnej. Niech wyniki po przeliczeniu będą zaokrąglonymi liczbami całkowitymi. Analiza Należy odszukać formułę przeliczania pomiędzy obiema skalami temperaturowymi. Opierając się na źródłach (np. http://p609.ha.pwr.wroc.pl/chemia/miary.htm) wiemy, że: temp. w st. Celsjusza = (5/9) * (temp. w st. Farenheita - 32); temp. w st. Farenheita = (9/5) * temp. w st. Celsjusza + 32; Ułamek 5/9 w wersji dziesiętnej jest okresowy, o wartości 0.555, zatem zasadne jest pozostawienie go w takiej postaci. Ułamek 9/5 można zastąpić ułamkiem dziesiętnym 1.8. Copyright Roman Simiński Strona : 41

Stopnie Celsjusza na Fahrenheita Scenariusz działania programu Kod programu Program CelsjuszDoFahrenheit; Var Celsjusz, Fahrenheit: Real; WriteLn; WriteLn( 'Stopnie Celsjusza na Fahrenheita' ); Write( 'Temperatura w st. C: ' ); ReadLn( Celsjusz ); Fahrenheit := 1.8 * Celsjusz + 32.0; WriteLn( 'Temperatura w st. F: ', Round( Fahrenheit ) ); WriteLn( 'Nacisnij Enter by zakonczyc program...' ); ReadLn; Copyright Roman Simiński Strona : 42

Stopnie Fahrenheita na Celsjusza Scenariusz działania programu Kod programu Program FahrenheitDoCelsjusz; Var Celsjusz, Fahrenheit: Real; WriteLn; WriteLn( 'Stopnie Fahrenheita na Celsjusza' ); Write( 'Temperatura w st. F: ' ); ReadLn( Fahrenheit ); Celsjusz := ( 5.0 / 9.0 ) * ( Fahrenheit - 32.0 ); WriteLn( 'Temperatura w st. C: ', Round( Celsjusz ) ); WriteLn( 'Nacisnij Enter by zakonczyc program...' ); ReadLn; Copyright Roman Simiński Strona : 43

Zaokrąglanie i obcinanie wartości rzeczywistych Przypisywane wartości muszą być zgodne Program Int2Real; Var I : Integer; R : Real; R := 100; OK Program Read2Int; Var I : Integer; R : Real; I := 3.14; Błąd! I := 100; R := I; OK R := 3.14; I := R; Błąd! Integer typ całkowity, w reprezentacji komputerowej jest to podzbiór zbioru liczb całkowitych. Dozwolone operacje : Dodawanie (+), odejmowanie (-), mnożenie (*), dzielenie całkowite (div), wyznaczanie reszty z dzielenie (mod). Dla operatorów div i mod spełnione jest: ( m div n ) * n + ( m mod n ) = m Copyright Roman Simiński Strona : 44

Zaokrąglanie i obcinanie wartości rzeczywistych Wykorzystanie funkcji Round i Trunc Program Read2Int; Var I : Integer; R : Real; R := 3.14; I := Round( R ); Write ( I ); Zaokrąglenie Program Read2Int; Var I : Integer; R : Real; R := 3.14; I := Trunc( R ); Write ( I ); Obcięcie 3 3 Funkcje Round i Trunc otrzymują jako parametr liczbę rzeczywistą, ich rezultatem jest liczba całkowita. Działają jednak w różny sposób. Copyright Roman Simiński Strona : 45

Zaokrąglanie i obcinanie wartości rzeczywistych Działanie funkcji Round i Trunc Trunc( X ) rezultatem funkcji jest liczba całkowita stanowiąca część całkowitą liczby X. Round( X ) rezultatem funkcji jest liczba będąca najbliższą wartością całkowitą liczby X. Dla środkowej wartości przedziału przyjmuje się liczbę o większej wartości absolutnej. Zasada zaokrąglania: Round( X ) = Trunc( X + 0.5 ) X >= 0 Round( X ) = Trunc( X - 0.5 ) X < 0 Round( 3.4 )=3 Round( 3.5 )=4 Round(-1.2)=-1 Round(-1.7)=-2 Trunc( 3.4 )=3 Trunc( 3.5 )=3 Trunc(-1.2)=-1 Trunc(-1.7)=-1 Copyright Roman Simiński Strona : 46