Salida de carro o moto en programa simulador de estacionamiento en ANSI C

Estacionamiento en ANSI C – Ejercicio de programación resuelto

Hoy vamos a ver un pequeño sistema de estacionamiento en el lenguaje de programación C, también conocido como ANSI C. Es un ejercicio resuelto. El mismo dice así:

Un estacionamiento posee 10 puestos para carros y 6 para moto. La empresa desea un software que le permita mantener el registro de los autos que entran y salen del estacionamiento para saber cuáles puestos quedan libres.

Consideraciones del sistema.

  1. Los puestos del estacionamiento están enumerados y el usuario podrá elegir en donde desea estacionarse, adicionalmente se deberá marcar la hora de entrada y la hora de salida.
  2. En cada puesto solo puede haber un único auto/moto.
  3. A medida que los puestos se estén llenando se deberá mostrar por pantalla cuales están disponibles.
  4. El valor por hora es de 3 mil pesos los carros y 1 mil pesos las motos.
  5. No se debe registrar dos veces el mismo vehículo.
  6. Al final cada usuario se le imprimirá la factura de la cantidad de horas, minutos y segundos que usó el estacionamiento. Y si se pasó por 2 minutos las horas que indicó en el registro, este deberá pagar un excedente de 200 pesos por cada minuto.
  7. Adicional, se deberá imprimir en la factura la placa del vehículo. Horas/minutos extras, Total a pagar, Hora de entrada del vehículo, hora de salida del vehículo y Horas consumidas.
  8. Una vez que alguien paga y sale del estacionamiento, el puesto debe quedar libre para otro usuario pueda usarlo.

Veamos cómo hacer este ejercicio de estacionamiento en C.

(más…)

Cola en C - Programación de estructuras de datos con listas

Cola en C – Estructura de datos

En este post vamos a implementar una estructura de datos en C.

Se trata de una cola, que a su vez es una lista en donde iremos colocando los elementos al final de la misma, contrario a una pila en donde cada elemento va a la parte superior.

Hay varias operaciones para una cola en C, pero por ahora te mostraré las 2 básicas: la de encolar un elemento y la de recorrer la cola.

Con esos dos métodos ya puedes calcular el tamaño de la lista, comprobar si un elemento existe en la cola y muchas cosas más.

Recuerda que la cola en C puede ser de cualquier tipo y guardar cualquier cantidad de datos de cualquier tipo. Al final nosotros le asignamos memoria dinámicamente con malloc.

(más…)

Por parzibyte, hace
Recorrer cadena letra por letra en C - Programación

Recorrer cadena carácter por carácter en C

En el post de hoy vamos a ver cómo recorrer una cadena letra por letra en C. Te mostraré dos ejemplos de recorrer, char por char, una cadena en C.

Veremos cómo usar un ciclo for con la longitud de la cadena para iterarla y también un ciclo while verificando si hemos llegado al carácter nulo.

Nota: esto también funciona en C++ aunque ahí hay métodos más fáciles.

(más…)

Por parzibyte, hace
Leer contraseña en C sin mostrar caracteres escritos (mostrar asteriscos)

C – Leer contraseña sin mostrarla

En el post de hoy vamos a leer una cadena usando C (compatible con C++) pero no vamos a mostrarla, simplemente vamos a mostrar asteriscos o cualquier otro carácter mientras el usuario escribe.

Esto será hecho en C con MinGW en Windows pero lo he probado igual con Dev-C++. Al final tendremos un programa que va a solicitar una contraseña, no la va a mostrar y mostrará asteriscos en su lugar.

(más…)

Diferencia entre 2 fechas con C (tiempo transcurrido)

En el tutorial de hoy vamos a trabajar con C y marcas de tiempo o timestamps para obtener la diferencia entre una fecha y hora y otra.

Te mostraré ejemplos para saber la diferencia que hay entre un timestamp y otro, logrando así calcular el tiempo transcurrido entre 2 marcas de tiempo.

Por otro lado veremos cómo formatear el tiempo transcurrido en C y obtener la diferencia en horas, minutos y segundos.

(más…)

Conjetura de Collatz en C - Contar iteraciones e imprimir secuencia

Conjetura de Collatz en C

Hoy vamos a implementar la conjetura de Collatz en C. Aunque decir “implementar” la conjetura de Collatz no tiene sentido, así que mejor dicho vamos a tratar de probar la conjetura de Collatz.

Si en algún momento entramos a un ciclo infinito podríamos decir que la conjetura de Collatz es falsa, pero eso no ha pasado hasta el día de hoy.

Como sea, vamos a hacer una función que te indica las iteraciones que le llevan a un número llegar a 1 siguiendo la operación de 3N+1 si el mismo es impar, y dividiendo al número entre 2 si es par.

Además de indicar las iteraciones vamos a imprimir la secuencia de números.

(más…)

Programación en C - Codificar texto con matriz de 25 letras

C – Codificación de texto con matriz

Hoy te mostraré un ejercicio resuelto en el lenguaje de programación C. Se trata de codificar un texto usando una matriz de 5 x 5 en donde una letra del alfabeto (que es el código) se remueve de la matriz para que solo haya 25 letras.

No encontré un nombre para esta codificación, pero básicamente se trata de eso: solicitar la letra que será el código, generar la matriz con las 25 letras sin contar el código y luego cifrar letras de par en par.

A continuación te muestro los detalles del ejercicio.

(más…)

Iniciar juego de arqueros en el bosque

Arqueros en el bosque con C – Programación de juego

Hoy te mostraré la solución a un ejercicio propuesto en C que trata sobre hacer el juego de Arqueros en el bosque.

El juego consiste de un bosque representado mediante una cuadrícula, como el que se presenta a continuación (la vista es aérea):

Cuadrícula de bosque para arqueros - Juego programado en C

Cuadrícula de bosque para arqueros – Juego programado en C

Donde X representa un árbol. El objetivo del juego consiste en que 2 jugadores (arqueros) ingresan al bosque por extremos opuestos (J1 en 9-A y J2 en 1-I) y cada uno debe de intentar eliminar al otro.

Para ello en cada turno un arquero podrá elegir entre moverse un lugar o disparar un flechazo. Los flechazos se mueven en línea recta, una distancia máxima de 5 metros (asuma cada celda 1 metro).

Por otro lado un jugador no puede moverse a una celda donde hay un árbol y las flechas no pueden traspasarlos. Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.

Veamos entonces cómo hacer este juego en ANSI C, C, C 99 o como le quieras llamar. Obviamente es compatible con C++.

(más…)

Radio y circunferencia de círculo con C

Radio y circunferencia en C

En este post de programación en C vamos a resolver un ejercicio muy simple. Se trata de calcular el radio y la circunferencia de un círculo.

Lo único que vamos a hacer será leer el diámetro (recuerda que este valor puede venir de cualquier lugar, por ejemplo, entrada del usuario), aplicar las fórmulas e imprimir los resultados.

Por cierto, no olvides que vamos a necesitar PI para calcular la circunferencia y radio en C.

(más…)

Por parzibyte, hace
Porcentaje de diferencia con C - Programación

Porcentaje de diferencia en C

En este post de programación en C te enseñaré a sacar el porcentaje de diferencia que existe entre dos números, ya sea positivo o negativo.

Te voy a enseñar una función en ANSI C que te dirá el porcentaje de diferencia que hay entre dos variables de tipo double. Por ejemplo, entre el 50 y el 75 hay un porcentaje de diferencia del 50 %, mientras que entre 6 y 5 existe uno (negativo) de -16.6 %.

El porcentaje de diferencia sirve para hacer comparativas entre dos números y saber si ha habido un aumento o disminución.

(más…)

Por parzibyte, hace