SlideShare una empresa de Scribd logo
1 de 8
Instituto Politécnico Nacional
Introducción a los Sistemas de Comunicación Seguros
Unidad MISTI Culhuacan
Presentado a: Dr. Gualberto Aguilar Torres
Tarea
Sistemas Huffman
9
Por: Yango Alexander Colmenares
Fecha
Octubre de 2013
%% INSTITUTO POLITECNICO NACIONAL-MISTI CULHUACAN --- MEXICO DF 2013
%%Desarrollado por:Yango Colmenares
%Presentado a : Dr. Gualberto Aguilar Torres
%Programación en Matlab
%Codigo Huffman
clc;
clear all;
close all;
% Aqui se lee el archivo .txt
fileID = fopen('pruebaProba.txt');
% Se utiliza el comando fscanf para analizar el contenido del archivo
texto = fscanf(fileID,'%c');
% Se convierte el texto a minusculas
texto = lower(texto);
% En la siguiente variable obtenemos el total de letras del texto aunque
% se repitan, contanto espacios en blanco, simbolos, etc.
totalLetras = length(texto);
% Algoritmo para quitar acentos a vocales
for j=1:length(texto)
if strcmp(texto(j),'á')
texto(j)='a';
elseif strcmp(texto(j),'é')
texto(j)='e';
elseif strcmp(texto(j),'í')
texto(j)='i';
elseif strcmp(texto(j),'ó')
texto(j)='o';
elseif strcmp(texto(j),'ú')
texto(j)='u';
end
end
clear j;
% El comando control de flujo del texto 'ENTER' lo cambiamos por un
espacio
% en blanco
for j=1:length(texto)
if isstrprop(texto(j), 'cntrl')
texto(j)=' ';
end
end
clear j;
% Inicializamos la variable palabras Solas que contendra las palabra del
% texto sin repetirse
letrasSolas(1) = texto(1);
% Algoritmo que nos ayuda a encontrar las palabras sin repetirse del
texto
% para irlas guardando en el vector palabrasSolas
indicador = 0;
for j=1:length(texto)
for i=1:length(letrasSolas)
% Para comparar cadenas: strcmp(cadena1, cadena2);
if strcmp(letrasSolas(i),texto(j))
indicador = 1;
end
end
if indicador ~= 1
letrasSolas(i+1) = texto(j);
end
indicador = 0;
end
clear j i indicador;
% El siguiente algoritmo nos ayuda a contar el numero de palabras que se
% repiten dentro del texto cargado
contadorLetras = zeros(1,length(letrasSolas));
for j=1:length(letrasSolas)
for i=1:length(texto)
if strcmp(letrasSolas(j),texto(i))
contadorLetras(j) = contadorLetras(j) + 1;
end
end
end
clear j i;
% Histograma de las palabras encontradas dentro del texto mostrando la
% frecuencia de ellas
% bar(contadorLetras);
% El siguiente codigo obtiene la probabilidad de cada palabra
probaLetras = zeros(1,length(letrasSolas));
for j=1:length(letrasSolas)
probaLetras(j) = contadorLetras(j)/totalLetras;
end
clear j;
% Hasta aqui se termino de analizar el texto y se puede ahora proseguir
con
% la codificacion Huffman
%% Algoritmo de Huffman
% La variable letrasSolas las pasamos a celdas
for i=1:length(letrasSolas)
letrasSolasCell{i,1} = letrasSolas(i);
probaLetrasCell{i,1} = probaLetras(i);
codigosLetrasCell{i,1} = '';
end
clear i;
% Las siguientes variables nos ayudaran a realizar el algoritmo de
huffman
letrasSolasCellSort = letrasSolasCell;
probaLetrasCellSort = probaLetrasCell;
% Acomodamos las probabilidades de forma descendiente
for j=1:length(probaLetrasCellSort)
for i=1:length(probaLetrasCellSort)-1
if probaLetrasCellSort{i} < probaLetrasCellSort{i+1}
aux = probaLetrasCellSort{i};
aux1 = letrasSolasCellSort{i};
probaLetrasCellSort{i} = probaLetrasCellSort{i+1};
letrasSolasCellSort{i} = letrasSolasCellSort{i+1};
probaLetrasCellSort{i+1} = aux;
letrasSolasCellSort{i+1} = aux1;
end
end
end
clear j i aux aux1;
tope = length(letrasSolasCellSort);
for i=1:length(letrasSolasCellSort)-2
for j=1:tope-1
if j == tope-1
probaLetrasCellSort{j,i+1} =
probaLetrasCellSort{j,i}+probaLetrasCellSort{j+1,i};
sumasHuffman{i,1} = probaLetrasCellSort{j,i+1};
else
probaLetrasCellSort{j,i+1} = probaLetrasCellSort{j,i};
end
end
for k=1:tope-1
for l=1:tope-2
if probaLetrasCellSort{l,i+1} < probaLetrasCellSort{l+1,i+1}
aux = probaLetrasCellSort{l,i+1};
probaLetrasCellSort{l,i+1} =
probaLetrasCellSort{l+1,i+1};
probaLetrasCellSort{l+1,i+1} = aux;
end
end
end
tope = tope-1;
end
clear tope i j k l aux;
probaCopiaSort = probaLetrasCellSort;
tope = length(letrasSolasCellSort);
for i=1:length(letrasSolasCellSort)
indexLetrasSolas{i,1} = i;
end
clear i;
% Esta variable indicara hasta cuando se dejara de borrar las celdas para
una
% mejor busqueda del código
indicador = 0;
indPos = 0;
for j=1:length(letrasSolasCell)
for i=1:length(letrasSolasCell)-2
if j == 1
aux = indexLetrasSolas{j,i};
aux1 = probaLetrasCellSort{aux,i};
if (aux == tope) || (aux == tope-1)
for k=tope-1:-1:1
if sumasHuffman{i} == probaLetrasCellSort{k,i+1}
indexLetrasSolas{j,i+1} = k;
indicador = indicador + 1;
break;
end
end
else
for k=aux:tope-1
if indicador == 0
if aux1 == probaLetrasCellSort{k,i+1}
indexLetrasSolas{j,i+1} = k;
probaLetrasCellSort{aux,i} = 0;
break;
end
else
if aux1 == probaLetrasCellSort{k,i+1}
indexLetrasSolas{j,i+1} = k;
break;
end
end
end
end
tope = tope-1;
else
aux = indexLetrasSolas{j,i};
aux1 = probaLetrasCellSort{aux,i};
if (aux == tope) || (aux == tope-1)
for k=tope-1:-1:1
if sumasHuffman{i} == probaLetrasCellSort{k,i+1}
indexLetrasSolas{j,i+1} = k;
indicador = indicador + 1;
break;
end
end
else
for k=aux:tope-1
if indicador == 0
if aux1 == probaLetrasCellSort{k,i+1}
if k == indexLetrasSolas{j-1,i+1}
indexLetrasSolas{j,i+1} = k+1;
probaLetrasCellSort{aux,i} = 0;
break;
else
indexLetrasSolas{j,i+1} = k;
probaLetrasCellSort{aux,i} = 0;
break;
end
end
else
if aux1 == probaLetrasCellSort{k,i+1}
indexLetrasSolas{j,i+1} = k;
break;
end
end
end
end
tope = tope-1;
end
end
indicador = 0;
tope = length(letrasSolasCellSort);
end
tope = length(letrasSolasCellSort);
for j=1:length(letrasSolasCell)
for i=1:length(letrasSolasCell)-1
if indexLetrasSolas{j,i} == tope
codigosLetrasCell{j} = strcat(codigosLetrasCell{j},'1');
elseif indexLetrasSolas{j,i} == tope-1
codigosLetrasCell{j} = strcat(codigosLetrasCell{j},'0');
end
tope = tope - 1;
end
tope = length(letrasSolasCellSort);
end
% Creamos una tabla que servira de muestra para visualizar las
% codificaciones
for i=1:length(letrasSolasCell)
tabla{i,1} = letrasSolasCellSort{i,1};
end
for i=1:length(letrasSolasCell)
tabla{i,2} = probaCopiaSort{i,1};
end
for i=1:length(letrasSolasCell)
tabla{i,3} = codigosLetrasCell{i,1};
end
% Analisis del codigo y verificacion del sistema Huffman
% Crea la variable codificacion que contendra todo el texto codificado
for j=1:length(letrasSolasCellSort)
if strcmp(texto(1),letrasSolasCellSort{j})
codificacion = codigosLetrasCell{j};
end
end
% Codificar el texto analizado
for i=2:length(texto)
for j=1:length(letrasSolasCellSort)
if strcmp(texto(i),letrasSolasCellSort{j})
codificacion = strcat(codificacion,codigosLetrasCell{j});
end
end
end
% Copiamos la codificacion tal y como nos la entrega el algoritmo
anterior
% como copia segura
codificacion1 = codificacion;
% El siguiente algoritmo agrega '0's a la derecha para despues poderlo
% organizar en grupos de 8 tipo modulos
if mod(length(codificacion),8) ~= 0
for j=length(codificacion):length(codificacion)+7-
mod(length(codificacion),8)
codificacion(j+1) = '0';
end
end
% % Agrupar codificacion en grupos de 8 bits
i=1;
for j=1:floor(length(codificacion)/8)
grupos8Bits{j} = codificacion(i:i+7);
i=i+8;
end
% % Agrupar codificacion en grupos de 4 bits
i=1;
for j=1:floor(length(codificacion)/4)
grupos4Bits{j} = codificacion(i:i+3);
i=i+4;
end
% % Algoritmo que pasa la codificacion a Hexadecimal
if strcmp(grupos4Bits{1},'0000')
codificacionHex = '0';
elseif strcmp(grupos4Bits{1},'0001')
codificacionHex = '1';
elseif strcmp(grupos4Bits{1},'0010')
codificacionHex = '2';
elseif strcmp(grupos4Bits{1},'0011')
codificacionHex = '3';
elseif strcmp(grupos4Bits{1},'0100')
codificacionHex = '4';
elseif strcmp(grupos4Bits{1},'0101')
codificacionHex = '5';
elseif strcmp(grupos4Bits{1},'0110')
codificacionHex = '6';
elseif strcmp(grupos4Bits{1},'0111')
codificacionHex = '7';
elseif strcmp(grupos4Bits{1},'1000')
codificacionHex = '8';
elseif strcmp(grupos4Bits{1},'1001')
codificacionHex = '9';
elseif strcmp(grupos4Bits{1},'1010')
codificacionHex = 'A';
elseif strcmp(grupos4Bits{1},'1011')
codificacionHex = 'B';
elseif strcmp(grupos4Bits{1},'1100')
codificacionHex = 'C';
elseif strcmp(grupos4Bits{1},'1101')
codificacionHex = 'D';
elseif strcmp(grupos4Bits{1},'1110')
codificacionHex = 'E';
elseif strcmp(grupos4Bits{1},'1111')
codificacionHex = 'F';
end
for j=2:length(grupos4Bits)
if strcmp(grupos4Bits{j},'0000')
codificacionHex = strcat(codificacionHex,'0');
elseif strcmp(grupos4Bits{j},'0001')
codificacionHex = strcat(codificacionHex,'1');
elseif strcmp(grupos4Bits{j},'0010')
codificacionHex = strcat(codificacionHex,'2');
elseif strcmp(grupos4Bits{j},'0011')
codificacionHex = strcat(codificacionHex,'3');
elseif strcmp(grupos4Bits{j},'0100')
codificacionHex = strcat(codificacionHex,'4');
elseif strcmp(grupos4Bits{j},'0101')
codificacionHex = strcat(codificacionHex,'5');
elseif strcmp(grupos4Bits{j},'0110')
codificacionHex = strcat(codificacionHex,'6');
elseif strcmp(grupos4Bits{j},'0111')
codificacionHex = strcat(codificacionHex,'7');
elseif strcmp(grupos4Bits{j},'1000')
codificacionHex = strcat(codificacionHex,'8');
elseif strcmp(grupos4Bits{j},'1001')
codificacionHex = strcat(codificacionHex,'9');
elseif strcmp(grupos4Bits{j},'1010')
codificacionHex = strcat(codificacionHex,'A');
elseif strcmp(grupos4Bits{j},'1011')
codificacionHex = strcat(codificacionHex,'B');
elseif strcmp(grupos4Bits{j},'1100')
codificacionHex = strcat(codificacionHex,'C');
elseif strcmp(grupos4Bits{j},'1101')
codificacionHex = strcat(codificacionHex,'D');
elseif strcmp(grupos4Bits{j},'1110')
codificacionHex = strcat(codificacionHex,'E');
elseif strcmp(grupos4Bits{j},'1111')
codificacionHex = strcat(codificacionHex,'F');
end
end
%Se resuelve el codigo expresando la funcionalidad segun el texto marcado
fclose(fileID);
clear ans;

Más contenido relacionado

La actualidad más candente

Codigo detección y corrección de errores (yango colmenares)
Codigo detección y corrección de errores (yango colmenares)Codigo detección y corrección de errores (yango colmenares)
Codigo detección y corrección de errores (yango colmenares)Yango Alexander Colmenares
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++David
 
Sentencias condicionales y ciclos
Sentencias condicionales y ciclosSentencias condicionales y ciclos
Sentencias condicionales y ciclosSohar Carr
 
Estructuras de control C++
Estructuras de control C++Estructuras de control C++
Estructuras de control C++LOANNELMARIN
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacionSERCOMPFAST
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosEdward Ropero
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntCristian C
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccionClariza
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de saltoAbrirllave
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2Maye Re
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlKarina Arguedas Ruelas
 

La actualidad más candente (16)

Codigo detección y corrección de errores (yango colmenares)
Codigo detección y corrección de errores (yango colmenares)Codigo detección y corrección de errores (yango colmenares)
Codigo detección y corrección de errores (yango colmenares)
 
Clase 6
Clase 6Clase 6
Clase 6
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++
 
Sentencias condicionales y ciclos
Sentencias condicionales y ciclosSentencias condicionales y ciclos
Sentencias condicionales y ciclos
 
Estructuras de control C++
Estructuras de control C++Estructuras de control C++
Estructuras de control C++
 
Estructuras de repetición en programacion
Estructuras de repetición en programacionEstructuras de repetición en programacion
Estructuras de repetición en programacion
 
Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmos
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeInt
 
Estructura switch case
Estructura switch caseEstructura switch case
Estructura switch case
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccion
 
Instrucciones de control de salto
Instrucciones de control de saltoInstrucciones de control de salto
Instrucciones de control de salto
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2
 
Escuela
EscuelaEscuela
Escuela
 
Sentencias de control
Sentencias de controlSentencias de control
Sentencias de control
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
 

Destacado

Codigo entropía criptográfica (yango colmenares)
Codigo entropía criptográfica  (yango colmenares)Codigo entropía criptográfica  (yango colmenares)
Codigo entropía criptográfica (yango colmenares)Yango Alexander Colmenares
 
רשימת רמת גן נקייה
 רשימת רמת גן נקייה רשימת רמת גן נקייה
רשימת רמת גן נקייהliquidspice
 
Jgbcfybt ghjub
Jgbcfybt ghjubJgbcfybt ghjub
Jgbcfybt ghjubapplefrusk
 
Overview of test process improvement frameworks
Overview of test process improvement frameworksOverview of test process improvement frameworks
Overview of test process improvement frameworksNikita Knysh
 
ACC presentation for QA Club Kiev
ACC presentation for QA Club KievACC presentation for QA Club Kiev
ACC presentation for QA Club KievNikita Knysh
 
Software Testing Foundations Part 8 - Test Tools
Software Testing Foundations Part 8 - Test ToolsSoftware Testing Foundations Part 8 - Test Tools
Software Testing Foundations Part 8 - Test ToolsNikita Knysh
 
Fundamental Test Process New
Fundamental Test Process NewFundamental Test Process New
Fundamental Test Process NewNikita Knysh
 
código detección de errores (yango colmenares)
código detección de errores (yango colmenares)código detección de errores (yango colmenares)
código detección de errores (yango colmenares)Yango Alexander Colmenares
 
Software Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleSoftware Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleNikita Knysh
 
Software Testing Foundations Part 5 - White Box Testing
Software Testing Foundations Part 5 - White Box TestingSoftware Testing Foundations Part 5 - White Box Testing
Software Testing Foundations Part 5 - White Box TestingNikita Knysh
 
Software Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box TestingSoftware Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box TestingNikita Knysh
 
Software Testing Foundations Part 7 - Basics of Test Management
Software Testing Foundations Part 7 - Basics of Test ManagementSoftware Testing Foundations Part 7 - Basics of Test Management
Software Testing Foundations Part 7 - Basics of Test ManagementNikita Knysh
 
Software Testing Foundations Part 6 - Intuitive and Experience-based testing
Software Testing Foundations Part 6 - Intuitive and Experience-based testingSoftware Testing Foundations Part 6 - Intuitive and Experience-based testing
Software Testing Foundations Part 6 - Intuitive and Experience-based testingNikita Knysh
 

Destacado (16)

Ingeniero Véndete en el Mercado Global
Ingeniero Véndete en el Mercado GlobalIngeniero Véndete en el Mercado Global
Ingeniero Véndete en el Mercado Global
 
Codigo entropía criptográfica (yango colmenares)
Codigo entropía criptográfica  (yango colmenares)Codigo entropía criptográfica  (yango colmenares)
Codigo entropía criptográfica (yango colmenares)
 
Codigo hill claves (yango colmenares)
Codigo hill claves (yango colmenares)Codigo hill claves (yango colmenares)
Codigo hill claves (yango colmenares)
 
רשימת רמת גן נקייה
 רשימת רמת גן נקייה רשימת רמת גן נקייה
רשימת רמת גן נקייה
 
Jgbcfybt ghjub
Jgbcfybt ghjubJgbcfybt ghjub
Jgbcfybt ghjub
 
Andragogia
AndragogiaAndragogia
Andragogia
 
Overview of test process improvement frameworks
Overview of test process improvement frameworksOverview of test process improvement frameworks
Overview of test process improvement frameworks
 
ACC presentation for QA Club Kiev
ACC presentation for QA Club KievACC presentation for QA Club Kiev
ACC presentation for QA Club Kiev
 
Software Testing Foundations Part 8 - Test Tools
Software Testing Foundations Part 8 - Test ToolsSoftware Testing Foundations Part 8 - Test Tools
Software Testing Foundations Part 8 - Test Tools
 
Fundamental Test Process New
Fundamental Test Process NewFundamental Test Process New
Fundamental Test Process New
 
código detección de errores (yango colmenares)
código detección de errores (yango colmenares)código detección de errores (yango colmenares)
código detección de errores (yango colmenares)
 
Software Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software LifecycleSoftware Testing Foundations Part 2 - Testing in Software Lifecycle
Software Testing Foundations Part 2 - Testing in Software Lifecycle
 
Software Testing Foundations Part 5 - White Box Testing
Software Testing Foundations Part 5 - White Box TestingSoftware Testing Foundations Part 5 - White Box Testing
Software Testing Foundations Part 5 - White Box Testing
 
Software Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box TestingSoftware Testing Foundations Part 4 - Black Box Testing
Software Testing Foundations Part 4 - Black Box Testing
 
Software Testing Foundations Part 7 - Basics of Test Management
Software Testing Foundations Part 7 - Basics of Test ManagementSoftware Testing Foundations Part 7 - Basics of Test Management
Software Testing Foundations Part 7 - Basics of Test Management
 
Software Testing Foundations Part 6 - Intuitive and Experience-based testing
Software Testing Foundations Part 6 - Intuitive and Experience-based testingSoftware Testing Foundations Part 6 - Intuitive and Experience-based testing
Software Testing Foundations Part 6 - Intuitive and Experience-based testing
 

Similar a Codigo huffman (yango colmenares)

Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlJose Selman
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++luiscristian
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++luiscristian
 
Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clasetammyrodriguez2010
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++die_dex
 
Presentación1
Presentación1Presentación1
Presentación1Nestor
 
Presentación1
Presentación1Presentación1
Presentación1Nestor
 
Presentación1
Presentación1Presentación1
Presentación1Nestor
 
Introduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacionIntroduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacionyubert
 

Similar a Codigo huffman (yango colmenares) (20)

Scjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow ControlScjp Jug Section 2 Flow Control
Scjp Jug Section 2 Flow Control
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Tutorial p seint
Tutorial p seintTutorial p seint
Tutorial p seint
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Tutorial p seint
Tutorial p seintTutorial p seint
Tutorial p seint
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++
 
Elementos básicos de c++
Elementos básicos de c++Elementos básicos de c++
Elementos básicos de c++
 
Escuela
EscuelaEscuela
Escuela
 
Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clase
 
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
ESTRUCTURAS DE SELECCIÓN SENTENCIAS IF Y SWITCH EN C++
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Introduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacionIntroduccion allenguajedeprogramacion
Introduccion allenguajedeprogramacion
 
El lenguaje c
El lenguaje cEl lenguaje c
El lenguaje c
 
El lenguaje c
El lenguaje cEl lenguaje c
El lenguaje c
 
Informe 21
Informe 21Informe 21
Informe 21
 
PHP
PHPPHP
PHP
 

Más de Yango Alexander Colmenares

Más de Yango Alexander Colmenares (11)

Algoritmo comprensión dct(yango colmenares)
Algoritmo comprensión dct(yango colmenares)Algoritmo comprensión dct(yango colmenares)
Algoritmo comprensión dct(yango colmenares)
 
Algoritmo comprensión lsb(yango colmenares)
Algoritmo comprensión lsb(yango colmenares)Algoritmo comprensión lsb(yango colmenares)
Algoritmo comprensión lsb(yango colmenares)
 
Algoritmo comprensión lzw(yango colmenares)
Algoritmo comprensión lzw(yango colmenares)Algoritmo comprensión lzw(yango colmenares)
Algoritmo comprensión lzw(yango colmenares)
 
codigo comprensión(yango colmenares)
codigo comprensión(yango colmenares)codigo comprensión(yango colmenares)
codigo comprensión(yango colmenares)
 
Actividad #7 codigo detección de errores (yango colmenares)
Actividad #7 codigo detección de errores (yango colmenares)Actividad #7 codigo detección de errores (yango colmenares)
Actividad #7 codigo detección de errores (yango colmenares)
 
Codigo rsa manejo de llaves publicas y privadas (yango colmenares)
Codigo rsa manejo de llaves publicas y privadas (yango colmenares)Codigo rsa manejo de llaves publicas y privadas (yango colmenares)
Codigo rsa manejo de llaves publicas y privadas (yango colmenares)
 
Criterios de Excelencia en Redes de Internet
Criterios de Excelencia en Redes de InternetCriterios de Excelencia en Redes de Internet
Criterios de Excelencia en Redes de Internet
 
Iso 27001 2013
Iso 27001 2013Iso 27001 2013
Iso 27001 2013
 
Itil v3 & 27001
Itil v3 & 27001Itil v3 & 27001
Itil v3 & 27001
 
Valores corporativos
Valores corporativosValores corporativos
Valores corporativos
 
Equidad y genero
Equidad y generoEquidad y genero
Equidad y genero
 

Último

texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 

Último (20)

texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 

Codigo huffman (yango colmenares)

  • 1. Instituto Politécnico Nacional Introducción a los Sistemas de Comunicación Seguros Unidad MISTI Culhuacan Presentado a: Dr. Gualberto Aguilar Torres Tarea Sistemas Huffman 9 Por: Yango Alexander Colmenares Fecha Octubre de 2013 %% INSTITUTO POLITECNICO NACIONAL-MISTI CULHUACAN --- MEXICO DF 2013 %%Desarrollado por:Yango Colmenares %Presentado a : Dr. Gualberto Aguilar Torres %Programación en Matlab %Codigo Huffman clc; clear all; close all; % Aqui se lee el archivo .txt fileID = fopen('pruebaProba.txt'); % Se utiliza el comando fscanf para analizar el contenido del archivo texto = fscanf(fileID,'%c'); % Se convierte el texto a minusculas texto = lower(texto); % En la siguiente variable obtenemos el total de letras del texto aunque % se repitan, contanto espacios en blanco, simbolos, etc. totalLetras = length(texto); % Algoritmo para quitar acentos a vocales for j=1:length(texto) if strcmp(texto(j),'á') texto(j)='a'; elseif strcmp(texto(j),'é') texto(j)='e'; elseif strcmp(texto(j),'í') texto(j)='i'; elseif strcmp(texto(j),'ó') texto(j)='o'; elseif strcmp(texto(j),'ú') texto(j)='u'; end
  • 2. end clear j; % El comando control de flujo del texto 'ENTER' lo cambiamos por un espacio % en blanco for j=1:length(texto) if isstrprop(texto(j), 'cntrl') texto(j)=' '; end end clear j; % Inicializamos la variable palabras Solas que contendra las palabra del % texto sin repetirse letrasSolas(1) = texto(1); % Algoritmo que nos ayuda a encontrar las palabras sin repetirse del texto % para irlas guardando en el vector palabrasSolas indicador = 0; for j=1:length(texto) for i=1:length(letrasSolas) % Para comparar cadenas: strcmp(cadena1, cadena2); if strcmp(letrasSolas(i),texto(j)) indicador = 1; end end if indicador ~= 1 letrasSolas(i+1) = texto(j); end indicador = 0; end clear j i indicador; % El siguiente algoritmo nos ayuda a contar el numero de palabras que se % repiten dentro del texto cargado contadorLetras = zeros(1,length(letrasSolas)); for j=1:length(letrasSolas) for i=1:length(texto) if strcmp(letrasSolas(j),texto(i)) contadorLetras(j) = contadorLetras(j) + 1; end end end clear j i; % Histograma de las palabras encontradas dentro del texto mostrando la % frecuencia de ellas % bar(contadorLetras); % El siguiente codigo obtiene la probabilidad de cada palabra probaLetras = zeros(1,length(letrasSolas)); for j=1:length(letrasSolas) probaLetras(j) = contadorLetras(j)/totalLetras;
  • 3. end clear j; % Hasta aqui se termino de analizar el texto y se puede ahora proseguir con % la codificacion Huffman %% Algoritmo de Huffman % La variable letrasSolas las pasamos a celdas for i=1:length(letrasSolas) letrasSolasCell{i,1} = letrasSolas(i); probaLetrasCell{i,1} = probaLetras(i); codigosLetrasCell{i,1} = ''; end clear i; % Las siguientes variables nos ayudaran a realizar el algoritmo de huffman letrasSolasCellSort = letrasSolasCell; probaLetrasCellSort = probaLetrasCell; % Acomodamos las probabilidades de forma descendiente for j=1:length(probaLetrasCellSort) for i=1:length(probaLetrasCellSort)-1 if probaLetrasCellSort{i} < probaLetrasCellSort{i+1} aux = probaLetrasCellSort{i}; aux1 = letrasSolasCellSort{i}; probaLetrasCellSort{i} = probaLetrasCellSort{i+1}; letrasSolasCellSort{i} = letrasSolasCellSort{i+1}; probaLetrasCellSort{i+1} = aux; letrasSolasCellSort{i+1} = aux1; end end end clear j i aux aux1; tope = length(letrasSolasCellSort); for i=1:length(letrasSolasCellSort)-2 for j=1:tope-1 if j == tope-1 probaLetrasCellSort{j,i+1} = probaLetrasCellSort{j,i}+probaLetrasCellSort{j+1,i}; sumasHuffman{i,1} = probaLetrasCellSort{j,i+1}; else probaLetrasCellSort{j,i+1} = probaLetrasCellSort{j,i}; end end for k=1:tope-1 for l=1:tope-2
  • 4. if probaLetrasCellSort{l,i+1} < probaLetrasCellSort{l+1,i+1} aux = probaLetrasCellSort{l,i+1}; probaLetrasCellSort{l,i+1} = probaLetrasCellSort{l+1,i+1}; probaLetrasCellSort{l+1,i+1} = aux; end end end tope = tope-1; end clear tope i j k l aux; probaCopiaSort = probaLetrasCellSort; tope = length(letrasSolasCellSort); for i=1:length(letrasSolasCellSort) indexLetrasSolas{i,1} = i; end clear i; % Esta variable indicara hasta cuando se dejara de borrar las celdas para una % mejor busqueda del código indicador = 0; indPos = 0; for j=1:length(letrasSolasCell) for i=1:length(letrasSolasCell)-2 if j == 1 aux = indexLetrasSolas{j,i}; aux1 = probaLetrasCellSort{aux,i}; if (aux == tope) || (aux == tope-1) for k=tope-1:-1:1 if sumasHuffman{i} == probaLetrasCellSort{k,i+1} indexLetrasSolas{j,i+1} = k; indicador = indicador + 1; break; end end else for k=aux:tope-1 if indicador == 0 if aux1 == probaLetrasCellSort{k,i+1} indexLetrasSolas{j,i+1} = k; probaLetrasCellSort{aux,i} = 0; break;
  • 5. end else if aux1 == probaLetrasCellSort{k,i+1} indexLetrasSolas{j,i+1} = k; break; end end end end tope = tope-1; else aux = indexLetrasSolas{j,i}; aux1 = probaLetrasCellSort{aux,i}; if (aux == tope) || (aux == tope-1) for k=tope-1:-1:1 if sumasHuffman{i} == probaLetrasCellSort{k,i+1} indexLetrasSolas{j,i+1} = k; indicador = indicador + 1; break; end end else for k=aux:tope-1 if indicador == 0 if aux1 == probaLetrasCellSort{k,i+1} if k == indexLetrasSolas{j-1,i+1} indexLetrasSolas{j,i+1} = k+1; probaLetrasCellSort{aux,i} = 0; break; else indexLetrasSolas{j,i+1} = k; probaLetrasCellSort{aux,i} = 0; break; end end else if aux1 == probaLetrasCellSort{k,i+1} indexLetrasSolas{j,i+1} = k; break; end end
  • 6. end end tope = tope-1; end end indicador = 0; tope = length(letrasSolasCellSort); end tope = length(letrasSolasCellSort); for j=1:length(letrasSolasCell) for i=1:length(letrasSolasCell)-1 if indexLetrasSolas{j,i} == tope codigosLetrasCell{j} = strcat(codigosLetrasCell{j},'1'); elseif indexLetrasSolas{j,i} == tope-1 codigosLetrasCell{j} = strcat(codigosLetrasCell{j},'0'); end tope = tope - 1; end tope = length(letrasSolasCellSort); end % Creamos una tabla que servira de muestra para visualizar las % codificaciones for i=1:length(letrasSolasCell) tabla{i,1} = letrasSolasCellSort{i,1}; end for i=1:length(letrasSolasCell) tabla{i,2} = probaCopiaSort{i,1}; end for i=1:length(letrasSolasCell) tabla{i,3} = codigosLetrasCell{i,1}; end % Analisis del codigo y verificacion del sistema Huffman % Crea la variable codificacion que contendra todo el texto codificado for j=1:length(letrasSolasCellSort) if strcmp(texto(1),letrasSolasCellSort{j}) codificacion = codigosLetrasCell{j}; end end % Codificar el texto analizado for i=2:length(texto) for j=1:length(letrasSolasCellSort) if strcmp(texto(i),letrasSolasCellSort{j}) codificacion = strcat(codificacion,codigosLetrasCell{j});
  • 7. end end end % Copiamos la codificacion tal y como nos la entrega el algoritmo anterior % como copia segura codificacion1 = codificacion; % El siguiente algoritmo agrega '0's a la derecha para despues poderlo % organizar en grupos de 8 tipo modulos if mod(length(codificacion),8) ~= 0 for j=length(codificacion):length(codificacion)+7- mod(length(codificacion),8) codificacion(j+1) = '0'; end end % % Agrupar codificacion en grupos de 8 bits i=1; for j=1:floor(length(codificacion)/8) grupos8Bits{j} = codificacion(i:i+7); i=i+8; end % % Agrupar codificacion en grupos de 4 bits i=1; for j=1:floor(length(codificacion)/4) grupos4Bits{j} = codificacion(i:i+3); i=i+4; end % % Algoritmo que pasa la codificacion a Hexadecimal if strcmp(grupos4Bits{1},'0000') codificacionHex = '0'; elseif strcmp(grupos4Bits{1},'0001') codificacionHex = '1'; elseif strcmp(grupos4Bits{1},'0010') codificacionHex = '2'; elseif strcmp(grupos4Bits{1},'0011') codificacionHex = '3'; elseif strcmp(grupos4Bits{1},'0100') codificacionHex = '4'; elseif strcmp(grupos4Bits{1},'0101') codificacionHex = '5'; elseif strcmp(grupos4Bits{1},'0110') codificacionHex = '6'; elseif strcmp(grupos4Bits{1},'0111') codificacionHex = '7'; elseif strcmp(grupos4Bits{1},'1000') codificacionHex = '8'; elseif strcmp(grupos4Bits{1},'1001') codificacionHex = '9'; elseif strcmp(grupos4Bits{1},'1010') codificacionHex = 'A'; elseif strcmp(grupos4Bits{1},'1011')
  • 8. codificacionHex = 'B'; elseif strcmp(grupos4Bits{1},'1100') codificacionHex = 'C'; elseif strcmp(grupos4Bits{1},'1101') codificacionHex = 'D'; elseif strcmp(grupos4Bits{1},'1110') codificacionHex = 'E'; elseif strcmp(grupos4Bits{1},'1111') codificacionHex = 'F'; end for j=2:length(grupos4Bits) if strcmp(grupos4Bits{j},'0000') codificacionHex = strcat(codificacionHex,'0'); elseif strcmp(grupos4Bits{j},'0001') codificacionHex = strcat(codificacionHex,'1'); elseif strcmp(grupos4Bits{j},'0010') codificacionHex = strcat(codificacionHex,'2'); elseif strcmp(grupos4Bits{j},'0011') codificacionHex = strcat(codificacionHex,'3'); elseif strcmp(grupos4Bits{j},'0100') codificacionHex = strcat(codificacionHex,'4'); elseif strcmp(grupos4Bits{j},'0101') codificacionHex = strcat(codificacionHex,'5'); elseif strcmp(grupos4Bits{j},'0110') codificacionHex = strcat(codificacionHex,'6'); elseif strcmp(grupos4Bits{j},'0111') codificacionHex = strcat(codificacionHex,'7'); elseif strcmp(grupos4Bits{j},'1000') codificacionHex = strcat(codificacionHex,'8'); elseif strcmp(grupos4Bits{j},'1001') codificacionHex = strcat(codificacionHex,'9'); elseif strcmp(grupos4Bits{j},'1010') codificacionHex = strcat(codificacionHex,'A'); elseif strcmp(grupos4Bits{j},'1011') codificacionHex = strcat(codificacionHex,'B'); elseif strcmp(grupos4Bits{j},'1100') codificacionHex = strcat(codificacionHex,'C'); elseif strcmp(grupos4Bits{j},'1101') codificacionHex = strcat(codificacionHex,'D'); elseif strcmp(grupos4Bits{j},'1110') codificacionHex = strcat(codificacionHex,'E'); elseif strcmp(grupos4Bits{j},'1111') codificacionHex = strcat(codificacionHex,'F'); end end %Se resuelve el codigo expresando la funcionalidad segun el texto marcado fclose(fileID); clear ans;