Differences

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

Link to this comparison view

programare:teme_2018:tema2_2018_cbd [2018/11/12 11:25]
ioana.alexandru [Responsabili]
programare:teme_2018:tema2_2018_cbd [2018/12/10 10:56] (current)
ioana.alexandru [Informații]
Line 5: Line 5:
   * [[oana.balan@cs.pub.ro|Oana Bălan]]   * [[oana.balan@cs.pub.ro|Oana Bălan]]
 ====== Informații ====== ====== Informații ======
-  * Data publicare: ​19 Noiembrie 2018 +  * Data publicare: ​17 Noiembrie 2018 
-  * Deadline Soft: 10 Decembrie 2018 (23:55)+  * Deadline Soft: 11 Decembrie 2018 (23:55)
   * Deadline Hard: 16 Decembrie 2018 (23:55)   * Deadline Hard: 16 Decembrie 2018 (23:55)
 +  <​note>​Update 10 Decembrie 8:55 - Deadline soft extins cu o zi.</​note>​
  
-<​hidden>​ 
 ====== Obiective ====== ====== Obiective ======
  
Line 51: Line 51:
 <​code=bash>​W max_line_length</​code>​ <​code=bash>​W max_line_length</​code>​
  
-Operația //wrap// adaugă și elimină caractere //newline// din text astfel încât textul să se încadreze în ''​max_line_length''​ (să aibă lungimea mai mică sau egală), fără a permite linii prea scurte (în afara ultimei linii dintr-un paragraf) și fără a trunchia cuvintele. O linie este prea scurtă dacă primul cuvânt din linia următoare ar fi încăput în ea fără să depășească ''​max_line_length''​.+Operația //wrap// adaugă și elimină caractere //newline// din text astfel încât textul să se încadreze în ''​max_line_length''​ (să aibă lungimea ​- în octeți - mai mică sau egală), fără a permite linii prea scurte (în afara ultimei linii dintr-un paragraf) și fără a trunchia cuvintele. O linie este prea scurtă dacă primul cuvânt din linia următoare ar fi încăput în ea fără să depășească ''​max_line_length''​
 + 
 +Atunci când două linii ''​l1''​ și ''​l2''​ sunt concatenate în urma unei operații //wrap//, rezultatul obținut va fi ''"​l1` l2`"''​ unde ''​l1`''​ este ''​l1''​ fără //trailing whitespace//,​ iar ''​l2`''​ este ''​l2''​ fără //starting whitespace//​.
  
 <note tip>Un **cuvânt** este orice grupare de caractere încadrată de //​whitespace//​ (spațiu, tab, newline). Spre exemplu, într-un text dat, "​după-amiază"​ va fi considerat un singur cuvânt și nu va fi trunchiat.</​note>​ <note tip>Un **cuvânt** este orice grupare de caractere încadrată de //​whitespace//​ (spațiu, tab, newline). Spre exemplu, într-un text dat, "​după-amiază"​ va fi considerat un singur cuvânt și nu va fi trunchiat.</​note>​
Line 106: Line 108:
 <​code=bash>​C [start_line [end_line]]</​code>​ <​code=bash>​C [start_line [end_line]]</​code>​
  
-Operația //center// folosește ca referință cea mai lungă linie din fișier și adaugă spații la începutul liniilor care sunt mai scurte pentru a le centra.+Operația //center// folosește ca referință cea mai lungă linie din fișier ​(fără //trailing whitespace//​) ​și adaugă spații la începutul liniilor care sunt mai scurte pentru a le centra.
  
 <​note>​Fie dat următorul fișier de intrare pe care se aplică operația ''​C'':​ <​note>​Fie dat următorul fișier de intrare pe care se aplică operația ''​C'':​
Line 126: Line 128:
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer
 elementum, ipsum sit amet vulputate semper, orci justo condimentum elementum, ipsum sit amet vulputate semper, orci justo condimentum
-felis, eu lobortis metus quam ac mauris. Mauris sed pharetra leo.+ felis, eu lobortis metus quam ac mauris. Mauris sed pharetra leo.
    Morbi mollis nunc eu velit tincidunt ullamcorper. Vestibulum    Morbi mollis nunc eu velit tincidunt ullamcorper. Vestibulum
  ​finibus tellus ac lobortis porttitor. Integer a lacus nisi. Morbi  ​finibus tellus ac lobortis porttitor. Integer a lacus nisi. Morbi
Line 166: Line 168:
 <​code=bash>​R [start_line [end_line]]</​code>​ <​code=bash>​R [start_line [end_line]]</​code>​
  
-Operația //align right// folosește ca referință cea mai lungă linie din fișier și adaugă spații la începutul liniilor care sunt mai scurte pentru a le alinia la marginea din dreapta.+Operația //align right// folosește ca referință cea mai lungă linie din fișier ​(fără //trailing whitespace//​) ​și adaugă spații la începutul liniilor care sunt mai scurte pentru a le alinia la marginea din dreapta.
  
 <​note>​Fie dat următorul fișier de intrare pe care se aplică operația ''​R'':​ <​note>​Fie dat următorul fișier de intrare pe care se aplică operația ''​R'':​
Line 206: Line 208:
 Quisque blandit lobortis purus vitae gravida. Quisque blandit lobortis purus vitae gravida.
  
-Morbi sit amet euismod leo. Quisque in hendrerit turpis, ac+    ​Morbi sit amet euismod leo. Quisque in hendrerit turpis, ac
 fringilla ante. Sed id mi bibendum, scelerisque arcu vel, fringilla ante. Sed id mi bibendum, scelerisque arcu vel,
 rutrum nibh. rutrum nibh.
Line 271: Line 273:
 <​code=bash>​I list_type special_character [start_line [end_line]]</​code>​ <​code=bash>​I list_type special_character [start_line [end_line]]</​code>​
  
-Această operație formatează liniile corespunzătoare ca pe o listă a cărei **indici** sunt definiți în funcție de parametrii ''​list_type''​ și ''​special_character''​.+Această operație formatează liniile corespunzătoare ca pe o listă ​(aliniată la stânga) ​a cărei **indici** sunt definiți în funcție de parametrii ''​list_type''​ și ''​special_character''​.
  
 Parametrul ''​list_type''​ indică tipul listei: Parametrul ''​list_type''​ indică tipul listei:
Line 407: Line 409:
  
 Tema va fi trimisă folosind [[https://​vmchecker.cs.pub.ro|vmchecker]],​ cursul **Programarea Calculatoarelor (CB & CD)**. \\ Tema va fi trimisă folosind [[https://​vmchecker.cs.pub.ro|vmchecker]],​ cursul **Programarea Calculatoarelor (CB & CD)**. \\
-Găsiți checker-ul {{:​programare:​teme_2018:​2-format-text.zip|aici}}.+Găsiți checker-ul {{:​programare:​teme_2018:​tema2_cb.zip|aici}}.
  
 <note warning> <note warning>
Line 427: Line 429:
   * Fișierele obținute nu trebuie să conțină [[https://​blog.codinghorror.com/​whitespace-the-silent-killer/​|trailing whitespace]] (cu excepția situației în care aveți o operație invalidă). În urma unei operații goale (''""''​),​ fișierul obținut va avea același conținut ca cel inițial, dar nu va conține trailing whitespace.   * Fișierele obținute nu trebuie să conțină [[https://​blog.codinghorror.com/​whitespace-the-silent-killer/​|trailing whitespace]] (cu excepția situației în care aveți o operație invalidă). În urma unei operații goale (''""''​),​ fișierul obținut va avea același conținut ca cel inițial, dar nu va conține trailing whitespace.
  
-====== Listă depunctări ======+====== Listă depunctări ​(neexhaustivă) ​======
   * o temă care nu compilează și nu a rulat pe **vmchecker** nu va fi luată în considerare   * o temă care nu compilează și nu a rulat pe **vmchecker** nu va fi luată în considerare
   * o temă care nu rezolvă cerința și trece testele prin alte mijloace nu va fi luată în considerare   * o temă care nu rezolvă cerința și trece testele prin alte mijloace nu va fi luată în considerare
Line 433: Line 435:
   * [-1.0]: numele variabilelor nu sunt sugestive   * [-1.0]: numele variabilelor nu sunt sugestive
   * [-1.0]: linii mai lungi de 80 de caractere   * [-1.0]: linii mai lungi de 80 de caractere
 +  * [-1.0]: cod nemodular, funcții prea lungi (inclusiv main)
   * [-5.0]: abordare ineficientă   * [-5.0]: abordare ineficientă
     * în cadrul cursului de programare nu avem ca obiectiv rezolvarea în cel mai eficient mod posibil a programelor;​ totuși, ne dorim ca abordarea să nu fie una ineficientă,​ de genul să nu folosiți instrucțiuni repetitive acolo unde clar era cazul, etc.     * în cadrul cursului de programare nu avem ca obiectiv rezolvarea în cel mai eficient mod posibil a programelor;​ totuși, ne dorim ca abordarea să nu fie una ineficientă,​ de genul să nu folosiți instrucțiuni repetitive acolo unde clar era cazul, etc.
Line 440: Line 443:
   * [[http://​pubs.opengroup.org/​onlinepubs/​009695399/​basedefs/​string.h.html|Biblioteca string.h]]   * [[http://​pubs.opengroup.org/​onlinepubs/​009695399/​basedefs/​string.h.html|Biblioteca string.h]]
  
-</​hidden>​ 
programare/teme_2018/tema2_2018_cbd.1542014714.txt.gz · Last modified: 2018/11/12 11:25 by ioana.alexandru
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