kubawozniak077

Zadania Pętle

Dec 3rd, 2021 (edited)
594
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  Jakub Woźniak 4aTI/2
  2.  
  3. //  Funkcja pobiera od użytkownika liczbę zmiennoprzecinkową. Będzie wykonywana tak długo, aż otrzyma poprawną wartość.
  4. //  W parametrze callback można podać funkcję, która zwraca true dla poprawnej wartości.
  5. function dialogFloat(text, callback) {
  6.     let val = parseFloat(prompt(text));
  7.     const res = val !== null && !isNaN(val) && (callback ? callback(val) : true);
  8.     if (!res) {
  9.         console.warn(val !== null ? 'Niewłaściwa wartość' : 'Nie wprowadzono informacji');
  10.         val = dialogFloat(text, callback);
  11.     }
  12.     return val;
  13. }
  14.  
  15. const zadania = [
  16.     () => { //  Zadanie 1
  17.        
  18.         function silnia(n) {
  19.             if(n > 0)
  20.                 return n * silnia(n-1);
  21.             return 1
  22.         }
  23.         const n = dialogFloat('Podaj liczbę', a => a >= 0);
  24.         console.log(`${n}! = ${silnia(n)}`);
  25.  
  26.     }, () => { //  Zadanie 2
  27.  
  28.         for(let i = 12; i < 99; i += 4)
  29.             console.log(i);
  30.  
  31.     }, () => { //  Zadanie 3
  32.  
  33.         const step = dialogFloat('Podaj krok', a => Number.isInteger(a) && a > 0 && a < 200);
  34.         let out = '';
  35.         for (let i = 0; i <= 200; i += step)
  36.             out += `${i} `;
  37.         console.log(out);
  38.  
  39.     }, () => { //  Zadanie 4
  40.  
  41.         let sum = 0;
  42.         for (let i = 0; i < 5; i++)
  43.             sum += dialogFloat(`Podaj liczbę ${'ABCDE'[i]}`);
  44.         console.log(sum);
  45.  
  46.     }, () => { //  Zadanie 5
  47.  
  48.         let input;
  49.         const arr = [];
  50.         while (input !== 0)
  51.             arr.push(input = dialogFloat('Podaj liczbę', a => Number.isInteger(a)));
  52.         console.log(`Wartość minimalna: ${Math.min(...arr)}\nMaksymalna: ${Math.max(...arr)}`);
  53.  
  54.     }, () => { //  Zadanie 6
  55.  
  56.         function sum(arr) {
  57.             let s = 0;
  58.             for (const n of arr)
  59.                 s += n;
  60.             return s;
  61.         }
  62.  
  63.         const arr = [];
  64.         while (sum(arr) <= 50)
  65.             arr.push(input = dialogFloat('Podaj liczbę'));
  66.  
  67.     }, () => { //  Zadanie 7
  68.  
  69.         let sum = 0;
  70.         let d = 2;
  71.         for (let i = 0; i < 30; i++) {
  72.             sum += d;
  73.             d *= 2;
  74.         }
  75.         console.log(`Syn zaoszczędził ${sum}zł`);
  76.  
  77.     }, () => { //  Zadanie 8
  78.  
  79.         let sum = 0;
  80.         let d = 10;
  81.         while (d > 0) {
  82.             sum += d * d;
  83.             d -= 1;
  84.         }
  85.         console.log(`W piramidzie jest ${sum} cegieł`);
  86.  
  87.     }
  88. ];
  89.  
  90. //  Funkcja służąca do łatwego wywoływania zadania z konsoli
  91. function ex(n) {
  92.     zadania[n - 1]();
  93. }
  94.  
  95. //  Tworzenie przycisku dla każdego zadania. Po kliknięciu go, zostaje wywołane odpowiednie zadanie
  96. for (const [i, z] of zadania.entries()) {
  97.     const btn = document.createElement('button');
  98.     btn.innerText = (i + 1).toString();
  99.     btn.addEventListener('click', () => z());
  100.     document.body.appendChild(btn);
  101. }
RAW Paste Data