• Внимание, на некоторое время вводится премодерация новичков.

компьютерный вопрос

  • Автор темы Автор темы Danill78
  • Дата начала Дата начала
Обзор приличный.
Больше про серверное, подчеркну, не для Уила или другого новичка!
 
Проблемы с решением задач. Я сначала пишу ее в общих чертах, набрасываю знакомое, а потом исправляю.
Изначально не знаю какое значение задать i. Строго ли оно должно быть меньше n или <=.
Такие проблемы.
HTML:
<meta charset='utf-8'>
<script>
    //Программа возводит число в натуральную степень
    var x = +prompt('Введите число');
    var n = +prompt('Введите степень');
    
    var i=1;
    var p=x;
    
    while (i<n){
        x=x*p;
        i++;
        }
    
    if (x>0){
        alert('x=' +x);   
    } else {
      x=1;
        alert('x=' +x);
    }
</script>
 
В общем, хрен пойми что получилось. Первая относительно работоспособная функция.
Если кто может указать на ошибки - прошу.
HTML:
<meta charset='utf-8'>
<script>
    var x,n;
    
    function pow(x,n){
        
        var i=1;
        var p=x;
            
        while (i<n){
            x=x*p;
            i++;
        }
    
        if (x>0){
            alert('x=' +x);   
        } else {
            x=1;
            alert('x=' +x);
        }
        
    }
    
    x = +prompt('Введите число');
    n = +prompt('Введите степень');
    
    pow(x,n);
    
        
</script>
 
Там почти правильно :))
Вот поправленный вариант:
HTML:
<meta charset='utf-8'>
<script>
    let x,n;
    
    function pow(a,n){
        
        let b = a;
        let stepen = n;
        
        // проверяем - stepen<0 и если да - делаем его положительным
        if (stepen<0) stepen = -stepen;
        
        for (let i = 1; i < stepen; i++) {
            b *= a;
        }
        
        // проверяем - вдруг у нас степень была отрицательной - тогда нужно вернуть 1/x^n
        if (n>=0){
            return b;
        }
        else{
            return 1/b;
        }
    }
    
    x = +prompt('Введите число');
    n = +prompt('Введите степень');
    
    pow(x,n);
    console.log('стандартная функция возведения в степень: x=' + x ** n);    // можно написать еще так Math.pow(x,n));
    console.log('наша функция возведения в степень: x='+pow(x,n));

    
        
</script>
 
Делал не я, сорри - потому выводится в консоль браузера.
На результате правой кнопкой Просмотреть код (если в Хроме) и там - Консоль, видим результат.
Если у ВАс среда программирования - видимо там выведется красивее 🙂
 
Ааа ,вроде разобрался :))
Вот теперь - и на экране выводит , как у ВАс :))

HTML:
<meta charset='utf-8'>
<script>
    let x,n;
    
    function pow(a,n){
        
        let b = a;
        let stepen = n;
        
        // проверяем - stepen<0 и если да - делаем его положительным
        if (stepen<0) stepen = -stepen;
        
        for (let i = 1; i < stepen; i++) {
            b *= a;
        }
        
        // проверяем - вдруг у нас степень была отрицательной - тогда нужно вернуть 1/x^n
        if (n>=0){
            return b;
        }
        else{
            return 1/b;
        }
    }
    
    x = +prompt('Введите число');
    n = +prompt('Введите степень');
    
    pow(x,n);
    console.log('стандартная функция возведения в степень: x=' + x ** n);    // можно написать еще так Math.pow(x,n));
    console.log('наша функция возведения в степень: x='+pow(x,n));
alert('x='+pow(x,n));
    
        
</script>
 
А в том коде все было норм, кроме отрицательной степени и 0 в любой степени. Не страшно.
 

LGBT*

В связи с решением Верховного суда Российской Федерации (далее РФ) от 30 ноября 2023 года), движение ЛГБТ* признано экстремистским и запрещена его деятельность на территории РФ. Данное решение суда подлежит немедленному исполнению, исходя из чего на форуме будут приняты следующие меры - аббривеатура ЛГБТ* должна и будет применяться только со звездочкой (она означает иноагента или связанное с экстремизмом движение, которое запрещено в РФ), все ради того чтобы посетители и пользователи этого форума могли ознакомиться с данным запретом. Символика, картинки и атрибутика что связана с ныне запрещенным движением ЛГБТ* запрещены на этом форуме - исходя из решения Верховного суда, о котором было написано ранее - этот пункт внесен как экстренное дополнение к правилам форума части 4 параграфа 12 в настоящее время.

Назад
Сверху