Sei sulla pagina 1di 9

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º 1
( Entrada, Proceso y Salida. Estruct. de control )

1- Elegir tipos de datos convenientes para representar los siguientes datos e indicar los
rangos de valores esperados para cada uno. Teniendo en cuenta los siguientes cuadros:

Tipo Significado bits Rango Caract. Conv.

char caracter 8 -128 a 127 %c

int entero 16 -32768 a 32767 %d , %i

float flotante 32 -3.4e+48 a 3.4e+48 %f , %e , %g

double doble 64 -1.7e+308 a 1.7e+308 %lf

MODIFICADORES DE TIPO
Los modificadores o calificadores de tipo, se aplican a los enteros y caracter. Sin embargo
es posible aplicar long al tipo de datos double.
signed char 8 -128 a 127 %c

unsigned char 8 0 a 255 %c

short 16 -32768 a 32767 %hd

unsigned int 16 0 a 65535 %u

long int 32 -2147483648 a 2147483647 %ld

unsigned long 32 0 a 4294967295 %lu

Long double 64 3,4E-4932 a 3,4E+4932 %lf

a. La edad de una persona


b. El saldo de una cuenta bancaria
c. El número de un documento de identidad
d. La cantidad de días transcurridos desde el principio de la era cristiana.
e. La respuesta al mensaje de Error “Cancelar, Reiterar, Ignorar?”
f. La cantidad de segundos en un período máximo de doce horas.

2- Compilar, ejecutar e interpretar los resultados:


A.
#include <stdio.h>
#include <conio.h>
int main()
{
int a,b; char c;
a=100; b=200;
c=a+b;
printf(“c=%d, a*b=%d\n”, c, a*b);
}
B.

1
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
#include <stdio.h>
#include <conio.h>
int main()
{
int a=1,b=2,c=3,r;
r=a+b;
printf("%d + %d = %d\n",a,b,r);
r=c-a;
printf("%d - %d = %d\n",c,a,r);
b++;
printf("b + 1 = %d",b);
}

3- En la industria XX se desea calcular el precio unitario de venta, de tres artículos. Se


ingresa por teclado el valor de compra correspondiente a cada uno P1, P2, P3.
Suponemos que el vendedor desea ganar el 30% del valor de compra. Mostrar el precio
de venta de cada uno.

4- Calcular e imprimir la longitud de la hipotenusa de un triángulo rectángulo. Se debe


ingresar la longitud de sus catetos.

5- Calcular y mostrar el cuadrado y su cubo de cada uno de tres números que se


ingresan en N1, N2, y N3 respectivamente por teclado.

6- Calcular y mostrar el valor de la función


Y = A (x * x) + B x + C
para dos valores de x que se deben ingresar por teclado, si los respectivos valores de las
constantes son respectivamente –1, -2, 3. Usar constantes.

7- Un ciber cobra $0,90 el minuto de uso de una computadora con conexión a Internet, y
$0,07 la hoja impresa. Existe un cargo adicional consistente en $0,05 * X, siendo X el
1% del tiempo utilizado, en concepto de seguro. Se quiere imprimir el recibo de uso de
un cliente, en el que se detallen todos los conceptos.

8- Escribir un programa para calcular el importe de una venta en un supermercado. El


usuario debe ingresar una letra que representa al producto, el precio por unidad y el nº
de unidades vendidas de ese producto. El programa sacará por pantalla el carácter
(letra) del producto, el nº de unidades vendidas y el precio total. Preste especial atención
a qué tipo de datos resulta más adecuado para cada cantidad.

9- Determinar si la suma de cualquier pareja de tres números dados es igual al tercero.


Si se cumple esta condición, escribir “Iguales” y, caso contrario, escribir “Distintos”.

10 - Suponiendo que se tienen como datos las variables a, b, z y n de tipo entero y que
en un programa se escribe: if (n > 0) if (a > b) z = a; else z = b;
Decir si la sentencia "if" anterior es equivalente a:
if (n > 0) {if (a > b) z = a; else z = b};
if (n > 0) {if (a > b) z = a; } else z = b;

2
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
11 - Se ingresan por teclado las notas de dos alumnos que realizaron el parcial de la
asignatura “Análisis matemático I”. Mostrar la mayor nota.

12- Un empleado de banco tiene un sistema que imprime un ticket cada vez que un
cliente realiza una compra de dólares. La operación tiene una comisión administrativa
según la cantidad de dólares que se venden, lo que representa un sobre costo para el
cliente:
a. 2% si es más de 501 y menos de 1501
b. 2,5% si es mayor de 1501 y menos que 3501
c. 4 % si es mayor a 3501
El ticket muestra discriminados: la cantidad de dólares que se compraron, el valor de
cada dólar, el monto de la comisión y el monto total que el cliente debe abonar por la
compra.
Hacer un programa que simule la compra e imprima el ticket.

13- Ingresar tres números enteros N1, N2, N3 y mostrar el resultado del cálculo,
teniendo en cuenta las siguientes indicaciones:
Si N1 = N2 mostrar N1 + N2 + N3
Si N1 < N2 mostrar N1 * N2
Si N1 > N2 mostrar (N1 / N2) * N3

14- Dado un boleto (definido por 3 valores de un dígito), desarrollar un programa que
determine e imprima cuantos boletos hubo de los siguientes tipos:
a) capicúa c) triples (3iguales) d) dobles (2 iguales)

15- Se ingresan por teclado los coeficientes de una ecuación de segundo grado. Mostrar
si las raíces son reales y distintas, iguales o complejas. Si son reales, calcularlas.

16- Calcular y mostrar el sueldo básico y el sueldo neto de un empleado, si se ingresa el


número de horas trabajadas (H), el valor por hora para ese empleado (V), y la
antigüedad para el mismo (A).
El sueldo básico surge de:
SB = H * V.
Si el sueldo básico excede los 500 pesos y la antigüedad no es mayor a 10 años, el neto
surgirá de deducir 30 pesos del básico en concepto de impuestos.
Si el básico es menor o igual a 500 pesos, pero la antigüedad es de 10 años o más, el
neto será igual al básico más el 30%.
En toda otra situación el neto será igual al básico.
13 -Cierto atleta pierde en sus carreras 100 gramos de peso por cada 50m recorridos.
Su entrenador desea un programa que a partir de datos como
· Peso del corredor
· Longitud del circuito (nunca menor a 50m)
· Tiempo empleado (en seg.)
Cumpla con los siguientes puntos:
a. Determinar cuántos gramos pierde el corredor y cuál es su peso final
b. Si ha perdido más de 300g de peso, indicar que necesitará vitamina A y si
pierde más de 450g necesitará también vitamina C
c. Sabiendo que para el circuito olímpico el tiempo récord es de 25 seg., y que
para el

3
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
circuito panamericano el tiempo récord es de 15 seg., determinar si el corredor
ha mejorado alguno de estos récords.

17 - El programa irá preguntando por la cantidad de billetes y monedas de cada valor


que tiene el usuario y luego determinará la suma de dinero que hay en monedas y luego
la suma de dinero que hay en billetes. Luego el programa dirá la suma total de dinero
que hay. Finalmente el programa dará al usuario la posibilidad de transformar la
cantidad en el equivalente en dolares o euros, según lo decida el usuario.

18- Se ingresan tres números que representan las temperaturas máximas de tres días del
mes de enero. Mostrar la mayor temperatura.

19- Diseñe un programa que convierta una medida dada en pies a sus equivalentes en:
a) Yardas
b) Pulgadas
c) Centímetros
d) Metros
Sabiendo que 1 pie = 12 pulgadas, 1 yarda = 3pies, 1 pulgada = 2,54 cm, 1 m = 100 cm.

20- En una competencia de 2 pruebas, se registraron los tiempos parciales en


pedestrismo y ciclismo de los tres primeros atletas que terminaron la competencia.
En pedestrismo se hicieron 17 km.. El ganador absoluto de la competencia es el que
acumula mejor tiempo total en la suma de los tiempos de las dos pruebas.
Ingresar los resultados de las pruebas por competidor y determinar:
El ganador de ciclismo y el ganador absoluto.
El promedio de tiempo por km. En pedestrismo del ganador absoluto y la diferencia
existente con los respectivos promedios de los otros dos competidores.
Nota: los tiempos están dados en minutos. Suponer que los promedios son distintos.

21- Una línea de belleza posee un régimen de ventas a domicilio y sus artículos están
clasificados de acuerdo al tipo de cliente en Damas, Caballeros y Niños,
correspondiendo un código a cada uno: D, C, N respectivamente.
Al finalizar el mes se requieren ciertas estadísticas.
INGRESAR como dato el código de c/producto y la ganancia que éste reportó en el
mes. Obtener:
-El porcentaje que representa la ganancia producida por cada producto sobre la ganancia
total.
-El código de artículo que mayor ganancia reportó.
-El código de artículo que menor ganancia reportó, pero sólo mostrar esta información
si el porcentaje es superior al 20%.

22- Realice un programa que determine si un año es bisiesto. Tomando como referencia
que un año bisiesto es divisible entre 4 pero no entre 100, excepto aquellos años que son
divisibles por 400, que si son bisiestos.

23- El gobierno del estado de México desea reforestar un bosque que mide determinado
numero de hectáreas. Si la superficie del terreno excede a 1 millón de metros cuadrados,
entonces decidirá sembrar de la sig. manera:

4
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
Porcentaje de la superficie del bosque Tipo de árbol
70% pino
20% oyamel
10% cedro
Si la superficie del terreno es menor o igual a un millón de metros cuadrados, entonces
decidirá sembrar de la sig. manera:
Porcentaje de la superficie del bosque Tipo de árbol
50% pino
30% oyamel
20% cedro
El gobierno desea saber el número de pinos, oyameles y cedros que tendrá que sembrar
en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros
cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10 cedros. También se
sabe que una hectárea equivale a 10 mil metros cuadrados.

Ejercicios Propuestos

1- Calcular e imprimir el sueldo básico y el sueldo neto de un empleado. Se ingresa la


cantidad de horas trabajadas (H), el valor por hora para ese empleado (V) y la
antigüedad del mismo (A).
SB = H * V
SN es el SB más el 1,5% del sueldo básico por cada año de antigüedad.

2- En la industria XX se desea calcular y mostrar el 15% de cada uno de tres sueldos


jerárquicos, que se ingresan por teclado en S1, S2, S3 respectivamente. Mostrar el
porcentaje correspondiente a cada sueldo.

3- Ingresar dos números los cuales constituyen las coordenadas de un punto del plano.
Informar a qué cuadrante pertenece el punto y si está en el primer cuadrante hallar la
distancia al origen de coordenadas.

4- Una temperatura Celsius (centígrados) C puede ser convertida a una temperatura F de


acuerdo a la siguiente fórmula:
F=(9/5)* C + 32
Escribir un programa que lea una temperatura Celsius C como número decimal y
obtenga la temperatura Fahrenheit equivalente.

5- Un sistema de ecuaciones lineales


ax + by =c
dx + ey = f
se puede resolver con las siguientes fórmulas:
x = c*e – b*f y= a*f – c*d
a*e - b*d a*e – b* d
Diseñar un programa que lea dos conjuntos de coeficientes (a, b, c; d, e y f) y visualice
los valores de x e y.

6- En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El


presupuesto anual del hospital se reparte conforme a la sig. tabla:
Área Porcentaje del presupuesto

5
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
Ginecología 40%
Traumatología 30%
Pediatría 30%
Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

7- Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:


Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20
por cada hora extra.

8- Hacer un algoritmo que imprima el nombre de un artículo, clave, precio original y su


precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el
descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos
claves).

9- Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos
de ejercicio aeróbico; la formula que se aplica cuando el sexo es femenino es:
num. pulsaciones = (220 - edad)/10
y si el sexo es masculino:
num. pulsaciones = (210 - edad)/10

10- Una compañía de seguros está abriendo un depto. de finanzas y estableció un


programa para captar clientes, que consiste en lo siguiente: Si el monto por el que se
efectúa la fianza es menor que $50 000 la cuota a pagar será por el 3% del monto, y si el
monto es mayor que $50 000 la cuota a pagar será el 2% del monto. La afianzadora
desea determinar cuál será la cuota que debe pagar un cliente.

11- Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes
condiciones: Si los ingresos del comprador son menores de $8000 o más el enganche
será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en
diez años. Si los ingresos del comprador son menos de $8000 o más el enganche será
del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 7
años.
La empresa quiere obtener cuanto debe pagar un comprador por concepto de enganche y
cuanto por cada pago parcial. Se debe pedir el ingreso y el costo de la casa.

12- Determinar la cantidad de dinero que recibirá un trabajador por concepto de las
horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo
exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una
hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las
primeras 8 al doble de lo que se pagan las horas normales y el resto al triple. Ingresar
como dato las horas.

13- Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este
se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en
la empresa de acuerdo con la sig. tabla:

Tiempo Utilidad
Menos de 1 año 5 % del salario

6
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
1 año o más y menos de 2 años 7% del salario
2 años o más y menos de 5 años 10% del salario
5 años o más y menos de 10 años 15% del salario
10 años o más 20% del salario

14- El dueño de una empresa desea planificar las decisiones financieras que tomara en
el siguiente año. La manera de planificarlas depende de lo siguiente:
Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo bancario
para que su nuevo saldo sea de $10 000. Si su capital tiene actualmente un saldo
positivo pedirá un préstamo bancario de $20 000, pero si su capital tiene actualmente un
saldo superior a los $20 000 no pedirá ningún préstamo.
Posteriormente repartirá su presupuesto de la siguiente manera:
$5 000 para equipo de computo
$2 000 para mobiliario
y el resto la mitad será para la compra de insumos y la otra para otorgar incentivos al
personal.
Desplegar que cantidades se destinaran para la compra de insumos e incentivos al
personal y, en caso de que fuera necesario, a cuánto ascendería la cantidad que se
pediría al banco. Ingresar el capital.

15- Una institución educativa estableció un programa para estimular a los alumnos con
buen rendimiento académico y que consiste en lo siguiente:
Si el promedio es de 9.5 o más y el alumno es de preparatoria, entonces este podrá
cursar 55 unidades y se le hará un 25% de descuento.
Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria,
entonces este podrá cursar 50 unidades y se le hará un 10% de descuento.
Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podrá
cursar 50 unidades y no tendrá ningún descuento.
Si el promedio es de 7 o menor, el numero de materias reprobadas es de 0 a 3 y el
alumno es de preparatoria, entonces podrá cursar 45 unidades y no tendrá descuento.
Si el promedio es de 7 o menor, el numero de materias reprobadas es de 4 o mas y el
alumno es de preparatoria, entonces podrá cursar 40 unidades y no tendrá ningún
descuento.
Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podrá
cursar 55 unidades y se le hará un 20% de descuento.
Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podrá cursar 55
unidades y no tendrá descuento.
Obtener el total que tendrá que pagar un alumno si la colegiatura para alumnos de
profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es de
$180 por cada cinco unidades.

16- Escribir un programa que, pida la fecha de nacimiento de una persona e imprima
por pantalla su signo zodiacal.

17- Dado el siguiente programa, realiza un seguimiento de la ejecución con los


siguientes supuestos:
(a) a=0, b=0, c=5, d=3
(b) a=2, b=1, c=5, d=3
(c) a=2, b=1, c=2, d=2

7
Algoritmo y Estructura de Datos
Ing. en Sistemas de Información – 1º año –
Docente: Gabriela Ribotta Ayudante: María Laura López
(d) a=2, b=1, c=0, d=0
int main ( )
{
int a,b,c,d;
scanf (“%d %d %d %d”, &a,&b,&c,&d);
if (((a>0) | | (b>a)) && ( c!= d))
{
a = c;
b = 0;
}
else {
c+=d;
if (c= = 0) c= c+b;
else c= c-a;
b= a + c+ d;
}
printf (”Los valores finales son a=%d, b= %d, c= %d, d= %d”, a,b,c,d );
}

18- Modifique el siguiente código para producir la salida que aparece a continuación.
No debe hacer cambio alguno que no sea el de insertar llaves.

if (y==8)
if (x==5)
printf (“@@@@@\n”);
else
printf(“#####\n”);
printf(“$$$$$\n”);
printf(“&&&&&\n”);
a) Si suponemos que x=5 y y=8, se produce la siguiente salida.
@@@@@
$$$$$
&&&&&
b) Si suponemos que x=5 y y=8, se produce la siguiente salida.
@@@@@
c) Si suponemos que x=5 y y=8, se produce la siguiente salida.
@@@@@
&&&&&
d) Si suponemos que x=5 y y=7, se produce la siguiente salida.
#####
$$$$$
&&&&&

8
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 Auto Evaluación

1- Complete los espacios en blanco.


a) Todo programa en C comienza su ejecución en la función _____________
b) La _______________ comienza el cuerpo de toda función, y la _______________
finaliza el cuerpo de toda función.
c) Toda instrucción finaliza con un ____________ .
d) La función _____________ de la biblioteca estándar despliega información en la
pantalla.
e) La secuencia de escape \n representa una ___________, la cual ocasiona que l cursor
se coloque al principio de la siguiente línea de la pantalla.
f) La función ___________ de la biblioteca estándar se utiliza para obtener datos desde
teclado.
g) El especificador de conversión __________ se utiliza en una cadena de control de
formato para indicar que se introducirá o mostrará un entero.
h) La instrucción ________ se utiliza para tomar decisiones.

2- Indique Verdadero o Falso


a. Los operadores en C se evalúan de izquierda a derecha.
b. Cuando se llama a una función printf, ésta siempre comienza la impresión al
principio de una nueva línea.
c. Los siguientes son nombres de variables válidos: _guion_bajo, m9831,
sus_ventas, a, b, z, z2.
d. La instrucción printf(“a=5;”); es un típico ejemplo de una instrucción de
asignación.
e. Una expresión aritmética válida que no contiene paréntesis se evalúa de
izquierda a derecha.
f. C considera idénticas a las variables numero y NuMero.
g. Las declaraciones pueden aparecer en cualquier parte del cuerpo de una función.
h. Todos los argumentos que se encuentren después de la cadena de control de
formato en una función printf deben ser precedidos por un ampersan (&).
i. El operador módulo (%) puede utilizarse sólo con operadores enteros.
j. Un programa que imprime tres líneas como resultado debe contener tres
instrucciones printf.
k. A todas las variables se les asigna un tipo cuando se declaran.

3- Indique y corrija los errores de las siguientes instrucciones. (Nota: puede haber más
de un error cada ejercicio.)
a) printf (“el valor es %d\n, &numero);
b) scanf (“%d%d”, &numero1, numero2);
c) if (c < 7);
printf (“C es menor que 7\n”);
d) if (c=> 7);
printf (“C es mayor o igual que 7\n”);
e) printf( “la suma es %d\n,” x+y);
f) printf(“el valor que escribió es: %d\n, & valor
g) printf(“%c”, “x”);
h)printf(“%s\n”, ‘Feliz Cumple’);
i)La siguiente instrucción debe imprimir los caracteres ‘o’ y ‘k’: printf (“%s%s\n”, ‘o’,’k’);

Potrebbero piacerti anche