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

  • Дока пока нет. Просто нет на форуме, считайте так. Учёба по достаточно важной теме, материалы, которые могут быть полезными - я выкладываю в соответствующей моей теме. Буду через неделю-полторы, надеюсь. Появляюсь в транспорте для дружеского общения или обмена мыслями, очень коротко. Приношу извинения всем заинтетесованным людям. На онлайн работу, лечение, в это время - тоже не беру! Поступившие запросы буду обрабатывать по мере возможности. но не в ближайшие дни, видимо.

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    alert('Это - игра для двоих игроков.\nПервый вводит число, второй - угадывает.\nБраузер подсказывает второму игроку, большее число ли он ввел, чем загаданное, или меньшее.');
    
    //Счетчик количества попыток 
    var col = 1;
    
    //Цикл для ввода первого числа
    do{
        var a = +prompt('Первый игрок, введите число');
        
        //Если 'a' - не число
        if (isNaN(a)) {
            alert('Введите корректно');
        }
    //Выводить, пока 'a' - не число (ошибка ввода)
    }while(isNaN(a));
    
    //Цикл для второго числа
    do{
            var b = +prompt('Второй игрок, введите число');
        
            //Если 'b' - не число
            if    (isNaN(b)){
                alert('Введите корректно');
            }
    //Выводить, пока 'b'    - не число (ошибка ввода)    
    }while(isNaN(b));    
        
    
    //Цикл угадывания и 
    do{
            if    (a<b){
                alert('Много');
                col++; //Счетчик попыток
            }
            else if(a>b){
                alert('Мало');
                col++; //Счетчик попыток
            }    
            else if (a == b){
                alert('Вы угадали!И потратили ' + col + ' попыток.');
            }
        
    }while (a != b);//Игра продолжается до тех пор, пока числа не равны
    
</script>
 

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Нужно угадать число. Проблема пока только с выходом, если числа не равны.
 
  • Like
Реакции: dok34.ru

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Ок, попробуем. Может проверку вставить...с условиями ?
 

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Ответ подробный насчёт выбора версий убунту, и аналогов.
Только LTS, короче.
 

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Может кто помочь с рекурсией?
Почему выводит 1 - 0 - 1?
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    function f(counter){
        counter--;
        document.write(counter + '<br/>');
        if (counter != 0){
            f(counter);
            document.write(counter + '<br/>');
        }
    }
   
    f(2);
</script>
 

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Я думаю не поэтому. Возможно, сначала второй раз пишется counter со значением 0, вызываясь рекурсивно, а потом возвращается к условию с написанием значения 1.
 
  • Like
Реакции: Dantes

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Неясно, что именно хотели получить, но по-идее там просто нужно убрать второй вызов document.write и все ))
Edit fiddle - JSFiddle
function f(counter){
counter--;
document.write(counter + '');
if (counter != 0){
f(counter);
}
}

f(2);

Тогда она сама себя вызывает и все ))
 

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55

Kirill89_3

Покорный инквизитор
10 Янв 2014
19,097
1,834
113
Может кто помочь с рекурсией?
Почему выводит 1 - 0 - 1?
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    function f(counter){
        counter--;
        document.write(counter + '<br/>');
        if (counter != 0){
            f(counter);
            document.write(counter + '<br/>');
        }
    }
  
    f(2);
</script>
Условный оператор надо в начале функции поставить.
 

Kirill89_3

Покорный инквизитор
10 Янв 2014
19,097
1,834
113
Код:
<!doctype html>
<meta charset='utf-8'>
<script>
    function f(counter){
    if (counter != 0){
        document.write(counter + '<br/>');
        counter--;
        f(counter);

        }
   else
    document.write(counter + '<br/>');

    }

    f(2);
</script>
Я бы так сделал, и тогда будет вывод 2 1 0. Хотя вывод уменьшающейся последовательность лучше сделать без рекурсии вообще, просто за счет цикла.
 
Последнее редактирование:
  • Like
Реакции: dok34.ru и vito

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Я бы так сделал, и тогда будет вывод 2 1 0. Хотя вывод уменьшающейся последовательность лучше сделать без рекурсии вообще, просто за счет цикла.
Понял, спасибо. Но надо было просто разобрать задание. Код не мной написан. Я, вот, не понял почему он выводит в конце единицу.
 

Kirill89_3

Покорный инквизитор
10 Янв 2014
19,097
1,834
113
Понял, спасибо. Но надо было просто разобрать задание. Код не мной написан. Я, вот, не понял почему он выводит в конце единицу.
Прогамма выходит из рекурсии здесь, когда counter равен 1. Вышла из рекурсии, сразу же вывод counter, который равен единицы, так как каждый вызов рекурсивной функции создает свою копию counter.
f(counter); \\здесь counter равен 1. Внутри функции он уменьшается до 0.
document.write(counter + '<br/>'); Однако здесь counter все равно 1, так как внутри функции f была создана своя локальная переменная, которая уменьшилась до 0, "внешний" же counter равен 1.
 
  • Like
Реакции: dok34.ru

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Биос обновил, вернулся в систему, живой :))
 

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55

Кристина

Well-Known Member
17 Ноя 2013
24,487
2,647
113
Подумываю взять ноутбук в пределах 20 рублей. Может лучше планшет взять и бывают ли планшеты с usb разъемом. И думаю зачем мне он нужен.
Игрушки скажем закачивать или просто браузить по сети в поисках порнушки:)
Я в общем уже настолько к телефону привыкла и не пойму нужен ли планшет или тем более ноутбук в 2019?
 

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Подумываю взять ноутбук в пределах 20 рублей. Может лучше планшет взять и бывают ли планшеты с usb разъемом. И думаю зачем мне он нужен.
Игрушки скажем закачивать или просто браузить по сети в поисках порнушки:)
Я в общем уже настолько к телефону привыкла и не пойму нужен ли планшет или тем более ноутбук в 2019?
Нужен :)
Особенно если видео не редактировать, и не играть в совсем зверское...мы не играем, кстати :))
Планшеты бывают на андроиде и на винде, плюсы и минусы свои. Ноуты кстати тоже разные :) Есть на линуксе вполне годные и дешевле.
Давайте присматриваться :))
Я пока в лихорадке шопинга и ажиотажа выбора гаджетов :))
 
  • Like
Реакции: Кристина

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Сидел больше получаса с программой, искал ошибку.
Программа должна выводить индекс введенного дня недели.
Вводил пн, а у него индекс 0 и функция возвращает 0. Выдает "день недели не найден'
Ввел вт. - все заработало.
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    var week = new Array('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс');
    var day = prompt('Введите день недели: пн, вт, ср, чт, пт, сб, вс');

        
    
    function sayDay(day){
        for(i=0; i < week.length; i++){
            if (week[i] == day){
                break;
            }
        }    
            if (i < week.length){
                return i;
            }else{
                return 0;
            }
        
    }    
        
    var found = sayDay(day);
    
        if(found){
            alert('День недели найден, его индекс =' + found);
        } else{
            alert('День недели не найден');
        }
        
</script>
 

Kirill89_3

Покорный инквизитор
10 Янв 2014
19,097
1,834
113
Сидел больше получаса с программой, искал ошибку.
Программа должна выводить индекс введенного дня недели.
Вводил пн, а у него индекс 0 и функция возвращает 0. Выдает "день недели не найден'
Ввел вт. - все заработало.
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    var week = new Array('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс');
    var day = prompt('Введите день недели: пн, вт, ср, чт, пт, сб, вс');

      
  
    function sayDay(day){
        for(i=0; i < week.length; i++){
            if (week[i] == day){
                break;
            }
        }  
            if (i < week.length){
                return i;
            }else{
                return 0;
            }
      
    }  
      
    var found = sayDay(day);
  
        if(found){
            alert('День недели найден, его индекс =' + found);
        } else{
            alert('День недели не найден');
        }
      
</script>
Когда день понедельник функция возвращает 0 и идет по ветке else....Сделай так

HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    var week = new Array('пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс');
    var day = prompt('Введите день недели: пн, вт, ср, чт, пт, сб, вс');

      
  
    function sayDay(day){
        for(i=0; i < week.length; i++){
            if (week[i] == day){
                break;
            }
        }  
            if (i < week.length){
                return i;
            }else{
                return -1;
            }
      
    }  
      
    var found = sayDay(day);
  
        if(found>-1){
            alert('День недели найден, его индекс =' + found);
        } else{
            alert('День недели не найден');
        }
      
</script>
 
  • Like
Реакции: dok34.ru и vito

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
Не могу решить задание:

Задание array 5_15. Дана матрица 5 х 5. Вывести элементы матрицы, принадлежащие интервалу[-5; 7].


При исходной матрице:

[3, 15, 25, 15, -2],
[4, 11, 5, 11, 12],
[12, 22, 12, -3, -10]
[22, 22, 32, -33, -12]
[2, 22, 12, -12, -10]

Результат должен быть:

3 -2 4 5 -3 2
 

dok34.ru

Запорожец
7 Фев 2010
97,081
3,215
113
55
Хм, действительно....перебором смотреть интервал?
Начало и затем конец, затем снова начало..
Не соображу, сорри, конкретику.
 

vito

Гераклид упорный
9 Апр 2016
9,062
1,249
113
Россия
В общем, нагородил сам, но не работает.
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
//Вывод элементов массива, принадлежащих интервалу [-5;7]
    var a = [
        [3, 15, 25, 15, -2],
        [4, 11, 5, 11, 12],
        [12, 22, 12, -3, -10],
        [22, 22, 32, -33, -12],
        [2, 22, 12, -12, -10]
    ];
    
        for (var i in a){
            for (var j in i){   
                if ( (j >= -5) && (j <= 7) ){
                document.write(a[i][j] + '<br/>');
                }
            }   
        }
        
</script>
 
  • Like
Реакции: dok34.ru

Kirill89_3

Покорный инквизитор
10 Янв 2014
19,097
1,834
113
В общем, нагородил сам, но не работает.
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
//Вывод элементов массива, принадлежащих интервалу [-5;7]
    var a = [
        [3, 15, 25, 15, -2],
        [4, 11, 5, 11, 12],
        [12, 22, 12, -3, -10],
        [22, 22, 32, -33, -12],
        [2, 22, 12, -12, -10]
    ];
 
        for (var i in a){
            for (var j in i){
                if ( (j >= -5) && (j <= 7) ){
                document.write(a[i][j] + '<br/>');
                }
            }
        }
     
</script>
Вывод неправильный. Надо в конце сделать так
document.write(j+ '<br/>'); Нужно делать индексацию массива при такой итерации
for (var i = 0; i < a.length; i++). Кстати, такая итерация мне больше нравится, она классическая в стиле c.
 
  • Like
Реакции: dok34.ru