You are on page 1of 5

Tomasz Pocic 132839

25.10.2013

Jzyki, Automaty i Obliczenia Laboratorium


wiczenie 2
2FDI grupa L12

1. Kryteria oceny
ocena kryterium 1 2.0 Brakuje celu wiczenia 2 3.0 Algorytm realizuje cel wiczenia i kod jest zgodny z algorytmem 3 3.5 W sprawozdaniu zamieszczono dokumentacj klas 4 4.0 W kodzie s wcicia (tabulatory) zwikszajce czytelno 5 4.5 W kodzie s komentarze odwoujce si w sposb jednoznaczny do algorytmu 6 5.0 Prawidowo rozwizane zadanie dodatkowe Ocena jest wyznacza w sposb przyrostowy, np. sprawozdanie speniajce kryteria 1, 2, 4, 5 i 6 ale nie speniajce kryterium 3 ocenione zostanie na 3.0.

2. Cel wiczenia
Celem wiczenia bya nauka programowania obiektowego z jzyku php jak i stworzenie aplikacji.

3. Struktura programu
Dla kadej z klas, z ktrych skada si program, uzupenij tabelk. Opisz wszystkie pola i metody. Jeeli uwaasz, e robienie takiego opisu jest bez sensu, to masz racj. Moesz usun tabelk i umieci opis klas w zaczniku. Sposb automatycznego wygenerowania opisu klas opisany jest w instrukcji wykonania sprawozdania. Jeeli zaczasz dokumentacj PHP Doc, napisz tutaj: Dokumentacja klas znajduje si w zaaczniku na kocu sprawozdania. Nazwa klasy Zadanie realizowane przez klas Nazwa pola lub metody Pole nazwaPliku Pole zbiory Przeznaczenie pola lub metody

klasa OdczytDanych suya do odczytania danych z pliku .txt. OdczytDanych oparta bya na programie z 1 laboratorium

Ta klasa wykonuje operacje na OperacjeNaZbiorach zbiorach 1

Przechowuje nazw pliku pobran metod getNazwaPliku Przechowuje linie odczytane z pliku. getNazwaPliku getNazwaPliku pobiera i zwraca nazw pliku setNazwaPliku zapisuje pobran naw pliku do pola nazwaPliku getZbiory Zwraca Zbiory z danymi setZbiory Ustawia zbiory i zapisuje je do pola zbiory. odczytaj Wykonuje operacje odczytania i wtepnej edycji danych z pliku Pole zbiory Przechowuje dane wykorzystywane przez metody

Pole wynik gezZbiory setZbiory getWynik iloczyn Pole wynik ProgramJAO nie wiem po co jest ta klasa, bo mam kod skopiowany z forum Metoda main

Przechowuje wyniki dziaa metod Zwraca zbiory na ktrych pracoway metody Zapisuje wyniki dziaa metod do pola zbiory Zwraca wynik operacji na zbiorach Wykonuje operacje iloczynu na kolejnych liniach pola zbiory Przechowuje wynik dziaania programu Gwna metoda programu

4. Algorytm programu
Algorytm metody iloczyn() klasy OperacjeNaZbiorach 1. Pobranie zbiorw odczytanych z pliku 2. Do zmiennej wynik przypisano pierwsz lini zmiennej zbiory 3. do zmiennej licznik przypisano warto zwrcon przez operacj zliczenia count. 4. Stworzono ptl 4.1. Do zmiennej wynik przypisano wynik iloczynu zmiennej wynik i kolejnej linii zmiennej zbiory 4.2. Operacj powtarzano a do koca wykonywania si ptli 5. Zwrcenie zmiennej wynik

5. Kod programu
5.1. Plik OdczytDanych.php
1 3 5 7 9 11 13 15 17 19 21 23 25 p u b l i c f u n c t i o n setNazwaPliku ( $nazwaPliku ) { $ t h i s >nazwaPliku = $nazwaPliku ; } p u b l i c f u n c t i o n getNazwaPliku ( ) { r e t u r n $ t h i s >nazwaPliku ; } / D e s c r i p t i o n o f OdczytDanych @author rownol1 / c l a s s OdczytDanych { p r i v a t e $nazwaPliku ; private $zbiory ; <?php / To change t h i s t e m p l a t e , c h o o s e T o o l s | Templates and open t h e t e m p l a t e i n t h e e d i t o r . /

27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59

public function getZbiory () { r e t u r n $ t h i s >z b i o r y ; } public function setZbiory ( $zbiory ) { $ t h i s >z b i o r y = $ z b i o r y ; } public function odczytaj () { $ z b i o r y = array ( ) ; $ z b i o r = array ( ) ; $ p l i k = fopen ( $ t h i s >nazwaPliku , " r " ) ; while ( ! f e o f ( $ p l i k ) ) { $linia = fgets ( $plik ) ; i f ( $ l i n i a == FALSE) { break ; } $ z n a k i = array ( " " , " \ r " , " \n" ) ; $noweZnaki = " " ; $ 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 ) ; $znak1 = substr ( $ l i n i a , 0 , 1 ) ; $znakN = substr ( $ l i n i a , 1) ; i f ( $znak1 !== " { " & $znakN !== " } " ) { break ; } $ l i n i a = ltrim ( $ l i n i a , " { " ) ; $ l i n i a = rtrim ( $ l i n i a , " } " ) ; $ z b i o r = explode ( " , " , $ l i n i a ) ; $zbiory [ ] = $zbior ; } fclose ( $plik ) ; $wynik = $ z b i o r y ; $ t h i s >z b i o r y = $ z b i o r y ; }

61 } 63 ?>

5.2. Plik OperacjeNaZbiorach.php


<?php 2 4 6 8 10 12 14 16 18 p r i v a t e $ z b i o r y = array ( ) ; p r i v a t e $wynik = array ( ) ; public function getZbiory () { / To change t h i s t e m p l a t e , c h o o s e T o o l s | Templates and open t h e t e m p l a t e i n t h e e d i t o r . / / Description of operacjeNaZbiorach @author rownol1 / c l a s s operacjeNaZbiorach {

r e t u r n $ t h i s >z b i o r y ; 20 22 24 26 28 30 32 34 36 38 } 40 ?> } public function setZbiory ( $zbiory ) { $ t h i s >z b i o r y = $ z b i o r y ; } p u b l i c f u n c t i o n getWynik ( ) { r e t u r n $ t h i s >wynik ; } public function iloczyn () { $ t h i s >wynik = $ t h i s >z b i o r y [ 0 ] ; $ l i c z n i k = count ( $ t h i s >z b i o r y ) ; f o r ( $ i = 1 ; $ i < $ l i c z n i k ; $ i ++) { $ t h i s >wynik = array_intersect ( $ t h i s >wynik , $ t h i s >z b i o r y [ $ i ] ) ; } r e t u r n $ t h i s >wynik ; }

5.3. Plik ProgramJAO.php


1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 } 33 ?> // p u t your code h e r e p u b l i c $wynik ; p u b l i c f u n c t i o n main ( ) { $odczytDanych = new OdczytDanych ( ) ; // p u n k t 1 $odczytDanych >setNazwaPliku ( " dane . t x t " ) ; // p u n k t 2 $odczytDanych >o d c z y t a j ( ) ; // p u n k t 3 $ t h i s >z b i o r y = $odczytDanych >g e t Z b i o r y ( ) ; // p u n k t 4 $ o p e r a c j e N a Z b i o r a c h = new OperacjeNaZbio rach ( ) ; // p u n k t 5 $ 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 ( $ t h i s >z b i o r y ) ; // p k t 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 ( ) ; // p u n k t 7 $ t h i s >wynik = $ o p e r a c j e N a Z b i o r a c h >getWynik ( ) ; // p k t 8 } / To change t h i s t e m p l a t e , c h o o s e T o o l s | Templates and open t h e t e m p l a t e i n t h e e d i t o r . / / D e s c r i p t i o n o f ProgramJAO @author rownol1 / c l a s s ProgramJAO { <?php r e q u i r e _ o n c e " O peracjeNaZbior ach . php" ; r e q u i r e _ o n c e " OdczytDanych . php" ;

6. Zadania dodatkowe
Wyznacz reszt z dzielenia r swojego numeru indeksu przez 3. Zadanie 1 wykonuj osoby, u ktrych jest r = 0, Zadanie 2 wykonuj osoby, u ktrych jest r = 1, Zadanie 3 wykonuj osoby, u ktrych jest r = 2, 132839/3 = 44279, r=2 6.1. Zadanie 2 Napisz algorytm funkcji zbiorPotegowy, ktra oblicza zbir potgowy 2A skoczonego zbioru A. Sformuuj algorytm w sposb jednoznaczy i nie budzcy wtpliwoci, tak, eby mona byo na jego podstawie napisa program. Zaoenia: elementy zbioru A s poindeksowane kolejnymi liczbami naturalnymi, zaczynajc od 1, zbir 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 odwoaniem do kroku 2 3.2.2. pod-podpunkt 3.3. . . . 4. . . . 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 odwoaniem do kroku 2 3.2.2. pod-podpunkt 3.3. . . . 4. . . .

You might also like