Está en la página 1de 3

algoritmo secuencia_temperaturas

var

tiempo:entero:=0;

temperatura:real:=0;

media:real:=0;

incrementoMedia:real:=0;

numTiempo:real:=0;

porcentajeMedia:real:=0;

fvar

tiempo:=leerEntero();

mientras (tiempo≠-1) hacer

calculaTemp (tiempo, temperatura, numTiempo, media, incrementoMedia,


porcentajeMedia)

tiempo:=leerEntero();

fmientras

si (tiempo=-1) y no (hayIncoherencia) entonces

printaExito (media, incrementoMedia);

sino

printa Incoherencia (numTiempo, tiempo, media);

fsi

falgoritmo

accion printaExito (ent a:real, ent b:real)

escribirCadena(‘La temperatura media es de: ‘);

escribirReal(a);

escribirCadena(‘Se ha incrementado en: ‘);

escribirReal(b);

faccion

accion printaIncoherencia (ent a:entero, ent b:real, ent c:real)

escribirCadena(‘Se produce incoherencia en lectura: ‘);

escribirEntero(a);
escribirCadena(‘Del segundo: ‘);

escribirEntero(b);

escribirCadena(‘La temperatura media era de: ‘);

escribirReal(c);

faccion

funcion hayIncoherencia (

ffuncion

accion calculaTemp (entsal tiempo:entero, entsal temperatura:real, entsal


numTiempo:real, entsal media:real, entsal incrementoMedia:real, sal
porcentajeMedia:real)

var

temperaturaAnterior:real:=0;

totalTemp:real:=0;

mediaAnterior:real:=0;

mediaSuperior:booleano:=falso;

diferencia:real:=0;

diferenciaABS:real:=0;

porcentajeMedia:real:=0;

fvar

temperaturaAnterior=temperatura;

temperatura:=leerReal();

numTiempo=numTiempo+1;

totalTemp=totalTemp+temperatura;

mediaAnterior=media;

media=totalTemp/numTiempo;

mediaSuperior=mediaAnterior<media;

si (numTiempo>1) entonces

si (mediaSuperior) entonces

incrementoMedia=incrementoMedia+1

fsi

diferencia=temperatura-temperaturaAnterior;
si (diferencia<0) entonces

diferenciaABS=diferencia*(-1);

sino

diferenciaABS=diferencia;

fsi

porcentajeMedia=media*0.3;

fsi

faccion

También podría gustarte