Informática, pregunta formulada por rosalesflorgonzalo13, hace 8 meses

Me pueden dar ejemplo de un algoritmo en lenguaje C, y un pseudocodigo en C tambien

Respuestas a la pregunta

Contestado por Soru7
0

Respuesta:

Explicación:

#include<stdio.h>

#include<math.h>

// Declaraciones adelantadas de las funciones

void pruebacla(int *ng, int *tseg);

void etapafinal(int vg1, int dif1, int vg2, int dif2, int vg3, int dif3);

void tiemporenhms(int dato, int *h, int *m, int *s);

int tiempoenseg(int vh, int vm, int vs);

int ajuste(int dvg1, int ddif1, int dvg2, int ddif2, int dvg3, int ddif3, int corr, int tsegcorr);

void pruebacla(int *ng, int *tseg) {

int cantcor;

int giros;

int indcor;

int minigiros;

int nrocor;

float porcgiros;

int selec;

int thcor;

int tmcor;

int tprimero;

int tscor;

int tsegundo;

selec = 0;

printf("Ingresar la cantidad de corredores\n");

scanf("%i",&cantcor);

for (indcor=1;indcor<=cantcor;indcor+=1) {

 printf("Ingresar el numero de corredor\n");

 scanf("%i",&nrocor);

 printf("Ingresar los giros del corredor\n");

 scanf("%i",&giros);

 printf("Ingresar las horas que usó el corredor\n");

 scanf("%i",&thcor);

 printf("Ingresar los minutos que usó el corredor\n");

 scanf("%i",&tmcor);

 printf("Ingresar los segundos que usó el corredor\n");

 scanf("%i",&tscor);

 if (indcor==1) {

  tprimero = tiempoenseg(thcor,tmcor,tscor);

  ng = nrocor;

  minigiros = giros-2;

 } else {

  /* es el segundo  */

  if (indcor==2) {

   if ((thcor+tmcor+tscor)>0) {

    tsegundo = tiempoenseg(thcor,tmcor,tscor);

    tseg = tsegundo-tprimero;

   } else {

    /* diferencia nula por no terminar el segundo  */

    tseg = 0;

   }

  }

 }

 if ((thcor+tmcor+tscor)>0 && (giros>minigiros)) {

  selec = selec+1;

 }

}

porcgiros = selec*100/cantcor;

printf("Gano el corredor %i utilizando un tiempo de %i segundos y con una difrencia sobre el segundo clasificado de %i segundos\n",ng,tprimero,tseg);

printf("El porcentaje de corredores que finalizaron la pruena dentro de los ds giros %f\n",porcgiros);

}

void etapafinal(int vg1, int dif1, int vg2, int dif2, int vg3, int dif3) {

int cantcor;

int cor1;

int cor2;

int cor3;

int gana;

int giros;

int giros1;

int giros2;

int giros3;

int girosgana;

int indcor;

int nrocor;

int seg1;

int seg2;

int seg3;

int seggana;

int selec;

int thcor;

int tmcor;

int tscor;

printf("Ingresar la cantidad de corredores\n");

scanf("%i",&cantcor);

selec = 0;

for (indcor=1;indcor<=cantcor;indcor+=1) {

 printf("Ingresar el numero de corredor\n");

 scanf("%i",&nrocor);

 printf("Ingresar los giros del corredor\n");

 scanf("%i",&giros);

 printf("Ingresar las horas que usó el corredor\n");

 scanf("%i",&thcor);

 printf("Ingresar los minutos que usó el corredor\n");

 scanf("%i",&tmcor);

 printf("Ingresar los segundos que usó el corredor\n");

 scanf("%i",&tscor);

 if (indcor<=3) {

  switch (indcor) {

  case 1:

   cor1 = nrocor;

   giros1 = giros;

   seg1 = tiempoenseg(thcor,tmcor,tscor);

   seg1 = ajuste(vg1,dif1,vg2,dif2,vg3,dif3,cor1,seg1);

   break;

  case 2:

   cor2 = nrocor;

   giros2 = giros;

   seg2 = tiempoenseg(thcor,tmcor,tscor);

   seg2 = ajuste(vg1,dif1,vg2,dif2,vg3,dif3,cor2,seg2);

   break;

  case 3:

   cor3 = nrocor;

   giros3 = giros;

   seg3 = tiempoenseg(thcor,tmcor,tscor);

   seg3 = ajuste(vg1,dif1,vg2,dif2,vg3,dif3,cor3,seg3);

   break;

  }

 }

 if ((thcor+tmcor+tscor>0)) {

  selec = selec+1;

 }

}

gana = cor1;

seggana = seg1;

girosgana = giros1;

if (seg2<seggana) {

 if (seg2<seg3) {

  gana = cor2;

  girosgana = giros2;

  seggana = seg2;

 } else {

  gana = cor3;

  girosgana = giros3;

  seggana = seg3;

 }

} else {

 if (seg3<seggana) {

  gana = cor3;

  girosgana = giros3;

  seggana = seg3;

 }

}

tiemporenhms(seggana,thcor,tmcor,tscor);

printf("El ganador final fue el corredor %i\n",gana);

printf(" en %i horas %i minuros %i segundos \n",thcor,tmcor,tscor);

printf(" y %i giros\n",girosgana);

printf("Terminaro la etapa final %i corredores\n",selec);

}

void tiemporenhms(int dato, int *h, int *m, int *s) {

double h1;

double m1;

double s1;

h1 = trunc(dato/3600);

h=(int)h1;

dato = dato - h1 * 3600;  

m1 = trunc(dato/60);

m=(int)m1;

s1 = dato - m1 * 60;

s=(int)s1;

}

int tiempoenseg(int vh, int vm, int vs) {

int ts;

ts = vh*3600+vm*60+vs;

return ts;

}

int ajuste(int dvg1, int ddif1, int dvg2, int ddif2, int dvg3, int ddif3, int corr, int tsegcorr) {

int aj;

int diferencia;

 

if (corr == dvg1) {

 diferencia = ddif1;

}

if (corr == dvg2) {

 diferencia = ddif2;

}

if (corr == dvg3) {

 diferencia = ddif3;

}

aj = tsegcorr-diferencia;

return aj;

}

int main() {

int difseg1;

int difseg2;

int difseg3;

int ng1=1;

int ng2=2;

int ng3=3;

printf("Etapa clasificatoria 1\n");

pruebacla(ng1,difseg1);

printf("Etapa clasificatoria 2\n");

pruebacla(ng2,difseg2);

printf("Etapa clasificatoria 3\n");

pruebacla(ng3,difseg3);

printf("Etapa Final\n");

etapafinal(ng1,difseg1,ng2,difseg2,ng3,difseg3);

return 0;

}

Otras preguntas