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
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/29 00:45]
pszwed [2018]
Line 11: Line 11:
  
 Wyniki będą publikowane na stronie. Wyniki będą publikowane na stronie.
 +
  
   *I termin 25.06.2018 (poniedziałek ) B1 H24 19:00   *I termin 25.06.2018 (poniedziałek ) B1 H24 19:00
  
     *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2018-i-termin.pdf|Wyniki egzaminu I termin]].     *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2018-i-termin.pdf|Wyniki egzaminu I termin]].
-    *Uwaga - możliwość oglądania prac i zgłaszania uwag w piątek 29.06.2017 od 10.15-12.00.+    *Uwaga - możliwość oglądania prac i zgłaszania uwag w piątek 29.06.2017 od 10.15-12.00. Proszę przejrzeć[[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=jezyki_i_metody_programowania_i_i#omowienie_pytan_z_egzaminu| Omówienie pytań i typowych błędów]] 
  
   *II termin 04.07.2018 (środa) C2 224 13.00   *II termin 04.07.2018 (środa) C2 224 13.00
Line 73: Line 75:
 === 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(ListElement* 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