---+++ Homework 3: riconoscimento di parentesi Bisogna riconoscere se in una stringa di testo contenente solo parentesi aperte e chiuse le parentesi sono corrette, ovvero: * una stringa di 0 caratteri è un gruppo di parentesi corretto * un gruppo corretto seguito da altri gruppi corretti è corretto * per ogni parentesi aperta ci deve essere la corrispondente parentesi chiusa * tra due parentesi è contenuto un gruppo di parentesi corretto I caratteri che dovete considerare come parentesi sono: * parentesi aperte: __{ [ ( <__ * parentesi chiuse: __} ] ) >__ Realizzate la funzione __ricorsiva__ *riconosci* che: * riceve come argomento una stringa di testo e tutti gli altri argomenti che ritenete necessari * riconosce se le parentesi sono corrette oppure no * torna 0 (FALSE) o 1 (TRUE) per indicare il risultato del test Il __main__ deve: * leggere una stringa lunga al massimo 100 caratteri * chiamare la funzione *riconosci* * stampare *SI* oppure *NO* a seconda del risultato del test * uscire Esempi: * Input: *{[][(<>([])<{}[]>)<>]}* * Output: *SI* * Input: *{[][(<>(])<{}[]>)<>]}* * Output: *NO* (manca una parentesi aperta) * Input : *{[][(<>([])<{}[>)<>]}* * Output: *NO* (manca una parentesi chiusa) ---+++ Risultati completi Ho fatto una prima correzione degli homework, che trovate [[%ATTACHURL%/index.html][QUI]] * alcuni hanno lasciato dei prompt nel programma, li ho commentati * per uno il prog si è bloccato su un esempio, ho dovuto ammazzarlo con ^C (trova il diff vuoto) * qualcuno ha usato *lh* invece di *lb* che dà un errore di allineamento Ho competato i test e l'analisi dei programmi * Alcuni non hanno svolto il programma come funzione ricorsiva (prendendo metà del punteggio) * Altri contano le parentesi e falliscono un test in cui il conteggio è giusto ma le parentesi non sono nidificate correttamente (prendendo metà del punteggio) * Esempio: __<(<[<<{(<([<[[[({<{<}>()[]>})]]]>])>)}>>]>)>__ | *Studente* | *PASSED* | *ricorsiva* | *test conteggio* | *punti* | | Bardh Prenkaj | 20 | SI | NO | 10/20 = 0.5 | | Davide Sericoli | 20 | SI | NO | 10/20 = 0.5 | | Federica Spini | 15 | NO | NO | 3.75/20 = 0.1825 | | Lorenzo Pirro | 10 | NO | NO | 2.5/20 = 0.125 | | Lorenzo Zarfati | 10 | NO | NO | 2.5/20 = 0.125 | | Massotti Melvin | 20 | NO | SI | 10/20 = 0.5 | | Sara Tramonte | 20 | NO | SI | 10/20 = 0.5 | | Simone Martinello | 20 | NO | NO | 5/20 = 0.25 | | Stefano Senarighi | 20 | NO | NO | 5/20 = 0.25 | Gli altri hanno preso PASSED/20 <!-- * Set ALLOWTOPICCHANGE = Users.AndreaSterbini -->
This topic: Architetture2/MZ/AA13_14
>
HomeWork3
Topic revision: r5 - 2014-06-28 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback