Programowanie wyk1

Programowanie - pojęcia podstawowe

Program jest to uporządkowany zbiór instrukcji zrozumiałych dla komputera. Proces tworzenia programu nazywamy programowa­niem, ale w praktyce programowania nie da się oddzielić od innych czynności, prowadzących do rozwiązania problemu.

Proces rozwiązywania problemu przebiega w kilku etapach:

Problem

Algorytm

Program

Dane Wykonanie programu przez procesor

Wyniki

Programowanie polega na zapisywaniu algorytmów w formie programów zrozumiałych dla komputera. Program opisuje proces przekształcania danych wejściowych w dane wyjściowe według pew­nego algorytmu.

Algorytmem nazywamy metodę rozwiązania danego problemu w skończonej liczbie kroków (operacji elementarnych).

Dane wejściowe musza być dostarczone do programu przez użytkownika, w celu umożliwienia wykonania algorytmu.

Dane wyjściowe są generowane przez program i stanowią wyni­ki działania programu.

Program musi być zapisany w języku programowania w postaci ciągu instrukcji, ściśle według reguł języka.

Algorytm jest pojęciem ogólnym, związanym nie tylko z progra­mem i programowaniem, stosowanym także w innych dziedzinach wiedzy, np. ekonomii oraz w życiu codziennym. Określa on sposób (przepis) wykonania pewnego zadania, rozwiązania określonego pro­blemu czy osiągnięcia zamierzonego celu.

Przykład opracowania algorytmu:

Należy określić sumę liczb dodatnich spośród 20 dowolnych liczb, podanych przez użytkownika.

  1. Wyzeruj sumę

  2. Powtarzaj 20 razy

  1. Wczytaj liczbę

  2. Jeżeli jest dodatnia, to dodaj ją do sumy

3) Wydrukuj sumę

Algorytm w postaci pseudokodu

( START )
i

Wyzeruj sumę

Wyzeruj licznik

Wczytaj liczbę

T

Dodaj liczbę do sumy

Zwiększ licznik o jeden

Wydrukuj sumę

( STOP )

Algorytm w postaci sieci działań

Algorytm składa się z opisu:

Wśród atrybutów obiektów można wyróżnić:

Jawnymi atrybutami obiektu, tzn. takimi, które występują w treści programu są:

• wartość - aktualna wartość obiektu. Niejawnymi atrybutami są:

Rozróżnia się dwa rodzaje obiektów występujących w progra­mach:

Działania są zapisywane za pomocą sekwencji instrukcji należą­cych do zbioru dopuszczalnych instrukcji języka programowania. In­strukcje języka programowania wykorzystują do zdefiniowania swoich działań tzw. słowa kluczowe, które mają w danym języku programo­wania zdefiniowane znaczenie, określające rodzaj działania realizo­wanego przez instrukcję. Dodatkowo instrukcje mogą posiadać argu­menty, którymi są stałe i zmienne programu. W instrukcjach języka mogą też być wykorzystywane tzw. słowa zastrzeżone języka, re­prezentujące standardowe typy, stałe i procedury. Słowa kluczowe, słowa zastrzeżone i argumenty są oddzielone w instrukcjach ogra­nicznikami (separatorami). Zbiór ograniczników jest także zdefiniowa­ny dla danego języka programowania.

Każda instrukcja języka programowania ma zdefiniowaną skład­nię i semantykę. Składnia określa rodzaj używanych w niej słów klu­czowych, argumentów i ograniczników oraz ich kolejność. Semantyka określa znaczenie instrukcji.

Język Pascal

Język Pascal - język algorytmiczny wysokiego poziomu i ogól­nego przeznaczenia.

Zdefiniował go i opisał formalnie Nicolas Wirth na uniwersyte­cie w Zurichu w roku 1968.

W roku 1992 powstała ostatnia wersja Pascala dla środowiska tekstowego - Pascal 7.0.

W roku 1995 powstał pakiet Delphi (firmy Borland), który umożliwia projektowanie i programowanie złożonych syste­mów programowych, pracujących pod systemem Windows, oparte na Pascalu i programowaniu obiektowym. Program napisany w języku takim jak Pascal jest nazywany pro­gramem źródłowym. Przed wykonaniem program źródłowy musi zostać przetłumaczony na postać zrozumiałą dla komputera, czyli na program wynikowy. Program wynikowy, zapisany w pamięci kom­putera, stanowi ciąg rozkazów i danych, zapisany w kodzie zeroje-dynkowym (binarnym). Translacji programu z postaci źródłowej do wynikowej dokonuje program translatora.

Dane

Program źródłowy
Translacja
Program wynikowy
Wykonanie programu wynikowego przez komputer


Wyniki

Elementy języka Pascal

Instrukcje języka są budowane z elementów, tj. symboli leksykal­nych takich jak słowa kluczowe, słowa zastrzeżone, identyfikatory, liczby, napisy i separatory. W tekście programu można też umiesz­czać komentarze.

Zbiór słów kluczowych języka wzorcowego, wykorzystywanych w języku Turbo Pascal zawiera:

AND, ARRAY, BEGIN, CASE, CONST, DIV, DO, DOW-NTO, ELSE, END, FILE, FOR, FUNCTION, GOTO, IF,

IN, LABEL, MOD, NIL, NOT, OF, OR, PROCEDURE, PROGRAM, RECORD, REPEAT, SET, THEN, TO, TY-PE, UNTIL, VAR, WHILE, WITH.

Dla Turbo Pascala zbiór ten został rozszerzony o następujące słowa dodatkowe:

ABSOLUTE, CONSTRUCTOR, DESTRUCTOR, EXTERNAL, FORWARD, IMPLEMENTATION, INLINE, INTERFACE, INTERRUPT, OBJECT, SHL, SHR, STRING, UNIT, USES, VIRTUAL, XOR.

Identyfikatorem w języku Pascal jest dowolny ciąg liter lub cyfr zaczynający się od litery. Znak spacji jest separatorem i nie może być używany w identyfikatorach. Długość identyfikatora w Turbo Pascalu 7.0 wynosi 63 znaki. Identyfikatory reprezentują nazwy elementów programu takich jak np. stałe i zmienne.

Niektóre identyfikatory stanowiące wyróżnione słowa języka an­gielskiego mają w języku określone znaczenie. Słowa te stanowią zbiór słów zastrzeżonych. Należą do nich:

ABS, ARCTAN, BOOLEAN, CHAR, CHR, COS, DEC, DISPOSE, EOF, EOLN, EXP, FALSE, INC, LN, MAXINT, NEW, ODD, ORD, PRED, READ, READLN, REAL, RE-SET, REWRITE, ROUND, SIN, SQR, SQRT, SUCC, TEXT, TRUE, TRUNC, WRITE, WRITELN.

Słowa zastrzeżone mogą być przedefiniowywane przez progra­mistę, ale wtedy tracą swoje standardowe znaczenie.

Struktura programu.

Program

Nagłówek programu


Blok

PROGRAM


Nazwa programu

Deklaracja modułów

H USES —z—► Nazwa modułu

Blok

Część deklaracyjna


Część wykonawcza

Blok

i

( label ) a " etykieta

stała

const )—t—► identyfikator

typ

■C

► var

►[ type J—j—► identyfikator K=)—* —K "

identyfikator

-H


deklaracja procedury lub funkcji

( begin ) x-»| instrukcja |—r-»{ end )

Część wykonawcza

(:=)
BEGIN..END
CASE..OF..ELSE..END
FOR..TO/DOWNTO..DO
GOTO
IF..THEN..ELSE
INLINE(...)
REPEAT..UNTIL
WHILE..DO
WITH..DO
Wywołanie funkcji
Wywołanie procedury

Struktura programu:

Program nazwa;

(część deklaracyjna) begin

(część wykonawcza) end.

Przykład programu, zbudowanego w oparciu o algorytm przed­stawiony wcześniej, a dotyczący sumowania liczb dodatnich spo­śród dwudziestu dowolnych liczb.

Program Suma_liczb; uses

Crt; const

granica=20;

var

suma :real;

liczba :real;

licznik :integer;

begin

ClrScr; suma:=0;

writeln('Podaj kolejno 20 dowolnych liczb1); for licznik:=1 to granica do begin

read(liczba); if liczba>0 then suma:=suma+liczba; end;

write('Suma liczb dodatnich wynosi: ',suma); readln;

end.

Typy danych w Pascalu.

Centralnym pojęciem języka Pascal są zmienne i związane z nimi zbiory danych definiujące dokładnie nie tylko charakter dozwolonych operacji na tych zmiennych (np. dodawanie lub odejmowanie), ale także zasięg działania tych operacji, tzn. zbiór wartości, na których te operacje można wykonać. Każdy typ danych definiuje dokładnie zbiór elementów, które mogą być wartościami zmiennych tego typu.

Najogólniejszym podziałem będzie podział na dwa rodzaje. Pierwszy z nich to typy danych tzw. standardowe, z góry już w języku Turbo Pascal zdefiniowane i noszące określone nazwy (np. integer, real). Drugi z nich to typy danych dowolnie definiowane przez pro­gramistę i noszące dowolnie nadawane im nazwy.

<Typ Prosty>
<Typ String>
<Typ strukturalny>
<Typ wskaźnikowy>
<Typ proceduralny>
<Nazwa typu>

Typ prosty

z.

<Typ porządkowy> <Typ rzeczywisty>

Typ porządkowy

<Typ całkowity <Typ wyliczeniowy> <Typ okrojony> <Typ logiczny> <Typ znakowy>

Typy całkowite

Typ danych

Zakres wartości

Miejsce w pamięci

Byte

ShortInt

Word

Integer

LongInt

0..255

-128..127

0..65535

-32768..32767

-2147483648..2147483647

8 bitów 8 bitów 16 bitów 16 bitów

32 bity

Standardowymi działaniami typów całkowitych są:

Np. 20 DIV 9=2, 9 MOD 5=4.

Funkcje standardowe dostępne dla typu całkowitego: abs(i) - wartość bezwzględna, sqr(i) - kwadrat,

sqrt(i) - pierwiastek, wynik typu rzeczywistego, odd(i) - bada, czy i jest nieparzyste, wynik typu Boolean, succ(i) - następny po i, pred(i) - poprzedni przed i. Przykłady:

abs(-7)=7,

sqr(4)=16,

sqrt(3)=1,732050...

odd(78)=false,

succ(7)=8, pred(8)=7,

Typy logiczne.

Typ ten służy do reprezentowania danych dwustanowych. Zbiór jego wartości zawiera dwie predefiniowane stałe TRUE i FALSE.

Typ logiczny

<Typ Boolean>

<Typ ByteBool>

<Typ WordBool>
<Typ LongBool>

Operatory dla zmiennych typu logicznego to NOT negacja, AND -koniunkcja, OR - alternatywa, XOR - różnica symetryczna.

Zmiennej logicznej można w instrukcji przypisania nadać wartość wyrażenia. Na przykład zmienne zadeklarowane jako:

var

b,c :boolean;

i,j,m,n :integer;

można wykorzystać w instrukcjach przypisania:

b:=i<=n; c:=j<=m;

Typ znakowy CHAR

Zmienne typu CHAR są wykorzystywane do przechowywania jednego znaku kodu ASCII. Wartości kodu ASCII są liczbami z za­kresu od 0 do 255. Wartości znaków z tego zakresu określa się za pomocą numeru poprzedzonego znakiem #. Zmienne znakowe mo­gą przyjmować wartości od #0 do #255. Jeżeli zmienna ma przyjąć wartość znaku widocznego np. na ekranie, to można jej przypisać wartość tego znaku umieszczona w apostrofach, np.:

z:='A';

Funkcje konwersji dostępne dla typu znakowego omówione po­niżej wykorzystują deklaracje: var

z:Char; i:Integer;

i zwracają:

ORD(z) - numer znaku z w zbiorze znaków, CHR(i) - znak o numerze i.

Np. znak '0' ma numer 48, tj.

ORD('0')=48 CHR(48)='0'

Dla typu CHAR, tak jak dla innych typów porządkowych, są do­stępne funkcje:

SUCC(z) - zwracająca znak kodu ASCII, następny po z, PRED(z) - znak kodu ASCII, poprzedni przed znakiem z.

Typy rzeczywiste.

Typy rzeczywiste są wykorzystywane do deklarowania zmien­nych, które podczas obliczeń będą wykorzystywane do przechowy­wania wartości rzeczywistych. Liczby rzeczywiste występują w pro­gramach w postaci:

Liczba bajtów

Dokładność

stałopozycyjnej, np. 5.6, zmiennopozycyjnej, np. 0,8765E4.

Typ danych Zakres wartości

Real

-2.9E-39 1.7E38

6

11-12 miejsc

Single

1.5E-45 3.4E38

4

7-8 miejsc

Double

5.0E-324 1.7E308

8

15-16 miejsc

Extended

1.9E-4951 1.1E4932

10

1 9-20 miejsc

Comp

-9.2E18 9.2E18

2*8

Dla

typu REAL są dostępne funkcje standardowe, tj.: abs(x) - wartość bezwzględna, sin(x), cos(x), arctan(x) - funkcje trygonometryczne, sqr(x) - kwadrat, sqrt(x) - pierwiastek kwadratowy, exp(x) - e do potęgi x, frac(x) - część ułamkowa argumentu x, int(x) - część całkowita argumentu x, ln(x) - logarytm naturalny argumentu x, trunc(x) - konwersja liczby rzeczywistej do całkowitej przez obcięcie części ułamkowej,

round(x) - zaokrąglenie do najbliższej liczby całkowitej, random - liczba losowa z przedziału od 0 do 0.99999999999,

random(x) - liczba losowa z przedziału 0 do x-1. Argument x i wynik są typu całkowitego.

Typ napisowy STRING

Typ napisowy (łańcuchowy) służy do przechowywania nazw wła­snych obiektów oraz wyprowadzanych do użytkownika danych tek­stowych, objaśniających dane numeryczne. Struktura danych typu STRING zajmuje 256 bajtów pamięci, ponumerowanych od 0 do 255. Zmienne tego typu przechowują napisy (łańcuchy znaków) o aktualnej długości nie większej niż 255 znaków. Napis może mieć określony mniejszy rozmiar, np. 15 znaków, co podaje się w dekla­racji zmiennej:

var s:STRING[15];

12 Okna i drzwi

0 1 23456789 10 11 12

Bajt zerowy (długość napisu) można odczytać funkcją:

lenght(s);

Dla typu napisowego są dostępne funkcje konwersji:

Pozostałe funkcje służące do obsługi typu napisowego to:

Przykłady:

VAL('2',x,kod) - x=2, kod=0, VAL('1232g5',x,kod) - x=0, kod=5, STR(240,s) - s=240, COPY('Programista,4,3) - 'gra', CONCAT('Turbo',' ','Pascal') - 'Turbo Pascal', LENGHT('Programista') - 11,

POS('Pascal','Turbo Pascal') - 7,

DELETE - parametrem musi być zmienna, a nie dowolne wyrażenie, np.: var s:string[10]

begin s:='Stagnacja'; delete (s,4,3); end. W wyniku otrzymujemy napis 'Stacja'.

Instrukcja przypisania.

Do nadawania wartości zmiennym przez program służy instrukcja przypisania. Ma ona postać:

Nazwa_zmiennej:=wyrażenie;

Przykłady instrukcji przypisania:

Instrukcja przypisania Rodzaj przypisania

cena := 345; (* Stała numeryczna *)

iloczyn := a*b; (* Wynik rachunku *)

nazwisko := 'Kowalski'; (* Stała łańcuchowa *)

litera := 'w'; (* Stała znakowa *)

prawda := true; (* Stała logiczna *)

wynik := sin(c+d); (* Wynik funkcji *)

Nadawanie wartości zmiennym przez użytkownika

Jeżeli wartość zmiennej będzie znana dopiero w czasie wykonywania programu, to wartość taka musi być czytana przez program za pomocą procedur READ i READLN, nazywanych instrukcjami wprowadzania danych lub instrukcjami wejścia.

Użycie:

read(x); readln(nazwa);

Instrukcje READ i READLN mogą być wieloargumentowe. Instrukcja:

read(x,y,z);

nadaje zmiennym, wprowadzanym z klawiatury wartości w kolejności wymienienia zmiennych w liście argumentów.

Wyprowadzanie informacji i danych z programu do użytkownika.

Do wyprowadzania informacji i danych na standardowe urządze­nie wyjścia, jakim jest ekran komputera, służą instrukcje WRITE i WRITELN. Obie te instrukcje mogą być wieloargumentowe. Instrukcja WRITE wyprowadza wszystkie argumenty instrukcji w tym samym wierszu, nie powodując zmiany wiersza. Instrukcja WRITELN wypro­wadza wszystkie argumenty w tym samym wierszu, po czym przenosi kursor do następnego wiersza.

Przykłady użycia:

writepPodaj haslo: Podaj haslo: _

writelnpKomunikat'); Komunikat

writelnpLiczba osob: *,n); Liczba osob:20

Sekwencja instrukcji:

writelnpPodaj liczbe osob: M; read(n);

da wynik:

Podaj liczbe osob:

20

Zaś sekwencja instrukcji:

writepPodaj liczbe osob: M; readln(n);

da wynik:

Podaj liczbe osob: 20


Wyszukiwarka

Podobne podstrony:
PISZ wyk1
Chemia Bionie wyk1
Nowy Prezentacja programu Microsoft PowerPoint 5
wyk1 09 materiał
Charakterystyka programu
1 treści programoweid 8801 ppt
Programowanie rehabilitacji 2
Rola rynku i instytucji finansowych INowy Prezentacja programu Microsoft PowerPoint
Nowy Prezentacja programu Microsoft PowerPoint ppt
Szkoła i jej program
wykluczenie społ program przeciwdział
ProgrammingJavaLecture9
wyk1 Elektronika
Nowa podstawa programowa WF (1)

więcej podobnych podstron