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

problema con algoritmo en C

Estas en el tema de problema con algoritmo en C en el foro de C/C++ en Foros del Web. Hola a todos! Solicito su ayuda para un algoritmo en C, necesito un temporizador y aplicarle estructuras selectivas y de repetición, el problema es que ...
  #1 (permalink)  
Antiguo 01/02/2012, 20:42
Avatar de sonic27  
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta problema con algoritmo en C

Hola a todos!

Solicito su ayuda para un algoritmo en C, necesito un temporizador y aplicarle estructuras selectivas y de repetición, el problema es que involucra tiempo y es ahí donde no se cómo hacerle. Si alguien me explicara como funcionan las funciones de time.h se los agradeceria

Llevo esto apenas:

#include <stdio.h>
#include <time.h>


int main ()
{
int i;
timer_t tempoId; /* identificador temporizador creado que
devuelve la función create_timer */

i=timer_create(CLOCK_REALTIME,NULL,&tempoId);
/* el segundo argumento sirve para definir el tipo de notificación cuando vence el temporizador */
}
  #2 (permalink)  
Antiguo 01/02/2012, 23:50
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con algoritmo en C

depende lo que quieras hacer, porque en mi caso no entendi muy bien pero aqui tienes explicaciones de la libreria time.h.

http://www.cplusplus.com/reference/clibrary/ctime/

explicate mejor para saber como ayudarte. saludos
  #3 (permalink)  
Antiguo 02/02/2012, 11:41
Avatar de sonic27  
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: problema con algoritmo en C

Cita:
Iniciado por starfix Ver Mensaje
depende lo que quieras hacer, porque en mi caso no entendi muy bien pero aqui tienes explicaciones de la libreria time.h.

[URL="http://www.cplusplus.com/reference/clibrary/ctime/"]http://www.cplusplus.com/reference/clibrary/ctime/[/URL]

explicate mejor para saber como ayudarte. saludos
Lo que quiero hacer es un algoritmo que incluya estructuras selectivas y de repetición para programar un aparato que encienda a determinada hora del dia.

gracias por el link!
  #4 (permalink)  
Antiguo 02/02/2012, 13:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con algoritmo en C

bueno, este ejemplo lo que va a hacer es dejar el programa en pausa hasta que sean las 19 horas:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <time.h>
  3. using namespace std;
  4.  
  5. int main(int argc, char *argv[]) {
  6.    
  7.     time_t tiempo;
  8.     tm *Actual;
  9.    
  10.     do{
  11.        
  12.     time (&tiempo);
  13.     Actual= localtime(&tiempo);
  14.    
  15.     }while(Actual->tm_hour != 19);
  16.  
  17.               cout<<"son las 19 horas";
  18.        
  19.     return 0;
  20. }
  #5 (permalink)  
Antiguo 02/02/2012, 21:11
Avatar de sonic27  
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: problema con algoritmo en C

hola starfix!
gracias primero que nada por atender mi duda

gracias por tu sugerencia, pero yo staba pensando que mejor seria usar nada mas while sin el do (se supone que es un programa que encienda un aparato, suponiendo que funcionara con agua se tiraria).

empece a hacer este algoritmo (se supone que debe incluir estructuras de control una selectiva y una repetitiva) sin incluir por el momento time.h


#include <stdio.h>
#include <stdlib.h>

main()
{
char on, off; /*variables de entrada y salida*/
while (7<on); /*el 7 es "la hora de encendido"*/
{
printf ("%c", on);
if (8>=on) /*si son mas de las 8 se apaga*/
printf ("off");

}

return 0;
system ("pause");
}

como te daras cuenta soy un novato, ojala me pudieras corregir si no es correcto lo que estoy haciendo.
  #6 (permalink)  
Antiguo 02/02/2012, 22:54
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con algoritmo en C

Código C++:
Ver original
  1. #include <stdio.h>
  2.  #include <stdlib.h>
  3.  
  4.  main()
  5.  {
  6.  char on, off; /*variables de entrada y salida*/
  7.  while (7<on); /*el 7 es "la hora de encendido"*/
  8.  {
  9.  printf ("%c", on);
  10.  if (8>=on) /*si son mas de las 8 se apaga*/
  11.  printf ("off");
  12.  
  13.  }
  14.  
  15.  return 0;
  16.  system ("pause");
  17.  }

si las variables on y off van a representar la hora de encendido y apagado respectivamente que el usuario desee, te recomiendo que sean de tipo int. Esto es para evitar problemas en las condiciones de las lineas 7 y 10 pasa lo siguiente (si estoy en lo correcto):

linea 7: (lo siguiente no estoy seguro de que sea asi, es lo que a mi me parece que pasa) Supongamos que la variable on vale 9. El compilador toma el numero 7 y lo compara con el valor de la variable on, aqui hay un problema, 7 es un entero y on es de tipo char, asi que el compilador convierte el valor de on a su valor en entero, para esto utiliza la tabla ascii, segun esta tabla el numero que le corresponde al 9 es el 57, asi que transforma la variable on al numero 57 y ahi realiza la comparacion. Es lo mismo que poner lo siguiente:

Código C++:
Ver original
  1. while (7<57); //en caso de que la variable on valga 9

linea 10: La condicion no tendria que ser al reves?,
  #7 (permalink)  
Antiguo 04/02/2012, 12:50
Avatar de sonic27  
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: problema con algoritmo en C

Gracias por la ayuda starfix!

Entonces si pongo variable int en vez de char quedaria mejor?

Y en la linea 10 me equivoqué, en vez de on seria off.

Entonces en tu opinión si está bien elaborado?

Saludos
  #8 (permalink)  
Antiguo 04/02/2012, 13:20
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con algoritmo en C

Cita:
Iniciado por sonic27 Ver Mensaje
Entonces si pongo variable int en vez de char quedaria mejor?
si solo manejan numeros seria mejor.



Cita:
Iniciado por sonic27 Ver Mensaje
Entonces en tu opinión si está bien elaborado?

podrias hacer lo siguiente:

Código C++:
Ver original
  1. int actual;
  2.  
  3. while (1){
  4.  
  5. //aqui se obtiene la hora actual y se lo almacena en la variable
  6.  
  7. if (actual == 7){
  8.  
  9. //algoritmo de encendido
  10.  
  11. }
  12.  
  13. if (actual == 8){
  14.  
  15. //algoritmo de apagado
  16.  
  17. }
  18. }


lo que hace es:

- cada vez que se entra en el while, obtiene la hora actual y la almacena

- en caso de que la hora sea las 7, comienza con el algoritmo correspondiente al encendido del aparato

- en caso de que ya sean las 8 comienza con el de apagado

- en la condicion del while coloque 1 para que la condicion siempre sea true, la podes cambiar por alguna otra cosa, pero tene en cuenta de que si se enciende el aparato y la condicion termina, este no se va a apagar

- en caso de que el horario de encendido y apagado se puedan cambiar, solamente basta con cambiar el 7 y el 8 por 2 variables y leerlas de alguna forma.

saludos
  #9 (permalink)  
Antiguo 07/02/2012, 20:45
Avatar de sonic27  
Fecha de Ingreso: enero-2012
Mensajes: 23
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: problema con algoritmo en C

Hola starfix!

Perdón por no haberle dado seguimiento a este post pero me ocupé un poco

Mira hice este algoritmo:

#include <stdio.h>
#include <stdlib.h>


main()
{
int on, off; /*variables de entrada y salida*/
while (7==on); /*el 7 es "la hora de encendido"*/
{
printf ("%d", on);
if (8==off) /*si son las 8 se apaga*/
printf ("%d",off);
}
return 0;
system ("pause");
}

Y mi profesor me ha pedido que realice una prueba de escritorio, esto con la idea de asegurar que la solución que propongo es realmente lo que necesito, solo que no estoy seguro de haberla hecho bien, vos que pensas?? esta bien hecha esta prueba??

  #10 (permalink)  
Antiguo 10/02/2012, 12:00
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con algoritmo en C

puede que otra persona te pueda ayudar a realizar el cuadro... pero puedo ver algunas cosas, tambien puede que lo que algunas cosas que te diga esten mal, asi que hay que mirarlo bien:

- 1era linea, las variables on y off no tienen valor 0 porque no se las inicializa en el programa. Mirate este link donde se explica un poco porque inicializar las variables, al menos en 0

porque inicializar variables

- imprimir "programar boiler, introducir hora" y leer hora no esta el codigo presente

- mientras=7: a la variable on no se le modificar el valor por 1

- si=8 no se le modifica el valor a la variable off en el codigo, tampoco a on

- nunca se llega a fin de ciclo si la variable on vale 7, ya que nunca se modifica y queda en un loop infinito


habria que terminar bien el codigo para realizar bien el cuadro

saludos

Etiquetas: estructura, repetitiva, selectiva, temporizador, algoritmos
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 10:02.