Пятая программа: «Начинающий дешифровщик», не работает проверка

// Алфавит
var symbols = [‘А’, ‘Б’, ‘В’, ‘Г’, ‘Д’, ‘Е’, ‘Ё’, ‘Ж’, ‘З’, ‘И’, ‘Й’, ‘К’, ‘Л’, ‘М’, ‘Н’, ‘О’, ‘П’, ‘Р’, ‘С’, ‘Т’, ‘У’, ‘Ф’, ‘Х’, ‘Ц’, ‘Ч’, ‘Ш’, ‘Щ’, ‘Ъ’, ‘Ы’, ‘Ь’, ‘Э’, ‘Ю’, ‘Я’, ‘а’, ‘б’, ‘в’, ‘г’, ‘д’, ‘е’, ‘ё’, ‘ж’, ‘з’, ‘и’, ‘й’, ‘к’, ‘л’, ‘м’, ‘н’, ‘о’, ‘п’, ‘р’, ‘с’, ‘т’, ‘у’, ‘ф’, ‘х’, ‘ц’, ‘ч’, ‘ш’, ‘щ’, ‘ъ’, ‘ы’, ‘ь’, ‘э’, ‘ю’, ‘я’, ’ ', ‘.’, ‘,’, ‘—’, ‘!’];

// Закодированное сообщение
var encodedMessage = [18, 38, 46, 62, 66, 50, 33, 41, 66, 49, 48, 38, 58, 62, 68, 66, 48, 37, 42, 47, 66, 50, 33, 41, 66, 49, 48, 51, 49, 42, 67];

// Раскодированное сообщение
var decodedMessage = ‘’;

for (var i = 0; i >= decodedMessage.length; i++) {
decodedMessage += symbols[encodedMessage[i]];
}

console.log(decodedMessage);

вот код!
результат

Попробовал сделать как в видео курсе результат тот же!!!

А почему undefined выводится в конце?

1 лайк

кто знает

и ещё по поводу этой записи в видео курсе “i < decodedMessage.length” это условие в курсах должно выполнятся как “Пока меньше”, а в курсе он выполняется как “Пока ложно” или я не прав???

пройдите еще раз курс по циклам

Вы поняли это как?

Если i < decodedMessage.length выполняется до тех пор пока i меньше чем decodedMessage.length, то есть “Пока меньше”, а в курсе оно выполняет как i меньше чем decodedMessage.length, то оно является изначально верным и будет принимать начальное значение decodedMessage.length, то есть “Пока ложно”???

цикл выполняется пока условие будет true

то есть я правильно понял

если правильно поняли, то опишите как работает ваш цикл в первом коде

Он будет принимать значение true, когда i будет больше или равен decodedMessage.length.

он получается изначально верным, почему-то !!!

лучше перепройдите курс циклы, задание по сути элементарное, если понимаешь их

хорошо

// Алфавит
var symbols = [‘А’, ‘Б’, ‘В’, ‘Г’, ‘Д’, ‘Е’, ‘Ё’, ‘Ж’, ‘З’, ‘И’, ‘Й’, ‘К’, ‘Л’, ‘М’, ‘Н’, ‘О’, ‘П’, ‘Р’, ‘С’, ‘Т’, ‘У’, ‘Ф’, ‘Х’, ‘Ц’, ‘Ч’, ‘Ш’, ‘Щ’, ‘Ъ’, ‘Ы’, ‘Ь’, ‘Э’, ‘Ю’, ‘Я’, ‘а’, ‘б’, ‘в’, ‘г’, ‘д’, ‘е’, ‘ё’, ‘ж’, ‘з’, ‘и’, ‘й’, ‘к’, ‘л’, ‘м’, ‘н’, ‘о’, ‘п’, ‘р’, ‘с’, ‘т’, ‘у’, ‘ф’, ‘х’, ‘ц’, ‘ч’, ‘ш’, ‘щ’, ‘ъ’, ‘ы’, ‘ь’, ‘э’, ‘ю’, ‘я’, ’ ', ‘.’, ‘,’, ‘—’, ‘!’];

// Закодированное сообщение
var encodedMessage = [18, 38, 46, 62, 66, 50, 33, 41, 66, 49, 48, 38, 58, 62, 68, 66, 48, 37, 42, 47, 66, 50, 33, 41, 66, 49, 48, 51, 49, 42, 67];

// Раскодированное сообщение
var decodedMessage = ’ ';
for (var i = 0; i < encodedMessage.length ; i++);
{
decodedMessage += symbols[encodedMessage[i]];
}

/*

Мяу! Я научился шифровать и мне нужна программа расшифровки.

Есть массив symbols, в котором хранится алфавит (буквы и другие символы).

Есть массив encodedMessage, в котором хранится зашифрованное сообщение. Каждый элемент этого массива — это индекс символа из массива symbols.

Программа дешифровки должна переводить элементы из массива с шифровкой (encodedMessage) в символы из массива алфавита (symbols) и склеивать из них расшифрованную строку. Эту строку запиши в переменную decodedMessage.

*/
этот код в Гугл хром не работает

он вообще не должен работать, а что где-то работает?

1 лайк

С чего вдруг точка с запятой в конце строки, не понятно.

это почему же ?

спасибки . Помогло лишь отчасти . Т е дешифрует первую фразу .Но задание все равно не выполнено …сорри

Мой вариант, думаю самый стандартный…

Начинающий дешифровщик
console.log('Программа "Начинающий дешифровщик" by Nerealist');

// Алфавит
var symbols = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ', '.', ',', '—', '!'];

// Закодированное сообщение
var encodedMessage = [18, 38, 46, 62, 66, 50, 33, 41, 66, 49, 48, 38, 58, 62, 68, 66, 48, 37, 42, 47, 66, 50, 33, 41, 66, 49, 48, 51, 49, 42, 67];

console.log('Шифр ...... : ' + encodedMessage);

// Раскодированное сообщение
var decodedMessage = '';

for (var i = 0; i < encodedMessage.length; i++) {
  decodedMessage += symbols[encodedMessage[i]];
}

console.log('..... Расшифровка ..... готово : ' + decodedMessage);
1 лайк