lab2 paradyg id 259329 Nieznany

background image

Paradygmaty 

Paradygmaty 

programowania

programowania

Lab. 2

Lab. 2

background image

Napisa

Napisa

ć

ć

program wyznaczaj

program wyznaczaj

ą

ą

cy warto

cy warto

ść

ść

Symbolu Newtona, gdzie

Symbolu Newtona, gdzie

Symbol Newtona (czytamy: 

Symbol Newtona (czytamy: 

n nad k

n nad k

n po k

n po k

lub

lub

k z n

k z n

) jest funkcj

) jest funkcj

ą

ą

dw

dw

ó

ó

ch 

ch 

argument

argument

ó

ó

w ca

w ca

ł

ł

kowitych nieujemnych, zdefiniowan

kowitych nieujemnych, zdefiniowan

ą

ą

jako:

jako:

)!

(

!

!

k

n

k

n

k

n

=

⎟⎟

⎜⎜

dla danego dodatniego n oraz 0 <= k <= n

dla danego dodatniego n oraz 0 <= k <= n

background image

)!

(

!

!

k

n

k

n

k

n

=

⎟⎟

⎜⎜

background image

A teraz napiszmy program wyznaczaj

A teraz napiszmy program wyznaczaj

ą

ą

cy warto

cy warto

ść

ść

Symbolu Newtona 

Symbolu Newtona 

wyra

wyra

ż

ż

onego wzorem rekurencyjnym postaci:

onego wzorem rekurencyjnym postaci:

=

=

<

<

⎟⎟

⎜⎜

⎛ −

+

⎟⎟

⎜⎜

=

⎟⎟

⎜⎜

n

k

k

gdy

n

k

gdy

k

n

k

n

k

n

lub

0

1

0

1

1

1

dla danego dodatniego   

dla danego dodatniego   

n   

n   

oraz

oraz

0 <= k <= n

0 <= k <= n

⎟⎟

⎜⎜

6

49

Czy obydwoma programami mo

Czy obydwoma programami mo

ż

ż

na policzy

na policzy

ć

ć

liczb

liczb

ę

ę

kombinacji w totka czyli

kombinacji w totka czyli

background image

1

1

1

1

1

1

1

1

1

0

1

1

1

0

1

1

1

1

0

1

1

2

2

1

2

1

2

0

2

1

2

0

2

1

2

3

1

3

1

3

0

3

2

4

1

4

10

!

3

!*

2

!

5

)!

2

5

!*(

2

!

5

2

5

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

⎟⎟

⎜⎜

+

⎟⎟

⎜⎜

=

=

=

⎟⎟

⎜⎜

)!

(

!

!

k

n

k

n

k

n

=

⎟⎟

⎜⎜

=

=

<

<

⎟⎟

⎜⎜

⎛ −

+

⎟⎟

⎜⎜

=

⎟⎟

⎜⎜

n

k

k

gdy

n

k

gdy

k

n

k

n

k

n

lub

0

1

0

1

1

1

background image

=

=

<

<

⎟⎟

⎜⎜

⎛ −

+

⎟⎟

⎜⎜

=

⎟⎟

⎜⎜

n

k

k

gdy

n

k

gdy

k

n

k

n

k

n

lub

0

1

0

1

1

1

#

#

include

include

<

<

iostream

iostream

>

>

using

using

namespace

namespace

std

std

;

;

long

long

n_po_k

n_po_k

(int

(int

n,

n,

int

int

k)

k)

{

{

if

if

( (k>0) && (

( (k>0) && (

k<n

k<n

) )

) )

return

return

n_po_k(n

n_po_k(n

-

-

1, k

1, k

-

-

1) + n_po_k(n

1) + n_po_k(n

-

-

1, k);

1, k);

else

else

return

return

1

1

; }

; }

int

int

main

main

()

()

{

{

int

int

n, k, y;

n, k, y;

A:

A:

cout

cout

<< "

<< "

\

\

nWczytaj

nWczytaj

n= ";

n= ";

cin

cin

>> n;

>> n;

if

if

(n<1) {

(n<1) {

cout

cout

<< "

<< "

\

\

nBledne

nBledne

n";

n";

goto

goto

A

A

;}

;}

B:

B:

cout

cout

<< "

<< "

\

\

nWczytaj

nWczytaj

k= ";

k= ";

cin

cin

>> k;

>> k;

if

if

((k<1) || (

((k<1) || (

k>n

k>n

)) {

)) {

cout

cout

<< "

<< "

\

\

nBledne

nBledne

k";

k";

goto

goto

B

B

;}

;}

y =

y =

n_po_k(n

n_po_k(n

, k);

, k);

cout

cout

<< "

<< "

\

\

n

n

\

\

n

n

Met. rekurencyjna {n po k} = " << y << "

Met. rekurencyjna {n po k} = " << y << "

\

\

n

n

\

\

n

n

";

";

return 0;

return 0;

}

int, long: -2 147 483 648; 2 147 483 647

}

background image

=

=

<

<

⎟⎟

⎜⎜

⎛ −

+

⎟⎟

⎜⎜

=

⎟⎟

⎜⎜

n

k

k

gdy

n

k

gdy

k

n

k

n

k

n

lub

0

1

0

1

1

1

background image

A teraz zmodyfikujmy program, wykorzystuj

A teraz zmodyfikujmy program, wykorzystuj

ą

ą

c poprzednio 

c poprzednio 

zdefiniowane funkcje: dane, silnia, prezentacja

zdefiniowane funkcje: dane, silnia, prezentacja

tak aby unikn

tak aby unikn

ąć

ąć

instrukcji postaci:

instrukcji postaci:

goto

goto

Etykieta

Etykieta

background image

=

=

<

<

⎟⎟

⎜⎜

⎛ −

+

⎟⎟

⎜⎜

=

⎟⎟

⎜⎜

n

k

k

gdy

n

k

gdy

k

n

k

n

k

n

lub

0

1

0

1

1

1

background image

Napisa

Napisa

ć

ć

program wyznaczaj

program wyznaczaj

ą

ą

cy kolejne wyrazy 

cy kolejne wyrazy 

ci

ci

ą

ą

gu, kt

gu, kt

ó

ó

re tworzymy korzystaj

re tworzymy korzystaj

ą

ą

c z 

c z 

rekurencyjnego wzoru postaci jak ni

rekurencyjnego wzoru postaci jak ni

ż

ż

ej dla 

ej dla 

danych   a

danych   a

0

0

, a

, a

1

1

oraz n

oraz n

>

+

=

=

=

1

)

2

(

)

1

(

1

0

)

(

1

0

n

dla

n

F

n

F

n

dla

a

n

dla

a

n

F

background image

>

+

=

=

=

1

)

2

(

)

1

(

1

0

)

(

1

0

n

dla

n

F

n

F

n

dla

a

n

dla

a

n

F

#

#

include <

include <

iostream.h

iostream.h

>

>

using

using

namespace

namespace

std

std

;

;

void

void

fibonacci

fibonacci

(

(

int

int

&,

&,

int

int

& );

& );

main(

main(

)

)

{

{

int

int

n,

n,

k, w1, w2;

k, w1, w2;

cout

cout

<< "Program na obliczanie kolejnego"

<< "Program na obliczanie kolejnego"

<< " wyrazu

<< " wyrazu

ciagu

ciagu

Fibonacci'ego

Fibonacci'ego

\

\

n

n

\

\

n

n

";

";

cout << "

cout << "

Pierwszy wyraz

Pierwszy wyraz

ciagu

ciagu

=

=

";

";

cin

cin

>> w1;

>> w1;

cout << "

cout << "

Drugi wyraz

Drugi wyraz

ciagu

ciagu

=

=

";

";

cin

cin

>> w2;

>> w2;

cout

cout

<<

<<

Liczba

Liczba

wyrazow

wyrazow

ciagu

ciagu

= ";

= ";

cin >> n;

cin >> n;

cout

cout

<< "

<< "

\

\

n";

n";

for ( k=3;

for ( k=3;

k<=n

k<=n

; k++ )

; k++ )

{ fibonacci(w1, w2);

{ fibonacci(w1, w2);

cout

cout

<< " " << k << "

<< " " << k << "

\

\

t" << "wyraz

t" << "wyraz

ciagu

ciagu

= "

= "

<< "

<< "

\

\

t" << w2 <<

t" << w2 <<

endl

endl

; };

; };

return 0;

return 0;

}

}

void

void

f

f

i

i

bonacci

bonacci

(

(

int

int

&a,

&a,

int

int

&b

&b

)

)

{

{

int

int

pom

pom

;

;

pom

pom

= a + b; a = b; b =

= a + b; a = b; b =

pom

pom

;

;

}

}

background image
background image

zad. 4.1

zad. 4.1

Mamy zadan

Mamy zadan

ą

ą

tablic

tablic

ę

ę

A o rozmiarach 3 x 4 zawieraj

A o rozmiarach 3 x 4 zawieraj

ą

ą

c

c

ą

ą

liczby typu 

liczby typu 

ca

ca

ł

ł

kowitego (wprowadzone (4a) lub wygenerowane przy u

kowitego (wprowadzone (4a) lub wygenerowane przy u

ż

ż

yciu generatora 

yciu generatora 

liczb losowych (4b)). 

liczb losowych (4b)). 

Program ma wyszuka

Program ma wyszuka

ć

ć

elementy 

elementy 

o

o

warto

warto

ś

ś

ci

ci

najmniejszej oraz najwi

najmniejszej oraz najwi

ę

ę

kszej, 

kszej, 

poda

poda

ć

ć

te warto

te warto

ś

ś

ci oraz ich wsp

ci oraz ich wsp

ó

ó

ł

ł

rz

rz

ę

ę

dne, a nast

dne, a nast

ę

ę

pnie zamieni

pnie zamieni

ć

ć

je miejscami. 

je miejscami. 

Je

Je

ż

ż

eli warto

eli warto

ść

ść

minimalna lub maksymalna powtarza si

minimalna lub maksymalna powtarza si

ę

ę

w tabeli kilka razy 

w tabeli kilka razy 

zapami

zapami

ę

ę

tujemy ich ostatnie wyst

tujemy ich ostatnie wyst

ą

ą

pienie w tabeli. Zaprezentowa

pienie w tabeli. Zaprezentowa

ć

ć

warto

warto

ś

ś

ci 

ci 

pocz

pocz

ą

ą

tkowe tablicy A, oraz warto

tkowe tablicy A, oraz warto

ś

ś

ci ko

ci ko

ń

ń

cowe tablicy. Program ma mie

cowe tablicy. Program ma mie

ć

ć

posta

posta

ć

ć

strukturaln

strukturaln

ą

ą

.

.

background image

Deklaracja i inicjalizacja tablic:

Deklaracja i inicjalizacja tablic:

jednowymiarowe:

jednowymiarowe:

int

int

A[3] = {1, 5, 3};

A[3] = {1, 5, 3};

wielowymiarowe:

wielowymiarowe:

int

int

B[2, 3] = { {2, 5, 8}, {4, 1, 0}};

B[2, 3] = { {2, 5, 8}, {4, 1, 0}};

lub

lub

int

int

B[2, 3] = { 2, 5, 8, 4, 1, 0};

B[2, 3] = { 2, 5, 8, 4, 1, 0};

a inicjalizacja postaci:

a inicjalizacja postaci:

int

int

C[2, 3] = { 2, 5, 8, 4};

C[2, 3] = { 2, 5, 8, 4};

jest r

jest r

ó

ó

wnowa

wnowa

ż

ż

na

na

int

int

C[2, 3] = { 2, 5, 8, 4, 0, 0};

C[2, 3] = { 2, 5, 8, 4, 0, 0};

zerowanie tablicy:

zerowanie tablicy:

int

int

C[2, 3] = {0}, B[5]={0};

C[2, 3] = {0}, B[5]={0};

Inicjalizacja bez podania wymiaru:

Inicjalizacja bez podania wymiaru:

int

int

C[ ] = {4, 5, 7, 9]; jest traktowane jako

C[ ] = {4, 5, 7, 9]; jest traktowane jako

int

int

C[ 4] = {4, 5, 7, 9];

C[ 4] = {4, 5, 7, 9];

background image
background image

Inny uk

Inny uk

ł

ł

ad danych

ad danych

background image

Generowanie liczb losowych ca

Generowanie liczb losowych ca

ł

ł

kowitych z zadanego przedzia

kowitych z zadanego przedzia

ł

ł

u:

u:

Aby wygenerowa

Aby wygenerowa

ć

ć

ca

ca

ł

ł

kowit

kowit

ą

ą

liczb

liczb

ę

ę

losow

losow

ą

ą

trzeba doda

trzeba doda

ć

ć

biblioteki:

biblioteki:

#

#

include

include

<

<

stdlib.h

stdlib.h

>

>

#

#

include

include

<

<

time.h

time.h

>

>

Przed rozpocz

Przed rozpocz

ę

ę

ciem procesu generowania liczb, 

ciem procesu generowania liczb, 

np

np

. na pocz

. na pocz

ą

ą

tku bloku 

tku bloku 

main

main

()  

()  

wywo

wywo

ł

ł

ujemy funkcj

ujemy funkcj

ę

ę

srand

srand

():

():

srand((unsigned)time(NULL

srand((unsigned)time(NULL

)); 

)); 

a generowanie ca

a generowanie ca

ł

ł

kowitych liczb losowych realizujemy wywo

kowitych liczb losowych realizujemy wywo

ł

ł

uj

uj

ą

ą

c funkcj

c funkcj

ę

ę

rand():

rand():

np

np

.  dla zakresu:  (   1;     10)    

.  dla zakresu:  (   1;     10)    

n=rand()%10 + 1

n=rand()%10 + 1

(   1;   200)    

(   1;   200)    

n=rand()%200 + 1

n=rand()%200 + 1

(101; 1000)    

(101; 1000)    

n=100 + rand()%900 + 1

n=100 + rand()%900 + 1

generalnie przy okre

generalnie przy okre

ś

ś

laniu zakresu losowanych liczb okre

laniu zakresu losowanych liczb okre

ś

ś

lamy:

lamy:

n = 

n = 

zakres_dolny+rand()%(zakres_gorny

zakres_dolny+rand()%(zakres_gorny

zakres_dolny

zakres_dolny

+1) + 1; 

+1) + 1; 

background image

zakres liczb:  [1,  200]

zakres liczb:  [1,  200]

background image

Ponowne uruchomienie

Ponowne uruchomienie

background image

koniec lab.2

koniec lab.2


Wyszukiwarka

Podobne podstrony:
Lab2 OZE id 259328 Nieznany
Lab2 Instrukcja id 259301 Nieznany
Lab2 11 id 259240 Nieznany
KWDM lab2 2014 id 256084 Nieznany
lab2 Opracowanie02 id 750512 Nieznany
ParadygmProgram id 349093 Nieznany
Algorytmy Lab2 PETLE id 57742 Nieznany (2)
Lab2 Protokol id 259332 Nieznany
lab2 laboratorium2 id 749456 Nieznany
lab2 NEHiP id 259327 Nieznany
LAB2 12 id 259241 Nieznany
Lab2 OZE id 259328 Nieznany
lab2 7 id 259265 Nieznany
bd lab2 id 81995 Nieznany (2)
JPPO Lab2 id 228821 Nieznany
lab2 moje zad02 id 750552 Nieznany
AKiSO lab2 id 53766 Nieznany
NiSHiP spr lab2 MS i MT id 3201 Nieznany
lab2 Instrukcja P2 C P id 75048 Nieznany

więcej podobnych podstron