0% encontró este documento útil (0 votos)
805 vistas32 páginas

Conteo de Caracteres MATLAB

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
805 vistas32 páginas

Conteo de Caracteres MATLAB

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD CULHUACAN

ASIGNATURA:
Teoría de la Codificación y Manejo de la Información

PRACTICA 1.2
“Conteo automático de letras de un archivo de texto”

GRUPO:
8EM15

PROFESOR:
Fernando Adan Serrano Orozco

FECHA DE ENTREGA:
18-02-2022

ALUMNO:
Arroyo Arellano Brandon

# LISTA
02

0
Índice

Introducción………………………………………………………………………2-3
Desarrollo………………………………………………………………………..4-8
Actividad…………………………………………………………………………9-25
Cuestionario y conclusiones………………………………………………….25
Anexo1………………………………………………………………………….26-30
Anexo 2…………………………………………………………………………31
Bibliografía y Referencias…………………………………………………….31

1
Introducción
Fopen
Abrir archivo o obtener información sobre archivos abiertos
fileID = fopen(filename) abre el archivo, filename, para acceso de
lectura binaria y devuelve un identificador de archivo entero igual o
superior a 3. MATLAB ® reserva los identificadores de archivo 0, 1y
2 para la entrada estándar, la salida estándar (la pantalla) y el error
estándar, respectivamente.

Si fopen no puede abrir el archivo, fileID es -1.

Fscanf
Leer datos de archivo de texto
A = fscanf(fileID,formatSpec) lee los datos de un archivo de texto abierto en el
vector de columna A e interpreta los valores del archivo según el formato
especificado por formatSpec. La función fscanf vuelve a aplicar el formato en
todo el archivo y coloca el puntero del archivo en el marcador de fin de archivo.
Si fscanf no puede hacer coincidir formatSpec con los datos, solo lee la parte
que coincide y detiene el procesamiento.

El archivo de texto se indica mediante el identificador de archivo, fileID. Utilice


fopen para abrir el archivo, especifique la codificación de caracteres y obtenga
el valor de fileID. Cuando finalice la lectura, cierre el archivo llamando a
fclose(fileID).

Char
Array de caracteres
Una matriz de caracteres es una secuencia de caracteres, al igual que una
matriz numérica es una secuencia de números. Un uso típico es almacenar un
fragmento de texto corto como una fila de caracteres en un vector de carácter .
Si A es una matriz numérica, char convierte los números en caracteres. Los
valores numéricos válidos varían entre 0 y 65535 y corresponden a las
unidades de código Unicode. Los valores de 0 a 127 también corresponden a
caracteres ASCII de 7 bits. La función
Redondea los no enteros hacia cero.
Trata valores inferiores a 0 como 0.
Trata valores mayores que 65535 como 65535.

2
Double
Double-precision arrays
double es el tipo de datos numéricos predeterminado (clase) en MATLAB, lo
que proporciona suficiente precisión para la mayoría de las tareas
computacionales. Las variables numéricas se almacenan automáticamente
como valores de punto flotante de precisión doble de 64 bits (8 bytes).
Una matriz de precisión doble se crea automáticamente cuando asigna un
escalar numérico o una matriz a una variable, como A = [1 2 3; 4 5 6]. La
variable A es de tipo doble.

Char(65)
Los enteros de 32 a 127 corresponden a caracteres ASCII imprimibles. Sin
embargo, los números enteros de 0 a 65535 también corresponden a
caracteres Unicode . Puede convertir números enteros en sus representaciones
Unicode correspondientes mediante la función char
Por ejemplo, el número 8451 corresponde al símbolo de grados Celsius.
Convertir 8451 utilizando char
C = char(8451)
C = '℃'

Double(‘A’)
convierte los valores en A a doble precisión.

3
Desarrollo

1. Instalar en su computadora portátil (laptop) o PC el software de Matlab


(Preferentemente R2020b)

2. Hacer en un script de Matlab un programa que cargue un archivo de


texto y sea guardado en una variable que pueda manipular. Para ello
realizar lo siguiente:
• Retomar el archivo Texto_Ingles_01.txt de la práctica anterior
• En el script de Matlab escriba los siguientes comandos y al final de clic
en Run:
clc
clear all
y=fopen('Texto_Ingles_01.txt'); % Abre el archivo
texto=fscanf(y,'%c'); % Guarda el contenido en la variable texto
• En la ventana de comandos escriba >> texto y observe que el texto del
documento de Word es guardado en la variable texto

3. Teniendo lo anterior, el texto es guardado en una sola variable, si desea


observar cada elemento de la variable puede escribir en la ventana de
comandos >> texto(índice) , donde índice es el valor de la posición de

4
cada letra (recuerde que en Matlab el índice comienza en 1). Ejemplo:
Escriba en la ventana de comandos
tecleando enter y observe
• >> texto(1)

4. Una forma de generar caracteres en Matlab es mediante la función


char(), observe:
• >> char(73)

5. ¿Qué obtuvo al teclear los últimos dos comandos?


R= obtuve la letra ‘I’
¿Son los mismos?
R= los comandos no son los mismos, pero si tuvimos una misma
respuesta
Respuesta: Si son los mismos y es una forma de escribir un carácter en
Matlab utilizando el Código ASCII (en este caso la letra I)

6. Revise el Código ASCII y guarde en la variable nombre, los caracteres


de su nombre. Ejemplo: Para el nombre de Ana

5
7. Otra forma sin utilizar el código ASCII y de manera directa seria:
• >> nombre=['ana']

8. Hacer un programa que realice el conteo de todas las letras a del


siguiente pequeño texto: “había un señor llamado Juan que vivía muy
lejos de aquí y tenía que levantarse muy temprano para poder
llegar a tiempo”. Para ello existen muchas maneras de idear el
programa, una de ellas es la que se muestra a continuación (este
ejemplo le permite tener una idea clara de cómo puede hacer dicho
programa):
En el script de Matlab escriba los siguientes comandos y al final de clic
en Run:
clc
clear all
texto=[' había un señor llamado Juan que vivía muy lejos de aquí y tenía
que levantarse muy temprano
para poder llegar a tiempo '];
contador=0;
for x=[Link]length(texto)
if texto(x)==char(97)
contador=contador+1;
end
end
contador
Al finalizar corra el programa y observe sus resultados
Se puede observar del texto que tiene 15 letras a. En el momento de
correr el programa se obtiene contador = 15, lo cual confirma que esta
correcto y realiza la cuenta de la cantidad de letras.

6
9. El programa anterior nos sirvió para contar letras en minúsculas. ¿Qué
pasaría si en el texto existieran letras “A” mayúsculas? ¿Podría contar
mayúsculas? – Respuesta: No, el programa anterior solo cuenta
minúsculas ya que en el condicional solo se está especificando la
comparación con char(97) que corresponde a la “a” minúscula. ¿Qué
tenemos que hacer para poder contar letras mayúsculas? – Respuesta:
En el condicional se debe incluir la letra, es decir char(65). Así, se
agrega en el condicional lo siguiente: texto(x)==char(97) |
texto(x)==char(65)
10. Teniendo claro lo anterior, realice un pequeño programa en Matlab que
haga el conteo de las letras en el siguiente texto: “Había un señor
llamado Juan que vivía lejos de aquí”.
‘a’

‘b’

‘d’

‘e’

‘h’

‘i’

‘j’

‘l’

7
‘m’

‘n’

‘ñ’

‘o’

‘q’

‘r’

‘s’

‘u’

‘v’

Total de letras=42

8
Actividad

Nota: (Para el reporte de esta práctica, en esta sección se colocan


capturas de pantalla de lo realizado en cada
viñeta)
• Realizar en Matlab un programa que cargue un archivo de texto
('Texto_Ingles_01.txt') y sea guardado en
una variable que pueda manipular para realizar el conteo de las letras
del abecedario: a,b,c...z (Debe
considerar que no hay distinción entre mayúsculas y minúsculas
(tampoco hay diferencia en letras con
acentos), además se debe incluir la letra ñ).

9
10
11
12
• Comentar el programa explicando cada uno de los comandos y lo que
realiza dicha parte del programa
clc
clear all
y=fopen('Texto_Ingles_01.txt'); % Abre el archivo
texto=fscanf(y,'%c'); % Guarda el contenido en la variable texto
a=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra a
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(97)|texto(x)==char(65)|texto(x)==char('á')|texto(x)==ch
ar('Á')%usamos el codigo ASCII para seleccionar el caracter
a=a+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
b=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra b
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(98)|texto(x)==char(66)%usamos el codigo ASCII para
seleccionar el caracter
b=b+1;%hacemos la suma
end
end
c=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra c
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(99)|texto(x)==char(67)%usamos el codigo ASCII para
seleccionar el caracter
c=c+1;%hacemos la suma
end
end
d=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra d
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(100)|texto(x)==char(68)%usamos el codigo ASCII para
seleccionar el caracter
d=d+1;%hacemos la suma
end
end
e=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra e
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto

13
if
texto(x)==char(101)|texto(x)==char(69)|texto(x)==char('é')|texto(x)==c
har('É')%usamos el codigo ASCII para seleccionar el caracter
e=e+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
f=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra f
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(102)|texto(x)==char(70)%usamos el codigo ASCII para
seleccionar el caracter
f=f+1;%hacemos la suma
end
end
g=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra g
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(103)|texto(x)==char(71)%usamos el codigo ASCII para
seleccionar el caracter
g=g+1;%hacemos la suma
end
end
h=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra h
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(104)|texto(x)==char(72)%usamos el codigo ASCII para
seleccionar el caracter
h=h+1;%hacemos la suma
end
end
i=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra i
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(105)|texto(x)==char(73)|texto(x)==char('í')|texto(x)==c
har('Í')%usamos el codigo ASCII para seleccionar el caracter
i=i+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
j=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra j
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(106)|texto(x)==char(74)%usamos el codigo ASCII para
seleccionar el caracter
j=j+1;%hacemos la suma
end
end
k=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra k
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('k')|texto(x)==char('K')%usamos el codigo ASCII para
seleccionar el caracter
k=k+1;%hacemos la suma

14
end
end
l=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra l
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(108)|texto(x)==char(76)%usamos el codigo ASCII para
seleccionar el caracter
l=l+1;%hacemos la suma
end
end
m=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra m
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(109)|texto(x)==char(77)%usamos el codigo ASCII para
seleccionar el caracter
m=m+1;%hacemos la suma
end
end
n=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra n
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(110)|texto(x)==char(78)%usamos el codigo ASCII para
seleccionar el caracter
n=n+1;%hacemos la suma
end
end
nn=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra ñ
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('Ñ')|texto(x)==char('ñ')%usamos el codigo ASCII para
seleccionar el caracter
nn=nn+1;%hacemos la suma, tambien usamos la variable nn porque la ñ no
la detecta como variable
end
end
o=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra o
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(111)|texto(x)==char(79)|texto(x)==char('ó')|texto(x)==c
har('Ó')%usamos el codigo ASCII para seleccionar el caracter
o=o+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
p=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra p
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(112)|texto(x)==char(80)%usamos el codigo ASCII para
seleccionar el caracter
p=p+1;%hacemos la suma
end
end
q=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra q

15
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(113)|texto(x)==char(81)%usamos el codigo ASCII para
seleccionar el caracter
q=q+1;%hacemos la suma
end
end
r=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra r
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(114)|texto(x)==char(82)%usamos el codigo ASCII para
seleccionar el caracter
r=r+1;%hacemos la suma
end
end
s=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra s
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(115)|texto(x)==char(83)%usamos el codigo ASCII para
seleccionar el caracter
s=s+1;%hacemos la suma
end
end
t=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra t
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(116)|texto(x)==char(84)%usamos el codigo ASCII para
seleccionar el caracter
t=t+1;%hacemos la suma
end
end
u=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra u
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(117)|texto(x)==char(85)|texto(x)==char('u')|texto(x)==c
har('Ú')%usamos el codigo ASCII para seleccionar el caracter
u=u+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
v=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra v
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(118)|texto(x)==char(86)%usamos el codigo ASCII para
seleccionar el caracter
v=v+1;%hacemos la suma
end
end
w=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra w
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(119)|texto(x)==char(87)%usamos el codigo ASCII para
seleccionar el caracter
w=w+1;%hacemos la suma

16
end
end
xx=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra x
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(120)|texto(x)==char(88)%usamos el codigo ASCII para
seleccionar el caracter
xx=xx+1;%hacemos la suma, tambien en este caso usamos como variable xx
porque ya teniamos una variable x
end
end
y=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra y
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(121)|texto(x)==char(89)%usamos el codigo ASCII para
seleccionar el caracter
y=y+1;%hacemos la suma
end
end
z=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra z
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(122)|texto(x)==char(90)%usamos el codigo ASCII para
seleccionar el caracter
z=z+1;%hacemos la suma
end
end
caracteres={'a';'b';'c';'d';'e';'f';'g';'h';'i';'j';'k';'l';'m';'n'
;'ñ';'o';'p';'q';'r';'s';'t';'u';'v';'w';'x';'y';'z'}; %colocamos
la primer columna que llevara los caracteres
frecuencia={a;b;c;d;e;f;g;h;i;j;k;l;m;n;nn;o;p;q;r;s;t;u;v;w;xx;y;z};%
colocamoa los valores correspondientes a cada fila generada
table( frecuencia,'RowNames',caracteres)%generamos la tabla

• Obtenga los datos del conteo de letras y compárelos con los obtenidos
en la práctica anterior

17
Observamos que son los mismos valores que habíamos obtenido en la practica
pasada.

18
• Mostrar los resultados de manera ordenada en la ventana de comandos (en
forma de columnas con títulos,
similar a la que se observa en la figura 1).

• Realizar lo que hizo en los puntos anteriores, tomando el archivo que incluye
su número de lista, por ejemplo
para el número de lista 5 debe tomar como texto el archivo
Texto_Español_05.txt
clc
clear all
y=fopen('Texto_Español_02.txt'); % Abre el archivo
texto=fscanf(y,'%c'); % Guarda el contenido en la variable texto
a=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra a
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(97)|texto(x)==char(65)|texto(x)==char('á')|texto(x)==ch
ar('Á')%usamos el codigo ASCII para seleccionar el caracter

19
a=a+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end

• Comentar el programa explicando cada uno de los comandos y lo que realiza


dicha parte del programa
clc
clear all
y=fopen('Texto_Español_02.txt'); % Abre el archivo
texto=fscanf(y,'%c'); % Guarda el contenido en la variable texto
a=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra a
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(97)|texto(x)==char(65)|texto(x)==char('á')|texto(x)==ch
ar('Á')%usamos el codigo ASCII para seleccionar el caracter
a=a+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
b=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra b
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(98)|texto(x)==char(66)%usamos el codigo ASCII para
seleccionar el caracter
b=b+1;%hacemos la suma
end
end
c=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra c
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(99)|texto(x)==char(67)%usamos el codigo ASCII para
seleccionar el caracter
c=c+1;%hacemos la suma
end
end
d=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra d
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(100)|texto(x)==char(68)%usamos el codigo ASCII para
seleccionar el caracter
d=d+1;%hacemos la suma
end
end
e=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra e
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(101)|texto(x)==char(69)|texto(x)==char('é')|texto(x)==c
har('É')%usamos el codigo ASCII para seleccionar el caracter
e=e+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma

20
end
f=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra f
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(102)|texto(x)==char(70)%usamos el codigo ASCII para
seleccionar el caracter
f=f+1;%hacemos la suma
end
end
g=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra g
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(103)|texto(x)==char(71)%usamos el codigo ASCII para
seleccionar el caracter
g=g+1;%hacemos la suma
end
end
h=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra h
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(104)|texto(x)==char(72)%usamos el codigo ASCII para
seleccionar el caracter
h=h+1;%hacemos la suma
end
end
i=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra i
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(105)|texto(x)==char(73)|texto(x)==char('í')|texto(x)==c
har('Í')%usamos el codigo ASCII para seleccionar el caracter
i=i+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
j=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra j
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(106)|texto(x)==char(74)%usamos el codigo ASCII para
seleccionar el caracter
j=j+1;%hacemos la suma
end
end
k=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra k
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('k')|texto(x)==char('K')%usamos el codigo ASCII para
seleccionar el caracter
k=k+1;%hacemos la suma
end
end
l=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra l
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto

21
if texto(x)==char(108)|texto(x)==char(76)%usamos el codigo ASCII para
seleccionar el caracter
l=l+1;%hacemos la suma
end
end
m=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra m
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(109)|texto(x)==char(77)%usamos el codigo ASCII para
seleccionar el caracter
m=m+1;%hacemos la suma
end
end
n=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra n
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(110)|texto(x)==char(78)%usamos el codigo ASCII para
seleccionar el caracter
n=n+1;%hacemos la suma
end
end
nn=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra ñ
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('Ñ')|texto(x)==char('ñ')%usamos el codigo ASCII para
seleccionar el caracter
nn=nn+1;%hacemos la suma, tambien usamos la variable nn porque la ñ no
la detecta como variable
end
end
o=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra o
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(111)|texto(x)==char(79)|texto(x)==char('ó')|texto(x)==c
har('Ó')%usamos el codigo ASCII para seleccionar el caracter
o=o+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
p=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra p
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(112)|texto(x)==char(80)%usamos el codigo ASCII para
seleccionar el caracter
p=p+1;%hacemos la suma
end
end
q=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra q
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(113)|texto(x)==char(81)%usamos el codigo ASCII para
seleccionar el caracter
q=q+1;%hacemos la suma
end

22
end
r=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra r
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(114)|texto(x)==char(82)%usamos el codigo ASCII para
seleccionar el caracter
r=r+1;%hacemos la suma
end
end
s=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra s
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(115)|texto(x)==char(83)%usamos el codigo ASCII para
seleccionar el caracter
s=s+1;%hacemos la suma
end
end
t=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra t
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(116)|texto(x)==char(84)%usamos el codigo ASCII para
seleccionar el caracter
t=t+1;%hacemos la suma
end
end
u=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra u
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(117)|texto(x)==char(85)|texto(x)==char('u')|texto(x)==c
har('Ú')%usamos el codigo ASCII para seleccionar el caracter
u=u+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
v=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra v
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(118)|texto(x)==char(86)%usamos el codigo ASCII para
seleccionar el caracter
v=v+1;%hacemos la suma
end
end
w=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra w
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(119)|texto(x)==char(87)%usamos el codigo ASCII para
seleccionar el caracter
w=w+1;%hacemos la suma
end
end
xx=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra x
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto

23
if texto(x)==char(120)|texto(x)==char(88)%usamos el codigo ASCII para
seleccionar el caracter
xx=xx+1;%hacemos la suma, tambien en este caso usamos como variable xx
porque ya teniamos una variable x
end
end
y=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra y
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(121)|texto(x)==char(89)%usamos el codigo ASCII para
seleccionar el caracter
y=y+1;%hacemos la suma
end
end
z=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra z
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(122)|texto(x)==char(90)%usamos el codigo ASCII para
seleccionar el caracter
z=z+1;%hacemos la suma
end
end
caracteres={'a';'b';'c';'d';'e';'f';'g';'h';'i';'j';'k';'l';'m';'n'
;'ñ';'o';'p';'q';'r';'s';'t';'u';'v';'w';'x';'y';'z'}; %colocamos
la primer columna que llevara los caracteres
frecuencia={a;b;c;d;e;f;g;h;i;j;k;l;m;n;nn;o;p;q;r;s;t;u;v;w;xx;y;z};%
colocamoa los valores correspondientes a cada fila generada
table( frecuencia,'RowNames',caracteres)%generamos la tabla

• Obtenga los datos del conteo de letras

24
• Mostrar los resultados de manera ordenada en la ventana de comandos (en
forma de columnas con títulos,
similar a la que se observa en la figura 1).

Cuestionario
1. ¿Le sirvió o se apoyó con el código ASCII para la realización de esta
práctica?, Si o No y ¿por qué?
R= Si porque con el seleccionamos que carácter íbamos a ocupar
aunque en el caso de la letra ñ fue necesario ocupar el método de las
comillas que básicamente hacia lo mismo, pero al realizar la practica al
poner el ascii de la letra ñ no nos hacia el conteo
2. ¿Cuántas letras ele aparecen en el texto?
R=49
3. ¿Cuántas letras ele aparecen en el texto?
R= 900

25
Anexo 1
clc
clear all
y=fopen('Texto_Español_02.txt'); % Abre el archivo
texto=fscanf(y,'%c'); % Guarda el contenido en la variable texto
a=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra a
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(97)|texto(x)==char(65)|texto(x)==char('á')|texto(x)==ch
ar('Á')%usamos el codigo ASCII para seleccionar el caracter
a=a+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
b=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra b
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(98)|texto(x)==char(66)%usamos el codigo ASCII para
seleccionar el caracter
b=b+1;%hacemos la suma
end
end
c=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra c
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(99)|texto(x)==char(67)%usamos el codigo ASCII para
seleccionar el caracter
c=c+1;%hacemos la suma
end
end
d=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra d
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(100)|texto(x)==char(68)%usamos el codigo ASCII para
seleccionar el caracter
d=d+1;%hacemos la suma
end
end
e=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra e
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(101)|texto(x)==char(69)|texto(x)==char('é')|texto(x)==c
har('É')%usamos el codigo ASCII para seleccionar el caracter
e=e+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
f=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra f
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(102)|texto(x)==char(70)%usamos el codigo ASCII para
seleccionar el caracter

26
f=f+1;%hacemos la suma
end
end
g=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra g
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(103)|texto(x)==char(71)%usamos el codigo ASCII para
seleccionar el caracter
g=g+1;%hacemos la suma
end
end
h=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra h
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(104)|texto(x)==char(72)%usamos el codigo ASCII para
seleccionar el caracter
h=h+1;%hacemos la suma
end
end
i=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra i
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(105)|texto(x)==char(73)|texto(x)==char('í')|texto(x)==c
har('Í')%usamos el codigo ASCII para seleccionar el caracter
i=i+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
j=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra j
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(106)|texto(x)==char(74)%usamos el codigo ASCII para
seleccionar el caracter
j=j+1;%hacemos la suma
end
end
k=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra k
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('k')|texto(x)==char('K')%usamos el codigo ASCII para
seleccionar el caracter
k=k+1;%hacemos la suma
end
end
l=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra l
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(108)|texto(x)==char(76)%usamos el codigo ASCII para
seleccionar el caracter
l=l+1;%hacemos la suma
end
end
m=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra m

27
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(109)|texto(x)==char(77)%usamos el codigo ASCII para
seleccionar el caracter
m=m+1;%hacemos la suma
end
end
n=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra n
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(110)|texto(x)==char(78)%usamos el codigo ASCII para
seleccionar el caracter
n=n+1;%hacemos la suma
end
end
nn=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra ñ
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char('Ñ')|texto(x)==char('ñ')%usamos el codigo ASCII para
seleccionar el caracter
nn=nn+1;%hacemos la suma, tambien usamos la variable nn porque la ñ no
la detecta como variable
end
end
o=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra o
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(111)|texto(x)==char(79)|texto(x)==char('ó')|texto(x)==c
har('Ó')%usamos el codigo ASCII para seleccionar el caracter
o=o+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
p=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra p
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(112)|texto(x)==char(80)%usamos el codigo ASCII para
seleccionar el caracter
p=p+1;%hacemos la suma
end
end
q=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra q
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(113)|texto(x)==char(81)%usamos el codigo ASCII para
seleccionar el caracter
q=q+1;%hacemos la suma
end
end
r=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra r
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(114)|texto(x)==char(82)%usamos el codigo ASCII para
seleccionar el caracter

28
r=r+1;%hacemos la suma
end
end
s=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra s
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(115)|texto(x)==char(83)%usamos el codigo ASCII para
seleccionar el caracter
s=s+1;%hacemos la suma
end
end
t=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra t
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(116)|texto(x)==char(84)%usamos el codigo ASCII para
seleccionar el caracter
t=t+1;%hacemos la suma
end
end
u=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra u
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if
texto(x)==char(117)|texto(x)==char(85)|texto(x)==char('u')|texto(x)==c
har('Ú')%usamos el codigo ASCII para seleccionar el caracter
u=u+1; %en este caso ocuparemos los
que llevan acento
end%hacemos la suma
end
v=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra v
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(118)|texto(x)==char(86)%usamos el codigo ASCII para
seleccionar el caracter
v=v+1;%hacemos la suma
end
end
w=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra w
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(119)|texto(x)==char(87)%usamos el codigo ASCII para
seleccionar el caracter
w=w+1;%hacemos la suma
end
end
xx=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra x
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(120)|texto(x)==char(88)%usamos el codigo ASCII para
seleccionar el caracter
xx=xx+1;%hacemos la suma, tambien en este caso usamos como variable xx
porque ya teniamos una variable x
end
end

29
y=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra y
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(121)|texto(x)==char(89)%usamos el codigo ASCII para
seleccionar el caracter
y=y+1;%hacemos la suma
end
end
z=0%creamos una variable donde se guardara el valor de la cantidad de
caracteres para la letra z
for x=[Link]length(texto)%creamos un ciclo for que inicia en 1 va de 1
en 1 y termina cuando termina el texto
if texto(x)==char(122)|texto(x)==char(90)%usamos el codigo ASCII para
seleccionar el caracter
z=z+1;%hacemos la suma
end
end
caracteres={'a';'b';'c';'d';'e';'f';'g';'h';'i';'j';'k';'l';'m';'n'
;'ñ';'o';'p';'q';'r';'s';'t';'u';'v';'w';'x';'y';'z'}; %colocamos
la primer columna que llevara los caracteres
frecuencia={a;b;c;d;e;f;g;h;i;j;k;l;m;n;nn;o;p;q;r;s;t;u;v;w;xx;y;z};%
colocamoa los valores correspondientes a cada fila generada
table( frecuencia,'RowNames',caracteres)%generamos la tabla

Comentarios: el programa realiza un conteo de caracteres individual de un


texto que se encuentra en un archivo externo .txt este archivo será cargado al
programa con ayuda de la función y=fopen y guardado en una variable para
hacer uso de el con ayuda de la función texto=fscanf(y,'%c'); después se hará
un barrido en donde compararemos el carácter ‘a’ en todo el texto con ayuda
de la función char que es la que nos convierte el carácter a ascii y al final
dándonos un resultado de cuantos caracteres ‘a’ tiene el texto, esto lo hará con
todas las letras del abecedario, posteriormente crearemos una variable que
contenga los nombres de la primer columna de nuestra tabla la que tendrá
cada uno de los caracteres del abecedario, lo siguiente es crear otra variable
que contenga los contenidos de cada una de las variables anteriores que ya
poseen el valor del total de veces que aparecen en el texto, con ayuda del
comando table crearemos la tabla en donde pondremos en la primer columna
los nombres de cada carácter y en la segunda columna con ayuda de
RowNames le pondremos el nombre de frecuencia y a continuación pondremos
los valores de frecuencia de cada carácter.

30
Anexo 2

El resultado es el mismo en ambas practicas

Bibliografía y referencias
-Apuntes y notas del maestro Fernando Adan Serrano Orozco
- [Link]
- [Link]
[Link]
- [Link]
[Link]
[Link]
0sentencia%20for%20repite%20un,variando%20de%20uno%20en%20uno.

31

También podría gustarte