Enrere Mòdul 4
Fonaments de Programació. Llenguatge C/C++---
Pràctica  Resum teòric Exercicis
Pràctica d'ampliació Annex: la depuració

 
Genera nombres aleatoris en un interval

En aquesta pràctica farem servir els nombres aleatoris per obtenir nombres enters aleatoris dins un interval .

 

Desenvolupament de la pràctica

Demaneu el límit inferior i el superior de l'interval i obtindrem 30 nombres enters aleatoris inclosos els límits.

Creeu un nou arxiu font C anomenat m4p06.c. i escriviu el següent codi:

// m4p07.c - Generar nombres aleatoris en un interval -
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(){
   int limit_inferior, limit_superior,x,ct;

   srand( (unsigned)time( NULL ) );

   system("clear");

   printf("Introduïu el límit inferior del interval ( enter )\n");
   scanf("%d",&limit_inferior);

   printf("Introduïu el límit superior del interval ( enter )\n");
   scanf("%d",&limit_superior);

   if (limit_inferior>=limit_superior)
      printf("\n Error amb els límits");
   else
   {

      printf ("\n Genera 30 nombres enters aleatoris\n");
      for(ct=0;ct<30;ct++){
         x=(int)(limit_inferior+ rand()% ((limit_superior-limit_inferior)+1) );
         printf("\t %d",x);
      }
   }

   return 0;
}

 

 

Captura de l'execució del programa.

 

 


 

Explicació del programa

Obtenim els nombres aleatoris mitjançant la sentència:

x=(int)(limit_inferior+ rand()% ((limit_superior-limit_inferior)+1) );

Posem 40 i 50 com a límit inferior i superior respectivament. En la instrucció rand()% (limit_superior-limit_inferior) generem enters aleatoris entre 0 i 10. El 10 no s'inclou, concretament entre 0 i 9, aquest últim tambè. Aquesta dada li sumen el límit inferior ( 40 ) i com podem comprovar el 50 no sortirà mai. Es per aquest motiu que a la instrucció,rand() % ((limit_superior-limit_inferior)+1) )li sumem 1.