Sei sulla pagina 1di 6

Algoritmo y Estructura de Datos

Ing. en Sistemas de Información – 1º año –


Docente: Gabriela Ribotta Ayudante: María Laura López
Trabajo práctico Nº 6
(Trabajos con cadenas de caracteres y estructuras)

Realiza el programa en Lenguaje C correspondiente.

Cadenas de caracteres

1- Construir una función PASSWORD que pida por teclado una cadena y la compare
con una cadena guardada. Si coinciden, el programa debe devolver 0; en otro caso,
devolver 1. Utilizando el resultado de la función mostrar el mensaje “Acceso Permitido”
o “Acceso denegado” según corresponda.

2- Escriba un programa que lea una cadena, la longitud de la línea no será especificada
(se terminará el ingreso con el retorno de carro), pero se asume que no excederá los 80
caracteres.
El programa debe contener:
 Una función que lea la cadena.
 Una función que devuelva un entero que indica la cantidad de vocales que hay en la
cadena, además se debe reemplazar cada vocal con * en la mima función.
 Una función que imprima la cantidad de vocales y la cadena modificada.
Ejemplo:
L A C A S A E S T A D E S O C U P A D A

El programa debe devolver “En la cadena hay 10 vocales”, y la cadena modificada:


L * C * S * * S T * D * S * C * P * D *

3- Diseñe un programa que me permita ordenar alfabéticamente una lista de contactos


de la agenda del usuario. Se ingresa el apellido de cada contacto y para finalizar se debe
ingresar “fin”. Utilizar un array bidimensional.

4- Diseñe y codifique un programa que pueda realizar los siguientes procesos utilizando
un menú que le permita al usuario escoger la acción a ejecutar:
a. Capturar dos cadenas, concatenarlas y visualizar el resultado.
b. Capturar dos cadenas e intercambiarlas.
c. Capturar una cadena y pedir la búsqueda de una cadena en ella. Visualizar su
posición.
d. Capturar dos cadenas, compararlas y visualizarlas en orden.
e. Capturar una cadena y visualizar su longitud.
f. Capturar dos cadenas y copiar n caracteres de la primera en la segunda.
Visualizar el resultado.
g. Finalizar

Estructuras
1- Define un tipo de dato que represente a una persona siendo sus campos: el nombre
(char[20]), apellido (char[20]), DNI (long int) y la edad (int). Llamar persona a este

-1-
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
tipo de dato. Escribir un programa que pida los datos de N personas y muestre la
cantidad de personas mayores a 50 años, promedio de edades y finalmente imprima
en pantalla los datos de las personas ingresadas.

2- Un médico almacena información de sus pacientes: nombre, dirección, teléfono,


fecha última visita, obra social. Se desea un programa con las siguientes opciones:
a. Introducción de los datos.
b. Impresión en pantalla de toda la información de un paciente.
c. Listar los pacientes de una obra social ingresada por el usuario.

3- En un mercado se guarda la siguiente información de los artículos:


a. Nro de artículo
b. Precio unitario
c. Cantidad mínima necesaria
d. Cantidad actual en el local
e. Fecha de última venta
f. Nro de depósito ( entero que representa el nro. de depósito donde se encuentra el
stock restante de este artículo)
g. Cantidad en depósito
Con esta información se pide realizar las siguientes funciones:
a) Diseñar una función que imprima los datos de los artículos cuya cantidad actual en el
local sea menor que la cantidad mínima necesaria y si hay stock en depósito se debe
imprimir los datos donde se encuentra la mercadería.
b) Diseñar una función que devuelva la cantidad de artículos cuyo mes de última venta
fue septiembre (mes 09).

Ejercicios Propuestos

1- Escribir un programa que lea una cadena, la longitud de la línea no será especificada
(finalizara el ingreso con el retorno de carro), pero se asume que no excederá los 80
caracteres y terminará siempre con “.”.
El programa debe contener:
 Una función que lea una cadena
 Una función que devuelva la cantidad de palabras de cuatro letras que hay en la
cadena, además de deber reemplazar las palabras de cuatro letras por # en la misma
función.
 Una función que imprima la cantidad de palabras de cuatro letras y la cadena
modificada.

2- Escribir un programa que, dada una cadena de caracteres y un entero correspondiente


a una posición válida dentro de ella, genere una nueva cadena de caracteres que
contenga todos los caracteres a la izquierda de dicha posición, pero en orden inverso.

-2-
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
3- Escribir un programa que, dada una cadena de caracteres, la limpie de caracteres
blancos. Por ejemplo, la cadena "Esto es una frase" deberá transformarse en
“Estoesunafrase".

4- Escriba un programa para manejar números racionales. Las operaciones a tener en


cuenta son: suma, diferencia, multiplicación, división y simplificación. La
simplificación se puede realizar hallando el máximo común divisor entre el numerador y
el denominador, para esto se puede utilizar el algoritmo de Euclides

5- Realizar la declaración de arreglos adecuada para que una empresa de turismo pueda
almacenar la información necesaria de los X viajes que realiza como: medio de
transporte, nro de viaje, fecha de salida y todos los datos que considere necesario.
También se almacenará información de los N pasajeros de los viajes como sus datos
personales nombre, DNI, domicilio, teléfono y nro de viaje.
a. Realizar la carga de la información.
b. Con la estructura declarada diseñar un procedimiento para que dado un
nro. de viaje muestre los datos del mismo y la lista de pasajeros.
c. Imprimir los datos de los viajes que van a salir en el mes de diciembre
(mes 12)

6- Dado un arreglo de empleados, con los siguientes datos:


Nro. de empleado, nombre, DNI, fecha de nacimiento, salario del último cuatrimestre.
Se pide:
a) Cargar los datos de N empleados.
b) Ordenar los datos por Nro. de empleado
c) Dado un número de empleado buscarlo e imprimir sus datos.
d) Listar los datos de los empleados que en cuatrimestre han ganado mas de
$2000.

7- Se tiene dos arreglos: uno de estudiantes y otro de empleados. De cada estudiante se


mantiene el DNI, apellido y promedio, de cada empleado se mantiene DNI, apellido y
salario. Escribir un programa con opciones para:
a) Ordenar los arreglos por DNI.
b) Imprimir los datos de un estudiante cuyo DNI es pasado como parámetro.
c) Aumentar en un 10% el salario de cada empleado que sea estudiante y tenga
promedio >7.
8- Dada la siguiente definición de tipos de datos:
struct Tagente {
char nombre[30];
char area[20];
long int ventas[4];
};
Escribir un programa que defina un vector de N agentes, permita la introducción de los
datos por teclado y, finalmente, muestre los datos del agente con la máxima media de
ventas.

-3-
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
10- El inventario de un almacén de artículos deportivos se desea guardar en un arreglo
de registros ARTICULO con los siguientes campos: código del articulo, descripción,
precio unitario, cantidad en stock, código del proveedor.
En un arreglo se mantiene información acerca de los proveedores: código, nombre y
teléfono.
a) Escribir un procedimiento donde se realiza la carga de datos de los N artículos y otro
para la carga de datos de los proveedores que son 3.
b) Imprimir en pantalla todo el inventario junto con el nombre del proveedor
correspondiente.
c) Listar aquellos artículos cuya cantidad es menor a una ingresada por el usuario.
d) Dado un nombre de un proveedor, calcular la cantidad de artículos provistos por el
mismo.
e) Calcular el valor total del inventario.

-4-
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López

Ejercicios de autoevaluación

1. Si definimos char palabra[]="Hola" entonces:

palabra[4] es el carácter a
No da error de compilación, pero no reserva memoria para la variable palabra
palabra[4] es el carácter \0
Tendremos un error de compilación
palabra[4] es el carácter "

2. Se declara:

char s[4];

se ejecuta la siguiente instrucción:

scanf("%s", s);

se introduce por teclado: PEPITO GRILLO, e inmediatamente se ejecuta la instrucción:

puts(s);

¿Cuál de los siguientes literales se visualizará en la pantalla y por qué?

PEPI
PEPITO GRILLO
PEPITO
PEPIT
Ninguno, porque hay un error de sintaxis en alguna instrucción.

3. ¿Cuál de las siguientes definiciones es correcta?

char tab[3][2]={"CA","SE","CO"};
Ninguna es correcta
char tab[3][2]={'C','A','S','E','C','O'};
Hay más de una correcta
char tab[3][2]={ {'C','A'},{'S','E'},{'C','O'}};

-5-
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
4. El valor que devuelve la expresión strcmp("2345","23345") es:

Un valor entero menor que cero


Un valor numérico resultado de 2345-23345
Un valor entero mayor que cero
Un valor numérico resultado de 23345-2345
Ninguna es correcta

5. Sean las siguientes afirmaciones sobre estructuras:

a) Todos los campos de una estructura han de ser de tipos diferentes


b) Un campo de una estructura puede ser una tabla bidimensional
c) Un campo de una estructura no puede ser otra estructura
d) Un campo de una estructura puede ser un puntero a la propia estructura

¿Cuántas de ellas son de ciertas?


Todas las afirmaciones son falsas
Sólo tres de las afirmaciones son ciertas
Sólo dos de las afirmaciones son ciertas
Todas las afirmaciones son ciertas
Sólo una de las afirmaciones es falsa

-6-

Potrebbero piacerti anche