UTNianos

Versión completa: Hola! Me ayudan a resolver este algotirmo ?
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Es un ejercicio de practica de un temario que me dieron para practicar antes del examen, le eh dado mil vueltas pero no encuentro la forma de realizarlo. Agradeceria mucho su ayuda.

Una serie de números es PRT cuando cumple las siguientes condiciones:
a) Los números que ocupan un lugar par se comportan como una serie creciente.
b) Los números que ocupan un lugar impar son divisibles por 7.
c) La suma de dos números consecutivos siempre es inferior a 100.
El programa terminara de pedir números cuando le entremos un -1.
Hola,

(29-10-2017 13:42)Sabrii.quint escribió: [ -> ]Es un ejercicio de practica de un temario que me dieron para practicar antes del examen, le eh dado mil vueltas pero no encuentro la forma de realizarlo. Agradeceria mucho su ayuda.

Una serie de números es PRT cuando cumple las siguientes condiciones:
a) Los números que ocupan un lugar par se comportan como una serie creciente.
b) Los números que ocupan un lugar impar son divisibles por 7.
c) La suma de dos números consecutivos siempre es inferior a 100.
El programa terminara de pedir números cuando le entremos un -1.

¿Qué se hace con los números PRT? ¿Se pueden usar arrays, funciones, etc..? ¿Qué tipo de estructuras conocés?

Saludos.
Hola, no se si todavia te sirve.

Cita:Una serie de números es PRT cuando cumple las siguientes condiciones:
a) Los números que ocupan un lugar par se comportan como una serie creciente.
b) Los números que ocupan un lugar impar son divisibles por 7.
c) La suma de dos números consecutivos siempre es inferior a 100.
El programa terminara de pedir números cuando le entremos un -1.

Lo que te puede servir para resolver algoritmos es hacer algo bien macro de lo que querés hacer y después vas rellenando con el detalle. Por ejemplo un posible razonamiento/solución:

Lo que quiero saber acá es si una serie de numeros es prt analizando en cada iteración 3 criterios


bool es_ptr(int* serie_numeros){

//si la serie cumple a,b y c retorna true, de lo contrario retorna false.

}


Ok, ahora sabes que neceistas recorrer tu serie para saber si cumple o no, supongo que la serie se da como array


bool es_ptr(int* serie_numeros){

int numero_actual;
int i = 0;
numero_actual = serie_numeros[i]

while( numero_actual != -1){

// si no cumplen a,b o c retorno false

i++;
numero_actual = serie_numeros[i];
}

//todos cumplen

return true;

}


Solo te falta preguntar si se cumplen las condiciones, con ayuda de alguna variable auxiliar no debería ser mucho problema. Notar que C se evalúa siempre pero A y B dependen de si es par o impar


bool es_ptr(int* serie_numeros){

int numero_actual,i, ultimo_nro_par, anterior;

i = 0;
anterior = 0;
ultimo_par = -1;
numero_actual = serie_numeros[i]

while( numero_actual != -1){

if (es_par(i)){ // Evaluo el caso A

if(!(ultimo_par < nro_actual)){
return false; // no cumple A
}

ultimo_nro_par = nro_actual;
}else{ //es impar, evaluo el caso B

if(! es_divisible(numero_actual, 7)){
return false; // No cumple B
}

}

if((anterior + numero_actual) >= 100){
return false; // No cumple C
}

anterior = numero_actual ;
numero_actual = serie_numeros[++i];
}

//todos cumplen

return true;
}

bool es_par(int numero){
//aca tu codigo
}

bool es_divisible(int numerador, int denominador){
// tambien podria ser es_divisible_por_siete(int numerador)
}


Lo hice medio a las patadas, seguro se puede mejorar o hacer una solución más elegante. Espero que te sriva, like y suscribete a mi canal thumbup3
URLs de referencia