Hola pedro,, si es verdad que el ejercicio1 no había hecho las comprobaciones pertinentes.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<script>
window.onload = function (){
    numeroAleatorio();
}    
function numeroAleatorio(){
    var numeroAleatorio = Math.floor((Math.random()*(101-1))+1); 
    alert (numeroAleatorio);
    var contador = 1;
    
    while (contador <= 30 ){
       var numeroUsuario = prompt ("Introduzca un numero : ");
        if (numeroUsuario<numeroAleatorio){
        alert ("El numero es mayor");
        }else if(numeroUsuario>numeroAleatorio){    
        alert ("El numero es menor");
        }
        else{
           alert ("Enhorabuena");
            break;
        }
    contador++;
       
    }    
     if (contador > 30){
        alert ("Ha utilizado las 30 posibilidades para acertar el numero");
        
    }
   
    
    }
</script>
<body>
    
</body>
</html> Respecto del ejercicio 3, pensaba que con la función del seno valdría. He añadido la del coseno.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #volador1{
        display:inline-block;
        background-color:crimson;
        border:solid thin black;
        border-radius:12px;
        position:absolute;
        top: 300px;
        padding:10px;
        width: 65px;
    }    
    #volador2{
        display:inline-block;
        background-color:crimson;
        border:solid thin black;
        border-radius:12px;
        position:absolute;
        top: 400px;
        padding:10px;
        width: 65px;
    }    
    
</style>
<script>
    var globalID;
    var sentido = true;
    var coordenadaX = 0;
    var coordenadaY1 = 300;
    var coordenadaY2 = 300;
   
window.onload = function(){
    anchoVentana();
}
    
    function anchoVentana(){ 
        var ancho = window.innerWidth;
        // Condicion para rebote pared
        if (coordenadaX == (ancho - 95 )){
              sentido = false;
         }
        if (coordenadaX == 0){
            sentido = true;
        }
        
        // Condicion para sentido volador
        if (sentido == true){
            coordenadaX++;
        }else{
            coordenadaX--;
        }
        
        // Formula para sentido
        coordenadaY1 = coordenadaY1+(Math.sin(coordenadaX*0.03));
        coordenadaY2 = coordenadaY2+(Math.cos(coordenadaX*0.03));
        
        // Uso del DOM
        var volador1 = document.getElementById("volador1");
        //var volador2 = document.getElementById("volador2");
        
        volador1.style.top=coordenadaY1+'px';
        volador1.style.left=coordenadaX+'px';
        volador2.style.top=coordenadaY2+'px';
        volador2.style.left=coordenadaX+'px';
      
        // Llamada recursiva requestanimationFrame
        globalID=requestAnimationFrame(anchoVentana);
    
       
    }
     
    
    </script>
</head>
<body >
   <div id="volador1">Seno</div>
   <div id="volador2">Coseno</div>
 
    
</body>
</html>
Por cierto, me he dado cuenta que cuando vas hacer slgo con algun id del DOM, no hace falta declararlo primeo, te puedes referir directamente a él.
En vez de :
var nodoID= document.getElementByID("elemento";
nodoID.style.backgrounColor='red';Se puede hacer
elemento.style.backgroundColor='red'Saludos.