Zmienne i ich typy. Typ zmiennej

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

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Wstęp do programowania. Różne różności

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

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

Pascal - wprowadzenie

Konstrukcja alternatywy

Podstawy programowania

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Algorytmy i struktury danych

Podstawy programowania

Wstęp do programowania

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

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

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Zasady Programowania Strukturalnego

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

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

Podstawy Programowania C++

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

Informatyka 1. Przetwarzanie tekstów

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

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

Programowanie w Turbo Pascal

Algorytmy i struktury danych. wykład 1

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Instrukcja standardowa Writeln

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Język programowania PASCAL

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

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Procedury i funkcje. Przykład programu z procedurą. Definicja. Cechy procedury

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Visual Basic for Application (VBA)

2 Przygotował: mgr inż. Maciej Lasota

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

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

3. Podstawowe funkcje mamematyczne. ZAPOZNAĆ SIĘ!!!

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

OPERACJE NA PLIKACH. Podstawowe pojęcia:

LibreOffice Calc VBA

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

Lekcja 6: Pascal. Procedura i funkcja

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

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

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

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

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

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

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Programowanie - wykład 4

1 Podstawy c++ w pigułce.

Programowanie Delphi obliczenia, schematy blokowe

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Język C, tablice i funkcje (laboratorium, EE1-DI)

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Wprowadzenie Zmienne Wyrażenia i operatory Komunikacja Instrukcje warunkowe Instrukcje iteracyjne Przykłady Bibliografia

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

Programowanie RAD Delphi

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Programowanie komputerowe. Zajęcia 1

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

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki programowania zasady ich tworzenia

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Visual Basic for Application (VBA)

Warunki logiczne instrukcja if

Podprogramy. Procedury

Kompendium wiedzy z Pascala

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

Informatyka 1. Dokumentacja programu, moduły programowe, typy tablicowe

Przykład programu Rozwiązanie równania postaci:

Język C, tablice i funkcje (laboratorium)

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Zakres wykładu INFORMATYKA. dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel

Powtórka algorytmów. Wprowadzenie do języka Java.

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

WYRAŻENIA ALGEBRAICZNE

Struktury, unie, formatowanie, wskaźniki

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

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

Pytania sprawdzające wiedzę z programowania C++

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Kurs Pascala LO Biecz 2010/2011. Kurs Pascala oparty na zadaniach i problemach z lekcji Informatyki.

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Jerzy Nawrocki, Wprowadzenie do informatyki

Transkrypt:

Zmienne i ich typy Zmienne to komórki pamięci przeznaczone na przechowywanie przedmiotów. Komórka (zmienna) może być albo pusta albo zawierać jeden przedmiot. Nie każdy przedmiot pasuje do każdej komórki (dla samolotu potrzebny jest hangar, na samochód wystarczy garaż, oddzielną komórkę mamy na węgiel, oddzielną na drewno, oddzielną na motor). Zbiór przedmiotów pasujących do komórki określa typ tej komórki. Typ zmiennej Typ zmiennej określa, co może zawierać określona zmienna Poznaliśmy niektóre typy: integer, real

Typy zmiennych - Typ logiczny boolean logiczny Operacje: var x, y, z:boolean; begin x:=true; y:=false; z := not x; z:= x and y; z:= x or y; Z:=not y write(x); read(x); Typ logiczny mają wyniki wszelkich porównań x x 1 0 Typy zmiennych - Typ znakowy char znak Operacje: var x, y, z:char; begin x:= p ; y:=chr(ord(x)-1); czyli o z:=chr(ord( A )+3); czyli D ((z> c ) and (z= H )) or (y<= Z ) write(x); read(x); Typ znakowy pozwala na przechowywanie pojedynczych znaków kodu ASCII Jeżeli x jest typu znakowego, to Ord(x) podaje numer kodu ASCII Jeżeli y jest typu całkowitoliczbowego, to Chr(y) podaje znak odpowiadający kodowi y. X - zawiera znak spacji 0 0 1 0 0 0 0 0

Typy zmiennych Typ całkowitoliczbowy Integer mała liczba całk. Operacje: var x,y,z:integer; begin x:= 7; y:=$13 {hexa} y:=x-1; z:=x+y; z:=x*y;z=:x div y; z:=x mod y; ((z>7) and (z==5)) or (y<=z) write(x); read(x); Uwaga:23 div 7 ->3 23 mod 7 ->2 Typ całkowitoliczbowy imituje liczby całkowite w określonym zakresie X zawiera liczbę 7 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 14 2 13 2 12 2 4 2 3 2 2 2 1 2 0 Znak: 0 to +, 1 to 1 X= +(0*2 14 +0*2 13 +...+0*2 4 +0*2 3 +1*2 2 +1*2 1 +1*2 0 )= =+(1*4+1`*2+1*1)=+(4+2+1)=+7 Zakres wartości : -32767 - +32767 Typy zmiennych - Typ zmiennoprzecinkowy Real Operacje: var x, y, z:real; begin x=7.56; y=x-1.;z=x+y; z=x*y;z=x/y; ((z>7.)and(z==.5))or(y<=z ) write(x); read(x); Typ zmiennoprzecinkowy imituje liczby rzeczywiste. Reprezentuje je tylko z określoną dokładnością i w określonym zakresie Podczas operacji następuje zaokrąglanie wyniku (przez to stale rośnie błąd)

Typ zmiennoprzecinkowy liczba rzeczywista X zawiera liczbę typu real mantysa 1 1 0 0 0 0 0 0 2-1 2-2 2-3 0 0 0 0 0 1 1 1 wykładnik 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 Znak liczby: 0 to +, 1 to 1 2-23 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Znak wykładnika: 0 to +, 1 to 1 X= -(1*2-1 +0*2-2 +...+0*2-23 )*2 +7 =-(1*0.5)*127=+-64 Inne proste typy Kompilatory PASCALa zwykle wprowadzają inne jeszcze proste typy zmiennych o poszerzonych lub zawężonych zakresach wartości W Turbo Pascalu mamy np.. szortint liczba całkowita 127 - +127 Byte - liczba całkowita 0 255 Longint długa liczba całkowita (32 bity ze znakiem) Word całkowita 16 bitów bez znaku Single, double, extended, comp liczby zmiennoprzecinkowe

Typy zmiennych użytkownika Użytkownik może w Pascalu wprowadzić swoje własne typy Używa do tego deklaracji type przed zmiennymi var Typy zmiennych użytkownika: wyliczany Typy wyliczane deklaruje się jako: Type wyksztalcenie=(podstawowe,srednie,wyzsze ); Symbole podstawowe, srednie, wyzsze stają się stałymi typu wyksztalcenie Zmiennne tego typu deklarujemy jako Var wyk1 : wyksztalcenie;

Typy zmiennych użytkownika: wyliczany Przykłady: Ord(podstawowe) = 0 Ord(srednie) = 1 Pred(srednie)=podstawowe Succ(srednie)=wyzsze Uwaga: funkcje Ord, Pred i Succ są zdefiniowane także dla typów całkowitoliczbowych oraz char i boolean. Typy zmiennych użytkownika: zakresowy Użytkownik dla typów porządkowych (tych, dla których zdefiniowane jest Ord, Succ i Pred) może wprowadzić nowe typy będące ich pozakresami np.. Type XXwiek = 1901..2000; Type wyknizsze = podstawowe..srednie;

Kontrola typów Poszczególne operacje dopuszczają jedynie pewne typy argumentów. Np.. Operator mod czy div stosuje się wyłącznie dla liczb całkowitych, and or i not tylko dla logicznych itd.. Niektóre operatory zachowyją się inaczej dla różnych typów, np.. Operator + inaczej dodaje liczby, a inaczej znaki. Użycie operatorów dla niewłaściwych typów danych spowoduje błąd kompilacji Konwersja typów Niektóre typy zmiennych ulegają automatycznej zamianie. Np.. Integer na real. Dlatego np.. Można dodać liczbę real i integer, w wyniku czego otrzymamy liczbę real. W innych trzeba wymuszać konwersję Np.. Trunc(lrzeczyw) oraz Round(lrzecz) zamienia liczbę rzeczywistą na całkowitą

Tablica Tablice używa się do reprezentacji mnogości komórek pamięci tego samego typu ( gdy zabraknie nam imion ) X Var x:garaz; Var y: array[1..4] of garaz; Y[1] Y[2] Y[3] Y[4] Deklaracja tablicy Deklaracja zmiennej będącej tablicą składa się z elementów: VAR nazwa_zmiennej : ARRAY [zakres] OF typ_podstawowy; Np.: Var z : array[1..200] of real; to tablica 200 liczb rzeczywistych o nazwach z[1], z[2],...,z[200] Wyrażenie [3] nazywamy INDEKSEM.

Deklaracja tablicy UWAGA: zwykle wielkość tablicy jest rzeczą umowną i przy kolejnym użyciu programu może być potrzebna tablica większa lub mniejsza. Dlatego zwykle w deklaracji nie stosuje się się liczby (np.. 200) lecz wprowadza się stałą pomocniczą Const maks_z=200; Var z : array[1..maks_z] of real; Deklaracja tablicy Czasami jest uzasadnione używanie tablic o zakresie indeksów zaczynającym się nie od 1. Var podatek:array[1992..2005] of real; To tablica elementów o nazwach podatek[1992], podatek[1993],..., podatek[2005]

Typy tablicowe użytkownika Czasem kilka tablic powinno mieć identyczną strukturę Najlepiej jest wtedy zadeklarować typ tablicowy Type DaneZLat=array[1992..2005] of real; Potem deklarujemy zmienne: Var podatek: DaneZLat; przychody:danezlat; kosztyuzyskania: DaneZLat; Programowanie z użyciem tablic Programowanie z użyciem tablic wymaga stosowania pętli. ZADANIE Wczytaj z klawiatury n liczb rzeczywitych, przy czym od użytkownika należy pobrać liczbę n.

Czytanie tablicy zmiennych START 1 Wczytaj(n) 2 J:=1 NIE J<=n 3 TAK 4 Wczytaj(tab[J]) 5 J:=J+1 program czyttab; uses Crt; Const makstab=10; var n,j:integer; tab:array[1..maxtab] of real; begin read(n); {1} for J:=1 to n do {2,3,4} begin read(tab[j]); {5} end; End. STOP UWAGI UWAGA: Pracując z tablicami musimy strzec się używania indeksów spoza zakresu W powyższym programie, jeśli użytkownik poda n większe od 10, wystąpi błąd podczas wykonania programu. Aby temu zapobiec należy: Ostrzegać użytkownika, z jakiego zakresu ma podać wartości Stosować nadzwyczajne zakończenie programu, jeśli użytkownik naruszy dopuszczalny zakres

Czytanie tablicy zmiennych START 1 Wczytaj(n) TAK n>makstab 2 NIE 3 J:=1 NIE J<=n 4 TAK 5 Wczytaj(tab[J]) 6 J:=J+1 STOP STOP program czyttab2; uses Crt; Const makstab=10; var n,j:integer; tab:array[1..maxtab] of real; begin read(n); {1} if n > makstab then Halt; for J:=1 to n do begin read(tab[j]); end; End. Czytanie i pisanie tablicy zmiennych START 1 Wczytaj(n) 2 J:=1 NIE J<=n 3 TAK 4 Wczytaj(tab[J]) 7 5 J:=J+1 NIE J<=n 8 TAK 9 10 J:=J+1 Wypisz(tab[J]) 6 program czytpisz ; uses Crt; Const makstab=10; var n,j:integer; tab:array [1..maksTab] of real; begin Wypisz( UWAG A: piszę ) read(n); J:=1 for J:=1 to n do read(tab[j]); writeln( UWAGA: piszę ); for J:=1 to n do writeln(tab[j]); STOP End.

Zadanie Obliczyć średnia z wczytanych liczb ANALIZA Średnia to suma wartości podzielona przez liczbę wartości Średnia tablicy zmiennych START 1 Wczytaj(n) 2 J:=1 NIE J<=n 3 TAK 4 Wczytaj(tab[J]) 5 J:=J+1 6 7 J:=1 Suma:=0 NIE J<=n 8 TAK 9 10 J:=J+1 Suma:=Suma+tab[J] 11 12 STOP Sred:=Suma/n Wypisz(Sred)

Średnia tablicy zmiennych - PROGRAM program srednia ; uses Crt; Const makstab=10; var n,j:integer; tab:array[1..maxtab] of real; suma, sred : real; begin read(n); for J:=1 to n do read(tab[j]); suma:=0; for J:=1 to n do Suma:=Suma+tab[J]; Sred := Suma / n; writeln(sred); End. Zadanie Znajdź maksymalny element wczytanej tablicy ANALIZA W pierwszym przybliżeniu za maksymum przyjmiemy pierwszy element tablicy. Jeśli którykolwiek z kolejnych elementów jest większy od zakładanego maksymy, podstawiamy 35 maksymum tym elementem 30 25 20 15 10 5 0 Sty Lut Mar Kw i Maj Cze

START 1 Wczytaj(n) 2 J:=1 Maksimum NIE J<=n 3 TAK 4 Wczytaj(tab[J]) 5 J:=J+1 6 7 J:=2 MX:=tab[1] TAK 0 J<=n 8 TAK MX<tab[J] 9 MX:=tab[J] NIE NIE 12 Wypisz(MX) 11 J:=J+1 STOP Maksymum - Program program maksymym ; uses Crt; Const makstab=10; var n,j:integer; tab:array[1..makstab] of real; MX : real; begin read(n); for J:=1 to n do read(tab[j]); MX:-tab[1]; for J:=2 to n do if MX < tab[j] then MX:=tab[J]; writeln( Maksymum wynosi ); writeln(mx); End.

Zadanie Znajdź wszystkie liczby pierwsze w zakresie 2 5000 Analiza Można wypisać wszystkie liczby od 2 do 5000, a następnie wykreślić wielokrotności liczb pierwszych Sito liczb pierwszych program sito; uses Crt; const {Deklaracje stal`ych } MAX_N=5000; var {Deklaracje zmiennych} n,j,k: Integer; liczby: array [2..MAX_N] of Integer;{ tablica na liczby} Ch : Char; { zmienna pomocnicza } begin { Wlasciwy program} Writeln('Liczby pierwsze do? >>> '); Readln(n); if (n>max_n) then Writeln('Za duza liczba ',n) else begin {od else } for j:=2 to n do liczby[j]:=j; { wstaw liczby 2-n do tablicy } k:=2; while k*k<=n do begin {cyklu} j:=2*k; { usun` nadkrotnos`ci k } while j<=n do begin liczby[j]:=0; j:=j+k end; k:=k+1; { naste`pne k z liczby[k]!=0 } while (liczby[k]=0) and (k<=n) do k:=k+1; end; {cyklu} for j:=2 to n do {druk liczb p.}if liczby[j]>0 then Write(' ',j); end; {od else } Writeln; Writeln(' KONIEC '); Ch:=ReadKey; end.

Tablice mogą być wielowymiarowe Var y: array[1..2,1..4] of garaz; Y[1,1] Y[1, 2] Y[1, 3] Y[1, 4] Y[2,1] Y[2, 2] Y[2, 3] Y[2, 4] Zadanie na laboratorium Znaleźć sumę elementów wczytanej tablicy Znaleźć maksymalny (minimalny) element wczytanej tablicy Powyższe najpierw dla tablic jednowymiarowych, potem dla dwuwymiarowych Utworzyć tablicę zawierającą trójkąt Pascal i wypisać trójkąt

Trójkąt Pascala: W pierwszej kolumnie i na przekątnej ma jedynki Elementy poniżej przekątnej są sumą elementu wyżej i wyżej na lewo 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1...1 Struktura Strukturalny typ danych stosujemy wtedy, gdy chcemy opisać obiekt, którego kompletu cech nie można wyrazić za pomocą pojedynczej liczby Np..: pisząc godzinę 12.30 mamy na myśli dwa składniki liczbowe: godzina i minuty Pisząc datę 23.11.2001 mamy na myśli trzy składniki liczbowe: dzień, miesiąc, rok. Pisząc ułamek trzy czwarte mamy na myśli dwa składniki liczbowe: licznik i mianownik

Deklaracja typu struktury: Type data = Record dzien, miesiac,rok:integer; end; Type godzina= Record godz, min:integer; end; Type ulamek= Record licznik,mianownik:integer; end; Deklaracja zmiennej Var dzis : data; Var teraz : godzina; Var wym : ulamek;

Dostęp do wartości Read(teraz.godz); read(teraz.min); Teraz.godz:=2; teraz.min:=43; Writeln(teraz.godz); Writeln(teraz.min); zadanie Dodać dwa wektory trójwymiarowe Analiza Wektor trójwymiarowy można przedstawić jako strukturę (rekord) o trzech składowych: x,y,z Suma wektorów jest wektorem Dodawanie dwóch wektorów oznacza dodanianie do siebie odpowiednich składowych

Dodawanie wektorów program Wektor3w; type wek3w = record x,y,z:real; end; var w1, w2, w3:wek3w; begin {Czytanie wektorów } Writeln('Podaj 3 współrzędne pierwszego wektora:'); readln(w1.x, w1.y,w1.z); Writeln('Podaj 3 współrzędne drugiego wektora:'); readln(w2.x, w2.y,w2.z); {Dodawanie wektorów} w3.x:=w1.x+w2.x; w3.y:=w1.y+w2.y; w3.z:=w1.z+w2.z; {Prezentacja wyniku} Writeln('Wektor sumy ma współrzędne'); Writeln('[',w3.x, ',', w3.y, ',',w3.z, ']' ); end. zadanie Obliczyć długość wektora trójwymiarowego Analiza Długość wektora jest liczbą Jest po pierwiastek z sumy kwadratów składowych 2 2 x + y + z 2

program Dlug3w; Obliczanie długości wektora type wek3w = record x,y,z:real; end; var :wek3w; dlug:real; begin {Czytanie wektora } Writeln('Podaj 3 współrzędne pierwszego wektora:'); readln(w1.x, w1.y,w1.z); {Obliczanie długości} dlug:=sqrt(w1.x(w1.x+w1.y*w1.y+w1.z*w1.z); {Prezentacja wyniku} Writeln( Długość wektora wynosi, dlug); end. zadanie Wczytaj i posortuj godziny Analiza Zadanie sortowania godzin niczym nie różni się od sortowania liczb. Jedyne, co trzeba uwzględnić to inny sposób porównywania godzin, ich czytania i wypisywania Można zastosować metodę EXCHANGE SORT

Sortowanie godzin program sortowgodz; {nazwa programu} { Program w je`zyku Pascal: sortowanie exchange sort liczb } uses Crt; {uz yte biblioteki} const {Deklaracje stal`ych } MAX_N=5000; type godzina= Record godz, min:integer; end; Tablica = array [1..MAX_N] of godzina; var {Deklaracje zmiennych} n,j,k: Integer; { deklaracja zmiennej n oraz pomocniczej j i k} liczby: Tablica; { tablica na liczby} pomoc : godzina; Ch : Char; { zmienna pomocnicza } begin { Wlasciwy program} {czytanie} Writeln('ile godzin? >>> '); Readln(n); { czeka na Twe dane } if (n>max_n) then Writeln('Za duza liczba ',n) else begin Sortowanie godzin cd. for j:=1 to n do {czytaj godziny } begin Write('godzina[',j,']='); Readln(liczby[j].godz,liczby[j].min); end; {Sortowanie} for j:=1 to n-1 do for k:=j+1 to n do if (liczby[j].godz> liczby[k].godz) or (( liczby[j].godz= liczby[k].godz) and (liczby[j].min> liczby[k].min)) then begin pomoc:=liczby[k]; liczby[k]:=liczby[j]; liczby[j]:=pomoc; end;

Sortowanie godzin cd. {Prezentacja wyników} Writeln(' Liczby w kolejności rosnącej'); for j:=1 to n do Write(' ', liczby[j].godz:2,':',liczby[j].min:2); end {do robienia czegikolwiek} end. Zadania na laboratorium Wczytać i pomnożyć dwa ułamki Obliczyć różnicę w minutach między dwoma godzinami Wczytać dwa wektory dwuwymiarowe (składowe X,Y) i dodać je. Wczytać serię dat i posortować je