From 1df2bfea1ede872b5fa4848368c2110cf769f64c Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 11:29:41 +0100 Subject: [PATCH 01/11] Create task-1.md task #1 translated in italian --- it/task-1.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 it/task-1.md diff --git a/it/task-1.md b/it/task-1.md new file mode 100644 index 0000000..ee94776 --- /dev/null +++ b/it/task-1.md @@ -0,0 +1,38 @@ + + +
+ Monaci CodeAbbey alle prese con bug
+ Opera artistica rappresentante programmatori alle prese con Il Bug.
+ Osservate come strumenti adeguati possano essere d'aiuto! +
+ +Siccome iniziare a volte può essere difficile, proviamo dal problema più semplice possibile. +L'obbiettivo è quello di fare pratica nell l'invio delle risposte, ecc. + +Dobbiamo sommare due numeri e restituirne il risultato. Anche se puoi farlo a mano, prova a scrivere +un semplice programma in qualsiasi linguaggio tu conosca, o ti piaccia, o tu voglia imparare. + +_[**Per favore guarda QUESTO VIDEO dell'autore di codeabbey**](https://www.youtube.com/watch?v=c6WWZe12ves) +per vedere una dimostrazione di come scrivere e inviare la soluzione (come descritto brevemente più avanti)._ + +###Come inviare la soluzione + +Se sei loggato, vedrai i seguenti campi in basso: + +- **Test data** Contiene i "dati di input" o i "casi da testare" - in questo caso i due numeri + che vogliamo sommare. +- **Your answer** - è dove inserire i tuoi risultati dopo aver processato i dati di test. +- **Your solution** - è dove salverai il codice del tuo programma. Non sarà verificato + (almeno automaticamente), ma ti aiuterà ad utilizzare il tuo codice nei prossimi compiti. + Puoi rivedere il compito in qualsiasi momento per vedere la soluzione che hai inviato. + +Esempio: + + dati di input: + 3 5 + + risposta: + 8 + +Abbiamo degli **[esempi](../wiki/running)** del programma in diversi liguaggi popolari, +ma ti consigliamo di non consultarli prima di aver provato a risolvere il compito. :) From 64e6fb05ac9085e3b2519b6acf804e446a989df7 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 11:55:07 +0100 Subject: [PATCH 02/11] Create task-2.md --- it/task-2.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 it/task-2.md diff --git a/it/task-2.md b/it/task-2.md new file mode 100644 index 0000000..be9e3c7 --- /dev/null +++ b/it/task-2.md @@ -0,0 +1,32 @@ +
+dimostraione della somma di un vettore +
+ +Adesso il nostro obbiettico è di imparare i **cicli** - cioè le azioni ripetute. +Scopriamo come sommare diversi numeri (più di due). Per farlo sarà utile utilizzare un ciclo. +Come mostrato in alto nella figura - puoi creare una variabile `Sum` e sommargli ciascun valore della lista. +Il [ciclo "for"](http://it.wikipedia.org/wiki/Ciclo_for) può adattarsi bene allo scopo siccome conosciamo +in anticipo il numero dei numeri da sommare. + +Se hai problemi puoi provare prima [Sums In Loop](./sums-in-loop) - potresti trovarlo più semplice. + +I **dati di input** hanno il seguente formato: + +- la prima riga contiene `N` - numero totale dei valori da sommare; +- la seconda linea contiene gli `N` valori. + +La **risposta** deve contenere un singolo valore - La somma degli `N` valori. + +Esempio: + + dati di input: + 8 + 10 20 30 40 5 6 7 8 + + risposta: + 126 + +**Nota** siccome ci sono diverse dozzine di numeri, non dovresti copiarli manualmente nel tuo programma. +Dovresti invece farli leggere al tuo programma usando un campo di input (dove potrai incollarli +direttamente tutti in una volta). Nota che se fai girare il tuo codice sul nostro server, i dati saranno +automaticamente incollati come input standard per semplicità. From 5ebfe1c38797510e80d0a0080c15214f58db2c27 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 11:57:00 +0100 Subject: [PATCH 03/11] Update task-2.md --- it/task-2.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/it/task-2.md b/it/task-2.md index be9e3c7..137553a 100644 --- a/it/task-2.md +++ b/it/task-2.md @@ -1,8 +1,9 @@ +
dimostraione della somma di un vettore
-Adesso il nostro obbiettico è di imparare i **cicli** - cioè le azioni ripetute. +Il nostro obbiettivo adesso è di imparare i **cicli** - cioè le azioni ripetute. Scopriamo come sommare diversi numeri (più di due). Per farlo sarà utile utilizzare un ciclo. Come mostrato in alto nella figura - puoi creare una variabile `Sum` e sommargli ciascun valore della lista. Il [ciclo "for"](http://it.wikipedia.org/wiki/Ciclo_for) può adattarsi bene allo scopo siccome conosciamo From 0edb00781fb0d55c94b661dbf3b939f62a529d57 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 15:11:12 +0100 Subject: [PATCH 04/11] Create task-3.md --- it/task-3.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 it/task-3.md diff --git a/it/task-3.md b/it/task-3.md new file mode 100644 index 0000000..936b774 --- /dev/null +++ b/it/task-3.md @@ -0,0 +1,27 @@ + +
+ sommando due vettori +
+
+ +Se hai già imparato come scrivere un programma con un semplice ciclo for dal compito [Somma ciclica][prevtask], +questo nuovo esercizio sarà solo una semplice modifica. + +[prevtask]: ./sum-in-loop--it + +Ora abbiamo diverse coppie di valori e vogliamo calcolare la somma per ciascuna coppia. + +I **dati di input** conterranno nella prima riga il numero totale di coppie da processare. +Le righe seguenti conterranno le coppie di valori - una coppia per ciascuna riga. +La **risposta** dovrà contenere i risultati separati da spazi. + +Esempio: + + dati: + 3 + 100 8 + 15 245 + 1945 54 + + risposta: + 108 260 1999 From 2a921c84c71f71a4cbbcf1fe19786fea36867160 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 15:13:35 +0100 Subject: [PATCH 05/11] Update task-2.md updated link --- it/task-2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/it/task-2.md b/it/task-2.md index 137553a..f794152 100644 --- a/it/task-2.md +++ b/it/task-2.md @@ -9,7 +9,7 @@ Come mostrato in alto nella figura - puoi creare una variabile `Sum` e sommargli Il [ciclo "for"](http://it.wikipedia.org/wiki/Ciclo_for) può adattarsi bene allo scopo siccome conosciamo in anticipo il numero dei numeri da sommare. -Se hai problemi puoi provare prima [Sums In Loop](./sums-in-loop) - potresti trovarlo più semplice. +Se hai problemi puoi provare prima [Somme cicliche](./sums-in-loop--it) - potresti trovarlo più semplice. I **dati di input** hanno il seguente formato: From c61a4a734074a8c1e645454469c4482025b79055 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 15:35:35 +0100 Subject: [PATCH 06/11] Create task-4.md --- it/task-4.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 it/task-4.md diff --git a/it/task-4.md b/it/task-4.md new file mode 100644 index 0000000..bfb91b1 --- /dev/null +++ b/it/task-4.md @@ -0,0 +1,35 @@ + +
+ Animazione sulla scelta del minimon +
+ +La maggior parte dei programmi dovrebbe essere in grado di compiere più azioni e prendere più decisioni. +Ora andremo a fare pratica con la programmazione condizionale. +Questa logica normalmente è realizzata da un'istruzione `SE ... OPPURE` che potrebbe apparire così: + + SE qualche_condizione ALLORA + fai_qualcosa + OPPURE + fai_qualcos_altro + FINE_SE + +A seconda del lingaggio di programmazione che hai scelto la sintassi potrebbe essere differente e la parte `oppure` +è quasi sempre opzionale. +Puoi leggere di più sull'argomento nell'articolo wikipedia [Selezione][cond]. + +[cond]: https://it.wikipedia.org/wiki/Selezione_(informatica) + +Dei due numeri, per favore, seleziona quello con il valore minimo. Ecco diverse coppie di numeri per un test approfondito. + +I **dati di input** conterranno nella prima riga il numero totale di coppie da processare. +Le righe seguenti conterranno le coppie di valori da confrontare. +Per la **risposta** si dovrà inserire il valore dei minimi valutati separati da spazi, per esempio: + + dati: + 3 + 5 3 + 2 8 + 100 15 + + risposta: + 3 2 15 From 33c66814cb2a08e504576ba4187035a6b2e914e7 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sat, 25 Feb 2023 15:43:27 +0100 Subject: [PATCH 07/11] Create task-5.md --- it/task-5.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 it/task-5.md diff --git a/it/task-5.md b/it/task-5.md new file mode 100644 index 0000000..e3243c9 --- /dev/null +++ b/it/task-5.md @@ -0,0 +1,22 @@ + +Per poter fare pratica con le istruzioni condizionali andremo a scrivere un programma che utilizza +condizioni complesse. Un'istruzione `se ... oppure` potrebbe (e dovrebbe) essere annidata al'interno +di un'altra istruzione per poter risolvere questo problema. + +Ti saranno date diverse triplette di numeri. Il tuo compito è quello di selezionare il valore minimo +tra ciascuna tripletta. + +I **dati di input** conterranno nella prima riga il numero totale delle triplette da processare. +Ciascuna delle righe seguenti conterrà una delle triplette di valori da confrontare. +La **risposta** dovrà contenere i valori minimi selezionato da ciascuna tripletta, separati da spazi. + +Esempio: + + dati di input: + 3 + 7 3 5 + 15 20 40 + 300 550 137 + + risposta: + 3 15 137 From 8ea30a9dfc5abb21406b0e5bc505bd80d7fa8eae Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sun, 26 Feb 2023 01:37:40 +0100 Subject: [PATCH 08/11] Create task-6.md --- it/task-6.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 it/task-6.md diff --git a/it/task-6.md b/it/task-6.md new file mode 100644 index 0000000..e41d132 --- /dev/null +++ b/it/task-6.md @@ -0,0 +1,32 @@ + + +Quando programmando abbiamo a che fare con numeri con una parte decimale in alcuni casi è utile **arrotondare** questi +numeri all'intero più vicino. Questo ci servirà per altri programmi in futuro (per rendere le risposte più semplici, +per esempio), quindi usiamo questo esercizio per fare esperienza con questoo trucchetto. + +Ci sono diverse coppie di numeri. Per ciascuna coppia devi dividere il primo per il secondo e restituire +il risultato, arrotondato **al più vicino** intero. + +Quando il risultato della divisione restituisce esattamente `0.5` come parte frazionaria, devi arrotondare +al'intero superiore (per esempio sommandogli `0.5`). Da notare che per valori negativi "arrotondare +all'intero superiore" si intende "più vicino allo zero". Fai riferimento alla pagina Wikipedia [Arrotondamento](https://it.wikipedia.org/wiki/Arrotondamento) +per avere una spiegazione più dettagliata. + +Quando l'arrotondamento sarà menzionato nei problemi successivi, si intenderà lo stesso algoritmo qua +descritto (a meno che non sia esplicitamente specificato diversamente). + +I **dati di input** conterranno nella prima riga il numero totale di coppie da processare. +Le righe seguenti conterranno le coppie di valori da testare. +La **risposta** dovrà contenere i risultati delle divisioni arrotondati per ciascuna coppia, +separati da spazi. + +Esempio: + + dati di input: + 3 + 12 8 + 11 -3 + 400 5 + + risposta: + 2 -4 80 From da0475f29eea73d706a66d496abb147f574f9fa5 Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sun, 26 Feb 2023 09:37:09 +0100 Subject: [PATCH 09/11] Create task-7.md --- it/task-7.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 it/task-7.md diff --git a/it/task-7.md b/it/task-7.md new file mode 100644 index 0000000..a114223 --- /dev/null +++ b/it/task-7.md @@ -0,0 +1,32 @@ + +Questo esercizio di programmazione è all'incirca lo stesso delle somme in cicli, ma richiede un po' più di calcoli. + +
+ fahrenheit e celsius +
+ +*Nota: il problema di [Arrotondamento](./rounding--it) spiega l'algoritmo di arrotondamento utilizzato anche +in questo esercizio.* + +Ci sono due sistemi diffusi per misurare la temperatura: Celsius e Fahrenheit. Il primo è molto popolare in Europa +e il secondo è utilizzato prevalentemente negli Stati Uniti. + +Per la scala Celsius l'acqua ghiaccia a 0 gradi e bolle a 100 gradi. Per Fahrenheit l'acqua ghiaccia a 32 gradi e +bolle a 212 gradi. Puoi imparare di più dalla pagina [wikipedia su Fahrenheit][wiki]. Usa questi due punti per +convertire altre temperature. + +[wiki]: https://it.wikipedia.org/wiki/Grado_Fahrenheit + +Lo scopo è scriver eun programma che converta i gradi da Fahrenheit a Celsius + +I **dati di input** contengono `N+1` valori, il primo è il numero `N` casi d calcolare (**Nota** che non dovresti convertirlo). +La **risposta** dovrà contenere esattamente `N` risultati, arrotondati all'intero più vicino e separati da spazi. + +Esempio: + + dati: + 5 495 353 168 -39 22 + risposta: + 257 178 76 -39 -6 + +*Nota bene che il primo `5` non è una temperatura, ma il numero di calori da convertire!* From 4c4c6ea7e187521ee353ee54d72d3486ad53d90d Mon Sep 17 00:00:00 2001 From: Eddosav <58750428+Eddosav@users.noreply.github.com> Date: Sun, 26 Feb 2023 11:50:24 +0100 Subject: [PATCH 10/11] Create task-8.md --- it/task-8.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 it/task-8.md diff --git a/it/task-8.md b/it/task-8.md new file mode 100644 index 0000000..ef68c32 --- /dev/null +++ b/it/task-8.md @@ -0,0 +1,41 @@ + +Quando parliamo di **progressione aritmetica** (o sequenza aritmentica) intendiamo una serie +di numeri con una proprietà speciale - ogni valore è seguito da un altro, incrementato da una +quantità prestabilita (valore incrementale). + +Cioè quando la differenza tra gli `(K+1)`-esimi e `K` -esimi valori è costante. Di seguito alcuni +esempi di sequenze + + 1 2 3 4 5 6 7 ... + 4 6 8 10 12 14 16... + 10 13 16 19 22 25 28... + + una progressione aritmetica è completamente definita dal primo membro (`A`) e dal valore + incrementale - quantità dell'incremento - (`B`). La sequenza può quindi essere espressa come + + A + (A + B) + (A + 2B) + (A + 3B) + ... + +Dovrai quindi calcolare la somma fino ad un certo termine della prograssione aritmetica. +La [pagina Wikipedia][wiki] sulle progressioni aritmetiche può essere di aiuto per chi le incontra +per la prima volta. + +[wiki]: https://it.wikipedia.org/wiki/Progressione_aritmetica + +**Dati di input:** la prima riga contiene il numero di casi da testare. +Le rimanenti righe contengono i casi da testare in forma di triplette `A B N` dove `A` è il primo valore della +sequenza, `B` è il valore incrementale e `N` è il numero di termini della serie da calcolare. +**Risposta:** dovrai inserire i risultati (la somma dei primi `N` termini) di ciascuna sequenza, separati da spazi. + +Esempio: + + dati: + 2 + 5 2 3 + 3 0 10 + + risposta: + 21 30 + +_Spiegazione dell'Esempio. Nel primo caso abbiamo una sequenza che inizia con `5` e incrementa di `2` ogni volta. +Vogliamo la somma dei primi `3` elementi `5 + 7 + 9 = 21`. Nel secondo caso è più semplice. Parte da `3` ma +l'incremento è `0`, quindi sarà `3 + 3 + ... + 3 = 30` (il totale dei primi `10` elementi)._ From 4671a9f7e5fbb33fc2568302d9fdcbbadd7acac7 Mon Sep 17 00:00:00 2001 From: Eddosav Date: Sun, 26 Feb 2023 18:37:13 +0100 Subject: [PATCH 11/11] new file: it/task-9.md --- it/task-9.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 it/task-9.md diff --git a/it/task-9.md b/it/task-9.md new file mode 100644 index 0000000..9cfb5d5 --- /dev/null +++ b/it/task-9.md @@ -0,0 +1,28 @@ + +Un triangolo è un oggetto costituito da 3 segmenti di retta (lati del triangolo), collegati alle +estremità. +La pagina [Wikipedia sui triangoli][wiki] fornisce una spiegazione più dettagliata. +Se abbiamo 3 segmenti di retta con lunghezze `A B C` - possiamo costruirci un triangolo (per esempio +con le triplette `3 4 5` o `3 4 7` - anche se con area pari a zero) oppure scoprire che è impossibile +costruirne uno (per esempio `1 2 4`). + +[wiki]: http://it.wikipedia.org/wiki/Triangolo + +Ti vengono fornite diverse triplette di valori che rappresentano le lunghezze dei lati dei triangoli. +Devi individuare tra quali di queste triplette è possibile costruire un triangolo e per quali non +è possibile farlo. + +**Dati di input:** La prima riga contiene il numero di triplette. +Le altre righe contengono le triplette (una per ciascuna riga). +**Risposta:** Devi restituire `1` o `0` per ciascuna tripletta(`1` se si pò costruire il +triangolo o altrimenti `0`). + +Esempio: + + dati: + 2 + 3 4 5 + 1 2 4 + + risposta: + 1 0 \ No newline at end of file