Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problemas codeblocks

Estas en el tema de Problemas codeblocks en el foro de C/C++ en Foros del Web. PROBLEMA 1 : El primer metro pasa a las 6h 31m 12s y a partir de entonces pasa cada 7 minutos y medio. Realice un ...
  #1 (permalink)  
Antiguo 04/11/2014, 13:41
HWF
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Problemas codeblocks

PROBLEMA 1: El primer metro pasa a las 6h 31m 12s y a partir de entonces pasa cada 7 minutos y medio.

Realice un programa que nos pida la hora actual y nos indique cuánto tiempo (en minutos y segundos) queda para que pase el siguiente metro (puede suponer que la hora introducida es correcta y posterior a la hora del primer metro).
Pruebas:

A las 7h 39m 13s debe esperar 6m y 59s
A las 7h 38m 43s debe espera 7m y 29s (lo perdimos por 1 segundo)
A las 7h 46m 12s debe esperar 0m y 0s (esta en la parada)
A las 7h 53m 41s debe esperar 0m y 1s (está llegando en 1 segundo)

(A) Pruebe con un bucle hasta alcanzar la hora actual

(B) Piense una solución sin bucle, con una expresión aritmética.


Ejercicio 2. Encripte una palabra que introduzca el usuario de forma que cada letra se desplace dos posiciones en el alfabeto.

Las letras en C++ se codifican en ASCII
Tenga en cuenta que un char puede tratarse como su código ASCII

Ejercicio 3. Modifique el programa para que admita espacios en blanco antes de la palabra. Tomaremos como espacios en blanco los caracteres. ' ' y '\t'.

Ejercicio 4. Modifique el programa para que admita una línea de texto con varias palabras.

Los espacios en blanco no se debe codificar, pero deben salir en la línea de texto de la salida
Los espacios iniciales se deben ignorar
Los tabuladores y las posibles cadenas de espacios se convierten a un único espacio en blanco
Ejercicio 5. Modifique el programa para que el desplazamiento lo seleccione el usuario al comenzar el programa

Ejercicio 6. Modifique el programa para que la codificación sea circular, es decir, cuando la letra codificada resultante sea mayor que z, se codifica empezando de nuevo por la letra a. Por ejemplo, para la codificación anterior con un desplazamiento de 2:

a --> c
b --> d
x --> z
y --> a
z --> b

(Los problemas del 2 al 6 se debe de hacerlo con entradas/salidas básicas. Ej: cin.get...)
  #2 (permalink)  
Antiguo 04/11/2014, 13:42
HWF
 
Fecha de Ingreso: octubre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Problemas codeblocks

Esto es lo que llevo respecto al PROBLEMA 1, no sé cómo continuar...

#include <iostream>
using namespace std;
#define HORA_INI 6
#define MIN_INI 31
int main ()
{
const unsigned horaIni = 6;
const unsigned minIni = 31;
const unsigned segIni = 12;
const unsigned minFreq = 7;
const unsigned segFreq = 30;

unsigned hIni;
unsigned hActual;
unsigned hLlegada;
unsigned frecuencia;

hIni = (3600* horaIni + 60 * minIni + 12);
frecuencia = 60 * minFreq + segFreq;



for (hLlegada=hIni; hLlegada <= hActual; hLlegada += 450);




return 0;
}
  #3 (permalink)  
Antiguo 05/11/2014, 01:20
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Problemas codeblocks

Código C++:
Ver original
  1. for (hLlegada=hIni; hLlegada <= hActual; hLlegada += 450);

debería ser

Código C++:
Ver original
  1. for (hLlegada=hIni; hLlegada < hActual; hLlegada += frecuencia );

ya que lo que se supone que el bucle debe calcular la hora de paso del siguiente convoy...

Una vez sales del bucle deberías tener la hora del siguiente convoy... haz una resta con la frecuencia y el resultado será el número de segundos hasta el siguiente convoy. Te queda convertir ese número de segundos en un tiempo de minutos y segundos.

No te pongo código porque, dado que estás aprendiendo, es mejor que primero lo intentes tu.

Un saludo.

Etiquetas: char, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:16.