Sie sind auf Seite 1von 30

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

HERRAMIENTA DE PROGRAMACION APLICADA I

PROYECTO N2
APLICACIÓN DE ARREGLOS

GRUPO: 1IL115

PROFESORA
PROF. Dra. ADDYS DE LAM

INTEGRANTES
GUAINORA ANA 8-947-2254
NAVARRETE NAZARETH 8-879-2126
SANCHEZ ERNESTO 9-743-681

GRUPO DE TRABAJO NO. 4

FECHA
30 DE OCTUBRE DEL 2018
CONTENIDO
INTRODUCCIÓN .................................................................................................................. 3
1. Objetivos del trabajo ....................................................................................................... 4
2. Contenido ........................................................................................................................ 4
2.1. Definición de la problemática. ................................................................................. 4
2.1.1. Implementación de la técnica de multiplicación de la tabla del 9 con los dedos
de las manos. ................................................................................................................... 4
2.1.2. Conversión de decimal a binario. ..................................................................... 5
2.1.3. Conversión de binario a hexadecimal. .............................................................. 6
2.1.4. Conversión de binario a decimal ...................................................................... 6
3. Formatos .......................................................................................................................... 7
3.1. Datos de Entrada. ..................................................................................................... 7
3.2. Definición de Pantallas de entradas. ........................................................................ 9
3.2.1. Menú principal .................................................................................................. 9
3.2.2. Ingreso de los valores por el usuario ................................................................ 9
3.3. Diseño de Salida (pantalla). ................................................................................... 10
3.3.1. Resultado de la implementación de técnica de las manos en la multiplicación.
10
3.3.2. Resultado de la conversión de decimal a binario. .......................................... 10
3.3.3. Resultado de la conversión de binario a hexadecimal. ................................... 11
3.3.4. Resultado de la conversión de las diagonales de la matriz binaria a decimal. 11
4. Conclusiones ................................................................................................................. 12
5. Referencia...................................................................................................................... 12
6. Programa Fuente. .......................................................................................................... 13
INTRODUCCIÓN

Las estructuras de datos que hemos visto hasta permiten manipular datos de manera muy
flexible. Combinándolas y anidándolas, es posible organizar información de manera
estructurada para representar sistemas del mundo real.

Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un
nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más
baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o
varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.
Los arreglos (arrays) permiten almacenar vectores y matrices. Los arreglos
unidimensionales sirven para manejar vectores y los arreglos bidimensionales para
matrices. Sin embargo, las matrices también pueden ser almacenadas mediante arreglos
unidimensionales. La palabra unidimensional no indica que se trata de vectores en espacios
de dimensión uno; indica que su manejo se hace mediante un subíndice. El manejo de los
arreglos bidimensionales se hace mediante dos subíndices.

En muchas aplicaciones de Ingeniería, por otra parte, más importante que la organización
de los datos es la capacidad de hacer muchas operaciones a la vez sobre grandes conjuntos
de datos numéricos de manera eficiente. Algunos ejemplos de problemas que requieren
manipular grandes secuencias de números son: la predicción del clima, la construcción de
edificios, y el análisis de indicadores financieros entre muchos otros.
1. Objetivos del trabajo
 Comprender el uso de los arreglos tanto unidimensional como multidimensional.
 Implementar el uso de los arreglos para trabajar de manera más clara.
 Reducir la cantidad de variables a utilizar mediante el uso de los arreglos.
 Manipular la dirección de memoria que ocupa nuestro arreglo.
 Identificar los datos que almacenan los arreglos.
 Evitar la confusión de dirección de memoria del arreglo, en comparación a la
información que contienen los arreglos en sí.

2. Contenido
2.1. Definición de la problemática.
2.1.1. Implementación de la técnica de multiplicación de la tabla del 9 con los
dedos de las manos.

2.1.1.1. Técnicas usadas

a. Coloca tus manos frente a ti con las palmas


hacia arriba. Cada uno de tus diez dedos
representará un número. Empezando desde tu dedo
pulgar izquierdo hasta tu pulgar derecho, cuenta los
números del 1 al 10.

b. Dobla hacia abajo el dedo que quieres


multiplicar por 9. Por ejemplo, si quieres
multiplicar 9 por 3, tendrás que doblar tu dedo
medio de la mano izquierda. El dedo medio
representará el número 3 dado que será el tercer
dedo si cuentas tus dedos del 1 al 10 empezando en
tu pulgar izquierdo.

c. Resuelve el problema contando los dedos de la


izquierda y de la derecha. Primero cuenta los
dedos que están a la izquierda de tu dedo doblado:
en este caso deben ser 2. Luego cuenta los dedos
que están a la derecha de tu dedo doblado: en este
caso deben ser 7. El primer dígito de la respuesta es
2 y el segundo es 7. ¡La respuesta es 27! Intenta
este proceso con otros múltiplos de 9
2.1.1.2. Implementación en el programa
se implemento mediante el resultado de la multiplicación del numero
almacenado dado por el usuario.
Este resultado es comparado con su valor ya sabido, por ejemplo,
9X2=18, entonces el usuario introduciría el numero “2” y su resultado
sería comparado con los case{9,18,,27,36,45,54,63,72,81,90}, y si
coincide se mostraría la imagen correspondiente.
2.1.2. Conversión de decimal a binario.
2.1.2.1. Algoritmo implementación en el programa

1. Almacene el resto cuando el número esté dividido por 2 en una


matriz.
2. Divide el número por 2
3. Repita los dos pasos anteriores hasta que el número sea mayor que
cero.
4. Imprima la matriz en orden inverso ahora.

Por ejemplo:
Si el número binario es 10.
Paso 1 : El resto cuando 10 se divide por 2 es cero. Por lo tanto, arr [0] =
0.
Paso 2 : Divide 10 por 2. El nuevo número es 10/2 = 5.
Paso 3 : El resto cuando 5 se divide por 2 es 1. Por lo tanto, arr [1] = 1.
Paso 4 : Divide 5 por 2. El nuevo número es 5/2 = 2.
Paso 5 : El resto cuando 2 se divide por 2 es cero. Por lo tanto, arr [2] =
0.
Paso 6 : Divide 2 por 2. El nuevo número es 2/2 = 1.
Paso 7 : El resto cuando 1 se divide por 2 es 1. Por lo tanto, arr [3] = 1.
Paso 8 : Divide 1 por 2. El nuevo número es 1/2 = 0.
Paso 9 : Dado que el número se convierte en = 0. Imprima la matriz en
orden inverso. Por lo tanto, el número binario equivalente es 1010.

El siguiente diagrama muestra un ejemplo de conversión del número


decimal 17 a un número binario equivalente
2.1.3. Conversión de binario a hexadecimal.
2.1.3.1. Técnicas usadas
El enfoque para convertir números binarios es considerar la entrada binaria
como una cadena de caracteres y luego seguir los pasos:

a. Obtenga la longitud de la su cadena


b. Ahora, desde la izquierda, extraiga una por una su cadena de longitud 4
y agregue su código hexadecimal correspondiente al resultado.
c. resumiendo se convierte cada 4 dígitos a decimal y seguido a su
hexadecimal correspondiente.

2.1.4. Conversión de binario a decimal


2.1.4.1. Técnicas usadas

¿Qué es el teorema fundamental de la numeración?

El Teorema Fundamental de la Numeración (TFN) establece


que en cualquier sistema de numeración posicional todos los
números pueden expresarse mediante la siguiente suma de
productos:

Nb = ap-1·bp-1 + ap-2·bp-2 + ... + a1·b1 + a0·b0 + a-1·b-1 + a-2·b-2 + ... +


a-q+1·b-q+1 + a-q·b-q

es decir,

Figura - Fórmula del Teorema Fundamental de la Numeración.


2.1.4.2. Implementación en el programa
¿Cómo pasar a base 10?

Este tipo de conversión sirve para pasar un número N de cualquier


base (b) a base 10. Para ello, se tiene que hacer uso del Teorema
Fundamental de la Numeración (TFN).

Ejemplo: Si se quiere convertir los números 10,1012, 703,48 y


6C,116 a base 10, aplicando el TFN, se obtiene que:

10,1012 = 1∙21 + 0∙20 + 1∙2-1 + 0∙2-2 + 1∙2-3 = 2 + 0 + 0,5 + 0 +


0,125 = 2,62510

703,48 = 7∙82 + 0∙81 + 3∙80 + 4∙8-1 = 448 + 0 + 3 + 0,5 = 451,510

6C,116 = 6∙161 + C∙160 + 1∙16-1 = 96 + 12 + 0,0625 = 108,062510

3. Formatos
3.1. Datos de Entrada.

3.1.1. variables utilizadas

variables para almacenar las imágenes en una una matriz de tres dimensiones
manos[5][25][40].
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 0 0 0 6 6 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 6 6 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1
1 1 1 0 0 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 0 0 1 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 1 0 0 0 1 0 0 0 1 0 6 6 0 6 6 0 6 6 0 6 6 0 1 1 1
1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 0 6 6 0 1 0 6 6 0 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1
1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 6 6 6 0 1 0 6 6 6 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1
1 1 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 0 6 6 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1
1 1 0 6 6 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1
1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1
1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1
1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1
1 1 1 1 0 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 6 0 1 1 1 1
1 1 1 1 0 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 6 0 1 1 1 1 1
1 1 1 1 0 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 0 1 1 1 1 1
1 1 1 1 0 6 6 6 6 6 6 6 6 0 1 1 1 1 1 1 1 1 1 1 1 0 6 6 6 6 6 6 6 6 0 1 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
figura :realización de la matriz de la imagen de las manos en la multiplicación
3.2. Definición de Pantallas de entradas.
3.2.1. Menú principal

El menú implementado,
es un menú interactivo,
donde el usuario, con el
uso por medio de las
teclas de las flechas
(arriba y abajo) se
desplazará.

imagen1: Menú principal


3.2.2. Ingreso de los valores por el usuario
a. Tabla del Nueve.

imagen2: ingreso de los valores en Tabla del 9.


b. Sistema de conversión.

imagen3: ingreso de los valores a convertir a los diferentes sistemas.


3.3. Diseño de Salida (pantalla).
3.3.1. Resultado de la implementación de técnica de las manos en la
multiplicación.

imagen4: Resultados de la conversión de decimal a binario.


3.3.2. Resultado de la conversión de decimal a binario.

imagen5: Resultados de la conversión de decimal a binario.


3.3.3. Resultado de la conversión de binario a hexadecimal.

imagen6: Resultados de la conversión de binario a hexadecimal(mal ejemplo).


3.3.4. Resultado de la conversión de las diagonales de la matriz binaria a decimal.

imagen7: Resultados de la conversión de las diagonales binarias y su conversión.


4. Conclusiones
Supongamos que somos un metereólogo y queremos guardar en el ordenador la temperatura que ha
hecho cada hora del dia. Para darle cierta utilidad al final calcularemos la media de las temperaturas
°C. tendríamos que declarar tantas temperaturas en muerto programa como los valores que queremos
usar, una locura, esto con un ejemplo que tiene tan sólo 24 variables, ¡¡imagínate si son más!!
Y precisamente aquí es donde nos vienen de perlas los arrays. Vamos a hacer el
programa con un array. Usaremos nuestros conocimientos de bucles for y de scanf.
Como se pudo ver estos programas son más rápido de escribir (y es menos aburrido hacerlo), y más
cómodo para el usuario que el anterior.

Se pudo ver que tanto para un numero de diferentes sistemas de base como para tantas cadenas de
caracteres se puede aplicar los arrays. haciendo el manejo de ellos menos tedioso y repetitivo.

En la programación tradicional siempre se manejan dos tipos de arreglos los arreglos tipo listas, vectores
o unidimensionales y los arreglos tipo tablas, cuadros, concentrados, matrices o bidimensionales en
ambos casos son variables que permiten almacenar un conjunto de datos del mismo tipo a la vez, su
diferencia es en la cantidad de columnas que cada uno de estos tipos contiene.
Para concluir en pocas palabras, un arreglo es la mejor solución a la hora de agrupar distintos datos que
sean de un mismo tipo, estos datos se almacenan en la memoria y reciben un nombre común para todos.

5. Referencia.
Autor Agustín Trejo
Título del articulo Arreglos
Sitio web Introduccionprogramacionbuap.blogspot.com
URL: http://introduccionprogramacionbuap.blogspot.com/2012/11/arreglos.html

Título
del
Programación en C++/Arrays y cadenas de texto - Wikilibros
articulo

Sitio
web Es.wikibooks.org

URL: https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Arrays_y_cadenas_de_texto

Título del articulo Conversión de binario a hexadecimal | MiProfe.com


Sitio web MiProfe.com
URL: https://miprofe.com/conversion-de-binarios-a-hexadecimal/

Título
del Lógica binaria
articulo
Sitio
Recursostic.educacion.es
web

URL: http://recursostic.educacion.es/secundaria/edad/4esotecnologia/quincena5/4q2_contenidos_2

6. Programa Fuente.
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
//VARIABLES PARA CONTROLAR LOS DIFERENTES MENUS
int pos = 0,fin = 0;
int repite = 1;
int repetir2 = 0;
int repetir3 = 0;
char key, opcion;
// VARIABLES DE CONTROL DE LOS FOR
int i,j,n,multi;
//VARIABLE PARA INICIALIZAR Y DEFINICION LAS FIGURAS DE LA MANOS
int manos[5][25][40]={

{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1},

{1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},
{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,1,0,0,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,0,0,0,1,0,0,0,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,0,1,0,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,0,1,0,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,0,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},
{1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1}},

{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1},

{1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,0,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1
,1,1},

{1,1,1,0,0,1,1,1,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1
,1,1},

{1,1,0,6,6,0,1,1,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,1,1,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,1,0,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,0,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,0,0,0,1,0,0,0,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,0,1,0,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},
{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,0,1,0,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,0,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1}},

{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1
,1,1},
{1,1,1,1,1,0,6,6,0,1,1,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1
,1,1},

{1,1,1,0,0,0,6,6,0,1,1,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1
,1,1},

{1,1,0,6,6,0,6,6,0,1,1,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,1,1,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,1,0,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,0,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,0,0,0,1,0,0,0,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,0,1,0,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,0,1,0,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,0,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},
{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1}},

{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1},

{1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,0,0,0,6,6,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1
,1,1},

{1,1,1,0,0,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},
{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,0,0,0,1,0,0,0,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,0,1,0,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,0,1,0,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,0,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1}},
{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1},

{1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1
,1,1},

{1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,0,0,0,1,1,1,1,1
,1,1},

{1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,1,1,1,1
,1,1},

{1,1,1,0,0,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,0,0,1,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,0,0,1,0,6,6,0,6,6,0,6,6,0,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,0,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,0,0,0,0,0,1,1,1,1,1,0,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,0,6,6,6,6,6,6,6,0,6,6,6,6,0,1,1,1,1,1,0,6,6,0,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},
{1,1,0,6,6,6,6,6,6,6,0,6,6,6,6,0,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,0,0,0,6,0,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,6,6,0,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,6,0,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1,1,1,1,1,1,1,1,1,0,6,6,6,6,6,6,6,6,0,1,1,1
,1,1},

{1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1
,1,1},

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
,1,1}}
};
//VARIABLE PARA INICIALIZAR Y DEFINIR LAS OPCIONES DEL MENU
char opciones[5][25]={"1. TABLA DEL 9 ", "2. DECIMAL A BINARIO ","3. BINARIO
A HEXADECIMAL","4. BINARIO A DECIMAL ","5. SALIR "};
//VARIABLES PARA INICIALIZAR LA TOMA DE LOS NUMEROS DECIMALES INGRESADOS POR
EL USUARIO
int num[8];
int cantNum = 0;
//VARIABLES PARA INICIALIZAR Y ALMACENAR LA CONVERCION DE DECIMAL->BINARIO
int t;
int binNum[8][8];
char convbin[8][9] = {""};
char charBin[8][9] = {""}; // INVENTADO PERO FUNCIONA
char result[100]="";
//VARIABLES PARA INICIALIZAR Y ALMACENAR LA CONVERCION DE BINARIO-
>HEXADECIMAL
char convhex[8][9]={""};
char resul[100]="";
char msg[9]="";
//VARIABLES PARA INICIALIZAR Y ALMACENAR LAS DIAGONALES BINARIAS
int BinDiagP[8];
char chardiagP[8] = "";
int BinDiagS[8];
char chardiagS[8] = "";
char msg2[9]="";
char msg3[9]="";
//FUNCION PARA EL MENU
void imprime_menu(char menu[][25], int pos,int n);
//FUNCIONES PARA MOSTRAR LAS MANOS
void tabla();
void proceso1(int n_tabla, int num, int result);
void proceso2(int n_tabla, int num, int result);
//FUNCIONES DE CONVERION DE DIFERENTES BASES
char* bin_a_hex(char resul[], char bin[]);
int bin_a_dec(char *str);
char* dec_a_bin(char result[], int decimal);
int binary2decimal(char n[]);
int val(char c);
void printHexDigit(int d);

int main(void)
{
do {
cantNum = 0;
pos = 0;
fin = 0;
repetir2 = 0;
repetir3 = 0;
repite = 1;
t = 0;
imprime_menu(opciones,pos,5);
do{

key = getch();
switch(key)
{
case 72: if (pos == 0) pos = 4;
else pos--;
break;
case 80: if (pos == 4) pos =0;
else pos++;
break;
case 13: fin = 1;
}
imprime_menu(opciones,pos,5);

}while(!fin);

switch (pos) {
case 0:
textbackground(1);
tabla();
textbackground(0);
break;

case 1:
clrscr();
//LIMPIANDO O REINIZIANDO LAS VARIABLES CHAR
for (i = 0; i < 8; i++) {
strcpy(charBin[i],"");
}
strcpy(msg,"");
strcpy(result,"");
// CAPTURANDO LOS VALORES DE ENTRADA DEL USUARIO MAX 8 VALORES
do {
if (cantNum == 0) {
printf("Introdusca un numero decimal a convertir:\n");
}
printf("NUM[%d]::", cantNum+1);
scanf("%d", &num[cantNum]);
cantNum++;
} while(cantNum <= 7);
//TRANSFORMANDO DE LO 8 NUMEROS DECIMAL A BINARIO DE 8 BITS Y
ALMACENANDOLO EN LA MATRIZ 8X8
for (i = 0; i < 8; i++) {
t = num[i];
sprintf(convbin[i], "%s", dec_a_bin(result, t));
for (j = 7; j >= 0 ; j--) {
binNum[i][j] = t % 2;
t = t / 2;
}
}
//IMPRIMIENDO LA MATRIS 8X8 BINARIA
clrscr();
printf("RESULTADO DE LA CONVERCION DE DECIMAL -> BINARIO\n");
printf("\n Decimal Binario");
for (i = 0; i < 8; i++) {
printf("\n\t%d --> ", num[i]);
for (j = 0; j <= 7 ; j++) {
printf("%d",binNum[i][j]);
}
}
//CAMBIADO DE ENTERO A CARACTER (int->char) PARA MANEJAR LA
CONVERCION A HEXADECIMAL
for (i = 0; i < 8; i++) {
for (j = 0; j <= 7 ; j++) {
itoa(binNum[i][j], msg, 10);
strcat(charBin[i], msg);
}
}
getch();
break;
case 2:
fflush(stdout);
//LIMPIANDO O REINIZIANDO LAS VARIABLES CHAR
clrscr();
//////////////////////
/*
strcpy(resul,"");

for (i = 0; i < 8; i++) {


strcpy(convhex[i],"");
}*/
/////////////////////

// CONVERTIENDO A HEXADECIMAL
// IMPRIMIR LA CONVERCION DE BINARIO A HEXADECIMAL
printf("RESULTADO DE LA CONVERCION DE BINARIO -> HEXADECIMAL\n");
printf("\n Binario\tHexadecimal\n ");
gotoxy(18,5);
for (i = 0; i < 8; i++) {
sprintf(convhex[i], "%s",bin_a_hex(resul, convbin[i]));
gotoxy(3,i+5);cprintf("%s -->", charBin[i]);
gotoxy(18,i+6);cprintf("%s",convhex[i]);

}
getch();
break;

case 3:
clrscr();
//LIMPIANDO O REINIZIANDO LAS VARIABLES CHAR
strcpy(chardiagP,"");
strcpy(chardiagS,"");
strcpy(msg2,"");
strcpy(msg3,"");
// ALMACENANDOLO LA DIAGONAL PRINCIPAL DE LA MATRIZ 8X8
// ALMACENANDOLO LA DIAGONAL SECUNDARIA DE LA MATRIZ 8X8
printf("\n CONVERCION DE LAS DIAGONALES A BINARIAS A DECIMALES\n");
printf("\n\tMATRIZ ORIGINAL\n");
for (i = 0; i < 8; i++) {
printf("\n\t");
for (j = 0; j <= 7 ; j++) {
printf("%d",binNum[i][j]);
}
}
printf("\n\n BINARIO
DECIMAL");
for (i = 0; i < 8; i++) {
BinDiagP[i] = binNum[i][i];
itoa(BinDiagP[i], msg2, 10);
strcat(chardiagP, msg2);
}
printf("\nBinario de la diagonal principal %s -->\t%d", chardiagP,
bin_a_dec(chardiagP));
for (j = 0; j < 8; j++) {
BinDiagS[j] = binNum[j][7-j];
itoa(BinDiagS[j], msg3, 10);
strcat(chardiagS, msg3);
}
printf("\nBinario de la diagonal segundario %s -->\t%d", chardiagS,
bin_a_dec(chardiagS));
getch();
break;

case 4:
clrscr();
repite = 0;
break;
}

} while(repite);
return 0;
}

void imprime_menu(char menu[][25], int pos, int n){


int i;
clrscr();
gotoxy(29,9);cprintf("APLICACION DE ARREGLOS");
for(i=0; i < n; i++) {
if(pos == i) {
highvideo();textbackground(2);
gotoxy(31,i+11);cprintf("%s",menu[i]);
lowvideo();textbackground(0); }
else{
gotoxy(31,i+11);
cprintf("%s",menu[i]);
} }}
void tabla(){
char car;
do{
repetir2 = 1;
fflush(stdin);
clrscr();
textbackground(1);
printf(" Introduzca el numero a multiplicar de la tabla del 9: ");
scanf("%d",&n);
multi=n*9;

switch (multi) {
case 9:
proceso1(0, n, multi);
getch();
break;
case 18:
proceso1(1, n, multi);
getch();
break;
case 27:
proceso1(2, n, multi);
getch();
break;
case 36:
proceso1(3, n, multi);
getch();
break;
case 45:
proceso1(4, n, multi);
getch();
break;
case 54:
proceso2(4, n, multi);
getch();
break;
case 63:
proceso2(3, n, multi);
getch();
break;
case 72:
proceso2(2, n, multi);
getch();
break;
case 81:
proceso2(1, n, multi);
getch();
break;
case 90:
proceso2(0, n, multi);
getch();
break;
}
clrscr();
printf("PRESIONAR (S/N) N->salir S->repetir: \n-->");
scanf("%s",&car);
if (car=='S'|| car=='s')
{
repetir2 = 1;
}
else
{
printf("HASTA LUEGO!!");
repetir2 = 0;
}

}while(repetir2);
}

void proceso1(int n_tabla, int num, int result){


for(i=0;i<25;i++){
for(j=0;j<40;j++){
textbackground(manos[n_tabla][i][j]);
cprintf(" ");
}
}
gotoxy(35,3);
printf("9 * %d = %d", num, result);
}

void proceso2(int n_tabla, int num, int result){


for(i=0;i<25;i++){
for(j=0;j<40;j++){
textbackground(manos[n_tabla][i][39-j]);
cprintf(" ");
}
}
gotoxy(35,3);
printf("9 * %d = %d", num, result);
}

char reVal(int num){


if (num >= 0 && num <= 9)
return (char)(num + '0');
else
return (char)(num - 10 + 'A');
}
// REVERTIR LA CADENA
void strev(char *str){
int longitud = strlen(str);
int i;
for (i = 0; i < longitud/2; i++)
{
char temp = str[i];
str[i] = str[longitud-i-1];
str[longitud-i-1] = temp;
}
}
// FUNCION QUE CONVIERTE UN NUMERO DECIMAL
// A BINARIO Y LO RETORNA COMO UNA CADENA DE CARACTERES
char* dec_a_bin(char result[], int decimal){
int indice = 0;
while (decimal > 0)
{
result[indice++] = reVal(decimal % 2);
decimal /= 2;
}
result[indice] = '\0';
strev(result);
return result;
}

int val(char c) {
if (c >= '0' && c <= '9')
return (int)c - '0';
else
return (int)c - 'A' + 10;
}

int bin_a_dec(char *str){


int longitud = strlen(str);
int pot = 1; // Se inicializa la potencia
int num = 0; // Se inicializa el resultado
int i;
// El decimal equivalente es igual a str[longitud-1]*1 +
// str[longitud-1]*base + str[longitud-1]*(base^2) + ...
for (i = longitud - 1; i >= 0; i--) {
// Un dígito en el número de entrada debe ser
// menos que la base del número
if (val(str[i]) >= 2)
{
printf("ingreso un numero invalido");
return -1; }
num += val(str[i]) * pot;
pot = pot * 2; }
return num; }

int binary2decimal(char n[]){


int i,decimal,mul=0;
for(decimal=0,i=strlen(n)-1;i>=0;--i,++mul)
decimal+=(n[i]-48)*(1<<mul);
return decimal; }

void printHexDigit(int d){


if(d<10) printf("%d",d);
else if(d==10) printf("A");
else if(d==11) printf("B");
else if(d==12) printf("C");
else if(d==13) printf("D");
else if(d==14) printf("E");
else if(d==15) printf("F");
}

char* bin_a_hex(char resul[], char bin[]){


int i,j,d;
char temp[5];
for(i=j=0;i<strlen(bin)%4;++i,++j)
temp[j]=bin[i];
temp[j]='\0';

d=binary2decimal(temp);
if(d!=0) printHexDigit(d);

while(bin[i]!='\0')
{
for(j=0;j<4;++i,++j)
temp[j]=bin[i];
temp[j]='\0';
d=binary2decimal(temp);
printHexDigit(d); }
return resul;

Das könnte Ihnen auch gefallen