Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema Javascript esercizio

    Materiale per colloquio tecnico: Developer entry level


    Esercizio: Crittografia per sostituzione
    Scenario: Un nostro cliente, per un’esigenza interna, ci richiede di sviluppare una funziona che, prendendo
    in ingresso una stringa, restituisca tale stringa crittografata attraverso l’algoritmo di crittografia per
    sostituzione.
    L’algoritmo richiesto prevede la presenza di due alfabeti, uno di partenza ordinato secondo lo standard
    comune (ABCDEFGHIJKLMNOPQRSTUVWXYZ) ed uno ordinato in maniera casuale. Fornita una stringa in
    ingresso a questa funzione, la crittografia avviene sostituendo a ciascuna lettera quella che, nell’alfabeto
    disordinato, occupa la posizione della lettera nell’alfabeto ordinato.
    Per questo esercizio, il secondo alfabeto è il seguente: “JZXTRSEHCYDBGIFKVUMANWQPLO”
    Esempio: parola in ingresso “CANE”
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    J Z X T R S E H C Y D B G I F K V U M A N W Q P L O


    La prima lettera, “C”, occupa la terza posizione. Nell’alfabeto disordinato la terza posizione è occupata dalla
    “X”, per cui la C viene criptata con la X
    La seconda lettera, “A”, occupa la prima posizione. Nell’alfabeto disordinato la prima posizione è occupata
    dalla “J”, per cui la A viene criptata con la J.
    Proseguendo, la parola CANE viene dunque criptata in “XJIR”


    Regole:
    Può essere utilizzato qualunque linguaggio si scelga per la risoluzione dell’esercizio. È ammesso consultare il
    web per raccogliere spunti e suggerimenti, ma è seriamente sconsigliato copiare l’intero esercizio. Durante
    il colloquio tecnico verrà discussa la soluzione proposta e verranno richieste delle modifiche per verificare
    la comprensione del codice scritto.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da Davide13 Visualizza il messaggio
    Esercizio: Crittografia per sostituzione
    [...]
    Scenario:
    [...]
    Regole:
    [...]
    Grazie per averci riportato questo esercizio.
    Quindi che dire... buona fortuna!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    L'esercizio è veramente semplice, ci vogliono cinque minuti a finirlo:

    1) trasforma i due alfabeti in array con le lettere assegnate ad un index univoco,
    utilizzando metodo degli array split(), nel caso sia necessario applica il
    metodo stringa toLowerCase() per rendere le lettere minuscole.
    Ovviamente è scontato che i due alfabeti vengano assegnati ognuno ad una variabile.

    2) crea un funzione che prenda un argomento stringa
    function quellochevuoi(str){}

    3) rendi l'argomento passato alla funzione un array utilizzando sempre il medoto split()

    4) ricava un array di index dei caratteri dall' alfabeto1 (normale)
    mappa l'array ottenuto con il metodo map(letter=>...) ed utilizza al suo interno alfabeto1.indexOf(letter)
    per ricavare l'indice della relativa lettera iterata da map(), cosi da ottenere per la stringa
    'CANE' passata alla funzione un array index tipo [2, 0, 13, 4]

    5) ottieni una stringa criptata utilizzando sempre il metodo map() su index array (punto4)
    il quale passarà gli indici di alfabeto1 all'afabeto2 (criptato) per ottenere una cosa del tipo:
    const stringaCripto = [2, 0, 13, 4].map(num => alfabeto2[num])
    visto che map ritorna sempre un array dovrai concatenare il metodo join() per convertirlo in stringa.

    6) ritorna la stringaCripto o un oggetto che contenga sia la stringa originale che quella criptata.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    L'esercizio è veramente semplice, ci vogliono cinque minuti a finirlo [...]
    Sei troppo magnanimo: quando io leggo queste richieste mi viene l'orticaria perché quello che meno sopporto è la richiesta di "pappa pronta", senza avere almeno l'accortezza di indicare quali sono le proprie difficoltà specifiche, cosa si è tentato di risolvere (senza riuscirci, ma questo è lecito) o quali sono i dubbi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da alka Visualizza il messaggio
    Sei troppo magnanimo: quando io leggo queste richieste mi viene l'orticaria perché quello che meno sopporto è la richiesta di "pappa pronta", senza avere almeno l'accortezza di indicare quali sono le proprie difficoltà specifiche, cosa si è tentato di risolvere (senza riuscirci, ma questo è lecito) o quali sono i dubbi.
    Condivido. Il forum JS dovrebbe essere utilizzato da chi vuole imparare non da chi vuole la pappa pronta.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.