Está en la página 1de 4

1.

- Definición del problema:

Implementar un programa en lenguaje C y Python para ingresar una secuencia de cadenas hasta
que sea igual a la palabra ‘FIN’ para cada cadena que no sea ‘FIN’, calcular y desplegar la
frecuencia de repetición de letras. Asumir que las letras mayúsculas son iguales a las minúsculas.
Usar funciones de biblioteca..

2.- Implementación en lenguaje C:

// FrecuenciaLetras
/* Programa para ingresar una cadena, contar y desplegar la
frecuencia de letras que se repiten en dicha cadena.
Realiza el proceso repetitivo hasta ingresar una cadena = 'FIN'
*/
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define FINAL "FIN"
// Prototipos:
void GeneraDespliega(char *);

// Funciones
int main()
{
char cad[80];
for (;;) {
printf("Ingresar una cadena (Salir = %s): ", FINAL);
gets(cad);
if (strcmpi(cad, FINAL) == 0) break;
GeneraDespliega(cad);
}
return 0;
}

void GeneraDespliega(char *p) {


// Variables:
char *alf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i, pos, cuenta = 0;
int frq[26];
char car;
// Encerar el arreglo de frecuencias:
for (i = 0; i < 26; i ++) frq[i] = 0;
// Procesar la cadena:
for (i = 0; p[i]; i ++) {
car = toupper(p[i]);
pos = strchr(alf, car) - alf;
if (pos >= 0) {
frq[pos] ++;
cuenta ++;
}
}
// Desplegar resultados:
printf("TABLA DE FRECUENCIAS PARA %s:\n", p);
printf("LETRA FRECUENCIA:\n");
for (i = 0; i < 26; i ++)
if (frq[i] > 0)
printf(" %c %d/%d\n", alf[i], frq[i], cuenta);
printf("\n");
}

Resultados de la corrida:

3.- Implementación en Python:

# FrecuenciaLetras.py
FINAL = "FIN"
def GeneraDespliega(p):
# Variables:
alf = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cuenta = 0
# Encerar el arreglo de frecuencias:
frq = []
for i in range(0, 26):
frq.append(0)
# Procesar la cadena:
lp = len(p)
for i in range(lp):
car = p[i].upper()
pos = alf.find(car)
if (pos >= 0):
frq[pos] += 1
cuenta += 1
# Desplegar resultados:
print("TABLA DE FRECUENCIAS PARA ", p)
print("LETRA FRECUENCIA");
for i in range(0, 26):
if frq[i] > 0:
print(alf[i], " ", frq[i], "/", cuenta)

while 1:
cad = input("Ingresar una cadena (salir = " + FINAL + "): ")
if (cad.upper() == FINAL):
break
GeneraDespliega(cad)

Resultados de la corrida:
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
=== RESTART: C:/FunProg/May_Sep2020/NRC6492/II Parcial/FrecuenciaLetras.py ===
Ingresar una cadena (salir = FIN): Fundamentos de Programacion
TABLA DE FRECUENCIAS PARA Fundamentos de Programacion
LETRA FRECUENCIA
A 3 / 25
C 1 / 25
D 2 / 25
E 2 / 25
F 1 / 25
G 1 / 25
I 1 / 25
M 2 / 25
N 3 / 25
O 3 / 25
P 1 / 25
R 2 / 25
S 1 / 25
T 1 / 25
U 1 / 25
Ingresar una cadena (salir = FIN): Cadena 123 ....[
TABLA DE FRECUENCIAS PARA Cadena 123 ....[
LETRA FRECUENCIA
A 2/6
C 1/6
D 1/6
E 1/6
N 1/6
Ingresar una cadena (salir = FIN): fin
>>>

También podría gustarte