Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo:laboratoare:03 [2017/12/22 15:13]
mihai.nan
poo:laboratoare:03 [2018/07/03 16:04] (current)
mihai.nan [Problema 6]
Line 83: Line 83:
 Implementati clasa **//​Punct//​** care defineste un punct din spatiul 2D. Implementati clasa **//​Punct//​** care defineste un punct din spatiul 2D.
  
-Datele clasei (private):+**Datele clasei (private):**
   * doua nr. intregi reprezentand cele doua coordonate ale punctului.   * doua nr. intregi reprezentand cele doua coordonate ale punctului.
  
-Conctructorul clasei:+**Conctructorul clasei:** 
 +  * un constructor fara parametri care instantiaza punctul ''​O(0,​ 0)''​.
  
-\begin{itemize} 
-\setlength{\itemindent}{.4in} 
-\item 
-un constructor fara parametri care instantiaza punctul O(0, 0). 
-\end{itemize} 
-\par 
-\textbf{Metodele clasei} 
-\begin{itemize} 
-\setlength{\itemindent}{.4in} 
-\item 
-\textbf{\textit{int getX()}} = intoarce abscisa punctului; 
-\item 
-\textbf{\textit{void setX(int x)}} = seteaza abscisa punctului; 
-\item 
-\textbf{\textit{int getY()}} = intoarce ordonata punctului; 
-\item 
-\textbf{\textit{void setY(int y)}} = seteaza ordonata punctului; 
-\item 
-\textbf{\textit{String toString()}} = returneaza un String de forma \textit{(x, y)}; 
-\item 
-\textbf{\textit{double distance(int,​ int)}} = calculeaza distanta dintre 2 puncte; 
-\item 
-\textbf{\textit{double distance(Punct p1)}} = calculeaza distanta dintre 2 puncte. 
-\end{itemize} 
-\par 
-Creati o clasa \textbf{\textit{Test}},​ in acelasi pachet cu clasa \textbf{\textit{Punct}},​ care contine o metoda \textbf{\textit{main}} care calculeaza distanta dintre punctele \textbf{A(1,​ 2)} si \textbf{B(-1,​ 3)}. 
-\par 
-Puteti accesa datele clasei \textbf{\textit{Punct}} in metoda \textbf{\textit{main}} din clasa \textbf{\textit{Test}}?​ 
-\chapter{\textbf{Problema 7}} 
-\par 
-Sa se defineasca o clasa \textbf{\textit{Graph}} care sa descrie un graf ponderat orientat care are nodurile numerotate de la 0. 
-\par 
-\textbf{Datele clasei (private)}: 
-\begin{itemize} 
-\setlength{\itemindent}{.4in} 
-\item 
-o matrice cu componente de tip int (matricea costurilor);​ 
-\item 
-o constanta (\textbf{\textit{Infinit}}) avand valoarea 9500; 
-\item 
-numarul de noduri. 
-\end{itemize} 
-\par 
-\textbf{Constructorul clasei}: 
-\begin{itemize} 
-\setlength{\itemindent}{.4in} 
-\item 
- ​constructor cu un parametru intreg (numarul de noduri din graf) 
-\end{itemize} 
-\par 
-\textbf{Metodele clasei}: 
-\begin{itemize} 
-\setlength{\itemindent}{.4in} 
-\item 
-\textbf{\textit{int getSize()}} = are ca rezultat numarul de noduri din graf; 
-\item 
-\textbf{\textit{void addArc(int v, int w, int cost)}} = adauga un arc la graf (intre v si w, avand costul cost); 
-\item 
-\textbf{\textit{boolean isArc(int v, int w)}} = verifica daca exista arc intre v si w in graf; 
-\item 
-\textbf{\textit{toString()}} = afisarea grafului (se va alege o varianta intuitiva de afisare a grafului); 
-\item 
-\textbf{\textit{int[][] floydWarshall()}} = implementarea algoritmului \textit{Floyd - Warshall} pentru determinarea drumurilor de cost minim in graf; 
-\item 
-\textbf{\textit{void main(String[])}} = metoda main pentru testarea functionalitatii clasei implementate. 
-\end{itemize} 
-\par 
-Pentru verificare, se va crea graful din figura de mai jos. Se va afisa graful, uzitand metoda \textbf{\textit{toString}} implementata,​ si se va determina distanta minima dintre doua noduri folosind algoritmul \textit{Floyd - Warshall}. 
-\newline 
-\begin{center} 
-\begin{tikzpicture} 
-  [scale=.8,​auto=left,​every node/​.style={circle,​draw,​minimum size=0.8cm,​draw=black,​line width=0.5mm,​fill=arbore}] 
-  \node (n6) at (1,10) {6}; 
-  \node (n4) at (4,8)  {4}; 
-  \node (n5) at (8,9)  {5}; 
-  \node (n1) at (11,8) {1}; 
-  \node (n2) at (9,6)  {2}; 
-  \node (n3) at (5,5)  {3}; 
-  \node (n0) at (5, 10) {0}; 
-  \node (n7) at (7, 6.5) {7}; 
-  \foreach \source/ \dest /\weight in {n4/​n6/​2,​n4/​n5/​3,​n5/​n1/​1,​n1/​n2/​5,​n2/​n5/​7,​n2/​n3/​6,​n3/​n4/​2,​n0/​n6/​15,​n0/​n4/​1,​n5/​n0/​6,​ n7/n4/2, n7/n5/4} 
-   \path [draw,​thick,​->,​every node/​.style={font=\scriptsize}] (\source) -- node {$\weight$} (\dest); 
-    ​ 
  
-\end{tikzpicture} +**Metodele clasei:** 
-\end{center} +  * ''​int getX()''​ = intoarce abscisa punctului; 
-\begin{myexampleblock}{Cod sursa Java+  * ''​void setX(int x)''​ = seteaza abscisa punctului;​ 
-\begin{lstlisting}+  * ''​int getY()''​ = intoarce ordonata punctului;​ 
 +  * ''​void setY(int y)''​ = seteaza ordonata punctului;​ 
 +  * ''​String toString()''​ = returneaza un String de forma \textit{(x, y)}; 
 +  * ''​double distance(int,​ int)''​ = calculeaza distanta dintre 2 puncte; 
 +  * ''​double distance(Punct p1)''​ = calculeaza distanta dintre 2 puncte. 
 + 
 +Creati o clasa **//​Test//​**,​ in acelasi pachet cu clasa **//​Punct//​**,​ care contine o metoda **//​main//​** care calculeaza distanta dintre punctele ''​A(1,​ 2)''​ si ''​B(-1,​ 3)''​. 
 + 
 + 
 +Puteti accesa datele clasei //​**Punct**//​ in metoda //​**main**//​ din clasa //​**Test**//?​ 
 + 
 +====Problema 7==== 
 + 
 +Sa se defineasca o clasa **//​Graph//​** care sa descrie un graf ponderat orientat care are nodurile numerotate de la 0. 
 + 
 +**Datele clasei (private):​** 
 +  * o matrice cu componente de tip int (matricea costurilor);​ 
 +  * o constanta (**//​Infinit//​**) avand valoarea 9500; 
 +  * numarul de noduri. 
 + 
 +**Constructorul clasei:** 
 +  * constructor cu un parametru intreg (numarul de noduri din graf) 
 + 
 +**Metodele clasei:** 
 +  * ''​int getSize()''​ = are ca rezultat numarul de noduri din graf; 
 +  * ''​void addArc(int v, int w, int cost)''​ = adauga un arc la graf (intre v si w, avand costul cost); 
 +  * ''​boolean isArc(int v, int w)''​ = verifica daca exista arc intre v si w in graf; 
 +  * ''​toString()''​ = afisarea grafului (se va alege o varianta intuitiva de afisare a grafului);​ 
 +  * ''​int[][] floydWarshall()''​ = implementarea algoritmului ​\textit{Floyd - Warshallpentru determinarea drumurilor de cost minim in graf; 
 +  * ''​void main(String[])''​ = metoda main pentru testarea functionalitatii clasei implementate. 
 + 
 +Pentru verificare, se va crea graful din figura de mai jos. Se va afisa graful, uzitand metoda **//​toString//​** implementata,​ si se va determina distanta minima dintre doua noduri folosind algoritmul **Floyd - Warshall**. 
 + 
 +<code java>
 public int[][] floydWarshall() { public int[][] floydWarshall() {
  int result[][];  int result[][];
Line 204: Line 155:
  return result;  return result;
 } }
-\end{lstlisting} +</​code>​
-\end{myexampleblock}+
poo/laboratoare/03.txt · Last modified: 2018/07/03 16:04 by mihai.nan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0