#7 P r o g r a m... Rys Struktura zmiennej typu string

Wielkość: px
Rozpocząć pokaz od strony:

Download "#7 P r o g r a m... Rys Struktura zmiennej typu string"

Transkrypt

1 11. OPERACJE NA ŁAŃCUCHACH ZNAKOWYCH Opis typu i deklarowanie zmiennych łańcuchowych Typ łańcuchowy o nazwie string opisuje strukturę danych, złożoną z 255 elementów typu Char. Jest ona przeznaczona do pamiętania łańcuchów znakowych, czyli napisów (fragmentów tekstu). W jednej zmiennej typu string można przechować najwyżej 255 znaków, ale nie wszystkie stojące do dyspozycji miejsca muszą być wykorzystane. Dlatego odróżniamy długość deklarowaną zmiennej łańcuchowej od jej długości rzeczywistej. Długość deklarowana jest to maksymalna liczba znaków, jakie może pomieścić zmienna. Natomiast długość rzeczywista jest liczbą znaków, jaką zajmuje łańcuch, który jest aktualnie przechowywany w zmiennej..format zmiennej łańcuchowej w pamięci przedstawia przykład na rysunku Pozycje zmiennej są numerowane kolejno od 0 do 255. W zmiennej L jest aktualnie pamiętany łańcuch Program. W takim razie rzeczywista długość łańcucha wynosi 7. Szczególną rolę odgrywa początkowa, zerowa pozycja zmiennej łańcuchowej. Przechowuje ona zawsze znak o numerze równym aktualnej długości łańcucha. Wobec tego w podanym przykładzie będzie tam się znajdować znak #7. Pisząc program, na ogół nie musimy pamiętać o zawartości zerowej pozycji łańcucha. Wynika to z faktu, że operatory i podprogramy łańcuchowe Turbo Pascala po wykonaniu operacji na łańcuchach same wpisują odpowiedni znak na zerową pozycję zmiennych łańcuchowych. L L[0] L[1] L[2] L[3] L[4][ L[5] L[6] L[7] L[8] L[9]... L[255] #7 P r o g r a m... Rys Struktura zmiennej typu string Deklaracja zmiennej łańcuchowej wygląda, jak następuje: var Napis: string; Podobnie, jak to miało miejsce dla innych typów, również zmiennym typu string można nadać wartość początkową Wtedy zmienną deklarujemy po słowie const, na przykład: const L:string = Program ; Własne typy łańcuchowe Bardzo często w programie używa się zmiennych łańcuchowych, o których wiemy, że ich długość rzeczywista jest na pewno mniejsza, niż 255 bajtów, Wtedy dla oszczędności pamięci można zdefiniować własny typ łańcuchowy o odpowiednio mniejszej długości deklarowanej. Na przykład, jeżeli wiadomo, że używane w programie napisy nie są dłuższe, niż jeden wiersz tekstu na ekranie, zajmujący 80 znaków, to zdefiniujemy typ: type S_80 = string[80]; W tej definicji S_80 jest dowolnie przyjętą nazwą, a w nawiasie kwadratowym po słowie string jest wpisana wartość 80, będąca deklarowaną długością zmiennych danego typu. Zauważmy, że każda zmienna typu S_80 będzie zajmować 81 bajtów pamięci jeden dodatkowy bajt na początku obszaru zmiennej zawiera informację o aktualnej długości pamiętanego łańcucha. 77

2 11.3. Stałe łańcuchowe Aby zapisać jawną stałą łańcuchową, odpowiedni ciąg znaków umieszcza się pomiędzy dwoma apostrofami; na przykład jawnymi stałymi łańcuchowymi są: Turbo Pascal Adam Mickiewicz 127 B:\JEZYKI\TP\TURBO.EXE Apostrofy zamykające łańcuch są bardzo ważne, bo dzięki nim kompilator odróżnia stałą łańcuchową od nazwy zmiennej lub od stałej liczbowej. Jeżeli w zapisie stałej łańcuchowej są tylko dwa apostrofy, jak w ostatnim przykładzie, to zapis taki reprezentuje łańcuch pusty. Jego aktualna długość wynosi 0. W bajcie zerowym takiego łańcucha znajduje się znak #0. (Nie jest to znak 0!) W przypadku, gdy w programie wielokrotnie występuje ten sam napis o znacznej długości, wygodnie jest stosować stałą łańcuchową definiowaną, jak w przykładzie poniżej: const C1= Nacisnij klawisz <Enter> ; C2= Wprowadz liczbe: ; W wyniku tej definicji, w dowolnym miejscu bloku, w którym definicja obowiązuje, nazwa C1 będzie rozumiana jako stała wartość łańcuchowa Nacisnij klawisz <Enter>, a nazwa C2 jako stała wartość łańcuchowa Wprowadz liczbe: Wykorzystanie instrukcji przypisania Podobnie, jak dla zmiennych innych typów, po lewej stronie operatora przypisania występuje nazwa zmiennej, w tym przypadku typu łańcuchowego (standardowego lub własnego), a po prawej wyrażenie, w tym przypadku wyrażenie o wartości łańcuchowej. Łańcuchy krótsze od deklarowanej długości zmiennej, lub tej samej jak ona długości, są kopiowane bez zmian. Natomiast, gdy chcemy przypisać łańcuch dłuższy, niż na to pozwala deklarowana długość zmiennej, to końcowe znaki łańcucha zostają po prostu obcięte. Ilustruje to poniższy przykład: Przykład Instrukcje przypisania operujące na zmiennych łańcuchowych type S20=string[20] S12=string[12]; var Nazwisko: S20; Miasto:S12; Nazwisko:= Kowalski ; {Nazwisko = Kowalski } Miasto:= Konstantynopol ; {Miasto = Konstantynop } end. Łańcuchowi wolno przypisać znak. Na przykład, jeżeli: var Z:Char; L:string; to prawidłowe jest przypisanie: L:=Z; 78

3 W wyniku tej operacji L będzie łańcuchem o aktualnej długości równej 1. Natomiast przypisanie odwrotne jest niemożliwe, bo zmienna typu Char ma do dyspozycji jeden bajt pamięci, podczas gdy zmienna typu string wymaga 256 bajtów pamięci! Odwoływanie się do elementów łańcucha Do elementów (czyli poszczególnych znaków) łańcucha można odwoływać się tak samo, jak do elementów jednowymiarowej tablicy. Takie odwołania mogą być przeznaczone zarówno do zapisu, jak odczytu znaków. Traktując łańcuch jako tablicę, warto stosować na początku programu dyrektywę kompilatora {$R+}. Zabezpiecza to przed błędami w przypadku przekroczenia deklarowanej długości łańcucha. Chcąc odczytać K ty znak łańcucha Lancuch i zapamiętać ten znak w zmiennej znakowej C, napiszemy zatem: C:=Lancuch[K]; przy czym K nie może być większe, niż aktualna długość łańcucha. W przykładzie 11.2 pokazano procedurę, która wyprowadza na ekran podany na jej wejście łańcuch W drukiem rozstrzelonym, wypisując spację (czyli znak #32) po każdym wyprowadzonym znaku. Zwróćmy uwagę na zastosowanie standardowej funkcji Length. Funkcja ta zwraca aktualną długość łańcucha, zapobiegając wypisaniu przypadkowych znaków, pamiętanych w obszarze poza aktualna długością zmiennej W. Przykład Procedura wyprowadzająca łańcuch drukiem rozstrzelonym procedure Pisz_szeroko(W:string); for K:=1 to Length(W) do Write W[K]; Write(#32); Następny przykład pokazuje funkcję, która zwraca łańcuch, stanowiący ciąg N jednakowych znaków Z. Argument N nie może być większy, niż 255, więc jest typu Byte. Zwróćmy uwagę, że przy tej metodzie tworzenia łańcucha zerowy bajt nie wypełnia się samoczynnie należy wpisać do niego znak o numerze N. Wykorzystano w tym celu standardowa funkcję Chr, która zwraca znak o numerze zgodnym z jej argumentem. Przykład Funkcja zwracająca łańcuch N jednakowych znaków Z function Lanc_znak(N:Byte;Z:Char):string; var Lanc:string; K:Byte; for K:=1 to N do Lanc[I]:=Z; Lanc[0]:=Chr(N); Lanc_znak:=Lanc; 79

4 11.6. Operacja sklejania łańcuchów Chcąc skleić dwa lub więcej łańcuchów, czyli połączyć je w jeden wspólny łańcuch, stosujemy operator sklejania (konkatenacji), który wygląda tak samo, jak operator dodawania. Otrzymane w ten sposób wyrażenie łańcuchowe przypisujemy do zmiennej łańcuchowej. Oczywiście wynik takiej operacji zależy od porządku składników. W poniższym przykładzie widać, że argumentami operacji sklejania mogą być również znaki: Przykład Sklejanie łańcuchów i znaków const C1= Jan ; C2= Kowalski ; var S1,S2: string; S1:=C1+#32+C2; {S1= Jan Kowalski } S2:=C2+#32+C1; {S2= Kowalski Jan } Porównywanie łańcuchów Porównywanie łańcuchów odbywa się za pomocą operatorów relacyjnych, działających na łańcuchach: =,<>,<,>,<=,>= Przy porównywaniu są sprawdzane numery porządkowe kodu ASCII kolejnych znaków dwóch porównywanych łańcuchów. Łańcuch mniejszy, to ten, który na wcześniejszej pozycji ma znak o mniejszym numerze porządkowym. Wynika stąd na przykład, że łańcuch pisany wielkimi literami jest mniejszy od tego samego łańcucha pisanego małymi literami. Łańcuchy są równe, gdy mają tę sama liczbę znaków i jednocześnie znaki na każdej ich pozycji są wzajemnie jednakowe. W przeciwnym przypadku łańcuchy są różne. W przykładzie 11.5 pokazano wykorzystanie operatora większości w procedurze, która sortuje zawartość tablicy łańcuchów w porządku alfabetycznym. Do sortowania zastosowano wcześniej już opisany w tej książce algorytm bąbelkowy. W programie pokazano także sposób zainicjowania tablicy łańcuchów przy jej deklarowaniu. Program Ex11_5; uses Crt; Przykład Sortowanie tablicy łańcuchów w porządku alfabetycznym type Tab=array [1..6] of string; const T:Tab=('Tomasz','Jacek','Adam','Robert','Ewa','Beata'); procedure PokTab(var T:Tab); var I:Integer; for I:=Low(T) to High(T) do Writeln(T[I]); Writeln; 80

5 Przykład c.d. procedure BubbleSort(var T:Tab); var K,J:Integer; Kopia:string; for K:=Low(T) to High(T)-1 do for J:=K+1 to High(T) do if T[K]>T[J] then Kopia:=T[K]; T[K]:=T[J]; T[J]:=Kopia; Clrscr; Poktab(T); Bubblesort(T); Poktab(T); Readln; end Funkcje i procedury standardowe operujące na łańcuchach Poniżej pokazano nagłówki definicji i krótki opis działania standardowych funkcji i procedur Turbo Pascala, przeznaczonych do operacji na łańcuchach. Ich stosowanie pozwala uniknąć konieczności odwoływania się do elementów łańcucha. Wszystkie automatycznie wpisują odpowiednią wartość do początkowego bajtu łańcuchów wynikowych, który przechowuje informację o aktualnej długości łańcucha. Przytoczone poniżej nagłówki służą jedynie do przekazania informacji o liczbie i typach argumentów poszczególnych funkcji i procedur. Oczywiście w naszych programach stosujemy jedynie wywołania odpowiednich funkcji i procedur, których gotowe definicje są wewnętrznie zakodowane w Turbo Pascalu. function Length(S:string):Integer; Zwraca aktualną długość łańcucha S. function Concat(S1,S2,... Sn):string; Zwraca łańcuch będący sklejeniem kolejnych argumentów S1, S2, Sn. Zamiast tej funkcji można zastosować operatory sklejania +. function Copy(S:string; Poz:Integer; D:Integer):string; Łańcuch wynikowy jest wycinkiem łańcucha S zaczynającym się od pozycji Poz, mającym długość określoną przez argument D. function Pos(S1,S2:string):Byte; Bada, czy w łańcuchu S2 znajduje się podłańcuch S1. Jeżeli nie ma takiego podłańcucha, zwraca wartość 0; w przeciwnym przypadku zwraca numer pozycji S2, od której rozpoczyna się pierwsze wystąpienie podłańcucha S1. procedure Delete(var S:string; Poz:Integer; D:Integer); 81

6 Wycina podłańcuch z łańcucha S. Wycięty podłańcuch zaczyna się od pozycji Poz i ma D znaków. Jeżeli Poz jest większa od aktualnej długości S, to postać łańcucha S nie ulega zmianie. procedure Insert(S1:string; var S2:string; N:Integer); Wstawia do łańcucha S2 podłańcuch S1, począwszy od pozycji następnej za znakiem N tym łańcucha S2. Jeżeli N jest większe od aktualnej długości S2, to podłańcuch S1 zostaje doklejony na końcu S2. procedure Str(X; var S:string); Przekształca daną X dowolnego typu liczbowego na łańcuch znaków, reprezentujący odpowiedni zapis dziesiętny tej danej. Pisząc argument X, można stosować parametry określające liczbę pozycji zapisu i liczbę miejsc po kropce dziesiętnej, podobnie jak w instrukcjach Write, Writeln. procedure Val(S:string; var X; var Kod:Integer); Przekształca łańcuch znakowy S, stanowiący poprawny zapis dowolnej liczby, na liczbę X, będącą zmienną odpowiedniego typu liczbowego. Jeżeli Łańcuch S był poprawnym zapisem liczby, to argument wyjściowy Kod przyjmuje wartość 0; w przeciwnym przypadku Kod jest numerem pozycji łańcucha S, na której wykryto pierwszy błąd zapisu. Uwaga: Procedura Val wykrywa także błąd zakresu dla X typu Real lub Longint. Dla innych typów do kontroli zakresu należy w programie zastosować dyrektywę kompilatora {$R+} Przykłady wykorzystania standardowych funkcji i procedur łańcuchowych Wprowadzając wartość liczbową z klawiatury, można łatwo popełnić błąd, polegający na próbie wprowadzenia niewłaściwego formatu liczby. Najprostszym przykładem może być użycie przecinka zamiast kropki dziesiętnej przy odczycie z klawiatury liczby rzeczywistej. Instrukcja Readln wykrywa to jako błąd wykonania, powodując natychmiastowe przerwanie programu, czemu towarzyszy wydrukowanie komunikatu: Error 106: Invalid numeric format. Taka sytuacja jest bardzo niewygodna, ponieważ konieczne jest ponowne uruchomienie programu od początku. Zatem lepiej jest napisać program w taki sposób, by użytkownik mógł po prostu, nie przerywając obliczeń, powtórnie wprowadzić poprawnie napisaną wartość liczby. Jedna z metod takiej programowej kontroli błędów wejścia polega na interpretacji wprowadzonego ciągu znaków jako łańcucha i próbie przekształcenia tego łańcucha na liczbę za pomocą procedury Val. Przykład 11.6 pokazuje odpowiednią procedurę własną, która realizuje tę metodę. Przykład Zastosowanie procedury Val do programowej kontroli formatu liczby procedure CzytKontrol(var X:Real); var S:string[80]; Kod:Integer; repeat Write('Podaj liczbe: '); Readln(S); Val(S,X,Kod); if Kod<>0 then Writeln('Blad na pozycji ',Kod); until Kod=0; W procedurze zastosowano instrukcję powtarzająca repeat until, która tak długo powtarza prośbę o wprowadzenie liczby rzeczywistej X, dopóki format tej liczby nie będzie poprawny. Liczba jest odczytywana jako łańcuch znaków i jej zapis znakowy zostaje zapamiętany w zmiennej 82

7 S. Następnie procedura Val sprawdza format S. Jeżeli stanowi on bezbłędny zapis liczby, to będzie ona zapisana jako wartość typu Real w zmiennej X. Zmienna kontrolna Kod przyjmie wtedy wartość 0, co jest warunkiem zakończenia instrukcji repeat until. Jeżeli odczytany z klawiatury łańcuch S nie jest poprawnym zapisem liczby, to zostaje wyprowadzony komunikat o błędzie na określonej pozycji, a instrukcja powtarzająca rozpoczyna kolejny cykl pracy, ponownie prosząc użytkownika o wprowadzenie danej. Przykład 11.7 demonstruje program, w którym zdefiniowano funkcję, znajdująca liczbę wystąpień podłańcucha P w łańcuchu L. Łańcuch i podłańcuch są argumentami funkcji. W ciele funkcji zastosowano trzy spośród standardowych podprogramów Turbo Pascala: Length, Pos oraz Delete. Użyta w ciele funkcji instrukcja while do powtarza sekwencję trzech operacji: (1) Za pomocą funkcji Pos szukamy początkowej pozycji pierwszego wystąpienia podłańcucha. (2) Po jej znalezieniu zwiększamy o 1 wartość licznika wystąpień; funkcję tego licznika pełni tutaj zmienna Licznik. (3) Z badanego łańcucha za pomocą procedury Delete usuwamy znaleziony podłańcuch. Ta sekwencja trzech operacji powtarzana jest tak długo, dopóki instrukcja Pos(P,L) nie zwróci wartości 0. Przyjęcie przez Pos wartości 0 oznacza, ze w badanym łańcuchu L nie ma już więcej wystąpień podłańcucha P, więc w zmiennej Licznik znajduje się końcowy wynik, który należy przekazać na wyjście funkcji za pośrednictwem końcowej instrukcji przypisania. Przykład Znajdowanie liczby wystąpień podłańcucha w łańcuchu program Ex11_7; {Zastosowanie standardowych funkcji i procedur łańcuchowych} uses Crt; type S_80 = string[80]; const L:S_80 = 'Adam Kowalski i Janina Kowal-Kowalska'; var P:S_80; W:Byte; function IlePodlanc(P,L:string):Byte; {Zwraca liczbę wystąpień podłańcucha P w łańcuchu L.} var Licznik:Byte; Pozycja,D:Integer; D:=Length(P); {Długość podłańcucha} Licznik:=0; while Pos(P,L)<>0 do Pozycja:=Pos(P,L); {Pozycja pierwszego wystąpienia P} Licznik:=Licznik+1; {Przyrost licznika wystąpień P w L} Delete(L,Pozycja,D) {Usunięcie z L kolejnego podłańcucha P} IlePodlanc:=Licznik; Clrscr; Writeln(L); Write('Wpisz szukany podlancuch: '); Readln(P); W:=IlePodlanc(P,L); Write('Liczba wystapien: ', W); Readln; end. W przypadku, gdy łańcuch L jest zainicjowany jako Adam Kowalski i Janina Kowal Kowalska, a chcemy znaleźć liczbę wystąpień podłańcucha Kowal, instrukcja while wykona trzy 83

8 kroki. Po każdym z nich łańcuch L jest krótszy w wyniku usunięcia kolejnego wystąpienia podłańcucha, jak pokazano poniżej: Adam Kowalski i Janina Kowal Kowalska {postać początkowa} Adam ski i Janina Kowal-Kowalska (po kroku nr 1} Adam ski i Janina Kowalska {po kroku nr 2} Adam ski i Janina ska {po kroku nr 3} Oczywiście, zmienna L użyta w programie głównym w instrukcji: W:=IlePodlanc(P,L); nie ulegnie zmianie w wyniku tego wywołania. Wiemy przecież z rozdziału o procedurach i funkcjach, że podprogramy kopiują użyte w wywołaniu wartości argumentów wejściowych do zmiennych lokalnych w obszarze stosu i dopiero na tych lokalnych zmiennych odbywają się odpowiednie działania. Dlatego zawartość zmiennej L programu głównego pozostaje nienaruszona. Przykład Użycie funkcji Length do centrowania tekstu w elementach tablicy łańcuchów program Ex11_8; uses Crt; type S_80 = string[80]; Tab = array [1..6] of S_80; const T:Tab=('Ordinal types are a subset of simple types.', 'All simple types other than real types', 'are ordinal types.', 'Except for integer-type values,', 'the first value of every ordinal type', 'has ordinality 0.'); procedure Poktab(var T:Tab); var K:Integer; for K:=Low(T) to High(T) do Writeln(T[K]); Writeln; procedure Centruj(var T:Tab); var K:Integer; S:string; for K:=Low(T) to High(T) do S:=''; repeat S:=S+#32; until 2*Length(S)+Length(T[K])>=79; T[K]:=S+T[K]; Clrscr; Centruj(T); PokTab(T); Readln; end. W przykładzie 11.8 pokazano program, w którym zainicjowano tablicę łańcuchów fragmentami tekstu w języku angielskim. Program zawiera dwie procedury własne. Procedura Poktab wyprowadza w kolejnych wierszach zawartość tablicy. Procedura Centruj modyfikuje 84

9 zawartość tablicy, doklejając na początek każdego jej elementu T[K] łańcuch S, złożony z pewnej liczby spacji. Łańcuch ten, początkowo pusty, jest konstruowany przez kolejne doklejanie pojedynczych spacji w zagnieżdżonej pętli repeat until Dla każdego elementu T[K] doklejanie spacji kończy się, gdy suma podwójnej długości łańcucha S oraz długości łańcucha T[K] osiągnie wartość, odpowiadającą liczbie znaków, mieszczących się w jednym wierszu ekranu, a więc po spełnieniu relacji: 2*Length(S)+Length(T[K]}>=79 W rezultacie tego postępowania, fragmenty tekstu, zawarte w kolejnych elementach tablicy, zostaną wypisane symetrycznie względem środka ekranu, jak pokazano poniżej. Ordinal types are a subset of simple types. All simple types other than real types are ordinal types. Except for integer-type values, the first value of every ordinal type has ordinality 0. 85

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

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych

Bardziej szczegółowo

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

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

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

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}; INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy programowania

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

Bardziej szczegółowo

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 cz. 1 Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin

Bardziej szczegółowo

Programowanie w Turbo Pascal

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

Bardziej szczegółowo

Język programowania PASCAL

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

Bardziej szczegółowo

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR:

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR: Tablice Tablica jest to struktura danych zawierająca pewien uporządkowany zbiór obiektów tego samego typu. Tablice jednowymiarowe odpowiadają wektorom, natomiast tablice dwuwymiarowe macierzom. Elementy

Bardziej szczegółowo

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

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

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako

Bardziej szczegółowo

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

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Lekcja 6: Pascal. Procedura i funkcja

Lekcja 6: Pascal. Procedura i funkcja Lekcja 6: Pascal. Procedura i funkcja S. Hoa Nguyen 1 Materiał Książka: Programowanie w języku Pascal. Rozdział 9. Podprogramy Podprogramy - motywacja Skrócenie zapisu (wielokrotne powtórzenia tej samej

Bardziej szczegółowo

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

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

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.

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. Część XXII C++ w 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. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

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

Bardziej szczegółowo

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

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne 1. Wstęp Turbo Pascal jest jednym z najpopularniejszych języków programowania wyższego poziomu. Program napisany w tym języku jest ciągiem zdań opisującym określony algorytm. Nazywamy go postacią źródłową

Bardziej szczegółowo

Podstawy Programowania C++

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:

Bardziej szczegółowo

Wykład PASCAL - Pliki tekstowe

Wykład PASCAL - Pliki tekstowe Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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,

Bardziej szczegółowo

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 1 Podstawy programowania 2 Temat: Wprowadzenie do wskaźników Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Rysunek przedstawia najważniejszą różnicę pomiędzy zmiennymi,

Bardziej szczegółowo

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

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word Pascal - powtórka Alfabet, Nazwy W odróŝnieniu do C w Pascal nie odróŝnia małych i duŝych liter. Zapisy ALA i ala oznaczają tę samą nazwę. Podobnie np. słowo kluczowe for moŝe być zapisane: FOR. W Pascalu

Bardziej szczegółowo

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu Wrocław, dn 19 kwietnia 2006 roku Czas trwania zajęć: 90 minut, przedmiot: informatyka Temat lekcji:

Bardziej szczegółowo

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

Podprogramy. Procedury

Podprogramy. Procedury Podprogramy Turbo Pascal oferuje metody ułatwiające tworzenie struktury programu, szczególnie dotyczy to większych programów. Przy tworzeniu większego programu stosuje się jego podział na kilka mniejszych

Bardziej szczegółowo

Warsztaty dla nauczycieli

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

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

Wykład 6. Operacje na łańcuchach znakowych

Wykład 6. Operacje na łańcuchach znakowych Wykład 6. Operacje na łańcuchach znakowych 1. Łańcuch znaków jako tablica Do przechowania łańcucha znaków służy tablica znakowa. W kolejnych pozycjach tej tablicy są pamiętane kolejne znaki. Ostatnim znakiem

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

Obsługa klawiszy specjalnych

Obsługa klawiszy specjalnych 13 Obsługa klawiszy specjalnych Oprócz klawiszy alfanumerycznych na klawiaturze peceta jest sporo klawiszy specjalnych. Najlepiej stosować klawisze specjalne zgodnie z ich typowym przeznaczeniem. 13.1.

Bardziej szczegółowo

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Instrukcja standardowa Writeln

Instrukcja standardowa Writeln Instrukcja standardowa Writeln Instrukcja Writeln umożliwia wprowadzenie danych na ekran monitora powodując automatycznie późniejsze przejście kursora do nowej linii. Jest to ustawienie domyślne w działaniu

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część dziewiąta Procedury i funkcje Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

Bardziej szczegółowo

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak: Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji

Bardziej szczegółowo

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

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

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie. CZEŚĆ A. Przykłady, cd. 1.Obliczanie wartości pierwiastka kwadratowego - algorytm Newtona-Raphsona http://pl.wikipedia.org/wiki/metoda_newtona (pierwszy przykład na stronach Wiki) Dane: Liczba a (a>0)

Bardziej szczegółowo

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)

Bardziej szczegółowo

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 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ć

Bardziej szczegółowo

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}

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} 1 WIADOMOŚCI WSTĘPNE Programowanie komputerów najogólniej mówiąc polega na zapisaniu pewniej listy poleceń do wykonania przez komputer w pewnym umownym języku Taką listę poleceń nazywamy programem Program

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

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ć

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

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni, Baltie Zadanie 1. Budowanie W trybie Budowanie wybuduj domek jak na rysunku. Przedmioty do wybudowania domku weź z banku 0. Zadanie 2. Czarowanie sterowanie i powtarzanie W trybie Czarowanie z pomocą czarodzieja

Bardziej szczegółowo

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

Procedury i funkcje. Przykład programu z procedurą. Definicja. Cechy procedury Definicja Procedury i funkcje Procedura to wydzielony fragment programu, który służy do wykonywania pewnych zbiorów instrukcji stanowiących zwartą całość. Procedurę nazywamy czasem podprogramem. 1 2 Przykład

Bardziej szczegółowo

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3, WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy zmiennych języka C++ Nazwa typu (nazwa skrócona) Rozmiar (bajtów) unsigned char 1 signed char (char) unsigned short int (unsigned) signed short int (int)

Bardziej szczegółowo

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

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)

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

PASCAL WPROWADZENIE. 1. Uruchom kompilator. 2. Struktura programu w Pascalu. 3. Komentarze

PASCAL WPROWADZENIE. 1. Uruchom kompilator. 2. Struktura programu w Pascalu. 3. Komentarze Informatyka I Laboratoria/Projekty Krzysztof Regulski AGH, WIMiIP PASCAL WPROWADZENIE 1. Uruchom kompilator Stwórz nowy plik, a w nim napisz: program hello; writeln( Witaj Pascalu! ); 2. Struktura programu

Bardziej szczegółowo

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

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice Podstawy programowania Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice 1 Podstawy programowania Iteracja 2 III. Iteracja Iteracja o nieznanej liczbie powtórzeń while warunek do instrukcja_do_wykonania;

Bardziej szczegółowo

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików:

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików: Pliki Dotychczas operowaliśmy danymi, które zapamiętywane były w pamięci operacyjnej komputera (RAM). Program Turbo Pascal umożliwia zapisywanie i odczyt danych, co zapewnia możliwość wielokrotnego ich

Bardziej szczegółowo

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

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym Procedury i funkcje - powtórzenie i uzupełnienia Przykład funkcji potęgowanie przy wykładniku naturalnym program potegowanie; {$APPTYPE CONSOLE} uses SysUtils; var x: real; n: integer; function Potega(podstawa:

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Instrukcje cykliczne (pętle) WHILE...END WHILE

Instrukcje cykliczne (pętle) WHILE...END WHILE Instrukcje cykliczne (pętle) Pętle pozwalają na powtarzanie fragmentu kodu programu. PĘTLE LOGICZNE WHILE...END WHILE While (warunek)...... End While Pętla będzie się wykonywała dopóki warunek jest spełniony.

Bardziej szczegółowo

Laboratorium 10: Maszyna stanów

Laboratorium 10: Maszyna stanów Wojciech Myszka Laboratorium 10: Maszyna stanów 2016-05-07 09:05:39 +0200 1. Wprowadzenie Laboratorium poświęcone jest operacjom na napisach (ciągach znaków). Przypominam, że: a to stała typu char o wartości

Bardziej szczegółowo

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem ASCII... J e s t e m t e k s t e m \0...

Bardziej szczegółowo

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

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje

Bardziej szczegółowo

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

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Część 4 życie programu

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ęść

Bardziej szczegółowo

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

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

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

Bardziej szczegółowo

Tablice deklaracja, reprezentacja wewnętrzna

Tablice deklaracja, reprezentacja wewnętrzna Tablice deklaracja, reprezentacja wewnętrzna Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy.

Bardziej szczegółowo

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

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ą

Bardziej szczegółowo

2. Łańcuchy tekstowe w PHP

2. Łańcuchy tekstowe w PHP 2. Łańcuchy tekstowe w PHP 2.1 Apostrofy i cudzysłowy Łańcuch tekstowy w języku PHP to ciąg znaków ograniczony apostrofami (') lub cudzysłowami ("). Te znaki ograniczające nie powinny być traktowane wymiennie,

Bardziej szczegółowo

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

ŁAŃCUCHY W JĘZYKU C/C++

ŁAŃCUCHY W JĘZYKU C/C++ ŁAŃCUCHY W JĘZYKU C/C++ Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem... 74 101 115 116 101 109 32 116 101 107 115 116 101 109 0......

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) 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,... ) ;

Bardziej szczegółowo

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

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka PASCAL Kompendium Środowisko TURBO PASCAL Skróty klawiaturowe Edycja kodu F1 Pomoc spis treści CTRL + F1 Pomoc kontekstowa SHIFT + strzałki Zaznaczanie bloku CTRL + INSERT Skopiowanie zaznaczonego bloku

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych 1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo