Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Виталий Навроцкий
- /**
- * https://zero.p2p.shpp.me/tasks/45_0_slova1.html
- * Спитайте людину про рядок і виведіть на екран кількість слів у рядку.
- * Хочемо зауважити, що слово - це послідовність літер. Все, що не-літера - вважається роздільником.
- * Таблиця ASCII у допомогу :)
- */
- console.log(`\n* * * * * START TASK 45_0_slova1 * * * * *`)
- let rowOfWords = prompt("Несколько слов для подсчета", "better one word"); // краще латинські використати, в них аскі коди простіші.) Не сама вдала назва для рядка, бо в множині іменуємо масиви, а рядок може і не містити слів, а може лише одне слово, краще щось типу rowOfText, textLine, etc.
- console.log(typeof rowOfWords); // проверка на строку - перевірки немає, є логування
- console.log(`строка содержит = ${rowOfWords}`); // проверка что в строке
- console.log(`длина строки = ${rowOfWords.length} символов`); // проверка длины
- let target = String.fromCharCode(32); // space - так можна і назвати замість target, або delimiter, але можна оперувати саме літерами і рештою, решта і буде роздільниками
- let count = 1
- if (rowOfWords === '' || rowOfWords === target) { // проверка на пустую строку либо только пробел
- count--;
- } else {
- for (let i = 0; i < rowOfWords.length; i++) {
- /*if (rowOfWords[i] === target) { */
- let charCode = rowOfWords.charCodeAt(i); // можна так let charCode = rowOfWords[i].charCodeAt(0);
- if (!(charCode > 96 && charCode < 123)) { // [97 - 122] коди з аскі таблиці
- /* було б круто читати та зручно писати цю перевірку код так:
- if (!isLetter(rowOfWords[i])) // читаємо "якщо не літера (поточний символ), але тоді треба написати функцію, а це наступна тема, але тут доволі проста та супер зручна, її псевдо код нижче. в функцію будемо передавати аргументов поточний символ rowOfWords[i] а вона нам буде повертати true якщо він літера, чи false інакше!
- */
- count++;
- }
- }
- }
- let lastChar = rowOfWords.charAt(rowOfWords.length - 1);
- if (lastChar === target) {
- count--;
- }
- console.log(`Row has ${count} words`);
- console.log(`\n* * * * * END TASK 45_0_slova1 * * * * *`)
- /* функція приймає параметром символ та повертає тру, якщо він є літерою, і фолс, якщо не є літерою */
- function isLetter(char) {
- якщо char.charCodeAt(0) знаходиться в діапазонах літер в аскі таблиці, тобто тут ті самі перевірки на коди літер,
- тоді return true // так, це літера
- інакше return false // ні, не літера.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement