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
jezyki_i_metody_programowania_i_i [2018/06/28 16:56]
pszwed [Omówienie pytań z egzaminu]
jezyki_i_metody_programowania_i_i [2019/09/06 22:41] (current)
pszwed [Egzamin]
Line 10: Line 10:
 ===== Egzamin ===== ===== Egzamin =====
  
-Wyniki będą publikowane na stronie.+Wyniki będą publikowane na tej stronie.
  
-  *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]]. 
-    *Uwaga - możliwość oglądania prac i zgłaszania uwag w piątek 29.06.2017 od 10.15-12.00. 
  
-  *II termin 04.07.2018 (środa) C2 224 13.00 + 
-<!--    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2017-ii-termin.htm|Wyniki egzaminu II termin]].+  *termin 14.06.2019 B1 H24 14.15-16.15 
 +    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2019-i-termin.pdf|Wyniki egzaminu termin]].
     *Możliwość oglądania prac i zgłaszania uwag podczas [[konsultacje|konsultacji]]     *Możliwość oglądania prac i zgłaszania uwag podczas [[konsultacje|konsultacji]]
---> + 
-  *III termin 06.09.2018 (?), C2 224, 12.00  +  *II termin 26.06.2019 C2 429 11.00-13.00 
 +    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2019-ii-termin.pdf|Wyniki egzaminu II termin]]. 
 + 
 +  *III termin  :!: ** 6.09.2019 C2 429 16.00-18.00** :!:  
 +    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2019-iii-termin.pdf|Wyniki egzaminu III termin]]. 
 +    *Możliwość oglądania prac i zgłaszania uwag podczas [[konsultacje|konsultacji]] 
 + 
 <!--    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2017-iii-termin.htm|Wyniki egzaminu III termin]]. <!--    *[[http://pszwed.kis.agh.edu.pl/wyklady_cpp/wyniki_egzaminu-2017-iii-termin.htm|Wyniki egzaminu III termin]].
     *Możliwość oglądania prac i zgłaszania uwag podczas [[konsultacje|konsultacji]]     *Możliwość oglądania prac i zgłaszania uwag podczas [[konsultacje|konsultacji]]
Line 73: Line 78:
 === 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.1530197761.txt.gz · Last modified: 2018/06/28 16:56 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0