PK W3

background image

Programowanie komputerów

Prowadzący:

dr hab. inż. Kazimierz Worwa, prof. UW MSC

r.a. 2007/2008

UCZELNIA WARSZAWSKA

Kierunek INFORMATYKA I EKONOMETRIA

background image

2

Programowanie komputerów

Lokalizacja plików do wykładów

http://members.lycos.co.uk/pkjw84/kw/

logowanie:

nazwa u

ż

ytkownika

2007/2008

hasło

kw

background image

Programowanie komputerów

Wykład 3

Instrukcje warunkowe

Instrukcje iteracyjne

background image

4

Programowanie komputerów

Operatory relacyjne

Umo

ż

liwiaj

ą

one wykonywanie ró

ż

nych porówna

ń

w zdaniach

logicznych

Lista operatorów relacyjnych:

>

wi

ę

ksze ni

ż

,

>= wi

ę

ksze lub równe ni

ż

,

<

mniejsze ni

ż

,

<= mniejsze lub równe ni

ż

,

== równe

!=

ż

ne

UWAGA: Nale

ż

y zwróci

ć

uwag

ę

na istotn

ą

ż

nic

ę

pomi

ę

dzy

operatorem przypisania =, a operatorem relacyjnym
porównania ==.

background image

5

Programowanie komputerów

Priorytety operatorów porównania i relacyjnych

Najwy

ż

szy priorytet

!

>, >=, <, <=

==, !=

&&

Najni

ż

szy priorytet

||

W zapisie zda

ń

logicznych wykorzystujemy ponadto nawiasy

okr

ą

głe.

background image

6

Programowanie komputerów

Operatory przyrostowe

Umo

ż

liwiaj

ą

zapis operacji inkrementacji (zwi

ę

kszenia

warto

ś

ci liczby całkowitej o jeden) lub dekrementacji

(zmniejszenia warto

ś

ci liczby całkowitej o jeden)

Inkrementacja:

a = a + 1; zapisujemy operatorem:

a++

Dekrementacja:

a = a – 1; zapisujemy operatorem:

a--

operatory
przyrostowe

background image

7

Programowanie komputerów

Operatory przyrostowe

Przykład

#include <stdio.h>

int main(void) {

int i, j;

i = 10;

j = i++;

// Najpierw przypisanie, potem inkrementacja

/* wy

ś

wietlenie warto

ś

ci zmiennych i oraz j */

printf("i = %d",i);

printf(", j= %d", j);

getchar();

//Zatrzymanie okna konsoli

return 0;

}

Program 3.1

background image

8

Programowanie komputerów

Operatory przyrostowe

Przykład

#include <stdio.h>

int main(void) {

int i, j;

i = 10;

j = ++i;

// Najpierw inkrementacja, potem pryzpisanie

/* Wy

ś

wietlenie warto

ś

ci zmiennych i oraz j */

printf("i = %d",i);

printf(", j= %d", j);

getchar();

//Zatrzymanie okna konsoli

return 0;

}

Program 3.2

background image

9

Programowanie komputerów

Operacje WE: podstawy wykorzystania funkcji printf( )

printf( ) pochodzi z biblioteki <stdio.h>

umo

ż

liwia wypisywanie tekstu zapisywanego w cudzysłowie:

printf(„To jest tekst”);

printf(„Tekst zako

ń

czony znakiem ko

ń

ca wiersza\n”);

printf(„\nTekst poprzedzony znakiem ko

ń

ca wiersza.”);

printf(\n); /*przej

ś

cie do nast

ę

pnego wiersza*/

printf(„Tekst pierwszy”, „ Tekst drugi”, „ Tekst trzeci”);

umo

ż

liwia wypisywanie zmiennych i stałych razem z

dodatkowym tekstem lub oddzielnie

aby wypisywa

ć

stałe i zmienne nale

ż

y w funkcji printf()

wykorzystywa

ć

tzw. specyfikatory konwersji

background image

10

Programowanie komputerów

Specyfikatory konwersji dla printf( )

specyfikatory konwersji wskazuj

ą

w tek

ś

cie miejsce

wyst

ę

powania zmiennej okre

ś

lonego typu

na tej podstawie warto

ść

tej zmiennej zostanie odpowiednio

przekonwertowana do tekstu, a tekst ten wysłany na konsol

ę

wyj

ś

cia

lista podstawowych specyfikatorów konwersji:

%lu

unsigned long

%u

unsigned int, unsigned short

%f

float, double

%ld

long

%d

int, short

%c

char

background image

11

Programowanie komputerów

Specyfikatory konwersji wykorzystane w printf( )

#include <stdio.h>
int wiek = 20;
int odleglosc = 123;
int temperatura = -8;
int czas = 2;
int main ( )
{

printf("Nazywam sie Adam. Mam %d lat.", wiek);
printf("\nMieszkam %d kilometry od Warszawy i jade na uczelnie %d

godziny.", odleglosc, czas);

printf("\nOstatnio było %d stopni Celcjusza. Brr, zimno!!!", temperatura);
printf("\n");
printf("Wynik dzielenia 5/2 wynosi:\t%d.", 5/2);
getchar();
return 0;

}

Program 3.3

background image

12

Programowanie komputerów

Znaki sterujące w printf( )

\n – przej

ś

cie do nast

ę

pnego wiersza

\t – wstawienie znaku tabulatora

\b – wymazanie znaku (backspace)

\\ - wstawienie znaku \

\? – wstawienie znaku zapytania

\’ – wstawienie apostrofu

\” – wstawia znak cudzysłowia

wi

ę

cej na ten temat w czasie zaj

ęć

laboratoryjnych

background image

13

Programowanie komputerów

Operacje WY: podstawy wykorzystania funkcji scanf( )

scanf( ) pochodzi z biblioteki <stdio.h>

umo

ż

liwia wczytywanie warto

ś

ci do zmiennych

format warto

ś

ci jest okre

ś

lony przez tzw. specyfikatory

formatów

liczba argumentów musi odpowiada

ć

liczbie specyfikatorów

Przykład

int pierwszy, drugi;

scanf(„%d %d”, &pierwszy, &drugi);

background image

14

Programowanie komputerów

Specyfikatory formatów dla scanf( )

lista podstawowych specyfikatorów konwersji:

%p

wska

ź

nik

%u

liczba całkowita bez znaku

%s

napis

%e lub %f

liczba zmiennoprzecinkowa

%d lub %i

liczba całkowita w postaci dziesi

ę

tnej

%c

pojedynczy znak

background image

15

Programowanie komputerów

Uzycie printf() i scanf() - przykłady

#include <stdio.h>
unsigned int wiek, odleglosc;
int temperatura;
float czas;
main ( ) {

printf("Podaj wiek: ");
scanf("%u", &wiek);

printf("\nPodaj odleglosc: ");
scanf("%u", &odleglosc);

printf("\nPodaj temperature: ");
scanf("%d", &temperatura);

printf("\nPodaj czas: ");
scanf("%f", &czas);
getchar();
return 0;

}

Program 3.4

background image

16

Programowanie komputerów

Instrukcje języka C

Wszystkie instrukcje w j

ę

zyku C z wyj

ą

tkiem instrukcji z

ł

o

ż

onej

ko

ń

cz

ą

si

ę ś

rednikiem.

Instrukcja z

łłłł

o

żżżż

ona

Instrukcja

z

ł

o

ż

ona

sk

ł

ada

si

ę

z

nawiasu

klamrowego

otwieraj

ą

cego, dowolnych instrukcji (mog

ą

by

ć

równie

ż

kolejne

instrukcje z

ł

o

ż

one) i nawiasu klamrowego zamykaj

ą

cego:

{

instrukcja1;
instrukcja 2;
instrukcja 3;

{

instrukcja 4;
instrukcja 5;

}

}

background image

17

Programowanie komputerów

Instrukcja podstawienia

Instrukcja ta zawiera dowolne wyra

ż

enie j

ę

zyka C. Operatory

słu

żą

ce do konstrukcji wyra

ż

e

ń

zostan

ą

opisane ni

ż

ej.

Przykłady:

a=2; /* inicjowanie zmiennej */

a = b = c+4;

znak=‘a’;

background image

18

Programowanie komputerów

Instrukcja warunkowa

Instrukcja warunkowa umo

ż

liwia wykonanie pewnej instrukcji w

zale

ż

no

ś

ci od warto

ś

ci wyra

ż

enia.

Wszystkie warto

ś

ci ró

ż

ne od 0 s

ą

w j

ę

zyku C traktowane jako

prawda, równe 0 jako fałsz.

Wyra

ż

enia logiczne s

ą

liczone tylko do momentu, w którym mo

ż

na

okre

ś

li

ć

jego warto

ść

.

Składnia:

if (wyra

ż

enie) instrukcja1;

lub

if (wyra

ż

enie) instrukcja1;

else instrukcja 3;

background image

19

Programowanie komputerów

Instrukcja warunkowa

W obu postaciach instrukcja mo

ż

e by

ć

instrukcj

ą

zło

ż

on

ą

. W pierwszym przypadku

instrukcja wykonuje si

ę

, je

ś

li warto

ść

wyra

ż

enia jest ró

ż

na od 0. W drugim wykonuje

si

ę

jedna z dwóch podanych instrukcji (nigdy obie) - pierwsza, gdy warto

ść

wyra

ż

enia

jest ró

ż

na od 0, druga - gdy warto

ść

wyra

ż

enia jest równa 0.

background image

20

Programowanie komputerów

Instrukcja warunkowa - przykład

if (a > 5)

printf("a jest wi

ę

ksze od 5\n");

else

printf("a jest mniejsze lub równe 5\n");

background image

21

Programowanie komputerów

Instrukcja switch

Instrukcja switch słu

ż

y do wybierania jednego przypadku

z wielu.

Składnia:

switch (zmienna){

case stała1:

Instrukcja1;
Break;

case stała2:

Instrukcja2;
Break;

…………
default:

InstrukcjaD;
Break;

}

background image

22

Programowanie komputerów

Instrukcja switch – przykład 1

#include <stdio.h>
int main(void) {

int i;
printf(„Wprowadz liczb
ę od 1 do 4: ”);
scanf(„%d, &i);
switch(i) {

case 1: printf(„jeden”);

break;

case 2: printf(„dwa”);

break;

case 3: printf(„trzy);

break;

case 4: printf(„cztery”);

break;

default: printf(„Liczba nierozpoznana”);

}
return 0;

}

background image

23

Programowanie komputerów

Instrukcja switch – przykład 2

#include <stdio.h>
int main(void) {

char ch;
printf(„\nWprowad
ź literę: ”); ch = getche(); printf(\n”);
switch(ch) {

case ‘a’:
case ‘
ą’:
case ‘e’:
case ‘
ę’:
case ‘i’:
case ‘o’:
case ‘ó’:
case ‘u’:
case ‘y’:

printf(„ jest samogłoską\n”);
break;

default:

printf(„ jest spółgłoską\n”);

}

return 0;

}

background image

24

Programowanie komputerów

Instrukcja switch – przykład 3

#include <stdio.h>
int main(void) {

char ch;
do {
printf(„Wprowad
ź literę, q kończy: ”);

ch = getchar();
printf(\n”);
switch(ch) {

case ‘a’: printf(„Nadszedł ”);
case ‘b’: printf(„czas ”);
case ‘c’: printf(„ludzi honoru”);
break;
case ‘d’: printf(„Idzie ”);
case ‘e’: printf(„
żołnierz”);

}

}while(ch != ‘q’);

return 0;

}

background image

25

Programowanie komputerów

Pętla while

Składnia:

while (wyra

ż

enie) instrukcja;

Instrukcja umieszczona w p

ę

tli „while" (mo

ż

e to by

ć

instrukcja

zło

ż

ona) jest powtarzana a

ż

do momentu, gdy warto

ść

wyra

ż

enia

b

ę

dzie równa 0.

W przypadku, gdy warto

ść

wyra

ż

enia od razu b

ę

dzie równa 0,

instrukcja nie wykona si

ę

ani raz.

Je

ś

li wyra

ż

enie nie przyjmie warto

ś

ci 0, instrukcja b

ę

dzie si

ę

wykonywa

ć

niesko

ń

czon

ą

liczb

ę

razy.

Przykład

char znak;

znak=

znak=

znak=

znak=getchar

getchar

getchar

getchar();

();

();

();

while (znak!=‘#’) {

printf

printf

printf

printf(„

(„(„

(„\\\\n Niepoprawny znak”);

n Niepoprawny znak”);

n Niepoprawny znak”);

n Niepoprawny znak”);

znak=

znak=

znak=

znak=getchar

getchar

getchar

getchar();

();

();

();

}}}}

background image

26

Programowanie komputerów

Pętla do

Składnia;

do

instrukcja;

while (wyra

ż

enie);

P

ę

tla „do" jest podobna do p

ę

tli „while", z t

ą

ż

nic

ą

,

ż

e warunek

kontynuacji jest sprawdzany po wykonaniu instrukcji.

Oznacza to,

ż

e instrukcja wykona si

ę

przynajmniej jeden raz.

background image

27

Programowanie komputerów

Pętla do

Przykład:

{

do

printf(„Zako

ń

czy

ć

program?\n");

while (getchar() != ‘T');

}

background image

28

Programowanie komputerów

Pętla for

Składnia:

for (wyra

ż

enie1; wyra

ż

enie2; wyra

ż

enie3) instrukcja;

Przykład:

{
int i;
char txt[10];

for (i = 0; i < 10; i ++)

txt[i] = 'A';

}

background image

29

Programowanie komputerów

Pętla for

Składnia:

for (wyra

ż

enie1; wyra

ż

enie2; wyra

ż

enie3) instrukcja;

Wszystkie wyra

ż

enia s

ą

opcjonalne.

Wyra

ż

enie1 jest obliczane przed wej

ś

ciem do p

ę

tli (tylko raz!).

Nast

ę

pnie oblicza si

ę

wyra

ż

enie2 i sprawdza czy jest ono ró

ż

ne od 0. Je

ś

li

tak, wykonywana jest instrukcja i obliczane jest wyra

ż

enie3.

Nast

ę

pnie sprawdzana jest warto

ść

wyra

ż

enia2. P

ę

tla jest wykonywana

a

ż

do momentu, gdy warto

ść

wyra

ż

enia2 b

ę

dzie równa 0.

Wyra

ż

enie3 jest zawsze obliczane po wykonaniu instrukcji.

Je

ś

li wszystkie trzy wyra

ż

enia w p

ę

tli for s

ą

puste (p

ę

tla postaci:

for(;;) instrukcja;

to jest to bezwarunkowa p

ę

tla niesko

ń

czona.

Instrukcja w p

ę

tli for mo

ż

e nie wykona

ć

si

ę

ani raz, je

ś

li wyra

ż

enie2

b

ę

dzie od razu równe 0.

P

ę

tla for mo

ż

e by

ć

p

ę

tl

ą

niesko

ń

czon

ą

, je

ś

li wyra

ż

enie2 nigdy nie

przyjmie warto

ś

ci 0.

Wyra

ż

enie1 b

ę

dzie zawsze obliczone (dokładnie jeden raz).

P

ę

tla for umo

ż

liwia zgrupowanie instrukcji inicjuj

ą

cej p

ę

tl

ę

, warunku

kontynuacji i instrukcji po wykonaniu p

ę

tli w jednym miejscu w

programie.

background image

30

Programowanie komputerów

Instrukcja Return

Powoduje wyj

ś

cie z aktualnie wykonywanej funkcji.

Instrukcja return mo

ż

e wyst

ą

pi

ć

w dowolnym miejscu w ciele

funkcji.

Instrukcja return mo

ż

e by

ć

u

ż

yta z podaniem wyra

ż

enia lub bez.

Je

ś

li wyra

ż

enie zostanie podane, to jego warto

ść

zostanie obliczona

przed wyj

ś

ciem z funkcji i zwrócona na zewn

ą

trz.

Składnia:

return;

lub

return wyra

ż

enie;

background image

31

Programowanie komputerów

Instrukcja Return - przykład

long silnia(int n)
{

long wynik;
int i;

if (n <= 0) return 1;
wynik = 1;
for (i = 1; i <= n; i ++)

wynik = wynik * i;

return wynik;

}

background image

32

Programowanie komputerów

Instrukcja skoku

Składnia:

goto etykieta;

Instrukcja

skoku

powoduje

bezwarunkowe

przekazanie

sterowania do instrukcji poprzedzonej etykiet

ą

.

Etykiet

ę

definiuje si

ę

w dowolnym miejscu wewn

ą

trz funkcji, z

której została wykonana instrukcja skoku.

Składnia:

etykieta:

Etykiet nie trzeba deklarowa

ć

.

background image

33

Programowanie komputerów

Instrukcja skoku - przykład

int f()

{

int l;
scanf("%d", &l");
if (l < 0) goto err;
printf("%d! = %d\n", l, silnia(l));
return 1;

err:
printf("Nie mo

ż

na obliczy

ć

silni liczby mniejszej od 0\n");

return 0;

}

background image

34

Programowanie komputerów


Wyszukiwarka

Podobne podstrony:
PK W3 id 359504 Nieznany
Przykładowe pytania do egzaminu W3 W5 i W7, Budownictwo PK, Ekonomika budownictwa
Wstep W3 PK
Systemy Bezprzewodowe W3
Gospodarka W3
w3 skrócony
AM1 w3
w3 recykling tworzyw sztucznych
Finansowanie W3
W2 i W3
so w3
UE W3 cut
W3 Elastycznosc popytu i podazy
OMIW masa i wywazenie ppl pk

więcej podobnych podstron