A continuacion veremos algunos problemas tipo examen y su solucion, los programas fueron compilados con la version portable de Dev C++.

1. La fuerza de atracción entre dos masas, m1 y m2 separadas por una distancia d, está dada por la fórmula:

F=(G*m1*m2)/d^2

Donde G es la constante de gravitación:

G=9.81

Escriba un programa que lea la masa de dos cuerpos y la distancia entre ellos y a continuación obtenga la fuerza gravitacional entre ellas.

#include
#include

#define G 9.81

float F,m1,m2,d;

int main()
{

printf("introduce el valor de la masa 1: nnt");
scanf("%f", &m1);
printf("introduce el valor de la masa 2: nnt");
scanf("%f", &m2);
printf("introduce el valor de la distancia entre las masas: nnt");
scanf("%f", &d);

F=(G*m1*m2)/(d*d);

printf("n El valor de la fuerza es F=%f nn",F);

getch();
}

2. Escribir un programa que desglose cierta cantidad de segundos introducida por el teclado en su equivalente en semanas, días, horas, minutos y segundos.

#include
#include

long s=0,m=0,h=0,d=0,sem=0, a=0, dia=0, hora=0, minutos=0, seg=0; //x en segundos
int main()
{

printf("introduce el numero de segundos: nnt");
scanf("%ld", &s);

sem = s / 604800;
d=s % 604800;
dia = d / 86400;
h = s % 86400;
hora = h / 3600;
m = s % 3600;
minutos = m/60;
s = s%60;
seg = s/1;

printf("n %ld semana(s) %ld dia(s) %ld hora(s) %ld minuto(s) %ld segundo(s)nn",sem, dia, hora, minutos, seg);

getch();
}

3. Escribir un programa que declare dos variables enteras y las introduzca por teclado, crear una función que reciba las dos variables por referencia e intercambie sus valores.

#include
#include

int x,y;
void invertir(int &n1 ,int &n2);

int main()
{

printf("Introduce x numero: nnt");
scanf("%d", &x);
printf("Introduce y numero: nnt");
scanf("%d", &y);

invertir(x,y);

printf("n Los nuevos valores son x=%d , y=%dnn",x,y);

getch();
}

void invertir(int &n1,int &n2){
     int z;
     z=n1;
     n1=n2;
     n2=z;
     }

4. Una frase palíndroma es aquella que se lee igual al derecho y al revés, ejemplo:

“Anita lava la tina”

Escribir un programa que introduzca una frase del teclado, a través de una función le mande la palabra como argumento y la función regrese un uno si la frase es palíndroma y un cero si la frase no es palíndroma.

#include
#include
#include
#include 

char frase[30];
int p=0;
int palindroma(char[]);

int main(){
     cout< <"ingresa una frase"<<endl;
     fflush(stdin);
     gets(frase);
     cout<<endl;

     p=palindroma(frase);

     if(p==1){
             cout<<"La frase es palindroma";
          }
          else{
               cout<<"La frase no es palindroma";
               }

     getch();
     return 0;
     }

int palindroma(char frase[]){
    char aux1[30];
    char aux2[30];

    bool palindroma;

     palindroma=true;
     int offset=0;
     int t=strlen(frase);
     for(int x=0; x<=t-1;x++){//busca espacios y los elimina
             if (frase[x]!=' '){
                             aux1[x-offset]=frase[x];
                             }
                             else{
                                  offset++;
                                  }
             }
     t=strlen(aux1);
     for(int x=0; x<=t-1;x++){//invierte la frase
           aux2[x]=aux1[t-x-1];
           }

     for(int x=0; x<=t-1;x++){//comprueba si son iguales
     if(aux1[x]!=aux2[x]){
                          palindroma=false;
                          break;}
           }
           if(palindroma){
                return 1;}
                else{
                     return 0;}
     }

Entradas relacionadas: