Pascal01

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

Wojciech Myszka

Programowanie — Pascal

22 lutego 2008

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

Spis treści

1. Języki programowania

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2. Pascal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3. Czemu Pascal?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

4. Przykładowy program

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

4.1. Pascal

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

4.2. Perl

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

4.3. C

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

4.4. Fortran

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

5. Pascal – podstawy

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

5.1. Literatura

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

5.2. Program wykładu

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

6. Struktura programu w języku PASCAL

. . . . . . . . . . . . . . . . . . . . . . . .

16

7. Dane

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

7.1. Typ zmiennej

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

8. Typ porządkowy

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

8.1. Typy porządkowe całkowite

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

8.2. Typ porządkowy logiczny

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

8.3. Typ porządkowy znakowy

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

9. Typ wyliczeniowy

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

9.1. Typ okrojony

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

9.2. Typy proste rzeczywiste

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

10.Instrukcja przypisania

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

11.Standardowe funkcje arytmetyczne

. . . . . . . . . . . . . . . . . . . . . . . . . .

25

12.Przykłady

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

1. Języki programowania

Z

Wikipedii

, wolnej encyklopedii:

Język programowania to usystematyzowany sposób przekazywania komputerowi
poleceń do wykonania. Język programowania pozwala programiście na precyzyjne
przekazanie maszynie, jakie dane mają ulec obróbce i jakie czynności należy podjąć
w określonych warunkach.
Języki programowania klasyfikuje się zależnie od tego, do jakiego paradygmatu

a

lub paradygmatów programowania najlepiej się nadają:

a

Paradygmat to zbiór podstawowych pojęć i teorii tworzących podstawy danej dziedziny.

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

— imperatywne (taka metoda programowania w której program składa się ze

zmiennych oraz modyfikujących je operacji, z jawnie określonym przepływem
sterowania. Typowe języki tego typu to C, Pascal. Największą zaletą jest bli-
skość takiej reprezentacji do tego co rzeczywiście wykonywane jest przez kom-
puter.) C, Pascal

— obiektowe (metodologia tworzenia programów komputerowych, która definiuje

programy za pomocą „obiektów” — elementów łączących stan (czyli dane) i
zachowanie (czyli procedury, tu: metody)) C++

— funkcyjne (to filozofia programowania, w której funkcje należą do wartości

podstawowych, a nacisk kładzie się na ewaluację (często rekursywnych) funkcji,
a nie na wykonywanie poleceń) Haskel, LISP

— logiczne ( to metoda programowania, w której program podawany jest jako

pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w
oparciu o te zależności) Prolog

— i inne

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

2. Pascal

Jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego po-
ziomu, ogólnego zastosowania, oparty na języku Algol. Został opracowany przez
Niklausa Wirtha w 1971 roku. Pierwotnie służył celom edukacyjnym (do nauki
programowania strukturalnego).
Pierwszy opis języka Wirth zawarł w The programming language Pascal, Acta
Informatica 1/1971, a kolejny, poprawiony w The programming language Pascal
(Revised Report)
, Bericht der Fachrgruppe Computer ? Wissenschaften 5/1972.
Pierwszym podręcznikiem języka Pascal była pozycja Jensen, Wirth, Pascal, User
Manual and Report
1974.
Jedną z popularniejszych implementacji kompilatorów tego języka był produkt
firmy Borland International — Turbo Pascal. W chwili obecnej dość mocno roz-
powszechnionym obiektowym dialektem języka Pascal jest Object Pascal osadzony
w Delphi oraz Kylix’ie (również wyprodukowanych przez Borland International).
Istnieją wolne kompilatory Pascala, na przykład Free Pascal, a także wolne środo-
wisko IDE jak Lazarus.

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

3. Czemu Pascal?

1. Stosunkowo prosty
2. Stosunkowo „porządny”
3. Łatwo dostępny
4. . . .

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

4. Przykładowy program

Poniższe programy ściągnięte z serwisu „99 Bottles of Bear (One program in 621
variants)”

http://www.99-bottles-of-beer.net/

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

4.1. Pascal

(

P a s c a l v e r s i o n o f 99 B o t t l e s o f b e e r

)

program B o t t l e s O f B e e r s ( i n p u t , o u t p u t ) ;

var

b o t t l e s : i n t e g e r ;

begin

b o t t l e s := 9 9 ;

repeat

WriteLn ( b o t t l e s ,

’ b o t t l e s o f b e e r on t h e w a l l ,

’ ,

b o t t l e s ,

’ b o t t l e s o f b e e r . ’ ) ;

Write ( ’ Take one down , p a s s i t around ,

’ ) ;

b o t t l e s := b o t t l e s

1;

WriteLn ( b o t t l e s ,

’ b o t t l e s o f b e e r on t h e w a l l . ’ ) ;

u n t i l ( b o t t l e s = 1 ) ;

WriteLn ( ’ 1 b o t t l e o f b e e r on t h e w a l l , one b o t t l e o f b e e r . ’ ) ;
WriteLn ( ’ Take one down , p a s s i t around , ’ ,

’ no more b o t t l e s o f b e e r on t h e w a l l ’ )

end .

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

4.2. Perl

#! / u s r / b i n / p e r l
# Jim Menard jimm@

{

bbn , i o

}

. com

# ( 6 1 7 ) 873

4326 h t t p : / /www . i o . com/˜ jimm /

$ n B o t t l e s = $ARGV [ 0 ] ;
$ n B o t t l e s = 100 i f $ n B o t t l e s eq ’ ’

| |

$ n B o t t l e s

<

0 ;

foreach ( r e v e r s e ( 1 . .

$ n B o t t l e s ) )

{

$ s = ( $

== 1 ) ? ” ” : ” s ” ;

$ o n e L e s s S = ( $

== 2 ) ? ” ” : ” s ” ;

p r i n t

\

n $

b o t t l e $ s o f b e e r on t h e w a l l ,

\

n” ;

p r i n t ” $

b o t t l e $ s o f b e e r ,

\

n” ;

p r i n t ” Take one down , p a s s i t around ,

\

n” ;

p r i n t $

1 , ” b o t t l e $ o n e L e s s S o f b e e r on t h e w a l l

\

n” ;

}

p r i n t

\

n

b u r p

∗\

n” ;

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

4.3. C

/

99 b o t t l e s o f b e e r i n a n s i c

by B i l l Wein : b e a r h e a r t @ b e a r n e t . com

/

#d e f i n e MAXBEER ( 9 9 )

void chug ( i n t b e e r s ) ;
main ( )

{

r e g i s t e r b e e r s ;
f o r ( b e e r s = MAXBEER ; b e e r s ; chug ( b e e r s

−−

))

p u t s ( ” ” ) ;

p u t s ( ”

\

nTime t o buy more b e e r !

\

n” ) ;

e x i t ( 0 ) ;

}

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

v o i d chug ( r e g i s t e r b e e r s )

{

c h a r howmany [ 8 ] ,

s ;

s = b e e r s != 1 ? ” s ” : ” ” ;

p r i n t f (”%d b o t t l e%s o f b e e r on t h e w a l l ,

\

n ” , b e e r s , s ) ;

p r i n t f (”%d b o t t l e%s o f b e e e e e r . . . ,

\

n ” , b e e r s , s ) ;

p r i n t f ( ” Take one down , p a s s i t around ,

\

n ” ) ;

i f (

−−

b e e r s ) s p r i n t f ( howmany , ”%d ” , b e e r s ) ;

e l s e s t r c p y ( howmany , ”No more ” ) ;

s = b e e r s != 1 ? ” s ” : ” ” ;

p r i n t f (”% s b o t t l e%s o f b e e r on t h e w a l l .

\

n ” , howmany , s ) ;

}

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

4.4. Fortran

C

99 B o t t l e s o f b e e r i n FORTRAN 77

r e a l c o u n t

c o u n t = 99

do while ( c o u n t . g t . 0 )

w r i t e (

,

) c o u n t , ” b o t t l e s o f b e e r on t h e w a l l , ”

w r i t e (

,

) c o u n t , ” b o t t l e s o f b e e r , ”

w r i t e (

,

) ” Take one down , p a s s i t around , ”

c o u n t = c o u n t

1

w r i t e (

,

) c o u n t , ” b o t t l e s o f b e e r on t h e w a l l ”

w r i t e (

,

) ” ”

end do

stop

end

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

5. Pascal – podstawy

5.1. Literatura

— dowolny podręcznik do języka PASCAL
— Iglewski, Madey, Matwin „Pascal Standard, Pascal 360”
— Marciniak „Turbo Pascal 5.5”,
— „Turbo Pascal 7.0 z elementami programowania”
— Bielecki „Turbo Pascal 5.5”
— Bielecki „Turbo Pascal 6”
— Bielecki . . .
— Zahorski „Turbo Pascal 7.0 mały leksykon”
— Sielicki A. „Laboratorium programowania w języku Pascal”
— Wirth Niklaus „Algorytmy + struktury danych = programy”

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

5.2. Program wykładu

1. Struktura programu w języku PASCAL
2. Podstawowe typy danych, instrukcja przypisania, funkcje arytmetyczne
3. Instrukcja warunkowa IF ELSE, instrukcja wyboru CASE OF
4. Instrukcje repetycyjne: REPEAT, WHILE, FOR
5. Przykłady prostych algorytmów iteracyjnych
6. Programowanie proceduralne (podprogramy: procedury i funkcje)
7. Komunikacja z użytkownikiem w trybie tekstowym (moduł CRT)
8. Złożone struktury danych — typ tablicowy (ARRAY)
9. Zastosowanie instrukcji repetycyjnych do operacji na tablicach
10. Typ łańcuchowy (STRING)
11. Typ rekordowy (RECORD)
12. Przykład prostej bazy danych — tablica rekordów
13. Archiwizacja danych na dyskietce — typ plikowy (FILE)
14. Plik tekstowy (TEXT)

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

6. Struktura programu w języku PASCAL

Najprostszy program w Pascalu:

begin

{

n a j p r o s t s z y program

}

end .

Program, który coś robi:

begin

{

w y p i s a n i e t e k s t u na e k r a n i e

}

w r i t e ( ’ C z e s c ! To j a , t w o j ko mpu ter ’ ) ;
readln ;

end .

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

{ Nagłówek Programu }

program

nazwa programu ( l i s t a i d e n t y f i k a t o r ó w ) ;

{ S e k c j a d e k l a r a c j i }

uses

lista nazw modułów ;

l a b e l

l i s t a e t y k i e t ;

{ D e k l a r a c j a e t y k i e t }

const

s e k w e n c j a d e f i n i c j i s t a ł y c h ;

{ D e f i n i c j e s t a ł y c h }

type

s e k w e n c j a d e f i n i c j i t y p ó w ;

{ D e f i n i c j e typów }

v a r

s e k w e n c j a d e k l a r a c j i z m i e n n y c h ;

{ D e k l a r a c j e z m i e n n y c h }

procedure

nazwa procedury 1 ;

{ D e f i n i c j e p r o c e d u r }

{ D e f i n i c j a s k ł a d o w y c h p r o c e d u r y 1 }

procedure

nazwa procedury 2 ( l i s t a p a r a m e t r ó w ) ;

{ D e f i n i c j a s k ł a d o w y c h p r o c e d u r y 2 }

.

.

.

f u n c t i o n

n a z w a f u n k c j i 1 : t y p w a r t o s c i ; { D e f i n i c j e f u n k c j i }

{ D e f i n i c j a s k ł a d o w y c h f u n k c j i 1 }

f u n c t i o n

n a z w a f u n k c j i 2 ( l i s t a p a r a m e t r ó w ) : t y p w a r t o ś c i ;

{ D e f i n i c j a s k ł a d o w y c h f u n k c j i 2 }

.

.

.

{ S e k c j a i n s t r u k c j i }

begin

i n s t r u k c j a 1 ;

. . .

i n s t r u k c j a N ;

end

.

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

7. Dane

— definicje stałych CONST
— definicje typów TYPE
— deklaracje zmiennych VAR

7.1. Typ zmiennej

— zbiór (przedział) jej wartości,
— format jej zapisu w pamięci (wielkość pamięci, struktura),
— zbiór możliwych operacji.

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

Typy

Proste

Strukturalne

Wskaźnikowe

(tablice,

rekordy,

zbiory,

pliki)

Porządkowe

Rzeczywiste

single,

real,

extended,

double,

comp

Predefinowane

Definiowane

okrojony

wyliczeniowy

Całkowity

Logiczny

boolean

Znakowy

char

word

integer

longint

shortint

byte

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

8. Typ porządkowy

Zbiór elementów ze zdefiniowaną relacją porządku.
Funkcje standardowe:
— Ord(N) — numer porządkowy,
— Pred(N) — poprzednik (element poprzedzający),
— Succ(N) — następnik (element następny ),

8.1. Typy porządkowe całkowite

Nazwa

Zakres

Format

Shortint

-128 . . . 127

1 bajt

Integer

-32768 . . . 32767

2 bajty

Longint -2 147 483 648 . . . 2 147 483 647 4 bajty

Byte

0 . . . 255

1 bajt

Word

0 . . . 65535

2 bajty

Operatory:

+

,

,

/

, div , mod ,

=

,

<

,

>

,

<=

,

>=

,

<>

,

:=

div operator dzielenia całkowito-liczbowego, np: 5 div 2 = 2
mod operator reszty z dzielenia (modulo), np: 5 mod 2 = 1

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

8.2. Typ porządkowy logiczny

Nazwa

Zakres

Format

Boolean False, True

1 bajt

Operatory:
and , or , not , xor,

=

,

<

,

>

,

<=

,

>=

,

<>

,

:=

8.3. Typ porządkowy znakowy

Nazwa

Zakres

Format

Char

# 0 . . . # 255

1 bajt

Operatory:

=

,

<

,

>

,

<=

,

>=

,

<>

,

:=

,

+

Funkcje standardowe: Chr(numer znaku) , UpCase(znak)

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

9. Typ wyliczeniowy

Typ porządkowy definiowane! Trzeba zdefiniować, żeby móc używać.

type

Dni = ( Pon , Wt , Sr , Czw , Pt , Sob , N i e d z ) ;
Meble=( s t ó ł , k r z e s ł o , s z a f a , t a p c z a n ) ;

Operatory:

<

,

>

,

<=

,

>=

,

=

,

<>

,

:=

9.1. Typ okrojony

type

Oceny = 1 . . 5 ;

L i t e r y = ’A ’ . .

’ Z ’ ;

N u m e r y d n i = 1 . . 31 ;

D n i r o b o c z e = Pon . . Pt ;

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

9.2. Typy proste rzeczywiste

Nazwa

Zakres

Format

Real

2.9 ∗ 10

−39

÷ 1.7 ∗ 10

38

6 bajtów

Single

1.5 ∗ 10

−45

÷ 3.4 ∗ 10

38

4 bajty

Double

5.0 ∗ 10

−324

÷ 1.7 ∗ 10

308

8 bajtów

Extended

3.4 ∗ 10

−4392

÷ 1.1 ∗ 10

4932

10 bajtów

Comp

(−2

63

+ 1) . . . (2

63

− 1)

8 bajtów

Operatory:

+

,

,

,

/

,

=

,

<

,

>

,

<=

,

>=

,

<>

,

:=

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

10. Instrukcja przypisania

{

o g ó l n a p o s t a ć i n s t r u k c j i

p r z y p i s a n i a

}

N a z w a z m i e n n e j

:=

w y r a ż e n i e ;

Wyrażenia (matematyczne):
— jeden poziom,
— nie opuszczamy znaku mnożenia,
— nie ma nawiasów kwadratowych i klamrowych,
— liczby niecałkowite z kropką

1

5



x + 7

(a − b)(c + d)

− 11



1 / 5

( ( x +7)/(( a

b )

( c+d ))

11)

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

11. Standardowe funkcje arytmetyczne

Nazwa Wynik

Typ argumentu

Typ wyniku

Abs

wart. bezwzględna

rzeczywisty, całkowity rzeczywisty, całkowity

ArcTan arcus tangens

rzeczywisty, całkowity rzeczywisty

Cos

cosinus

rzeczywisty,

całkowity

rzeczywisty

Exp

e do potęgi

rzeczywisty, całkowity rzeczywisty

Frac

część ułamkowa

rzeczywisty, całkowity rzeczywisty

Int

część całkowita

rzeczywisty, całkowity rzeczywisty

Ln

logarytm naturalny

rzeczywisty, całkowity

(> 0)

rzeczywisty

Pi

3.1415926536

nie ma

rzeczywisty

Round

zaokrąglenie do naj-
bliższej liczby całkowi-
tej

rzeczywisty

Longint

Sin

sinus

rzeczywisty, całkowity rzeczywisty

Sqr

kwadrat

rzeczywisty, całkowity rzeczywisty, całkowity

Sqrt

pierwiastek

rzeczywisty, całkowity

(> 0)

rzeczywisty

Trunc

część całkowita

rzeczywisty

longint

background image

First

Prev

Next

Last

Go Back

Full Screen

Close

Quit

12. Przykłady

x = sin(πx)

x := s i n ( Pi

x )

c =

x

2

+ y

2

c := s q r t ( sqr ( x)+ sqr ( y ) )

z = e

n+1

+ ln

1

|k − 1|

z := exp ( n+1)+ l n ( 1 / abs ( k

1))


Document Outline


Wyszukiwarka

Podobne podstrony:
Wykład z Pascala 2
PASCAL 1
Sem II Transport, Podstawy Informatyki Wykład XXI Object Pascal Komponenty
ref 2004 04 26 object pascal
Prezentacja trójkątów Pascala
kurs pascala
Kartezjusz vs Pascal dr Springer, Szkoła - studia UAM, resocjalizacja semestr 1 (rok 1), Filozofia d
O zakładzie Pascala słów kilka esej
34 Pliki Operacje na plikach w Pascalu
Pascal PDF, Pascal 1
Pascal Cwiczenia praktyczne id Nieznany
Budowa i opis menu edytora Turbo Pascal 7
Pascal
petle w pascalu, INFORMATYKA
Zakład Pascala
Obsługa plików w turbo pascalu
test pascal

więcej podobnych podstron