Advertisement
Timkor

atmBadVersion

Sep 15th, 2020 (edited)
1,282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // без применения функций сейчас не время улучшать функционал, ниже тому пример и доказательство - сплошная
  2. // копипаста, да и бага есть, пробел как ноль воспринимается, нужно еще условие добавлять. Не оптимально
  3. // писал, старался все учесть, но это не цель сейчас, сперва нужен хороший инструментарий, а там уж пожалуйста.
  4. // и еще, если часть кода (или выбранный алгоритм) не удобны   - не стоит подпирать костылями, нужно заменить.
  5.  
  6. let card = [];                  //создание массива для всех карт
  7.     for (let i = 0; i < 10; i++) {       //перебор для n карт
  8.         card[i] = 0;                 // записать карты от 0 до n и присвоить им 0
  9.     }
  10.    
  11.    
  12.  
  13.     do {  
  14.     // запуск цикла на повтор для ввода карты и суммы
  15.         let cardNum;                           // переменная для выбора карт
  16.         let summ;                              // переменная для вводимой суммы
  17.         let isOkPressedWithEmptyField = false; // нажат Ок но поле пустое
  18.         let isCanselPressed = false;           // пользователь нажал отмена
  19.         let isCardNumberValid = false;         // номер карты валидный
  20.         let userInput;                         // ввод пользователя
  21.         let msgEnterCardNum = "Введите номер карты";    // дефолтный меседж
  22.         let msgPlaceHolder = "";               // подсказка при вводе
  23.        
  24.         //ввод номера карты
  25.         do {
  26.             isOkPressedWithEmptyField = false;
  27.             isCardNumberValid = false;
  28.  
  29.             //сырой ввод пользователя, как есть, без приведения типа
  30.             userInput = prompt(msgEnterCardNum, msgPlaceHolder);
  31.  
  32.             if (userInput === null ) isCanselPressed = true;
  33.             if (userInput === '') isOkPressedWithEmptyField = true;
  34.             if (isCanselPressed) break;
  35.             if (isOkPressedWithEmptyField) {
  36.                 msgEnterCardNum = "Сперва введите номер карты, после ввода нажмите ОК";
  37.                 msgPlaceHolder = "";
  38.                 continue;
  39.             }
  40.  
  41.             cardNum = +(userInput);     //ввод конкретного номера карты, тут пробел приводится к нулю - это плохо.
  42.             if (cardNum >= 0 && cardNum < card.length) { // проверить на длину массива
  43.                 isCardNumberValid = true;
  44.             } else {
  45.                 msgPlaceHolder = "от " + 0 + " до " + (card.length - 1);
  46.             }
  47.            
  48.        } while (isOkPressedWithEmptyField || !isCardNumberValid)  // "человекупонятное" условие, благодаря именованиям переменных))
  49.         // console.log ("Номер карты: " + cardNum);  
  50.  
  51.         if (isCanselPressed) break;
  52.        
  53.         // ввод суммы зачисления на карту
  54.         let msgEnterSumm = "Введите сумму от -1000 до 1000";
  55.         let isSummValid = false;
  56.         msgPlaceHolder = "";
  57.         do {
  58.             isOkPressedWithEmptyField = false;
  59.             userInput = prompt(msgEnterSumm, msgPlaceHolder)   //ввод суммы
  60.             if (userInput === null) isCanselPressed = true;
  61.             if (userInput === '') isOkPressedWithEmptyField = true;
  62.             if (isCanselPressed) break;
  63.             if (isOkPressedWithEmptyField) {
  64.                 msgEnterSumm = "Сперва введите сумму, после ввода нажмите ОК";
  65.                 msgPlaceHolder = "";
  66.                 continue;
  67.             }
  68.             summ = +(userInput); //тут пробел приводится к нулю - это плохо.
  69.             if (summ >= -1000 && summ <= 1000){
  70.                 isSummValid = true;
  71.             } else {
  72.                 msgPlaceHolder = "-1000 .. +1000";
  73.             }
  74.            
  75.         } while (isOkPressedWithEmptyField || !isSummValid) //проверить на вводимую сумму
  76.        
  77.         if (isCanselPressed) break;
  78.         card[cardNum] = card[cardNum] + summ;
  79.        
  80.     } while (true) //условие для окончания ввода данных - вечно, выходим брейком
  81.  
  82.  
  83.  
  84.     for (let i = 0; i < card.length; i++)       //проверить есть ли данные в массиве
  85.         console.put(card[i] + " ")          // Вывести баланс на всех картах
  86.     console.log();                  // Отступ для следующего консоля
  87.  
  88.     let sumAll = 0                  //Сума средств на всех картах
  89.  
  90.     for (let i = 0; i < card.length; i++) {         //перебрать массив
  91.         sumAll = sumAll + card[i]           //прибавить баланс средств каждой карты в массиве
  92.     }
  93.     console.log("Сума на всех картах: " + sumAll);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement