Вы находитесь на странице: 1из 4

UNIVERSIDAD AUTÓNOMA DE CHILE

INGENIERÍA INFORMÁTICA
TÉCNICAS DE PROGRAMACIÓN

Guía de Ejercicios: Cadenas

1. Escribir un programa que pida una cadena de caracteres (de longitud máxima 80
caracteres) y devuelva la cadena escrita al revés. Ayuda: Para saber la longitud de la
cadena se puede usar la función strlen() de la librería string.h.

2. Realizar un programa que lea una cadena de caracteres de una longitud menor de 80 y
visualice los caracteres de la siguiente forma:
primero, último, segundo, penúltimo, tercero, antepenúltimo, ...

3. Escribir un programa que lea una cadena de caracteres y luego que cambie las letras
mayúsculas a minúsculas y viceversa. La cadena deberá ser ingresada por el usuario y
el resultado se mostrará por pantalla. Ayuda: Utilice la funciones toupper() y tolower()
de la librería ctype.h

4. Escribir un programa que pida primero un caracter por teclado y que luego pida una
cadena. El programa calculará cuántos caracteres tiene la cadena hasta que lea el
carácter introducido primero. Se deberá mostrar un mensaje en pantalla con el
número de caracteres introducidos hasta llegar al carácter que se ingresó primero.

5. Escribir un programa que cuente el número de letras, dígitos y signos comunes de


puntuación de una cadena introducida por teclado.
Ayuda: Para saber si un caracter es numérico comparar que su valor es mayor que ‘0’ y
menor que ‘9’, para saber si es alfabético comprobar que está entre ‘a’ y ‘z’ y considerar
signos de puntuación el resto de los caracteres.
Nota: No considerar ni la ñ ni las letras acentuadas, ya que tienen códigos ASCII fuera del
rango a-z.

6. Realizar un programa que lea una cadena de caracteres con espacios en blanco
excesivos: elimine los espacios en blanco iniciales y finales y sólo deje uno entre cada
dos caracteres.
Ayuda: Utilizar scanf con el formato %[] para que acepte espacios en blanco: ej: scanf("%
[^\n]",CAD);

7. Crear un programa que pida una cadena de caracteres y devuelva otra sin signos de
puntuación ni números. La cadena devuelta debe tener todos los caracteres en
mayúsculas.
UNIVERSIDAD AUTÓNOMA DE CHILE
INGENIERÍA INFORMÁTICA
TÉCNICAS DE PROGRAMACIÓN

8. Crear un programa que pida por pantalla una cadena de 80 caracteres de longitud
máxima y que calcule el número de veces que aparece otra cadena determinada,
también pedida por teclado. Como salida el programa debe escribir un mensaje con el
número de veces que aparece la palabra dada.

9. Escribir un programa que compruebe si una cadena pedida por teclado es un


palíndromo o no. El programa no tendrá en cuenta si la palabra está escrita con
mayúsculas o minúsculas.
Nota: Un palíndromo es una palabra que se lee igual al derecho que al revés.
Ej: radar, 11011011, Ana, Otto

10. Escribir un programa que compare 2 cadenas de caracteres imprimiendo un mensaje


si son iguales y 0 si son distintas.

11. Escribir un programa que pida dos cadenas (de longitud máxima 10 caracteres) y
muestre por pantalla el resultado de las siguientes operaciones:
• Obtener la longitud de ambas cadenas.
• Comparar alfabéticamente ambas cadenas indicando si son iguales o bien cuál es
la mayor y cuál la menor.
• Concatenar la segunda cadena al final de la primera, dejando un espacio blanco
entre ambas.
• Copiar el contenido de la segunda cadena en la primera.

12. Escribir un programa con un menú que permita las siguientes opciones:
• Introducir una cadena de 40 caracteres de longitud máxima
• Pasar a mayúsculas una cadena leída desde teclado. Para ello, debe transformar
los caracteres de letras minúsculas a mayúsculas dejando como están las letras
mayúsculas.
• Pasar a minúsculas una cadena desde teclado. Para ello, debe transformar los
caracteres de letras minúsculas a mayúsculas. Dejando como están las letras
minúsculas.
• Dada la cadena de caracteres introducida en el punto 1, obtener otra, de forma
que la cadena resultante tenga sus caracteres a una distancia d (en el código ASCII)
de los caracteres de la cadena original. Se considerará el alfabeto circular, es decir
que tras la letra ‘z’ viene la letra ‘A’. La distancia d se introducirá desde teclado.
Nota: Antes de traducir la cadena se convertirá en una cadena de letras
minúsculas, tal y como se hace en el punto 2.
• Salir del programa

Nota común: En todos los casos si se intenta efectuar alguna operación antes de
introducir la cadena se deberá mostrar un mensaje de error comunicando al usuario
que la cadena está vacía.
UNIVERSIDAD AUTÓNOMA DE CHILE
INGENIERÍA INFORMÁTICA
TÉCNICAS DE PROGRAMACIÓN

13. Julio Cesar enviaba mensajes a sus legiones encriptando los mensajes mediante el
siguiente algoritmo:
Se escogía un número n como clave y se sumaba a cada letra en el alfabeto n posiciones.
Así, si la clave escogida fuese 5, la ‘a’ pasaría a ser la ‘f’, mientras que la ‘f’ pasaría a ser la
‘k’. Para las últimas letras del abecedario se seguiría desde el principio. Así, con la clave de
5 la ‘y’ pasaría a ser la ‘c’. Se pide crear un programa que encripte una frase mediante este
algoritmo.

14. Construir un programa que implemente una calculadora para números enteros:
El programa pedirá primero la operación y luego los operandos.
Las operaciones válidas serán: sumar, restar, multiplicar, dividir, salir.
Si la operación es distinta de salir se pedirán los operandos y luego se mostrará el
resultado.
Si la orden es distinta de las anteriores se mostrará un error diciendo que se trata de una
orden desconocida.

15. Realizar un programa que permita calcular el DV., conociendo el RUT de una persona.
El programa deberá leer, sobre una cadena de caracteres, el número del RUT del
interesado. Seguidamente deberá averiguar si es un valor válido (todos los caracteres
deben ser numéricos y representar un valor entre 100.000 y 99.999.999). Si la entrada es
válida se deberá calcular el DV y representar el número completo con los puntos de miles y
millones en las posiciones correspondientes, así como la letra del DV al final de la cadena
de caracteres separada por un espacio en blanco.

Cálculo del DV:


Para calcular el DV, se procede a tomar el número de RUT de derecha a izquierda,
multiplicando cada dígito por los números que componen la serie numérica 2, 3, 4, 5, 6, y
7; y así sucesivamente. Luego sumando el resultado de estos productos.

Al número obtenido por la suma del producto de cada dígito por la serie ya mencionada,
se divide por 11 para obtener el resto de la división. El paso siguiente es restar al número
11 el resto obtenido. El resultado de la resta es el DV que se solicita evaluar según lo
siguiente:
Si el resultado final es 10 u 11, se le convierte a una letra o número, siguiendo estas reglas:
 Si el resultado es 11, el dígito verificador será 0 (cero).
 Si el resultado es 10, el dígito verificador será K.
 En otro caso, el resultado será el propio dígito verificador.
UNIVERSIDAD AUTÓNOMA DE CHILE
INGENIERÍA INFORMÁTICA
TÉCNICAS DE PROGRAMACIÓN

16. Tal vez el esquema de codificación más famoso de todos es el código Morse,
desarrollado por Samuel Morse en 1832 para el sistema telegráfico. El código Morse
asigna una serie de puntos y rayas a cada letra del abecedario, a cada dígito y a algunos
caracteres especiales (punto, coma, dos puntos y punto y coma). Ver tabla adjunta.
Escribir un programa que lea una frase y la codifique en código Morse. También escriba un
programa que lea una frase en código Morse y la convierta en su equivalente en
castellano. La separación entre letras se indicará mediante un espacio, mientras que la
separación entre palabras se indicará mediante 3 espacios.

Вам также может понравиться