PP W6, Podstawy programowania


6. INSTRUKCJA PRZYPISANIA

6.1. Składnia i działanie

Instrukcja przypisania to jedna z najczęściej używanych instrukcji. Jej ogólna postać jest następująca:

Nazwa_zmiennej := Wyrażenie;

Po lewej stronie instrukcji może wystąpić wyłącznie nazwa zmiennej, a po niej operator przypisania „:=”.

Nie należy mylić operatora przypisania ':=' ze znakiem równości '='. Operator przypisania jest symbolem operacji przesyłania danej w kierunku od prawej do lewej strony instrukcji.

Po prawej stronie instrukcji występuje jakieś wyrażenie (stała, zmienna, wywołanie funkcji lub ich kombinacja połączona odpowiednimi operatorami.

Przykład:

var X,I:Byte;

A:Integer;

Delta,Odleglosc,Pole_trojkata,X:Real;

begin

X:= 0;

I:=I+1;

Delta:=Sqrt(B*B-4*A*C);

Odleglosc:=Sqrt(Sqr(X1-X2)+Sqr(Y1-Y2));

Pole_trojkata:=Podstawa*Wysokosc/2;

X:=Pi;

A:=Abs(A);

end.

Kroki instrukcji przypisania:

  1. Zostaje obliczona wartość wyrażenia po prawej stronie instrukcji

  2. Wynik zostaje zapamiętany w zmiennej, której nazwa jest po lewej stronie instrukcji. (Poprzednia wartość tej zmiennej zostaje wymazana).

Przykład:

const K:Byte=3;

begin

K:=K+1;

end.

Faza 1

0x08 graphic

0x08 graphic
K 3

K+1=3+1=4

0x08 graphic

Faza 2

0x08 graphic

0x08 graphic
K 3 4

Przykład: Zamiana miejscami wartości dwóch zmiennych

program Ex6_1;

{Zamienia miejscami aktualne wartości zmiennych A,B.}

uses Crt;

var A,B,Kopia:Integer;

begin

Clrscr;

A:=88;

B:=5;

Writeln('Wartosci poczatkowe:');

Writeln(' A=',A,', B=',B);

{Zamiana miejscami}

Kopia:=A; {A=88, Kopia=88}

A:=B; {B=5, A=5}

B:=Kopia; {Kopia=88, B=88}

Writeln;

Writeln('Wartosci po zamianie:');

Writeln(' A=',A,', B=',B);

Readln;

end.

6.2. Zgodność typów w sensie przypisania

Wykonanie instrukcji przypisania:

L:=P;

jest możliwe, gdy typ zmiennej L jest zgodny z typem wyrażenia P. J

Zgodność ma miejscy, gdy:

6.3. Obliczanie wartości wyrażeń

Pisząc wyrażenia, musimy pamiętać, że pomiędzy operatorami występuje hierarchia, decydująca o porządku wykonywania operacji.

Operacje o jednakowym priorytecie są wykonywane w kolejności ich zapisu w wyrażeniu - od lewej do prawej.

Jeżeli w wyrażeniu występują operatory o różnym poziomie priorytetu, to te poziomy wyznaczają porządek wykonywania działań. Na przykład w wyrażeniu: A*B+C*D mamy operator '*' o wyższym priorytecie od operatora '+'. Dlatego najpierw zostaną kolejno obliczone iloczyny A*B oraz C*D , a dopiero potem ich suma da wartość całego wyrażenia.

Porządek obliczeń wynikający z priorytetów operatorów można zawsze zmienić, stosując nawiasy zwykłe, na przykład pisząc: A*(B+C)*D.

Operatory Pascala

Operatory

Priorytet

Kategoria

+, -, not

*, /, div, mod, and

+, -, or, xor

=, <>, <, >, <=, >=, in

1 (max)

2

3

4 (min)

Jednoargumentowe

Multiplikatywne

Addytywne

Relacyjne

Uwaga:

Jeżeli w wyrażeniu wystąpi chociaż jedna wartość rzeczywista, to wartość całego wyrażenia także będzie typu rzeczywistego.

Wynik zwykłego dzielenia (operator `/ `) jest zawsze typu rzeczywistego.

Funkcje arytmetyczne Turbo Pascala

Wywołanie

Wielkość zwracana

Typ argumentu

Typ wyniku

Arctan(x)

Arcus tangens od x

Dowolny liczbowy

Real

Sin(x)

Sinus kąta x (x w radianach)

Dowolny liczbowy

Real

Cos(x)

Cosinus kąta x (x w rad.)

Dowolny liczbowy

Real

Exp(x)

ex

Dowolny liczbowy

Real

Ln(x)

Logarytm naturalny z x

Liczbowy nieujemny

Real

Sqr(x)

Kwadrat liczby x

Liczbowy

jak argumentu

Sqrt(x)

Pierwiastek kwadratowy z x

Liczbowy nieujemny

Real

Pi

Liczba π = 3.14159…..

Real

Random(x)

Liczba losowa z przedziału [0..x-1]

Word

Word

Random;

Liczba losowa z przedziału

[0, 1)

Real

Abs(x)

Wartość bezwzględna x

Dowolny liczbowy

jak argumentu

Frac(x)

Część ułamkowa x

Real

Real

Int(x)

Część całkowita x

Real

Real

Round(x)

Konwersja x do typu całkowitego z zaokrągleniem

Real

Longint

Trunc(x)

Konwersja x do typu całkowitego z odrzuceniem części ułamkowej x

Real

Longint

6 4. Przykłady programów

Przykład: Iteracyjne obliczenie x3

program Ex6_2;

{Iteracyjnie oblicza trzecią potęgę liczby czytanej z klawiatury.}

uses Crt;

var X,Wynik:Real;

begin

Clrscr;

Write('Podaj liczbe: ');

Readln(X);

Wynik:=1.0; { Wynik=1.0}

Wynik:=Wynik*X; { Wynik=1*X }

Wynik:=Wynik*X; { Wynik=(1*X)*X }

Wynik:=Wynik*X; { Wynik=(1*X*X)*X }

Write('Wynik: ',Wynik:0:6);

Readln;

end.

Przykład: Iteracyjne obliczenie wartości silni liczby 6

program Ex6_4;

{Oblicza iteracyjnie silnię liczby 6.}

var S:Longint;

I:Byte;

begin

I:=0; {I=0} {Inicjalizacja}

S:=1; {S=1}

I:=I+1; {I=0+1=1} {Krok 1}

S:=S*I; {S=1*1=1}

I:=I+1; {I=1+1=2 {Krok 2}

S:=S*I; {S=1*2=2}

I:=I+1; {I=2+1=3} {Krok 3}

S:=S*I; {S=2*3=6}

I:=I+1; {I=3+1=4} {Krok 4}

S:=S*I; {S:=6*4=24}

I:=I+1; {I=4+1=5} {Krok 5}

S:=S*I; {S=24*5=120}

I:=I+1; {I=5+1=6} {Krok 6}

S:=S*I; {S=120*6=720}

Write(' 6! = ',S);

Readln;

end.

29



Wyszukiwarka

Podobne podstrony:
PP temat6, Podstawy programowania
PP 11, Podstawy programowania
PP W7, Podstawy programowania
PP temat3, Podstawy programowania
PP W1, Podstawy programowania
PP W4, Podstawy programowania
PP 10, Podstawy programowania
PP W5, Podstawy programowania
PP W8, Podstawy programowania
PP temat2, Podstawy programowania
PP W9, Podstawy programowania
PP temat4, Podstawy programowania
PP temat5, Podstawy programowania
PP W2, Podstawy programowania
PP W10, Podstawy programowania
PP temat6, Podstawy programowania
zasady zaliczeń PP IG, Politechnika Białostocka, ZiIP (PB), Semestr 1, Podstawy programowania, Progr
pp projekty2004, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania

więcej podobnych podstron