Advertisement
Timkor

words

Jul 14th, 2021 (edited)
1,125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Виталий Навроцкий
  2.  
  3. /**
  4.  * https://zero.p2p.shpp.me/tasks/45_0_slova1.html
  5.  * Спитайте людину про рядок і виведіть на екран кількість слів у рядку.
  6.  * Хочемо зауважити, що слово - це послідовність літер. Все, що не-літера - вважається роздільником.
  7.  * Таблиця ASCII у допомогу :)
  8.  */
  9.  
  10. console.log(`\n* * * * * START TASK 45_0_slova1 * * * * *`)
  11.  
  12. let rowOfWords = prompt("Несколько слов для подсчета", "better one word"); // краще латинські використати, в них аскі коди простіші.) Не сама вдала назва для рядка, бо в множині іменуємо масиви, а рядок може і не містити слів, а може лише одне слово, краще щось типу rowOfText, textLine, etc.
  13.  
  14. console.log(typeof rowOfWords); // проверка на строку - перевірки немає, є логування
  15. console.log(`строка содержит = ${rowOfWords}`); // проверка что в строке
  16. console.log(`длина строки = ${rowOfWords.length} символов`); // проверка длины
  17.  
  18. let target = String.fromCharCode(32); // space - так можна і назвати замість target, або delimiter, але можна оперувати саме літерами і рештою, решта і буде роздільниками
  19. let count = 1
  20.  
  21. if (rowOfWords === '' || rowOfWords === target) { // проверка на пустую строку либо только пробел
  22.     count--;
  23. } else {
  24.     for (let i = 0; i < rowOfWords.length; i++) {
  25.  
  26.         /*if (rowOfWords[i] === target) { */
  27.         let charCode = rowOfWords.charCodeAt(i); // можна так  let charCode = rowOfWords[i].charCodeAt(0);
  28.         if (!(charCode > 96 && charCode < 123)) { // [97 - 122] коди з аскі таблиці
  29.         /* було б круто читати та зручно писати цю перевірку код так:
  30.         if (!isLetter(rowOfWords[i])) // читаємо "якщо не літера (поточний символ), але тоді треба написати функцію, а це          наступна тема, але тут доволі проста та супер зручна, її псевдо код нижче. в функцію будемо передавати аргументов        поточний символ rowOfWords[i] а вона нам буде повертати true якщо він літера, чи false інакше!
  31.         */
  32.             count++;
  33.         }
  34.     }
  35. }
  36.  
  37. let lastChar = rowOfWords.charAt(rowOfWords.length - 1);
  38.  
  39. if (lastChar === target) {
  40.     count--;
  41. }
  42. console.log(`Row has ${count} words`);
  43.  
  44. console.log(`\n* * * * * END TASK 45_0_slova1 * * * * *`)
  45.  
  46. /* функція приймає параметром символ та повертає тру, якщо він є літерою, і фолс, якщо не є літерою  */
  47. function isLetter(char) {
  48.     якщо char.charCodeAt(0) знаходиться в діапазонах літер в аскі таблиці, тобто тут ті самі перевірки на коди літер,
  49.         тоді return true // так, це літера
  50.     інакше return false // ні, не літера.
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement