JAO sprawozdanie 2

background image

Mateusz Kotowicz
127132

15.10.12

Języki, Automaty i Obliczenia

Laboratorium

Ćwiczenie 2

2FDI grupa L07

1. Kryteria oceny

kryterium

ocena

1

Brakuje celu ćwiczenia

2.0

2

Algorytm realizuje cel ćwiczenia i kod jest zgodny z algorytmem

3.0

3

W sprawozdaniu zamieszczono dokumentację klas

3.5

4

W kodzie są wcięcia (tabulatory) zwiększające czytelność

4.0

5

W kodzie są komentarze odwołujące się w sposób jednoznaczny do algorytmu

4.5

6

Prawidłowo rozwiązane zadanie dodatkowe

5.0

Ocena jest wyznacza w sposób przyrostowy, np. sprawozdanie spełniające kryteria 1, 2, 4, 5 i 6 ale nie
spełniające kryterium 3 ocenione zostanie na 3.0.

2. Cel ćwiczenia

Napisanie programu w języku PHP, który będzie wykonywał operację iloczynu (znajdowania części

wspólnej) na skończonych zbiorach wczytanych z pliku. Nieznana jest ilość zbiorów ani ich liczebność.

3. Struktura programu

Dokumentacja klas znajduje się w załączniku na końcu sprawozdania.

4. Algorytm programu

Algorytm metody iloczyn() klasy OperacjeNaZbiorach

1. Sprawdź ilość wszystkich zbiorów.
2. Przypisz pierwszy zbiór do zmiennej "iloczyn".
3. Pętla - dla każdego zbioru Zi, zaczynając od zbioru 2:

3.1. Pętla - dla każdego elementu zbioru "iloczyn":

3.1.1. Sprawdź, czy element należy do zbioru Zi.
3.1.2. Jeśli nie to usuń element ze zbioru "iloczyn".
3.1.3. Przejdź do następnego elementu zbioru "iloczyn".

3.2. Przejdź do następnego zbioru Zi.

4. Przypisz zbiór "iloczyn"do pola wynik.

5. Kod programu

5.1. Plik OdczytDanych.php

1

background image

1

<?php

/∗ ∗

3

∗ Klasa o d c z y t u j a c a dane z p l i k u .
∗ @author 127132

5

∗/

c l a s s OdczytDanych

7

{

/∗ ∗

9

∗ P o l e p r z e c h o w u j e nazwĘ p l i k u , z k tÓr e g o wczytywane bĘdĘ dane .
∗ @var s t r i n g Nazwa p l i k u z danymi

11

∗/

p r i v a t e $ n a z w a P l i k u ;

13

/∗ ∗

15

∗ P o l e p r z e c h o w u j e z b i o r y p o b r a n e z p l i k u z danymi .
∗ @var a r r a y ( ) T a b l i c a z pobranymi z b i o r a m i

17

∗/

p r i v a t e

$ z b i o r y ;

19

21

/∗ ∗

∗ Metoda zwraca nazwĘ p l i k u z danymi .

23

∗ @return s t r i n g Nazwa p l i k u z danymi
∗/

25

p u b l i c

f u n c t i o n g e t N a z w a P l i k u ( )

{

27

r e t u r n $ t h i s >n a z w a P l i k u ;

}

29

/∗ ∗

31

∗ Metoda u s t a w i a nazwĘ p l i k u z danymi .
∗ @param t y p e $ n a z w a P l i k u Nazwa p l i k u z danymi

33

∗/

p u b l i c

f u n c t i o n s e t N a z w a P l i k u ( $ n a z w a P l i k u )

35

{

$ t h i s >n a z w a P l i k u = $ n a z w a P l i k u ;

37

}

39

/∗ ∗

∗ Metoda zwraca t a b l i c Ę z a w i e r a j ĘcĘ z b i o r y p o b r a n e z p l i k u .

41

∗ @return a r r a y T a b l i c a z e z b i o r a m i
∗/

43

p u b l i c

f u n c t i o n g e t Z b i o r y ( )

{

45

r e t u r n $ t h i s >z b i o r y ;

}

47

/∗ ∗

49

∗ Metoda u s t a w i a t a b l i c Ę , k tÓra ma z a w i e r aĘ z b i o r y p o b r a n e z p l i k u .
∗ @param a r r a y $ z b i o r y T a b l i c a z e z b i o r a m i

51

∗/

p u b l i c

f u n c t i o n

s e t Z b i o r y ( $ z b i o r y )

53

{

$ t h i s >z b i o r y = $ z b i o r y ;

55

}

57

/∗ ∗

∗ Metoda p o b i e r a z b i o r y z p l i k u z danymi .

59

∗/

p u b l i c

f u n c t i o n

o d c z y t a j ( )

61

{

2

background image

$ z b i o r y = array ( ) ;

// 3 . 4 1

63

$ z b i o r = array ( ) ;

// 3 . 4 2

65

$ z n a k i = array ( " ␣ " , " \ t " , " \ r " , " \n" ) ;

// 3 . 4 4 . 3

$noweZnaki = " " ;

67

$ p l i k = fopen ( $ t h i s >nazwaPliku , " r " ) ;

// 3 . 4 3

69

while ( ! f e o f ( $ p l i k ) )
{

71

$ l i n i a = f g e t s ( $ p l i k ,

4 0 9 6 ) ;

// 3 . 4 4 . 1

i f ( $ l i n i a === FALSE)

// 3 . 4 4 . 2

73

{

break ;

75

}

77

$ l i n i a = s t r _ r e p l a c e ( $ z n a k i , $noweZnaki ,

$ l i n i a ) ;

// 3 . 4 4 . 3

79

$znak1 = substr ( $ l i n i a ,

0 , 1 ) ;

// 3 . 4 4 . 4

$znakN = substr ( $ l i n i a , 1) ;

81

i f ( ( $znak1 !== " { " ) o r ( $znakN !== " } " ) )

{

83

break ;

}

85

$ l i n i a = rtrim ( $ l i n i a , " } " ) ;

// 3 . 4 4 . 5

87

$ l i n i a = ltrim ( $ l i n i a , " { " ) ;

89

$ z b i o r = explode ( " , " ,

$ l i n i a ) ;

// 3 . 4 4 . 6

91

$ z b i o r y [ ] = $ z b i o r ;

// 3 . 4 4 . 7

}

93

f c l o s e ( $ p l i k ) ;

// 3 . 4 5

95

$ t h i s >z b i o r y = $ z b i o r y ;

// 3 . 4 6

}

97

}

?>

5.2. Plik OperacjeNaZbiorach.php

<?php

2

/∗ ∗

∗ Klasa wykonujĘca o p e r a c j e na z b i o r a c h .

4

∗ @author 127132
∗/

6

c l a s s

O p e r a c j e N a Z b i o r a c h

{

8

/∗ ∗

∗ P o l e p r z e c h o w u j e t a b l i c Ę z e z b i o r a m i .

10

∗ @var a r r a y T a b l i c a z e z b i o r a m i
∗/

12

p r i v a t e

$ z b i o r y ;

14

/∗ ∗

∗ P o l e p r z e c h o w u j e w y n i k i o b l i c z e Ź wykonanych na z b i o r a c h .

16

∗ @var a r r a y T a b l i c a z wynikiem
∗/

18

p r i v a t e $wynik ;

20

3

background image

/∗ ∗

22

∗ Metoda zwraca z b i o r y , na k tÓr y c h metody k l a s y wykonujĘ o p e r a c j e .
∗ @return a r r a y T a b l i c a z e z b i o r a m i

24

∗/

p u b l i c

f u n c t i o n g e t Z b i o r y ( )

26

{

r e t u r n $ t h i s >z b i o r y ;

28

}

30

/∗ ∗

∗ Metoda z a p i s u j e z b i o r y , na k tÓr y c h metody k l a s y wykonujĘ o p e r a c j e .

32

∗ @param a r r a y $ z b i o r y T a b l i c a z e z b i o r a m i
∗/

34

p u b l i c

f u n c t i o n

s e t Z b i o r y ( $ z b i o r y )

{

36

$ t h i s >z b i o r y = $ z b i o r y ;

}

38

/∗ ∗

40

∗ Metoda zwraca wynik o b l i c z e Ź .
∗ @return a r r a y T a b l i c a z wynikiem

42

∗/

p u b l i c

f u n c t i o n getWynik ( )

44

{

r e t u r n $ t h i s >wynik ;

46

}

48

/∗ ∗

∗ Metoda o b l i c z a i l o c z y n ( c zĘŹĘ wspÓl nĘ) z b i o rÓw .

50

∗/

p u b l i c

f u n c t i o n

i l o c z y n ( )

52

{

$ i l o s c _ z b i o r o w = count ( $ t h i s >z b i o r y ) ;

54

$ i l o c z y n = $ t h i s >z b i o r y [ 0 ] ;

56

f o r ( $ i =1; $ i <$ i l o s c _ z b i o r o w ;

$ i ++)

{

58

$ j = 0 ;

foreach ( $ i l o c z y n a s $ e l e m e n t )

60

{

i f

( in_array ( $ e l e m e n t ,

$ t h i s >z b i o r y [ $ i ] ) == f a l s e )

62

{

unset ( $ i l o c z y n [ $ j ] ) ;

64

}

$ j ++;

66

}

}

68

$ t h i s >wynik = $ i l o c z y n ;

70

}

}

72

?>

5.3. Plik ProgramJAO.php

<?php

2

r e q u i r e _ o n c e " OdczytDanych . php" ;

4

r e q u i r e _ o n c e " O p e r a c j e N a Z b i o r a c h . php" ;

4

background image

6

/∗ ∗

∗ Program gŹÓwny . Zawiera metodĘ main .

8

∗ @author 127132
∗/

10

c l a s s ProgramJAO

{

12

/∗ ∗

∗ P o l e p r z e c h o w u j e w y n i k i ( t a b l i c e z e z b i o r a m i ) otrzymane z i n n y c h k l a s .

14

∗ @var a r r a y T a b l i c a z wynikiem
∗/

16

p u b l i c $wynik ;

18

/∗ ∗

∗ Metoda gŹÓwna main .

20

∗/

p u b l i c

f u n c t i o n main ( )

22

{

$ n a z w a P l i k u = " dane . t x t " ;

24

$OdczytDanych = new OdczytDanych ( ) ;

// 4 . 6 . 1

26

$ O p e r a c j e N a Z b i o r a c h = new O p e r a c j e N a Z b i o r a c h ( ) ;

// 4 . 6 . 5

28

$OdczytDanych>s e t N a z w a P l i k u ( $ n a z w a P l i k u ) ;

// 4 . 6 . 2

$OdczytDanych>o d c z y t a j ( ) ;

// 4 . 6 . 3

30

$ z b i o r y = $OdczytDanych>g e t Z b i o r y ( ) ;

// 4 . 6 . 4

32

$ O p e r a c j e N a Z b i o r a c h >s e t Z b i o r y ( $ z b i o r y ) ;

// 4 . 6 . 6

$ O p e r a c j e N a Z b i o r a c h >i l o c z y n ( ) ;

// 4 . 6 . 7

34

$ t h i s >wynik = $ O p e r a c j e N a Z b i o r a c h >getWynik ( ) ;

// 4 . 6 . 8

}

36

}

?>

6. Zadania dodatkowe

6.1. Zadanie 2

Napisz algorytm funkcji zbiorPotegowy, która oblicza zbiór potęgowy 2

A

skończonego zbioru A.

Sformułuj algorytm w sposób jednoznaczy i nie budzący wątpliwości, tak, żeby można było na jego

podstawie napisać program.
Założenia:

— elementy zbioru A są poindeksowane kolejnymi liczbami naturalnymi, zaczynając od 1,
— zbiór A jest przekazywany jako parametr funkcji zbiorPotegowy.

1. Krok algorytmu nr 1
2. Krok algorytmu nr 2
3. Krok algorytmu nr 3

3.1. podpunkt
3.2. podpunkt

3.2.1. pod-podpunkt z odwołaniem do kroku 2
3.2.2. pod-podpunkt

3.3. . . .

5

background image
background image
background image
background image
background image

Wyszukiwarka

Podobne podstrony:
JAO sprawozdanie 1
JAO sprawozdanie 6
ProjektJaio JAO-sprawozdanie-1
JAO sprawozdanie 2
JAO sprawozdanie 1
JAO sprawozdanie 4
JAO-sprawozdanie-1
JAO sprawozdanie 4 id 465827 Nieznany
JAO sprawozdanie 1
JAO sprawozdanie 6
JAO sprawozdanie 4
JAO sprawozdanie 4 2
2 definicje i sprawozdawczośćid 19489 ppt
PROCES PLANOWANIA BADANIA SPRAWOZDAN FINANSOWYC H
W 11 Sprawozdania
Wymogi, cechy i zadania sprawozdawczośći finansowej

więcej podobnych podstron