Lab 04 - cicli annidati, byte, rune, stringhe, for range ======================================================== Es. 0 ----- Scrivere un programma es0.go che legge un byte e - lo stampa (occorre Scanf in più per catturare l'invio) - stampa precedente, byte stesso, e successivo in ordine lessicografico (ASCII). Ad es. per 'd': cde - stabilisce se è una lettera tra A e L, o altro (stampa "A-L" o "altro") poi legge una stringa (di rune) e la stampa in verticale. Ad esempio città: c i t t à ----------------------------------- Es. 1 ----- Scrivere un programma pos_alfabeto.go che - legge una sequenza di caratteri ASCII (byte) terminati da '.' (es: 5Nov.), - per ciascuno stabilisce se è una lettera minuscola (es. f) e stampa un messaggio per riga: se minuscola, il carattere e la sua posizione nell'alfabeto (es "f è la 6^a"); altrimenti "altro" - quando termina, stampa "bye" Esempio ------- una sequenza di caratteri terminata da '.': 12Marzo. altro altro altro a è la 1^a r è la 18^a z è la 26^a o è la 15^a bye ================================================= Es. 2-6 Risolvete gli esercizi che trovate qui: https://forms.gle/bTh4cnxZnyfFGpbG9 ================================================= Es. 7 Scrivere un programma disegna_slash.go che legge un intero positivo n e stampa uno slash (\) di asterischi di altezza n. Esempio ------- dimensione \: 3 * * * ----------------------------------- Es. 8 Scrivere un programma disegna_v.go che legge un intero positivo n e stampa una v di asterischi di altezza n. Esempio ------- dimensione v: 3 * * * * * ================================================= COMPOSIZIONE Risolvete gli esercizi 9 e 10 che trovate qui: https://forms.gle/WDLsjAEUiyebe1Dg9 ================================================= ALTRI ESERCIZI Es. 11 (*) Scrivere un programma fibonacci.go che legge un intero positivo n e stampa un istogramma (orizzontale) dei numeri di fibonacci dal primo all'n-esimo. Esempio ------- un numero: 6 * * ** *** ***** ******** ----------------------------------- Es. 12 (*) Scrivere un programma minu_maiu.go che legge da standard input una stringa e stampa se la stringa contiene solo minuscole, solo maiuscole o sia minuscole che maiuscole. ----------------------------------- Es. 13 (*) Scrivere un programma num_max.go che legga una sequenza di 10 interi positivi e stampi il massimo intero letto e quante volte il massimo compare nella sequenza. ----------------------------------- Es. 14 (*) Scrivere un programma max_num_cifre_pari.go che data una sequenza di numeri (letti come stringhe), stampa il massimo numero di cifre pari contenute in un numero. ----------------------------------- Es. 15 (**) Scrivere un programma cesare.go che legge da standard input un valore intero non negativo k (la chiave di cifratura) e una sequenza di lettere minuscole consecutive (sulla stessa riga e senza spazi) terminate da ('\n'). Il programma stampa la sequenza letta cifrata secondo il cifrario di Cesare, usando come chiave k (quella fornita dall'utente): ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova k posizioni dopo nell'alfabeto, ritornando dopo la zeta alla lettera a. Esempi ------ chiave: 2 caratteri da cifrare: zaprb bcrtd è il testo cifrato chiave: 100 caratteri da cifrare: abcd wxyz è il testo cifrato ----------------------------------- Es. 16 (**) Scrivere un programma ultima_pioggia.go che legge da standard input una sequenza di valori interi (terminata da EOF, ottenuto con ctrl-D) che indicano i mm di pioggia caduti (0 se non ha piovuto) ogni giorno in una sequenza successiva di giorni e stampa (l'indice del) l'ultimo giorno in cui ha piovuto. ----------------------------------- Es. 17 (**) Scrivere un programma num_sequenze.go che legge da standard input una sequenza di uni (1) e zeri (0) (terminata da un 2), che inizia e finisce con 1, e stampa il numero di sottosequenze di zeri. Ad esempio per input 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1, l'output è 4. (si considerano anche quelle di lunghezza 1) ----------------------------------- Es. 18 (***) Definiamo "gradino" una sequenza di (uno o più) interi uguali seguita da un'altra sequenza di (uno o più) interi più grandi di 1 (es. 1 1 2 2 2). Scrivere un programma gradino.go che, data in input una sequenza di interi tali che ogni intero è >= del precedente, stampa la lunghezza (il numero di interi) del gradino più lungo. (Si noti che i gradini si sovrappongono). Ad esempio per input 2 2 3 3 4 4 4 5 6 6 6 7, l'output è 5 (il gradino 3 3 4 4 4). ___________________________________