Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
jezyki_i_metody_programowania_i_i [2018/06/28 16:56]
pszwed [Omówienie pytań z egzaminu]
jezyki_i_metody_programowania_i_i [2018/06/28 17:25]
pszwed [2018]
Line 73: Line 73:
 === Grupa A === === Grupa A ===
  
 +**Zadanie 1.**
 Zera z zdania pierwszego oznaczają, że użyto nieodpowiednich struktur danych - wektora zamiast listy. Analogiczne zadanie z wektorem było na egzaminie z roku 2016. W tym roku zostało przerobione na listę i właśnie lista była oczekiwana. Zera z zdania pierwszego oznaczają, że użyto nieodpowiednich struktur danych - wektora zamiast listy. Analogiczne zadanie z wektorem było na egzaminie z roku 2016. W tym roku zostało przerobione na listę i właśnie lista była oczekiwana.
  
 +**Zadanie 2.**
 +V nie może być umieszczone w map bo nie ma operatora ''<''
  
  
 +=== Grupa B ===
 +
 +
 +**Zadanie 2.**
 +Relacja nie jest mapą (bo mapa to zależność funkcjonalna). A ma tylko operator ''=='' więc nie może być umieszczone w zbiorze lub mapie. Ale pair<A,A> może być porównywane za pomocą ''==''
 +
 +W punktach d,e,f, najlepiej było skorzystać z ''hasPair()''
 +
 +=== Grupa C ===
 +
 +
 +**Zadanie 1.**
 +Należy rozróżnić 3 klasy:
 +  -''Animal'' i potomne - dane składowane w kontenerze. W hierarchii powinn być zadeklarowana wirtualna funkcja ''Animal*clone()'', np:
 +<code cpp>
 +Animal*Dog::clone()const{
 +  return new Dog(*this);
 +}
 +</code> 
 +  -''AnimalList'' kontener będący listą
 +  -''ListElement'' -- element listy, często ukryty typ, w tym przypadku powinien np. być zadeklarowany tak  
 +
 +<code cpp>
 +class ListElement{
 +public:
 +   Animal*data;
 +   ListElement*next;
 +};
 +</code> 
 +
 +Wtedy kopiowanie w konstruktorze kopiujący i operatorze przypisania powinno wyglądać następująco:
 +
 +<code cpp>
 +void copy(const AnimalList&o){
 +   for(ListElemen i=o.head;i!=0;i=i->next){
 +      add(i->data->clone())
 +   }
 +}
 +
 +</code>
 +
 +
 +**Zadanie 2.**
 +
 +Jak na razie nie da się zaalokować pamięci w stylu int*ptr=new int[row][col];
 +
 +Zazwyczaj funkcje zapisu i odczytu są komplementarne
 +
 +<code cpp>
 +zapisz(os){
 +  os<<rows<<" "<<cols<<endl;
 +  os<< wszystkie elementy
 +}
 +
 +wczytaj(is){
 +  //zwolnij pamięć obiektu, np. delete []tab, rows=0, cols=0
 +  //wczytaj rows, cols
 +  is>>rows>>cols;
 +  //zaalokuj pamięć
 +  tab=new V[rows*cols]
 +  wczytaj elementy
 +  is>>wszystkie elementy
 +   
 +  
 +}
 +
 +</code>
 ==== 2017 ==== ==== 2017 ====
  
jezyki_i_metody_programowania_i_i.txt · Last modified: 2019/09/06 22:41 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0