PK W3 id 359504 Nieznany

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:
PodstEle w3 id 369043 Nieznany
PC w3 id 351840 Nieznany
po w3 id 557613 Nieznany
PK W2 id 359503 Nieznany
IiP z w3 id 210528 Nieznany
PO W3 id 364241 Nieznany
Oe i To1 w3 id 333221 Nieznany
PK W4 id 359505 Nieznany
IiP z w3 2 id 210529 Nieznany
Analiza finansowa w3 id 60386 Nieznany
4OS 2011 w3 id 39383 Nieznany (2)
pca w3 id 351877 Nieznany
PodstEle w3 id 369043 Nieznany
PC w3 id 351840 Nieznany
AnFinP W3 2014 stud id 63620 Nieznany (2)
PO W3 IV ZIN id 364242 Nieznany
I PK 0229 13 pyt prawne id 2086 Nieznany
PK zaoczne STUDENCI 1 id 359548 Nieznany

więcej podobnych podstron