From c34ee8748a70b4f7a625ffefd483ff37b6642171 Mon Sep 17 00:00:00 2001 From: camperbot Date: Thu, 27 Jan 2022 22:09:01 +0530 Subject: [PATCH] chore(i18n,learn): processed translations (#44936) --- ...sections-of-a-page-with-anchor-elements.md | 2 +- ...create-complex-multi-dimensional-arrays.md | 2 +- .../basic-javascript/counting-cards.md | 10 +- ...actor-global-variables-out-of-functions.md | 23 +- ...call-out-optional-actions-with-btn-info.md | 2 +- .../react/render-conditionally-from-props.md | 2 +- .../timestamp-microservice.md | 8 +- .../url-shortener-microservice.md | 2 +- .../demographic-data-analyzer.md | 53 +++- ...-variance-standard-deviation-calculator.md | 55 ++++- .../page-view-time-series-visualizer.md | 35 ++- .../sea-level-predictor.md | 39 ++- .../anonymous-message-board.md | 227 +++++++++++++++++- ...sh-and-compare-passwords-asynchronously.md | 4 +- ...l-by-building-a-student-database-part-1.md | 2 +- ...l-by-building-a-student-database-part-2.md | 2 +- .../build-a-personal-portfolio-webpage.md | 47 ++++ .../build-a-product-landing-page.md | 55 +++++ .../build-a-survey-form.md | 57 +++++ .../build-a-technical-documentation-page.md | 55 +++++ .../build-a-tribute-page.md | 43 ++++ .../react/render-conditionally-from-props.md | 2 +- ...cles-of-given-radius-through-two-points.md | 8 +- .../rosetta-code/discordian-date.md | 6 +- .../execute-a-markov-algorithm.md | 2 +- .../rosetta-code/factorial.md | 2 +- .../react/render-conditionally-from-props.md | 2 +- .../check-if-binary-search-tree.md | 20 +- ...cles-of-given-radius-through-two-points.md | 4 +- .../execute-a-markov-algorithm.md | 10 +- 30 files changed, 710 insertions(+), 71 deletions(-) create mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md create mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md create mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md create mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md create mode 100644 curriculum/challenges/italian/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md b/curriculum/challenges/italian/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md index dfbacfedcb..8c1d5451ad 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-html-and-html5/link-to-internal-sections-of-a-page-with-anchor-elements.md @@ -25,7 +25,7 @@ Quando gli utenti cliccheranno sul link `Contacts`, saranno portati alla sezione # --instructions-- -Cambia il tuo link esterno in un link interno cambiando l'attributo `href` in `"#footer"` e il testo da `cat photos` a `Jump to Bottom`. +Cambia il tuo link esterno in un link interno modificando l'attributo `href` in `#footer` e il testo da `cat photos` a `Jump to Bottom`. Rimuovi l'attributo `target="_blank"` dal tag di ancoraggio perché questo farebbe aprire il documento collegato in una nuova scheda del browser. diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md index d772b613b4..f90b5a2c4f 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-data-structures/create-complex-multi-dimensional-arrays.md @@ -10,7 +10,7 @@ dashedName: create-complex-multi-dimensional-arrays Ottimo! Hai appena imparato un sacco di cose sugli array! Questa è stata una panoramica di livello abbastanza alto, e c'è ancora molto da imparare per lavorare con gli array, come potrai vedere nelle prossime sezioni. Ma prima di passare a studiare gli oggetti, diamo un'altra occhiata e vediamo come gli array possono diventare un po' più complessi di quello che abbiamo visto nelle sfide precedenti. -Una delle caratteristiche più potenti quando si pensa agli array come strutture di dati, è che gli array possono contenere, o anche essere completamente costituiti da altri array. Abbiamo visto array che contengono altri array nelle sfide precedenti, ma erano abbastanza semplici. Tuttavia, gli array possono contenere una profondità infinita di array che possono contenere altri array, ciascuno con i propri livelli arbitrari di profondità, e così via. In questo modo, un array può diventare molto rapidamente una struttura di dati molto complessa, conosciuta come un array multi-dimensionale o un array annidato. Considera l'esempio seguente: +Una delle caratteristiche più potenti quando si pensa agli array come strutture di dati, è che gli array possono contenere, o anche essere completamente costituiti da altri array. Abbiamo visto array che contengono altri array nelle sfide precedenti, ma erano abbastanza semplici. Tuttavia, gli array possono contenere una profondità infinita di array che possono contenere altri array, ciascuno con i propri livelli arbitrari di profondità, e così via. In questo modo, un array può diventare in fretta una struttura dati molto complessa, nota come multi-dimensionale, o array annidato. Considera l'esempio seguente: ```js let nestedArray = [ diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md index 2b77d02d98..0a5a3f84ce 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-javascript/counting-cards.md @@ -25,7 +25,7 @@ NON includere virgolette (singole o doppie) nell'output. # --hints-- -La sequenza di carte 2, 3, 4, 5, 6 dovrebbero restituire `5 Bet` +La sequenza di carte 2, 3, 4, 5, 6 dovrebbe restituire la stringa `5 Bet` ```js assert( @@ -61,7 +61,7 @@ assert( ); ``` -La sequenza di carte 10, J, Q, K, A dovrebbero restituire la stringa `-5 Hold` +La sequenza di carte 10, J, Q, K, A dovrebbe restituire la stringa `-5 Hold` ```js assert( @@ -80,7 +80,7 @@ assert( ); ``` -La sequenza di carte 3, 7, Q, 8, A dovrebbero restituire la stringa `-1 Hold` +La sequenza di carte 3, 7, Q, 8, A dovrebbe restituire la stringa `-1 Hold` ```js assert( @@ -99,7 +99,7 @@ assert( ); ``` -La sequenza di carte 2, J, 9, 2, 7 dovrebbero restituire la stringa `1 Bet` +La sequenza di carte 2, J, 9, 2, 7 dovrebbe restituire la stringa `1 Bet` ```js assert( @@ -118,7 +118,7 @@ assert( ); ``` -La sequenza di carte 2, 2, 10 dovrebbero restituire la stringa `1 Bet` +La sequenza di carte 2, 2, 10 dovrebbe restituire la stringa `1 Bet` ```js assert( diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions.md index 61ec805133..4c2af58ef3 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions.md @@ -27,6 +27,7 @@ Riscrivi il codice in modo che l'array globale `bookList` non venga modificato a `bookList` non dovrebbe cambiare e dovrebbe rimanere uguale a `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. ```js +add(bookList, "Test"); assert( JSON.stringify(bookList) === JSON.stringify([ @@ -38,11 +39,11 @@ assert( ); ``` -`newBookList` dovrebbe essere uguale a `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. +`add(bookList, "A Brief History of Time")` dovrebbe restituire `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. ```js assert( - JSON.stringify(newBookList) === + JSON.stringify(add(bookList, "A Brief History of Time")) === JSON.stringify([ 'The Hound of the Baskervilles', 'On The Electrodynamics of Moving Bodies', @@ -53,11 +54,11 @@ assert( ); ``` -`newerBookList` dovrebbe essere uguale a `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. +`remove(bookList, "On The Electrodynamics of Moving Bodies")` dovrebbe restituire `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. ```js assert( - JSON.stringify(newerBookList) === + JSON.stringify(remove(bookList, 'On The Electrodynamics of Moving Bodies')) === JSON.stringify([ 'The Hound of the Baskervilles', 'Philosophiæ Naturalis Principia Mathematica', @@ -66,11 +67,11 @@ assert( ); ``` -`newestBookList` dovrebbe essere uguale a `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. +`remove(add(bookList, "A Brief History of Time"), "On The Electrodynamics of Moving Bodies");` dovrebbe essere uguale a `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. ```js assert( - JSON.stringify(newestBookList) === + JSON.stringify(remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies')) === JSON.stringify([ 'The Hound of the Baskervilles', 'Philosophiæ Naturalis Principia Mathematica', @@ -108,12 +109,6 @@ function remove(bookName) { // Change code above this line } } - -const newBookList = add(bookList, 'A Brief History of Time'); -const newerBookList = remove(bookList, 'On The Electrodynamics of Moving Bodies'); -const newestBookList = remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies'); - -console.log(bookList); ``` # --solutions-- @@ -134,8 +129,4 @@ function remove(bookList, bookName) { } return bookListCopy; } - -const newBookList = add(bookList, 'A Brief History of Time'); -const newerBookList = remove(bookList, 'On The Electrodynamics of Moving Bodies'); -const newestBookList = remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies'); ``` diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md b/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md index 1c6e2ba4ec..ec9bda1bb5 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md @@ -10,7 +10,7 @@ dashedName: call-out-optional-actions-with-btn-info Bootstrap è dotato di diversi colori predefiniti per i pulsanti. La classe `btn-info` viene utilizzata per richiamare l'attenzione sulle azioni facoltative che l'utente può intraprendere. -Crea un nuovo pulsante Bootstrap a livello di blocco sotto il tuo pulsante `Like` con il testo `Info`, e aggiungi le classi `btn-info` e `btn-block` di Bootstrap. +Crea un nuovo pulsante Bootstrap a livello di blocco sotto il tuo pulsante `Like` con il testo `Info`, e aggiungi la classe `btn-info` di Bootstrap. Nota che questi pulsanti hanno ancora bisogno delle classi `btn` e `btn-block`. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/render-conditionally-from-props.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/render-conditionally-from-props.md index 2d30baa034..da6aaa7193 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/render-conditionally-from-props.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/render-conditionally-from-props.md @@ -8,7 +8,7 @@ dashedName: render-conditionally-from-props # --description-- -Finora, hai visto come usare `if/else`, `&&`, e l'operatore ternario (`condition ? expressionIfTrue : expressionIfFalse`) per prendere decisioni condizionali su cosa presentare e quando. Tuttavia, c'è ancora un argomento importante da discutere che consente di combinare uno o tutti questi concetti con un'altra potente funzionalità di React: le props. Usare le proprietà (props) per presentare il codice condizionalmente è molto comune tra gli sviluppatori di React — cioè essi usano il valore di una determinata proprietà per prendere automaticamente delle decisioni su cosa presentare. +Fino ad ora hai visto come usare `if/else`, `&&`, e l'operatore ternario (`condition ? expressionIfTrue : expressionIfFalse`) per fare decisioni condizionali su cosa e quando presentare. Tuttavia, c'è ancora un argomento importante da discutere che consente di combinare uno o tutti questi concetti con un'altra potente funzionalità di React: le props. Usare le proprietà (props) per presentare il codice condizionalmente è molto comune tra gli sviluppatori di React — cioè essi usano il valore di una determinata proprietà per prendere automaticamente delle decisioni su cosa presentare. In questa sfida, configurerai un componente figlio per prendere decisioni di rendering basate sulle props. Utilizzerai anche l'operatore ternario, ma puoi vedere come molti degli altri concetti che sono stati trattati nelle ultime sfide potrebbero essere altrettanto utili in questo contesto. diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md index 82705e1b06..3c7499170b 100644 --- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md +++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md @@ -14,7 +14,9 @@ Costruisci un'app JavaScript full-stack che sia funzionalmente simile a questa: - Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-timestamp) per completare il tuo progetto. - Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. -Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente dei tuoi progetti nel campo `GitHub Link`. +Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo `GitHub Link`. + +**Nota:** la conversione tra fusi orari non è un proposito di questo progetto, quindi assumi che tutte le date valide saranno passate a `new Date()` come date GMT. # --hints-- @@ -28,7 +30,7 @@ Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospi }; ``` -Una richiesta a `/api/:date?` con una data valida dovrebbe restituire un oggetto JSON con una chiave `unix` che è un timestamp Unix della data di input in millisecondi +Una richiesta a `/api/:date?` con una data valida dovrebbe restituire un oggetto JSON con una chiave `unix` che è il tempo Unix in millisecondi della data di input ```js (getUserInput) => @@ -85,7 +87,7 @@ Il tuo progetto può gestire date che possono essere lette con successo da `new ```js (getUserInput) => - $.get(getUserInput('url') + '/api/05 October 2011').then( + $.get(getUserInput('url') + '/api/05 October 2011, GMT').then( (data) => { assert( data.unix === 1317772800000 && diff --git a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md index c7f8ad94c4..e7b15c4954 100644 --- a/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md +++ b/curriculum/challenges/italian/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md @@ -14,7 +14,7 @@ Costruisci un'app JavaScript full-stack che sia funzionalmente simile a questa: - Usare [la nostra bozza di progetto su Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-urlshortener) per completare il tuo progetto. - Usare un costruttore di siti di tua scelta per completare il progetto. Assicurati di incorporare tutti i file del nostro repository GitHub. -Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente dei tuoi progetti nel campo `GitHub Link`. +Quando hai finito, assicurati che una demo funzionante del tuo progetto sia ospitata in qualche percorso pubblico. Quindi invia l'URL nel campo `Solution Link`. Facoltativamente, invia anche un link al codice sorgente del tuo progetto nel campo `GitHub Link`. # --instructions-- diff --git a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md index 565c9ac774..59d494413e 100644 --- a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md +++ b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md @@ -8,13 +8,58 @@ dashedName: demographic-data-analyzer # --description-- -In questa sfida è necessario analizzare i dati demografici utilizzando Pandas. Ti viene fornito un insieme di dati demografici estratti dalla banca dati del Census del 1994. +Lavorerari a [questo progetto con il nostro codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer). -Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer). +Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: -Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. +- [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore) +- [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore) -Stiamo ancora sviluppando la parte didattica interattiva del curriculum di analisi dei dati con Python. Per ora, dovrai utilizzare altre risorse per imparare a superare questa sfida. +# --instructions-- + +In questa sfida è necessario analizzare i dati demografici utilizzando Pandas. Ti viene fornito un insieme di dati demografici estratti dalla banca dati del Census del 1994. Ecco un esempio di come appaiono i dati: + +```markdown +| | age | workclass | fnlwgt | education | education-num | marital-status | occupation | relationship | race | sex | capital-gain | capital-loss | hours-per-week | native-country | salary | +|---:|------:|:-----------------|---------:|:------------|----------------:|:-------------------|:------------------|:---------------|:-------|:-------|---------------:|---------------:|-----------------:|:-----------------|:---------| +| 0 | 39 | State-gov | 77516 | Bachelors | 13 | Never-married | Adm-clerical | Not-in-family | White | Male | 2174 | 0 | 40 | United-States | <=50K | +| 1 | 50 | Self-emp-not-inc | 83311 | Bachelors | 13 | Married-civ-spouse | Exec-managerial | Husband | White | Male | 0 | 0 | 13 | United-States | <=50K | +| 2 | 38 | Private | 215646 | HS-grad | 9 | Divorced | Handlers-cleaners | Not-in-family | White | Male | 0 | 0 | 40 | United-States | <=50K | +| 3 | 53 | Private | 234721 | 11th | 7 | Married-civ-spouse | Handlers-cleaners | Husband | Black | Male | 0 | 0 | 40 | United-States | <=50K | +| 4 | 28 | Private | 338409 | Bachelors | 13 | Married-civ-spouse | Prof-specialty | Wife | Black | Female | 0 | 0 | 40 | Cuba | <=50K | +``` + +È necessario utilizzare Pandas per rispondere alle seguenti domande: + +- Quante persone di ogni razza sono rappresentate in questo set di dati? Questa dovrebbe essere una serie di Pandas con nomi delle razze come etichette indice. (colonna `race`) +- Qual è l'età media degli uomini? +- Qual è la percentuale di persone che hanno una laurea triennale? +- Quale percentuale di persone con istruzione avanzata (`Bachelors`, `Masters`, o `Doctorate`) guadagnano più di 50K? +- Quale percentuale di persone prive di istruzione avanzata guadagna più di 50K? +- Qual è il numero minimo di ore lavorative a settimana? +- Quale percentuale delle persone che lavorano il numero minimo di ore settimanali ha uno stipendio superiore a 50K? +- Quale paese ha la più alta percentuale di persone che guadagnano >50K e qual è quella percentuale? +- Identifica l'occupazione più popolare per chi guadagna >50K in India. + +Utilizza il codice iniziale nel file `demographic_data_analyzer`. Aggiorna il codice in modo che tutte le variabili impostate su "None" siano impostate al calcolo o al codice appropriato. Arrotonda tutti i decimali al decimo (una cifra decimale) più vicino. + +I test unitari sono scritti per te in `test_module.py`. + +## Sviluppo + +Nello sviluppo, puoi usare `main.py` per testare le tue funzioni. Fai clic sul pulsante "Run" e `main.py` verrà eseguito. + +## Test + +Abbiamo importato i test da `test_module.py` in `main.py` per tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run". + +## Invio + +Copia l'URL del tuo progetto e consegnalo nell'input qua sotto. + +## Fonte Dataset + +Dua, D. e Graff, C. (2019). [UCI Machine Learning Repository](http://archive.ics.uci.edu/ml). Irvine, CA: University of California, School of Information and Computer Science. # --hints-- diff --git a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md index 57193a7842..cf7d8de97d 100644 --- a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md +++ b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md @@ -8,13 +8,60 @@ dashedName: mean-variance-standard-deviation-calculator # --description-- -Crea una funzione che usa Numpy per calcolare la media, varianza e deviazione standard delle righe, colonne ed elementi in una matrice 3 x 3. +Lavorerari a [questo progetto con il nostro codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator). -Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator). +Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: -Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. +- [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore) +- [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore) -Stiamo ancora sviluppando la parte didattica interattiva del curriculum di analisi dei dati con Python. Per ora, dovrai utilizzare altre risorse per imparare a superare questa sfida. +# --instructions-- + +Crea una funzione denominata `calculate()` in `mean_var_std.py` che utilizza Numpy per calcolare la media, la varianza, la deviazione standard, il numero massimo, il numero minimo, e la somma delle righe, delle colonne e degli elementi in una matrice 3 x 3. + +L'input della funzione dovrebbe essere una lista contenente 9 cifre. La funzione dovrebbe convertire la lista in un array Numpy 3 x 3, quindi restituire un dizionario contenente la media, varianza, deviazione standard, numero massimo, numero minimo, e somma su entrambi gli assi e per la matrice appiattita. + +Il dizionario restituito dovrebbe seguire questo formato: + +```py +{ + 'mean': [axis1, axis2, flattened], + 'variance': [axis1, axis2, flattened], + 'standard deviation': [axis1, axis2, flattened], + 'max': [axis1, axis2, flattened], + 'min': [axis1, axis2, flattened], + 'sum': [axis1, axis2, flattened] +} +``` + +Se nella funzione viene passato un elenco contenente meno di 9 elementi, dovrebbe sollevare un'eccezione `ValueError` con il messaggio: "List must contain nine numbers." I valori nel dizionario restituito dovrebbero essere liste e non array Numpy. + +Per esempio, `calculate([0,1,2,3,4,5,6,7,8])` dovrebbe restituire: + +```py +{ + 'mean': [[3.0, 4.0, 5.0], [1.0, 4.0, 7.0], 4.0], + 'variance': [[6.0, 6.0, 6.0], [0.6666666666666666, 0.6666666666666666, 0.6666666666666666], 6.666666666666667], + 'standard deviation': [[2.449489742783178, 2.449489742783178, 2.449489742783178], [0.816496580927726, 0.816496580927726, 0.816496580927726], 2.581988897471611], + 'max': [[6, 7, 8], [2, 5, 8], 8], + 'min': [[0, 1, 2], [0, 3, 6], 0], + 'sum': [[9, 12, 15], [3, 12, 21], 36] +} +``` + +I test unitari per questo progetto sono in `test_module.py`. + +## Sviluppo + +Per lo sviluppo, puoi usare `main.py` per testare la tua funzione `calculate()`. Fai clic sul pulsante "Run" e `main.py` verrà eseguito. + +## Test + +Abbiamo importato i test da `test_module.py` in `main.py` per tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run". + +## Invio + +Copia l'URL del tuo progetto e consegnalo nell'input qua sotto. # --hints-- diff --git a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md index 65abce52f9..7a0f7b2b16 100644 --- a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md +++ b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/page-view-time-series-visualizer.md @@ -8,13 +8,40 @@ dashedName: page-view-time-series-visualizer # --description-- -Per questo progetto visualizzerai i dati delle serie temporali usando un grafico a linea, un grafico a barre, e un diagramma a scatola e baffi. Userai Pandas, matplotlib, e seaborn per visualizzare il set dei dati contentente il numero di visualizzazioni di pagina di ogni giorno per il forum di freecodecamp.org dal 2016-05-09 al 2019-12-03. La visualizzazione dei dati ti aiuterà a riconoscerme schemi nelle visite e identificare crescita annuale e mensile. +Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-page-view-time-series-visualizer). -Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-page-view-time-series-visualizer). +Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: -Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. +- [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore) +- [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore) -Stiamo ancora sviluppando la parte didattica interattiva del curriculum di analisi dei dati con Python. Per ora, dovrai utilizzare altre risorse per imparare a superare questa sfida. +# --instructions-- + +Per questo progetto visualizzerai i dati delle serie temporali usando un grafico a linea, un grafico a barre, e un diagramma a scatola e baffi. Userai Pandas, Matplotlib, e Seaborn per visualizzare un set di dati contenente il numero di pagine viste ogni giorno sul forum di freeCodeCamp.org dal 2016-05-09 al 2019-12-03. La visualizzazione dei dati ti aiuterà a riconoscere schemi nelle visite e identificare crescita annuale e mensile. + +Utilizza i dati per completare le seguenti attività: + +- Utilizza Pandas per importare i dati da "fcc-forum-pageviews.csv". Imposta l'indice sulla colonna "date". +- Pulisci i dati filtrando i giorni in cui le viste della pagina erano nel 2,5% superiore o nel 2,5% inferiore del set di dati. +- Crea una funzione `draw_line_plot` che utilizza Matplotlib per disegnare un grafico a linee simile a "examples/Figure_1.png". Il titolo dovrebbe essere "Daily freeCodeCamp Forum Page Views 5/2016-12/2019". L'etichetta sull'asse x dovrebbe essere "Date" e l'etichetta sull'asse y dovrebbe essere "Page Views". +- Crea una funzione `draw_bar_plot` che disegna un grafico a barre simile a "examples/Figure_2.png". Dovrebbe mostrare le visualizzazioni medie giornaliere delle pagine per ogni mese raggruppato per anno. La legenda dovrebbe mostrare le etichette mensili e avere un titolo di "Months". Sul grafico, l'etichetta sull'asse x dovrebbe essere "Years" e l'etichetta sull'asse y dovrebbe essere "Average Page Views". +- Crea una funzione `draw_box_plot` che utilizza Searborn per disegnare due grafici adiacenti simili a "examples/Figure_3.png". Questi grafici a riquadro devono mostrare come i valori sono distribuiti entro un determinato anno o mese e come si confronta nel tempo. Il titolo del primo grafico dovrebbe essere "Year-wise Box Plot (Trend)" e il titolo del secondo grafico dovrebbe essere "Month-wise Box Plot (Seasonality)". Assicurati che le etichette mensili in basso inizino da "Jan" e che gli assi x e y siano etichettati correttamente. Il boilerplate include comandi per preparare i dati. + +Per ogni grafico, assicurati di utilizzare una copia del frame di dati. I test unitari sono scritti per te in `test_module.py`. + +Il boilerplate include anche comandi per salvare e restituire l'immagine. + +## Sviluppo + +Nello sviluppo, puoi usare `main.py` per testare le tue funzioni. Usa il bottone "run" e `main.py` sarà eseguito. + +## Test + +Abbiamo impotato i test da `test_module.py` in `main.py` per la tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run". + +## Invio + +Copia l'URL del tuo progetto e consegnalo nell'input qua sotto. # --hints-- diff --git a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md index 6130b21f89..e91770879b 100644 --- a/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md +++ b/curriculum/challenges/italian/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md @@ -8,13 +8,44 @@ dashedName: sea-level-predictor # --description-- -In questo progetto, analizzerai un set di dati del cambiamento del livello medio globale del mare dal 1880. Userai i dati per predire il cambiamento del livello del mare fino all'anno 2050 incluso. +Lavorerari a [questo progetto con il nostro codice d'inizio su Replit](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor). -Puoi accedere [alla descrizione completa del progetto e al codice iniziale su Replit](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor). +Stiamo ancora sviluppando la parte didattica interattiva del curriculum di Python. Per ora, ecco alcuni video sul canale YouTube di freeCodeCamp.org che ti insegneranno tutto quello che devi sapere per completare questo progetto: -Dopo essere andato a quel collegamento, fai un fork del progetto. Una volta completato il progetto in base alle istruzioni riportate in 'README.md', invia il link del progetto qui sotto. +- [Video corso Python for Everybody](https://www.freecodecamp.org/news/python-for-everybody/) (14 ore) +- [Video corso Learn Python](https://www.freecodecamp.org/news/learn-python-video-course/) (10 ore) + +# --instructions-- + +Analizzerai un set di dati del cambiamento globale medio del livello del mare dal 1880. Userai i dati per predire il cambiamento del livello del mare fino all'anno 2050 incluso. + +Usa i dati per completare le seguenti attività: + +- Usa Pandas per importare i dati da `epa-sea-level.csv`. +- Usa matplotlib per creare un grafico a dispersione usando la colonna "Year" come asse x e la colonna "CSIRO Adjusted Sea Level" come asse y. +- Usa la funzione `linregress` da `scipy.stats` per ottenere la pendenza e l'intercetta y della retta di regressione. Traccia la retta di regressione sopra la parte superiore del grafico a dispersione. Fai passare la linea attraverso l'anno 2050 per prevedere l'aumento del livello del mare nel 2050. +- Traccia una nuova retta di regressione utilizzando i dati dall'anno 2000 all'anno più recente nel set di dati. Fai passare la linea anche per l'anno 2050 per prevedere quale sarà l'aumento del livello del mare nel 2050 se il tasso di crescita continuerà come ha fatto dal 2000 in poi. +- L'etichetta x dovrebbe essere "Year", l'etichetta y dovrebbe essere "Sea Level (inches)", e il titolo dovrebbe essere "Rise in Sea Level". + +I test unitari sono scritti per te in `test_module.py`. + +Il boilerplate include anche comandi per salvare e restituire l'immagine. + +## Sviluppo + +Nello sviluppo, puoi usare `main.py` per testare le tue funzioni. Usa il bottone "run" e `main.py` sarà eseguito. + +## Test + +Abbiamo importato i test da `test_module.py` in `main.py` per tua convenienza. I test saranno eseguiti automaticamente quando usi il bottone "run". + +## Invio + +Copia l'URL del tuo progetto e consegnalo nell'input qua sotto. + +## Sorgente Dati +[Cambiamento medio assoluto globale del livello del mare](https://datahub.io/core/sea-level-rise), dal 1880 al 2014 da US Environmental Protection Agency usando i dati da CSIRO, 2015; NOAA, 2015. -Stiamo ancora sviluppando la parte didattica interattiva del curriculum di analisi dei dati con Python. Per ora, dovrai utilizzare altre risorse per imparare a superare questa sfida. # --hints-- diff --git a/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md index 64fa70fd2f..865e549f73 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md +++ b/curriculum/challenges/italian/09-information-security/information-security-projects/anonymous-message-board.md @@ -116,49 +116,270 @@ async (getUserInput) => { Puoi inviare una richiesta POST a `/api/replies/{board}` con i dati del modulo che includono un testo `text`, una password `delete_password`, & `thread_id`. Questo aggiornerà la data `bumped_on` alla data del commento. Nell'array `replies` del thread, sarà salvato un oggetto con almeno le proprietà `_id`, `text`, `created_on`, `delete_password`, & `reported`. ```js +async (getUserInput) => { + const url = getUserInput('url'); + const body = await fetch(url + '/api/threads/fcc_test'); + const thread = await body.json(); + const date = new Date(); + const text = `fcc_test_reply_${date}`; + const delete_password = 'delete_me'; + const thread_id = thread[0]._id; + const replyCount = thread[0].replies.length; + + const data = { text, delete_password, thread_id }; + const res = await fetch(url + '/api/replies/fcc_test', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + if (res.ok) { + const checkData = await fetch(`${url}/api/replies/fcc_test?thread_id=${thread_id}`); + const parsed = await checkData.json(); + try { + assert.equal(parsed.replies.length, replyCount + 1); + assert.equal(parsed.replies[0].text, text); + assert.equal(parsed._id, thread_id); + assert.equal(parsed.bumped_on, parsed.replies[0].created_on); + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` Puoi inviare una richiesta GET a `/api/threads/{board}`. Sarà restituito un array dei 10 thread modificati più di recente sulla piattaforma con le 3 risposte più recenti per ciascuno. I campi `reported` e `delete_password` non verranno inviati al client. ```js +async (getUserInput) => { + const url = getUserInput('url'); + const res = await fetch(url + '/api/threads/fcc_test'); + if (res.ok) { + const threads = await res.json(); + try { + assert.equal(res.status, 200); + assert.isAtMost(threads.length, 10); + for (let i = 0; i < threads.length; i++) { + assert.containsAllKeys(threads[i], ["_id", "text", "created_on", "bumped_on", "replies"]); + assert.isAtMost(threads[i].replies.length, 3); + assert.notExists(threads[i].delete_password); + assert.notExists(threads[i].reported); + for (let j = 0; j < threads[i].replies.length; j++) { + assert.notExists(threads[i].replies[j].delete_password); + assert.notExists(threads[i].replies[j].reported); + } + } + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` Puoi inviare una richiesta GET a `/api/replies/{board}?thread_id={thread_id}`. Sarà restituito l'intero thread con tutte le sue risposte, anche qui escludendo gli stessi campi dal client del test precedente. ```js +async (getUserInput) => { + const url = getUserInput('url'); + let res = await fetch(url + '/api/threads/fcc_test'); + const threads = await res.json(); + const thread_id = threads[0]._id; + res = await fetch(`${url}/api/replies/fcc_test?thread_id=${thread_id}`); + if (res.ok) { + const thread = await res.json(); + try { + assert.equal(res.status, 200); + assert.isObject(thread); + assert.containsAllKeys(thread, ["_id", "text", "created_on", "bumped_on", "replies"]); + assert.isArray(thread.replies); + assert.notExists(thread.delete_password); + assert.notExists(thread.reported); + for (let i = 0; i < thread.replies.length; i++) { + assert.notExists(thread.replies[i].delete_password); + assert.notExists(thread.replies[i].reported); + } + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` Puoi inviare una richiesta DELETE a `/api/threads/{board}` e passarle `thread_id` & `delete_password` per eliminare il thread. Sarà restituita la stringa `incorrect password` o `success`. ```js +async (getUserInput) => { + const url = getUserInput('url'); + let res = await fetch(url + '/api/threads/fcc_test'); + const threads = await res.json(); + const thread_id = threads[0]._id; + let data = { thread_id, delete_password: "wrong_password" }; + const res_invalid = await fetch(url + '/api/threads/fcc_test', { + method: 'DELETE', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + data = { thread_id, delete_password: "delete_me" }; + res = await fetch(url + '/api/threads/fcc_test', { + method: 'DELETE', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + if (res.ok) { + const deleted = await res.text(); + const not_deleted = await res_invalid.text(); + try { + assert.equal(res.status, 200); + assert.equal(deleted, "success"); + assert.equal(not_deleted, "incorrect password"); + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` Puoi inviare una richiesta DELETE a `/api/replies/{board}` e passarle `thread_id`, `reply_id`, & `delete_password`. Sarà restituita la stringa `incorrect password` o `success`. Al successo, il testo del `reply_id` sarà cambiato in `[deleted]`. ```js +async (getUserInput) => { + const url = getUserInput('url'); + const thread_data = { + text: "fcc_test_thread", + delete_password: "delete_me", + }; + await fetch(`${url}/api/threads/fcc_test`, { + method: "POST", + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(thread_data) + }); + let res = await fetch(`${url}/api/threads/fcc_test`); + let threads = await res.json(); + const thread_id = threads[0]._id; + + const reply_data = { thread_id, text: "fcc_test_reply", delete_password: "delete_me" }; + await fetch(`${url}/api/replies/fcc_test`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(reply_data) + }); + res = await fetch(`${url}/api/threads/fcc_test`); + threads = await res.json(); + const reply_id = threads[0].replies[0]._id; + + const data = { thread_id, reply_id, delete_password: "delete_me" }; + res = await fetch(url + '/api/replies/fcc_test', { + method: 'DELETE', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + + if (res.ok) { + const deleted = await res.text(); + try { + assert.equal(res.status, 200); + assert.equal(deleted, "success"); + res = await fetch(`${url}/api/replies/fcc_test?thread_id=${thread_id}`); + const thread = await res.json(); + assert.equal(thread._id, thread_id); + assert.equal(thread.replies[0]._id, reply_id); + assert.equal(thread.replies[0].text, "[deleted]"); + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` -Puoi inviare una richiesta PUT a `/api/threads/{board}` e passarle il `thread_id`. Sarà restituita la stringa `success`. Il valore `reported` del `thread_id` sarà cambiato in `true`. +Puoi inviare una richiesta PUT a `/api/threads/{board}` e passarle il `thread_id`. Sarà restituita la stringa `reported`. Il valore `reported` del `thread_id` sarà cambiato in `true`. ```js +async (getUserInput) => { + const url = getUserInput('url'); + let res = await fetch(`${url}/api/threads/fcc_test`); + const threads = await res.json(); + const report_id = threads[0]._id; + const data = { report_id }; + + res = await fetch(`${url}/api/threads/fcc_test`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + + if (res.ok) { + const reported = await res.text(); + try { + assert.equal(res.status, 200); + assert.equal(reported, "reported"); + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` -Puoi inviare una richiesta PUT a `/api/replies/{board}` e passarle `thread_id`, `reply_id`. Sarà restituita la stringa `success`. Il valore `reported` di `reply_id` sarà cambiato in `true`. +Puoi inviare una richiesta PUT a `/api/replies/{board}` e passarle `thread_id`, `reply_id`. Sarà restituita la stringa `reported`. Il valore `reported` di `reply_id` sarà cambiato in `true`. ```js +async (getUserInput) => { + const url = getUserInput('url'); + let res = await fetch(`${url}/api/threads/fcc_test`); + const threads = await res.json(); + const thread_id = threads[0]._id; + const reply_id = threads[0].replies[0]._id; + const data = { thread_id, reply_id }; + + res = await fetch(`${url}/api/replies/fcc_test`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(data) + }); + + if (res.ok) { + const reported = await res.text(); + try { + assert.equal(res.status, 200); + assert.equal(reported, "reported"); + } catch (err) { + throw new Error(err.responseText || err.message); + } + } else { + throw new Error(`${res.status} ${res.statusText}`); + } +}; ``` Tutti i 10 test funzionali sono completi e superati. ```js - +async (getUserInput) => { + const tests = await fetch(getUserInput('url') + '/_api/get-tests'); + const parsed = await tests.json(); + assert.isTrue(parsed.length >= 10); + parsed.forEach((test) => { + assert.equal(test.state, 'passed'); + assert.isAtLeast(test.assertions.length, 1); + }); +}; ``` # --solutions-- diff --git a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md index a053ff75ec..7a4026bc2d 100644 --- a/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md +++ b/curriculum/challenges/italian/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md @@ -20,7 +20,7 @@ bcrypt.hash(myPlaintextPassword, saltRounds, (err, hash) => { # --instructions-- -Aggiungi questa funzione di hashing al tuo server (abbiamo già definito le variabili usate nella funzione da usare) e scrivila sulla console per visualizzarla! A questo punto normalmente salveresti l'hash (la password crittografata) nel tuo database. +Aggiungi questa funzione di hashing al tuo server (abbiamo già definito le variabili usate nella funzione da usare) e registrala nella console per visualizzarla! A questo punto normalmente salveresti l'hash (la password crittografata) nel tuo database. Adesso, quando hai bisogno di capire se un nuovo ingresso ha gli stessi dati della password crittografata, potrai utilizzare la funzione di confronto. @@ -30,7 +30,7 @@ bcrypt.compare(myPlaintextPassword, hash, (err, res) => { }); ``` -Aggiungilo alla tua funzione di crittografia esistente (dal momento che devi aspettare che l'hash venga completato prima di chiamare la funzione di confronto) dopo aver scritto l'hash e il log 'res' completati sulla console all'interno del confronto. Dovresti vedere nella console una passwrd crittografata, poi viene stampato 'true'! Se cambi 'myPlaintextPassword' nella funzione di confronto con 'someOtherPlaintextPassword' allora dovrebbe restituire false. +Aggiungilo alla tua funzione di hash esistente (dal momento che devi attendere che l'hash venga completato prima di chiamare la funzione di confronto) dopo aver registrato l'hash e il log 'res' completati nella console durante il confronto. Dovresti vedere nella console una passwrd crittografata, poi viene stampato 'true'! Se cambi 'myPlaintextPassword' nella funzione di confronto con 'someOtherPlaintextPassword' allora dovrebbe restituire false. ```js bcrypt.hash('passw0rd!', 13, (err, hash) => { diff --git a/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-1.md b/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-1.md index a3ade71b0f..4838b35577 100644 --- a/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-1.md +++ b/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-1.md @@ -1,6 +1,6 @@ --- id: 602da0c222201c65d2a019f5 -title: "Learn SQL by Building a Student Database: Part 1" +title: "Apprendi SQL costruendo un database degli studenti: Parte 1" challengeType: 12 helpCategory: Relational Databases url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-1 diff --git a/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-2.md b/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-2.md index 4bb1a618c0..5983d8b28a 100644 --- a/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-2.md +++ b/curriculum/challenges/italian/13-relational-databases/learn-relational-databases/learn-sql-by-building-a-student-database-part-2.md @@ -1,6 +1,6 @@ --- id: 618590adb0730ca724e37672 -title: "Learn SQL by Building a Student Database: Part 2" +title: "Apprendi SQL costruendo un database degli studenti: Parte 2" challengeType: 12 helpCategory: Relational Databases url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-2 diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md new file mode 100644 index 0000000000..83a27d403c --- /dev/null +++ b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md @@ -0,0 +1,47 @@ +--- +id: bd7158d8c242eddfaeb5bd13 +title: Creare una pagina Web per il Portfolio Personale +challengeType: 3 +forumTopicId: 301143 +dashedName: build-a-personal-portfolio-webpage +--- + +# --description-- + +**Obiettivo:** Costruire un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . + +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. + +Puoi utilizzare HTML, JavaScript, e CSS per completare questo progetto. CSS è raccomandato perché è l'argomento delle lezioni viste finora e dovresti fare pratica con il CSS di base. Se lo desideri puoi anche utilizzare Bootstrap o SASS. Ulteriori tecnologie (solo per fare un esempio jQuery, React, Angular, o Vue) non sono raccomandate per questo progetto, e usarle è a tuo rischio. Altri progetti ti daranno la possibilità di lavorare con diversi stack tecnologici come React. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! + +**User Story #1:** Il mio portfolio dovrebbe avere una sezione di benvenuto con un id di `welcome-section`. + +**User Story #2:** La sezione di benvenuto dovrebbe avere un elemento `h1` che contiene testo. + +**User Story #3:** Il mio portfolio dovrebbe avere una sezione progetti con un id di `projects`. + +**User Story #4:** La sezione progetti dovrebbe contenere almeno un elemento con una classe `project-tile` che contenga un progetto. + +**User Story #5:** La sezione progetti dovrebbe contenere almeno un link a un progetto. + +**User Story #6:** Il mio portfolio dovrebbe avere una navbar con un id di `navbar`. + +**User Story #7:** La barra di navigazione dovrebbe contenere almeno un link su cui posso cliccare per navigare in diverse sezioni della pagina. + +**User Story #8:** Il mio portfolio dovrebbe avere un link con un id di `profile-link`, che apre il mio profilo GitHub o FCC in una nuova scheda. + +**User Story #9:** Il mio portfolio dovrebbe avere almeno una media query. + +**User Story #10:** L'altezza della sezione di benvenuto dovrebbe essere uguale all'altezza della viewport. + +**User Story #11:** La barra di navigazione dovrebbe sempre essere in cima alla viewport. + +Puoi costruire il tuo progetto usando questo modello CodePen e facendo clic su `Save` per creare il tuo pen. Oppure puoi usare questo link CDN per eseguire i test in qualsiasi ambiente tu voglia: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` + +Una volta fatto, invia l'URL del tuo progetto di lavoro con tutti i suoi test superati. + +# --solutions-- + +```html +// solution required +``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md new file mode 100644 index 0000000000..f60b6700f1 --- /dev/null +++ b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md @@ -0,0 +1,55 @@ +--- +id: 587d78af367417b2b2512b04 +title: Costruire la Landing Page per un prodotto +challengeType: 3 +forumTopicId: 301144 +dashedName: build-a-product-landing-page +--- + +# --description-- + +**Obiettivo:** Costruire un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . + +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. + +Puoi utilizzare HTML, JavaScript, e CSS per completare questo progetto. CSS è raccomandato perché è l'argomento delle lezioni viste finora e dovresti fare pratica con il CSS di base. Se lo desideri puoi anche utilizzare Bootstrap o SASS. Ulteriori tecnologie (solo per fare un esempio jQuery, React, Angular, o Vue) non sono raccomandate per questo progetto, e usarle è a tuo rischio. Altri progetti ti daranno la possibilità di lavorare con diversi stack tecnologici come React. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! + +**User Story#1:** La pagina di destinazione del prodotto dovrebbe avere un elemento `header` con un corrispondente `id="header"`. + +**User Story #2:** Posso vedere un'immagine all'interno dell'elemento `header` con un corrispondente `id="header-img"`. Un logo aziendale qui starebbe bene. + +**User Story #3:** All'interno dell'elemento `#header` posso vedere un elemento `nav` con un corrispondente `id="nav-bar"`. + +**User Story #4:** Posso vedere almeno tre elementi cliccabili all'interno dell'elemento `nav`, ognuno con la classe `nav-link`. + +**User Story #5:** Quando clicco su un pulsante `.nav-link` nell'elemento `nav`, sono portato nella sezione corrispondente della pagina di destinazione. + +**User Story #6:** Posso guardare un video incorportato del prodotto con `id="video"`. + +**User Story #7:** La mia pagina iniziale ha un elemento `form` con un corrispondente `id="form"`. + +**User Story #8:** All'interno del modulo c'è un campo `input` con `id="email"` dove posso inserire un indirizzo email. + +**User Story #9:** Il campo di input `#email` dovrebbe avere un testo segnaposto per far sapere all'utente a cosa serve il campo. + +**User Story #10:** Il campo di input `#email` utilizza la validazione HTML5 per confermare che il testo inserito è un indirizzo email. + +**User Story #11:** All'interno del modulo, c'è un `input` di tipo submit con un `id="submit"`. + +**User Story #12:** Quando clicco l'elemento `#submit`, l'email viene inviata a una pagina statica (usa questo URL fittizio: ). + +**User Story #13:** La barra di navigazione dovrebbe sempre essere in cima alla viewport. + +**User Story #14:** La landing page del prodotto dovrebbe avere almeno una media query. + +**User Story #15:** La landing page del prodotto dovrebbe utilizzare la flexbox CSS almeno una volta. + +Puoi costruire il tuo progetto usando questo modello CodePen e cliccando `Save` per creare il tuo pen. Oppure puoi usare questo link CDN per eseguire i test in qualsiasi ambiente tu voglia: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` + +Una volta fatto, invia l'URL al tuo progetto di lavoro con tutti i suoi test passati. + +# --solutions-- + +```html +// solution required +``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md new file mode 100644 index 0000000000..b312964e38 --- /dev/null +++ b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md @@ -0,0 +1,57 @@ +--- +id: 587d78af367417b2b2512b03 +title: Crea un modulo di sondaggio +challengeType: 3 +forumTopicId: 301145 +dashedName: build-a-survey-form +--- + +# --description-- + +**Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . + +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. + +Puoi utilizzare HTML, JavaScript, e CSS per completare questo progetto. CSS è raccomandato perché è l'argomento delle lezioni viste finora e dovresti fare pratica con il CSS di base. Se lo desideri puoi anche utilizzare Bootstrap o SASS. Ulteriori tecnologie (solo per fare un esempio jQuery, React, Angular, o Vue) non sono raccomandate per questo progetto, e usarle è a tuo rischio. Altri progetti ti daranno la possibilità di lavorare con diversi stack tecnologici come React. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! + +**User Story #1:** Posso vedere un titolo con `id="title"` in un testo di dimensioni H1. + +**User Story #2:** Posso vedere una breve spiegazione con `id="description"` in un testo di dimensione P. + +**User Story #3:** Posso vedere un `form` con `id="survey-form"`. + +**User Story #4:** All'interno del modulo, mi viene chiesto di inserire il mio nome in un campo con `id="name"`. + +**User Story #5:** All'interno del modulo, mi viene chiesto di inserire un'email in un campo con `id="email"`. + +**User Story #6:** Se inserisco un'email non formattata correttamente, vedrò un errore di validazione HTML5. + +**User Story #7:** All'interno del modulo, posso inserire un numero in un campo con `id="number"`. + +**User story #8:** Se inserisco caratteri non numerici nell'input di tipo number, vedrò un errore di validazione HTML5. + +**User story #9:** Se inserisco numeri al di fuori dell'intervallo dell'input numerico, che sono definiti dagli attributi `min` e `max`, vedrò un errore di validazione HTML5. + +**User story #10:** Per il nome, l'e-mail, e i campi di input numerici all'interno del modulo posso vedere le etichette corrispondenti che descrivono lo scopo di ogni campo con i seguenti id: `id="name-label"`, `id="email-label"`e `id="number-label"`. + +**User story#11:** Per i campi di input di nome, email e numero, posso vedere il testo segnaposto che mi dà una descrizione o delle istruzioni per ogni campo. + +**User story #12:** All'interno del modulo, posso selezionare un'opzione da un menu a discesa che ha un corrispondente `id="dropdown"`. + +**User story #13:** All'interno del modulo, posso selezionare un campo da uno o più gruppi di pulsanti di opzione. Ogni gruppo dovrebbe essere raggruppato usando l'attributo `name`. + +**User story #14:** All'interno del modulo, posso selezionare diversi campi da una serie di caselle di spunta, ciascuno dei quali deve avere un attributo `value`. + +**User story #15:** All'interno del modulo, mi viene presentata alla fine una `textarea`, per inserire ulteriori commenti. + +**User story #16:** All'interno del modulo, mi viene presentato un pulsante con `id="submit"` per inviare tutti i miei input. + +Puoi costruire il tuo progetto usando questo modello CodePen e facendo click su `Save` per creare il tuo pen. Oppure puoi usare questo link CDN per eseguire i test in qualsiasi ambiente tu voglia: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` + +Una volta fatto, invia l'URL del tuo progetto di lavoro con tutti i suoi test superati. + +# --solutions-- + +```html +// solution required +``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md new file mode 100644 index 0000000000..517d9685a2 --- /dev/null +++ b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md @@ -0,0 +1,55 @@ +--- +id: 587d78b0367417b2b2512b05 +title: Creare una pagina di documentazione tecnica +challengeType: 3 +forumTopicId: 301146 +dashedName: build-a-technical-documentation-page +--- + +# --description-- + +**Obiettivo:** Costuire un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . + +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. + +Puoi utilizzare HTML, JavaScript, e CSS per completare questo progetto. CSS è raccomandato perché è l'argomento delle lezioni viste finora e dovresti fare pratica con il CSS di base. Se lo desideri puoi anche utilizzare Bootstrap o SASS. Ulteriori tecnologie (solo per fare un esempio jQuery, React, Angular, o Vue) non sono raccomandate per questo progetto, e usarle è a tuo rischio. Altri progetti ti daranno la possibilità di lavorare con diversi stack tecnologici come React. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! + +**User Story #1:** Posso vedere un elemento `main` con un corrispondente `id="main-doc"`, che contiene il contenuto principale della pagina (documentazione tecnica). + +**User story #2:** All'interno dell'elemento `#main-doc`, posso vedere diversi elementi `section`, ciascuno con una classe `main-section`. Dovrebbero essercene almeno 5. + +**User Story #3:** Il primo elemento all'interno di ogni `.main-section` dovrebbe essere un elemento `header` che contiene un testo che descrive l'argomento di quella sezione. + +**User Story #4:** Ogni elemento `section` con la classe `main-section` dovrebbe avere anche un id che corrisponde al testo di ogni `header` contenuto al suo interno. Qualsiasi spazio deve essere sostituito con un underscore (ad es. La sezione `section` che contiene l'intestazione "JavaScript e Java" dovrebbe avere un corrispondente `id="JavaScript_and_Java"`). + +**User Story #5:** Gli elementi `.main-section` dovrebbero contenere almeno 10 elementi `p` in totale (non ciascuno). + +**User Story #6:** Gli elementi `.main-section` dovrebbero contenere almeno 5 elementi `code` in totale (non ciascuno). + +**User story #7:** Gli elementi `.main-section` dovrebbero contenere almeno 5 elementi `li` in totale (non ciascuno). + +**User story #8:** Posso vedere un elemento `nav` con un corrispondente `id="navbar"`. + +**User Story #9:** L'elemento navbar dovrebbe contenere un elemento `header` che contiene del testo che descrive l'argomento della documentazione tecnica. + +**User story #10:** Inoltre, la barra di navigazione dovrebbe contenere degli elementi link (`a`) con la classe `nav-link`. Dovrebbe essercene uno per ogni elemento di classe `main-section`. + +**User story #11:** L'elemento `header` nella barra di navigazione deve venire prima di qualsiasi elemento link (`a`) nella barra di navigazione. + +**User story #12:** Ogni elemento di classe `nav-link` dovrebbe contenere un testo che corrisponde al testo `header` di ogni `section` (ad es. se hai una sezione/intestazione "Ciao mondo", la tua barra di navigazione dovrebbe avere un elemento che contiene il testo "Ciao mondo"). + +**User story #13:** Quando clicco su un elemento della barra di navigazione, la pagina dovrebbe passare alla sezione corrispondente dell'elemento `main-doc` (ad es. se clicco su un elemento `nav-link` che contiene il testo "Ciao mondo", la pagina passa a un elemento `section` che ha quell'id e contiene il corrispondente `header`. + +**User story #14:** Su dispositivi di dimensioni regolari (computer portatili, desktop), l'elemento con `id="navbar"` dovrebbe essere mostrato sul lato sinistro dello schermo e dovrebbe essere sempre visibile all'utente. + +**User story #15:** La pagina Documentazione Tecnica dovrebbe utilizzare almeno una media query. + +Puoi costruire il tuo progetto usando questo modello CodePen e cliccando `Save` per creare il tuo pen. Oppure puoi usare questo link CDN per eseguire i test in qualsiasi ambiente tu voglia: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` + +Una volta fatto, invia l'URL al tuo progetto di lavoro con tutti i suoi test passati. + +# --solutions-- + +```html +// solution required +``` diff --git a/curriculum/challenges/italian/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md new file mode 100644 index 0000000000..64d3a3d987 --- /dev/null +++ b/curriculum/challenges/italian/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md @@ -0,0 +1,43 @@ +--- +id: bd7158d8c442eddfaeb5bd18 +title: Crea una pagina di tributo +challengeType: 3 +forumTopicId: 301147 +dashedName: build-a-tribute-page +--- + +# --description-- + +**Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . + +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. + +Puoi utilizzare HTML, JavaScript, e CSS per completare questo progetto. CSS è raccomandato perché è l'argomento delle lezioni viste finora e dovresti fare pratica con il CSS di base. Se lo desideri puoi anche utilizzare Bootstrap o SASS. Ulteriori tecnologie (solo per fare un esempio jQuery, React, Angular, o Vue) non sono raccomandate per questo progetto, e usarle è a tuo rischio. Altri progetti ti daranno la possibilità di lavorare con diversi stack tecnologici come React. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! + +**User story #1:** La mia pagina di tributo dovrebbe avere un elemento con un corrispondente `id="main"`che contiene tutti gli altri elementi. + +**User Story #2:** Dovrei vedere un elemento con un corrispondente `id="title"`che contiene una stringa (cioè un testo) che descrive l'oggetto della pagina di tributo (ad esempio "Dr. Norman Borlaug"). + +**User story #3:** Dovrei vedere un elemento `figure` oppure un elemento `div` con un corrispondente `id="img-div"`. + +**User story #4:** All'interno dell'elemento `img-div`, dovrei vedere un elemento `img` con un corrispondente `id="image"`. + +**User story #5:** All'interno dell'elemento `img-div`, dovrei vedere un elemento con un corrispondente `id="img-caption"` che contiene un testo che descrive l'immagine mostrata in `img-div`. + +**User Story #6:** Dovrei vedere un elemento con un corrispondente `id="tribute-info"`, che contiene dei testi che descrivono l'oggetto della pagina di tributo. + +**User story #7:** Dovrei vedere un elemento `a` con un corrispondente `id="tribute-link"`, che si collega a un sito esterno che contiene ulteriori informazioni sull'oggetto della pagina di tributo. SUGGERIMENTO: Dovresti dare al tuo elemento un attributo `target` e impostarlo a `_blank` in modo che il link si apra in una nuova scheda (`target="_blank"`). + +**User story #8:** L'elemento `img` dovrebbe ridimensionarsi responsivamente, rispetto alla larghezza dell'elemento principale, senza superare la dimensione originale. + +**User story #9:** L'elemento `img` dovrebbe essere centrato all'interno del suo elemento genitore. + +Puoi costruire il tuo progetto usando questo modello CodePen e facendo clic su `Save` per creare il tuo pen. Oppure puoi usare questo link CDN per eseguire i test in qualsiasi ambiente tu voglia: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js`. + +Una volta fatto, invia l'URL del tuo progetto di lavoro con tutti i suoi test passati. + +# --solutions-- + +```html +// solution required +``` diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/react/render-conditionally-from-props.md b/curriculum/challenges/japanese/03-front-end-development-libraries/react/render-conditionally-from-props.md index 62d5b97a86..f2c265a8d9 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/react/render-conditionally-from-props.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/react/render-conditionally-from-props.md @@ -8,7 +8,7 @@ dashedName: render-conditionally-from-props # --description-- -ここまで、いつ、何をレンダーするのかを条件で決める方法として、`if/else`、`&&`、および三項演算子 (` 条件 ? True の場合の式 : False の場合の式`) を使用する方法を紹介しました。 しかし、まだ説明していない重要なトピックが一つあります。それは、これらの概念はそのいずれかまたはすべてを、React の別の強力な機能である props と組み合わせることができる、ということです。 props を使用してコードを条件付きでレンダーすることは、React の開発者にとってはごく一般的な作業です。つまり、与えられた prop の値を利用することで、何を表示するかを自動的に決めることができます。 +So far, you've seen how to use `if/else`, `&&`, and the ternary operator (`condition ? expressionIfTrue : expressionIfFalse`) to make conditional decisions about what to render and when. However, there's one important topic left to discuss that lets you combine any or all of these concepts with another powerful React feature: props. Using props to conditionally render code is very common with React developers — that is, they use the value of a given prop to automatically make decisions about what to render. このチャレンジでは、props に基づいてレンダー処理を決定する子コンポーネントを設定します。 また、三項演算子も使用しますが、前のチャレンジで説明した他のいくつかの概念が、このチャレンジでも同じように役立つかもしれません。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md index 396f67965c..ee407b5769 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md @@ -27,8 +27,8 @@ dashedName: circles-of-given-radius-through-two-points
  • 2点が直径上にある場合は、1 点を返します。 ただし、半径もゼロの場合は、"Radius Zero" を返します。
  • -
  • 2点が完全に一致する場合は、 "Coincident point. Infinite solutions" を返します。
  • -
  • 2点が直径よりも離れている場合は、"No intersection. Points further apart than circle diameter" を返します。
  • +
  • If points are coincident, return "Coincident point. Infinite solutions".
  • +
  • If points are farther apart than the diameter, return "No intersection. Points further apart than circle diameter".
**入力例** @@ -61,13 +61,13 @@ assert.deepEqual(getCircles(...testCases[0]), answers[0]); assert.deepEqual(getCircles(...testCases[1]), answers[1]); ``` -`getCircles([0.1234, 0.9876], [0.1234, 0.9876], 2.0)` は `Coincident point. Infinite solutions `を返します。 +`getCircles([0.1234, 0.9876], [0.1234, 0.9876], 2.0)` should return `Coincident point. Infinite solutions` ```js assert.deepEqual(getCircles(...testCases[2]), answers[2]); ``` -`getCircles([0.1234, 0.9876], [0.8765, 0.2345], 0.5)` は、`No intersection. Points further apart than circle diameter ` を返します。 +`getCircles([0.1234, 0.9876], [0.8765, 0.2345], 0.5)` should return `No intersection. Points further apart than circle diameter` ```js assert.deepEqual(getCircles(...testCases[3]), answers[3]); diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/discordian-date.md b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/discordian-date.md index 89ef17353f..a887ea8d01 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/discordian-date.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/discordian-date.md @@ -36,7 +36,7 @@ assert( ); ``` -`discordianDate(new Date(2012, 1, 29))` は `"Setting Orange, the 60th day of Chaos in the YOLD 3178. Celebrate St. Tib\'s Day!" ` を返します。 +`discordianDate(new Date(2012, 1, 29))` should return `"Setting Orange, the 60th day of Chaos in the YOLD 3178. Celebrate St. Tib\'s Day!"`. ```js assert( @@ -54,7 +54,7 @@ assert( ); ``` -`discordianDate(new Date(2010, 0, 5))` は `"Setting Orange, the 5th day of Chaos in the YOLD 3176. Celebrate Mungday!" ` を返します。 +`discordianDate(new Date(2010, 0, 5))` should return `"Setting Orange, the 5th day of Chaos in the YOLD 3176. Celebrate Mungday!"`. ```js assert( @@ -63,7 +63,7 @@ assert( ); ``` -`discordianDate(new Date(2011, 4, 3))` は `"Pungenday, the 50th day of Discord in the YOLD 3177. Celebrate Discoflux!" ` を返します。 +`discordianDate(new Date(2011, 4, 3))` should return `"Pungenday, the 50th day of Discord in the YOLD 3177. Celebrate Discoflux!"`. ```js assert( diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md index e55e133678..7b9e45aa50 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md @@ -168,7 +168,7 @@ assert.deepEqual(markov(rules[1], tests[1]), outputs[1]); assert.deepEqual(markov(rules[2], tests[2]), outputs[2]); ``` -`markov(["_+1 -> _1+","1+1 -> 11+","1! -> !1",",! -> !+","_! -> _","1*1 -> x,@y","1x -> xX","X, -> 1,1","X1 -> 1X","_x -> _X",",x -> ,X","y1 -> 1y","y_ -> _","1@1 -> x,@y","1@_ -> @_",",@_ -> !_","++ -> +","_1 -> 1","1+_ -> 1","_+_ -> "],"_1111*11111_")` は「11111111111111111111」を返します。 +`markov(["_+1 -> _1+","1+1 -> 11+","1! -> !1",",! -> !+","_! -> _","1*1 -> x,@y","1x -> xX","X, -> 1,1","X1 -> 1X","_x -> _X",",x -> ,X","y1 -> 1y","y_ -> _","1@1 -> x,@y","1@_ -> @_",",@_ -> !_","++ -> +","_1 -> 1","1+_ -> 1","_+_ -> "],"_1111*11111_")` should return "11111111111111111111". ```js assert.deepEqual(markov(rules[3], tests[3]), outputs[3]); diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/factorial.md b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/factorial.md index 31317b8c5b..8dcbb49e83 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/factorial.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/rosetta-code/factorial.md @@ -22,7 +22,7 @@ dashedName: factorial
  • 4! = 4 * 3 * 2 * 1 = 24
  • -**注記:** `0! = 1` +**Note:** `0! = 1` # --hints-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md index 80e9d5cae5..e07ca148ec 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md @@ -8,7 +8,7 @@ dashedName: render-conditionally-from-props # --description-- -Até agora, você viu como usar a condição `if/else`, `&&` e o operador ternário (`condition ? expressionIfTrue : expressionIfFalse`) para tomar decisões condicionais sobre o que renderizar e quando. No entanto, resta um tópico importante para discutir que permite que você combine todos esses conceitos com outro poderoso recurso React: props. Usar props para renderizar código condicionalmente é muito comum entre desenvolvedores React — isto é, eles usam o valor de uma determinada propriedade para tomar decisões automaticamente sobre o que renderizar. +Até agora, você viu como usar o `if/else`, `&&` e o operador ternário (`condition ? expressionIfTrue : expressionIfFalse`) para tomar decisões condicionais sobre o que renderizar e quando. No entanto, resta um tópico importante para discutir que permite que você combine todos esses conceitos com outro poderoso recurso do React: props. Usar props para renderizar código condicionalmente é muito comum entre desenvolvedores React — isto é, eles usam o valor de uma determinada propriedade para tomar decisões automaticamente sobre o que renderizar. Neste desafio, você vai configurar um componente filho para tomar decisões de renderização com base em props. Você também usará o operador ternário, mas você pode ver como vários dos outros conceitos que foram abordados nos últimos desafios poderão ser igualmente úteis neste contexto. diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/data-structures/check-if-binary-search-tree.md b/curriculum/challenges/portuguese/10-coding-interview-prep/data-structures/check-if-binary-search-tree.md index f3196fa705..88747f986f 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/data-structures/check-if-binary-search-tree.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/data-structures/check-if-binary-search-tree.md @@ -39,6 +39,24 @@ assert( ); ``` +`isBinarySearchTree()` deve retornar false quando verificado com uma árvore que não seja uma árvore binária de busca. + +```js +assert( + (function () { + var test = false; + if (typeof BinarySearchTree !== 'undefined') { + test = new BinarySearchTree(); + } else { + return false; + } + test.push(1); + test.root.left = new Node(1); + return isBinarySearchTree(test) == false; + })() +); +``` + # --seed-- ## --after-user-code-- @@ -114,7 +132,7 @@ function isBinarySearchTree(tree) { function checkTree(node) { if (node.left != null) { const left = node.left; - if (left.value > node.value) { + if (left.value >= node.value) { isBST = false; } else { checkTree(left); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md index b90cd091d3..33a5cadcf7 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/circles-of-given-radius-through-two-points.md @@ -27,8 +27,8 @@ Implementa uma função que recebe dois pontos e um raio e retorna os dois círc
    • Se os pontos estão no diâmetro, retorne um ponto. No entanto, se o raio também for zero, retorne "Radius Zero".
    • -
    • Se os pontos forem coincidentes, retorne "Coincident point. Infinite solutions".
    • -
    • Se os pontos estiverem mais distantes do que o diâmetro, retorne "No intersection. Points further apart than circle diameter".
    • +
    • Se os pontos forem coincidentes, retornar "Coincident point. Infinite solutions".
    • +
    • Se os pontos forem mais distantes do que o diâmetro, retornar "No intersection. Points further apart than circle diameter".
    **Exemplo de entradas:** diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md index 18fcf08121..9e6db66901 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/execute-a-markov-algorithm.md @@ -80,17 +80,17 @@ O texto de exemplo `I bought a B of As W my Bgage from T S.` deve gerar `I bough Esta regra testa a ordem correta de varredura das regras e pode capturar rotinas de substituição que fazem a varredura na ordem errada. Ela implementa um mecanismo de multiplicação unária geral. (Observe que a expressão de entrada deve ser colocada dentro dos sublinhados nesta implementação.) -
    ### Mecanismo de multiplicação unária, para testar implementações do algoritmo de Markov
    -### Por Donal Fellows.
    +
    ### Mecanismo de multiplicação unária para testar implementações do Algoritmo de Markov
    +### De Donal Fellows.
     # Mecanismo de adição unária
     _+1 -> _1+
     1+1 -> 11+
    -# Passada para converter da divisão de multiplicação em simples
    -# adição
    +# Passe para converter da divisão da multiplicação para uma
    +# adição comum
     1! -> !1
     ,! -> !+
     _! -> _
    -# Multiplicação unária pela duplicação do lado esquerdo, o lado direito de vezes
    +# Multiplicação unária duplicando o lado esquerdo o número de vezes igual ao lado direito
     1*1 -> x,@y
     1x -> xX
     X, -> 1,1