Gestión sala Cine con C

Source code c plus

[et_pb_section fb_built=»1″ _builder_version=»3.22″][et_pb_row _builder_version=»3.25″ background_size=»initial» background_position=»top_left» background_repeat=»repeat»][et_pb_column type=»4_4″ _builder_version=»3.25″ custom_padding=»|||» custom_padding__hover=»|||»][et_pb_text _builder_version=»4.4.6″ background_size=»initial» background_position=»top_left» background_repeat=»repeat»]

Pues bien, para ir terminando de rematar los ejercicios con arrays, nos vamos a realizar una aplicación para gestionar las butacas de una sala de cine, de momento como no estamos tocando el entorno gráfico, lo voy a realizar en modo ASCII para recordar viejos tiempos. El programa debe de poder iniciar la sala, poniendo todas las butacas libres, tiene que poder imprimirte la sala con las butacas y decirte cuantas están libres y ocupadas, propusimos la idea de que fuera ASCII para que se viera a simple vista el aforo de la sala, por lo tanto vamos a utilizar para este cometido los caracteres «.» para cuando este libre y «X» para cuando este ocupada.

Evidentemente y como ultima función, debe de poder ocupar las butacas, para ello pediremos fila y número de butaca, visualizar por un momento como esta dispuesto una sala de Cine, por una parte están las filas, cada fila tiene u número determinado de butacas, para no hacer que la visualización de la misma sea enorme en la pantalla, hemos planteado en hacerla para 10 filas con 25 butacas, dándonos un total de 250 butacas para ver la película en esa sala.

Pues bien, empezamos a desarrollar el código:[/et_pb_text][et_pb_dmb_code_snippet title=»Lenguaje C» code=»I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFggMTAKI2RlZmluZSBZIDI1Cgp2b2lkIGluaWNpYXIoaW50IHNbWF1bWV0pOwp2b2lkIGltcHJpbWlyKGludCBzW1hdW1ldKTsKdm9pZCBvY3VwYXIoaW50IHNbWF1bWV0pOwp2b2lkIG1lbnUoKTsKCnZvaWQgbWFpbigpIHsKICAgaW50IHNhbGFbWF1bWV07CiAgIGludCBvcGM7CgogICBkbyB7CiAgICAgICAgbWVudSgpOwogICAgICAgIHNjYW5mKCIlZCIsJm9wYyk7CiAgICAgICAgc3dpdGNoIChvcGMpIHsKICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBpbmljaWFyKHNhbGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgaW1wcmltaXIoc2FsYSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICBvY3VwYXIoc2FsYSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICBjYXNlIDA6IGJyZWFrOwogICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBwcmludGYoIlxuTm8gaGEgaW50cm9kdWNpZG8gdW5hIG9wY2nDs24gdmFsaWRhLi5cbiIpOwogICAgICAgIH0KICAgfSB3aGlsZSAob3BjICE9IDApOwp9Cgp2b2lkIG1lbnUoKSB7CiAgIHByaW50ZigiXG5QdWxzZSBlbiBsYSBvcGNpw7NuIGRlc2VhZGEgbyAwIHBhcmEgc2FsaXIuLi5cbiIpOwogICBwcmludGYoIjEuIEluaWNpYXIgc2FsYVxuIik7CiAgIHByaW50ZigiMi4gSW1wcmltaXIgbGEgb2N1cGFjacOzbiBkZSBsYSBzYWxhXG4iKTsKICAgcHJpbnRmKCIzLiBPY3VwYXIgYnV0YWNhXG4iKTsKICAgcHJpbnRmKCIwLiBTYWxpclxuIik7CiAgIHByaW50ZigiRWxpamUgdW5hIG9wY2lvbjogIik7Cn0KCnZvaWQgaW5pY2lhcihpbnQgc1tYXVtZXSkgewogICBpbnQgaSwgajsKCiAgIGZvcihpPTA7aTxYO2krKykgewogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIHNbaV1bal0gPSAwOwogICAgICAgIH0KICAgfQp9Cgp2b2lkIGltcHJpbWlyKGludCBzW1hdW1ldKSB7CiAgIGludCBpLCBqOwogICBpbnQgbGlicmVzPTAsIG9jdXBhZGE9MCwgbGlicmV0b3RhbD0wLCBvY3VwYWRhdG90YWw9MDsKCiAgIHByaW50ZigiXG5CdXRhY2FcdDEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDEyIDEzIDE0IDE1IDE2IDE3IDE4IDE5IDIwIDIxIDIyIDIzIDI0IDI1Iik7CiAgIGZvcihpPTA7aTxYO2krKykgewogICAgICAgIHByaW50ZigiXG5GaWxhICVkXHQiLCBpKzEpOwogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIGlmIChzW2ldW2pdID09IDEpIHsKICAgICAgICAgICAgICAgIGlmIChqID4gOSkKICAgICAgICAgICAgICAgICAgIHByaW50ZigiIFggIik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICBwcmludGYoIlggIik7CiAgICAgICAgICAgICAgICBvY3VwYWRhKys7CiAgICAgICAgICAgICAgICBvY3VwYWRhdG90YWwrKzsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGogPiA5KQogICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgLiAiKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgIHByaW50ZigiLiAiKTsKICAgICAgICAgICAgICAgIGxpYnJlcysrOwogICAgICAgICAgICAgICAgbGlicmV0b3RhbCsrOwogICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRmICgiIC0+IExpYnJlcyAlZCAvIE9jdXBhZGFzICVkIiwgbGlicmVzLCBvY3VwYWRhKTsKICAgICAgICBsaWJyZXM9MDsKICAgICAgICBvY3VwYWRhPTA7CiAgIH0KICAgcHJpbnRmKCJcblRvdGFsIGJ1dGFjYXMgb2N1cGFkYXM6ICVkIFx0IFRvdGFsIGJ1dGFjYXMgbGlicmVzOiAlZFxuIiwgb2N1cGFkYXRvdGFsLCBsaWJyZXRvdGFsKTsKfQoKdm9pZCBvY3VwYXIoaW50IHNbWF1bWV0pIHsKICAgaW50IGksIGo7CiAgIGludCByZXNlcnZhW1hdW1ldLCByaTsKCiAgIGluaWNpYXIocmVzZXJ2YSk7CiAgIGltcHJpbWlyKHMpOwoKICAgcHJpbnRmKCJcbkVsaWphIGxhIGZpbGEgeSBidXRhY2EgcXVlIHF1aWVyYSBjb2dlciwgcGFyYSBwYXJhciBkZSByZXNlcnZhciBpbnRyb2R1emNhIHVuIDAgZW4gbGEgZmlsYS4uLlxuIik7CgogICBkbyB7CiAgICAgICAgcHJpbnRmKCJGaWxhOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCZpKTsKICAgICAgICBpZiAoaSAhPSAwKSB7CiAgICAgICAgICAgZmZsdXNoKHN0ZGluKTsKICAgICAgICAgICBwcmludGYoIkJ1dGFjYTogIik7CiAgICAgICAgICAgc2NhbmYoIiVkIiwgJmopOwogICAgICAgICAgIGZmbHVzaChzdGRpbik7CiAgICAgICAgICAgaWYgKHJlc2VydmFbaS0xXVtqLTFdID09IDAgJiYgc1tpLTFdW2otMV0gPT0gMCkKICAgICAgICAgICAgICAgIHJlc2VydmFbaS0xXVtqLTFdID0gMTsKICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBwcmludGYoIlxuTGEgYnV0YWNhICVkIGRlIGxhIGZpbGEgJWQgZXN0YSBvY3VwYWRhLCByZXNlcnZlIG90cmEgbG9jYWxpZGFkLi4uXG4iLCBqLCBpKTsKICAgICAgICB9CiAgIH0gd2hpbGUoaSAhPSAwKTsKICAKICAgZm9yIChpPTA7aTxYO2krKykgewogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIGlmIChyZXNlcnZhW2ldW2pdID09IDEpIHsKICAgICAgICAgICAgICAgIHNbaV1bal0gPSAxOwogICAgICAgICAgIH0KICAgICAgICB9CiAgIH0KICAgcHJpbnRmKCJcbllhIGhhIHJlc2VydmFkbyBzdXMgYnV0YWNhcywgZ3JhY2lhcy5cbiIpOwp9″ language=»c» tabwidth=»4″ _builder_version=»4.4.6″ hover_enabled=»0″ style=»atelier-cave-light» linenums=»on» usetabwidth=»on»]I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFggMTAKI2RlZmluZSBZIDI1Cgp2b2lkIGluaWNpYXIoaW50IHNbWF1bWV0pOwp2b2lkIGltcHJpbWlyKGludCBzW1hdW1ldKTsKdm9pZCBvY3VwYXIoaW50IHNbWF1bWV0pOwp2b2lkIG1lbnUoKTsKCnZvaWQgbWFpbigpIHsKICAgaW50IHNhbGFbWF1bWV07CiAgIGludCBvcGM7CgogICBkbyB7CiAgICAgICAgbWVudSgpOwogICAgICAgIHNjYW5mKCIlZCIsJm9wYyk7CiAgICAgICAgc3dpdGNoIChvcGMpIHsKICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBpbmljaWFyKHNhbGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgaW1wcmltaXIoc2FsYSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICBvY3VwYXIoc2FsYSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICBjYXNlIDA6IGJyZWFrOwogICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBwcmludGYoIlxuTm8gaGEgaW50cm9kdWNpZG8gdW5hIG9wY2nDs24gdmFsaWRhLi5cbiIpOwogICAgICAgIH0KICAgfSB3aGlsZSAob3BjICE9IDApOwp9Cgp2b2lkIG1lbnUoKSB7CiAgIHByaW50ZigiXG5QdWxzZSBlbiBsYSBvcGNpw7NuIGRlc2VhZGEgbyAwIHBhcmEgc2FsaXIuLi5cbiIpOwogICBwcmludGYoIjEuIEluaWNpYXIgc2FsYVxuIik7CiAgIHByaW50ZigiMi4gSW1wcmltaXIgbGEgb2N1cGFjacOzbiBkZSBsYSBzYWxhXG4iKTsKICAgcHJpbnRmKCIzLiBPY3VwYXIgYnV0YWNhXG4iKTsKICAgcHJpbnRmKCIwLiBTYWxpclxuIik7CiAgIHByaW50ZigiRWxpamUgdW5hIG9wY2lvbjogIik7Cn0KCnZvaWQgaW5pY2lhcihpbnQgc1tYXVtZXSkgewogICBpbnQgaSwgajsKCiAgIGZvcihpPTA7aTxYO2krKykgewogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIHNbaV1bal0gPSAwOwogICAgICAgIH0KICAgfQp9Cgp2b2lkIGltcHJpbWlyKGludCBzW1hdW1ldKSB7CiAgIGludCBpLCBqOwogICBpbnQgbGlicmVzPTAsIG9jdXBhZGE9MCwgbGlicmV0b3RhbD0wLCBvY3VwYWRhdG90YWw9MDsKCiAgIHByaW50ZigiXG5CdXRhY2FcdDEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDEyIDEzIDE0IDE1IDE2IDE3IDE4IDE5IDIwIDIxIDIyIDIzIDI0IDI1Iik7CiAgIGZvcihpPTA7aTxYO2krKykgewogICAgICAgIHByaW50ZigiXG5GaWxhICVkXHQiLCBpKzEpOwogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIGlmIChzW2ldW2pdID09IDEpIHsKICAgICAgICAgICAgICAgIGlmIChqID4gOSkKICAgICAgICAgICAgICAgICAgIHByaW50ZigiIFggIik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICBwcmludGYoIlggIik7CiAgICAgICAgICAgICAgICBvY3VwYWRhKys7CiAgICAgICAgICAgICAgICBvY3VwYWRhdG90YWwrKzsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGogPiA5KQogICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgLiAiKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgIHByaW50ZigiLiAiKTsKICAgICAgICAgICAgICAgIGxpYnJlcysrOwogICAgICAgICAgICAgICAgbGlicmV0b3RhbCsrOwogICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRmICgiIC0+IExpYnJlcyAlZCAvIE9jdXBhZGFzICVkIiwgbGlicmVzLCBvY3VwYWRhKTsKICAgICAgICBsaWJyZXM9MDsKICAgICAgICBvY3VwYWRhPTA7CiAgIH0KICAgcHJpbnRmKCJcblRvdGFsIGJ1dGFjYXMgb2N1cGFkYXM6ICVkIFx0IFRvdGFsIGJ1dGFjYXMgbGlicmVzOiAlZFxuIiwgb2N1cGFkYXRvdGFsLCBsaWJyZXRvdGFsKTsKfQoKdm9pZCBvY3VwYXIoaW50IHNbWF1bWV0pIHsKICAgaW50IGksIGo7CiAgIGludCByZXNlcnZhW1hdW1ldLCByaTsKCiAgIGluaWNpYXIocmVzZXJ2YSk7CiAgIGltcHJpbWlyKHMpOwoKICAgcHJpbnRmKCJcbkVsaWphIGxhIGZpbGEgeSBidXRhY2EgcXVlIHF1aWVyYSBjb2dlciwgcGFyYSBwYXJhciBkZSByZXNlcnZhciBpbnRyb2R1emNhIHVuIDAgZW4gbGEgZmlsYS4uLlxuIik7CgogICBkbyB7CiAgICAgICAgcHJpbnRmKCJGaWxhOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCZpKTsKICAgICAgICBpZiAoaSAhPSAwKSB7CiAgICAgICAgICAgZmZsdXNoKHN0ZGluKTsKICAgICAgICAgICBwcmludGYoIkJ1dGFjYTogIik7CiAgICAgICAgICAgc2NhbmYoIiVkIiwgJmopOwogICAgICAgICAgIGZmbHVzaChzdGRpbik7CiAgICAgICAgICAgaWYgKHJlc2VydmFbaS0xXVtqLTFdID09IDAgJiYgc1tpLTFdW2otMV0gPT0gMCkKICAgICAgICAgICAgICAgIHJlc2VydmFbaS0xXVtqLTFdID0gMTsKICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBwcmludGYoIlxuTGEgYnV0YWNhICVkIGRlIGxhIGZpbGEgJWQgZXN0YSBvY3VwYWRhLCByZXNlcnZlIG90cmEgbG9jYWxpZGFkLi4uXG4iLCBqLCBpKTsKICAgICAgICB9CiAgIH0gd2hpbGUoaSAhPSAwKTsKICAKICAgZm9yIChpPTA7aTxYO2krKykgewogICAgICAgIGZvcihqPTA7ajxZO2orKykgewogICAgICAgICAgIGlmIChyZXNlcnZhW2ldW2pdID09IDEpIHsKICAgICAgICAgICAgICAgIHNbaV1bal0gPSAxOwogICAgICAgICAgIH0KICAgICAgICB9CiAgIH0KICAgcHJpbnRmKCJcbllhIGhhIHJlc2VydmFkbyBzdXMgYnV0YWNhcywgZ3JhY2lhcy5cbiIpOwp9[/et_pb_dmb_code_snippet][et_pb_text _builder_version=»4.4.6″]Descarga: CÓDIGO FUENTE

Espero que para ir rematando los ejercicios con ARRAYS, os pueda servir de ayuda este mini-programa de gestión de una sala de Cines.

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Más para explorar

Antiguas noticias
Código Python

Empezando con python

Hace ya un tiempo que llevo pensando en ponerme con Python, su escalada en Lenguajes más queridos (y más usados) en lo referente a mi