Sei sulla pagina 1di 9

Universidad de Antioquia

Facultad de Ingeniera

Laboratorio de Informtica I


Prctica 4 Manejo basico del compilador gcc e introduccin al lenguaje C

1. Objetivos

Familiarizarse con el uso bsico del compilador gcc.
Utilizar este compilador para la compilacin de diferentes programas en C.
Codificar en lenguaje C algoritmos, compilarlos con gcc y ejecutarlos apropiadamente.

2. Descripcin general

La presente prctica consiste en una serie de problemas resueltos en Pseudocdigo; los cuales
deben ser codificados en lenguaje C estos, deben ser luego compilados para finalmente ser
probado su correcto funcionamiento.


3. Enunciado del problema

Codificar en lenguaje C los siguientes problemas propuestos en Psudocodigo.

4. Problemas propuestos

1. Se tienen cuatro esferas (A, B, C, D) de las cuales se sabe que tres son de igual peso y una
diferente. Elaborar un algoritmo que determine cul es la esfera diferente y si es de mayor o
menor peso.











Algoritmo Esferas

real: pesoEsfera1, pesoEsfera2, pesoEsfera3, pesoEsfera4;

Inicio
Escribir "Ingrese el peso de cuatro esferas, 3 de ellos deben ser iguales y uno
diferente. El sistema identificar la esfera diferente:";
Escribir "Peso esfera 1:";
Leer pesoEsfera1;
Escribir "Peso esfera 2:";
Leer pesoEsfera2;
Escribir "Peso esfera 3:";















































Escribir "Peso esfera 4:";
Leer pesoEsfera4;
Si pesoEsfera1 = pesoEsfera2 Entonces
Si pesoEsfera1 = pesoEsfera3 Entonces
Si pesoEsfera1 = pesoEsfera4 Entonces
Escribir "La idea era que ingresara un valor diferente ????? ";
Sino
Si pesoEsfera4 > pesoEsfera1 Entonces
Escribir "La esfera 4 es diferente y ademas tiene un
peso mayor que las dems.";
Sino
Escribir "La esfera 4 es diferente y ademas tiene un
peso menor que las dems";
FinSi
FinSi
Sino
Si pesoEsfera1 = pesoEsfera4 Entonces
Si pesoEsfera3 > pesoEsfera1 Entonces
Escribir "La esfera 3 es diferente y ademas tiene un
peso mayor que las dems.";
Sino
Escribir "La esfera 3 es diferente y ademas tiene un
peso menor que las dems.";
FinSi
Sino
Escribir "Hay un error en el ingreso de datos...";
FinSi
FinSi
Sino
Si pesoEsfera1 = pesoEsfera3 Entonces
Si pesoEsfera1 = pesoEsfera4 Entonces
Si pesoEsfera2 > pesoEsfera1 Entonces
Escribir "La esfera 2 es diferente y ademas tiene un
peso mayor que las dems.";
Sino
Escribir "La esfera 2 es diferente y ademas tiene un
peso menor que las dems.";
FinSi
Sino
Escribir "Hay un error en el ingreso de datos";
FinSi
Sino
Si pesoEsfera1 = pesoEsfera4 Entonces
Escribir "Hay un error en el ingreso de datos";
Sino
Si pesoEsfera1 > pesoEsfera2 Entonces
Escribir "La esfera 1 es diferente y ademas tiene un
peso mayor que las dems.";
Sino
Escribir "La esfera 1 es diferente y ademas tiene un
peso menor que las dems.";
FinSi
FinSi
FinSi
FinSi
FinInicio
Fin Esferas
2. Cierta universidad tiene un programa para estimular a los estudiantes con buen rendimiento
acadmico. Si el promedio es de 4.5 o ms y el alumno es de pregrado entonces cursara 28
crditos y se le har un 25% de descuento. Si el promedio es mayor o igual a 4 pero menor que 4.5
y el alumno es de pregrado, entonces cursara 25 crditos y se le har un 10% de descuento. Si el
promedio es mayor que 3.5 y menor que 4.0 y es de pregrado, cursar 20 crditos y no tendr
ningn descuento. Si el promedio es mayor o igual a 2.5 y menor que 3.5 y es de pregrado,
entonces cursar 15 crditos y no se le har ninguna descuento. Si el promedio es menor de 2.5 y
es de pregrado, no podr matricularse. Si el promedio es mayor o igual a 4.5 y es de postgrado,
cursara 20 crditos y se le har un 20% de descuento. Si el promedio es menor de 4.5 y es de
postgrado cursar 10 crditos y no tendr ningn descuento.
































Algoritmo Matrcula

real: promedio, valorMatricula, descuento;
entero: creditos;
alfanumerica: programa;

Inicio
Escribir "digite a para pregrado, otra letra para posgrado: ";
Leer programa;
Si programa = 'a' Entonces
Escribir "Ingrese el promedio obtenido el semestre inmediatamente anterior
como estudiante de pregrado: ";
Leer promedio;
Si promedio >= 4.5 Entonces
creditos <- 28;
descuento <- 0.25
Sino
Si promedio >= 4 Entonces
creditos <- 25;
descuento <- 0.1;
Sino
Si promedio >= 3.5 Entonces
creditos <- 20;
descuento <- 0.0;
Sino
Si promedio >= 2.5 Entonces
creditos <-15;
descuento <- 0.0;
Sino
Escribir "Siento informarle que usted no podr
matricularse este semestre";
creditos <- 0;
descuento <- 0.0;
FinSi
FinSi
FinSi
FinSi
Sino
Escribir "Ingrese el promedio obtenido el semestre inmediatamente anterior
como estudiante de postgrado: ";
Leer promedio;











3. Elabore un algoritmo que lea los siguientes datos: nombre de una muchacha, edad, estatura, peso
y estado civil. El algoritmo debe clasificar cada chica de acuerdo a los siguientes criterios: si es
menor de 15 aos y mide menos de 160 cm es una mafalda; si est entre 18 y 25 aos, mide ms
de 175 cm y pesa menos de 65 kg es una barbie; si es mayor de 50 aos, mide ms de 168 cm,
pesa ms de 80 kg y es casada es una helga; si es casada, mayor de 25 aos y menor de 30 aos, y
pesa menos de 70 kg es una reina; y si es soltera, mide ms de 180 cm, pesa entre 65 y 75 kg y
tiene menos de 21 aos es una princesa.























Si promedio >= 4.5 Entonces
creditos <- 20;
descuento <- 0.2;
Sino
creditos <- 10;
descuento <- 0.0;
FinSi
FinSi
Si creditos > 0 Entonces
Escribir "El descuento es del ",descuento*100, " por ciento";
Escribir "El valor de la matricula es: ", creditos*50000*(1-descuento);
Escribir "El numero de creditos a matricular son: ", creditos;
FinSi
FinInicio
Fin Matrcula
Algoritmo Clasificacion
alfanumerico: nombre, estado;
entero: edad, estatura, peso;

Inicio
Escribir "Ingrese el nombre de la mujer: ";
Leer nombre;
Escribir "Ingrese la edad: ";
Leer edad;
Escribir "Ingrese la estatura en centimetros: ";
Leer estatura;
Escribir "Ingrese el peso en kilogramos: ";
Leer peso;
Escribir "Ingrese el estado civil: (C: casada o S: soltera) ";
Leer estado;
Si edad < 15 y estatura < 160 Entonces
Escribir "la seorita ",nombre," es mafalda";
FinSi
Si edad <= 25 y edad >= 18 y estatura > 175 y peso < 65 Entonces
Escribir "la seorita ",nombre," es una barbie";
FinSi
Si edad > 50 y estatura > 168 y peso > 80 y estado = 'C' Entonces
Escribir "la seora ",nombre," es helga";
FinSi
Si estado = 'C' y edad>25 y edad<30 y peso<70 Entonces
Escribir "la seora ",nombre," es una reina";
FinSi
Si estado= 'S' y estatura>180 y peso>=65 y peso<=75 y edad<21 Entonces
Escribir "la seorita ",nombre," es una princesa";
FinSi
FinInicio
Fin Clasificacion

4. Calcula la suma de los nmeros enteros entre 0 y N.


















5. Realizar un algoritmo que muestre los primeros N trminos la serie Fibonacci, la cual tiene: 0, 1, 1,
2, 3, 5, 8,...






















6. Realizar un algoritmo que muestre los primeros N trminos de la siguiente serie:
0, -2, 4, -6, 8, 10,-12, 14, 16, 18, -20, 22, 24, 26, 28, -30, ...

Algoritmo SumaNum

entero: suma, i, n;

Inicio
suma<-0;
i<-0;
Escribir "Ingrese la cantidad de nmeros a la cual le desea calcular la sumatoria: ";
Leer n;
Mientras i <= n Hacer
suma <- suma+i;
i <- i+1;
FinMientras
Escribir "La suma de los numeros entre 0 y ",n," es: ", suma;
FinInicio

Fin SumaNum
Algoritmo fibonacci

entero: n0<-0, n1<-1, n2, N, i;


Inicio
n0<-0;
n1<-1;
Escribir "Digite la cantidad de terminos";
Leer N;
Escribir "Serie: 0,1 ";
Para i<-3 Hasta N Con Paso 1 Hacer
n2<-n1+n0;
Si i <= N Entonces
Escribir ", ",n2;
Sino
Escribir n2,".";
FinSi
n0<-n1;
n1<-n2;
FinPara
Fin Algoritmo

















7. Varias ambulancias recorren la ciudad y cuando se recibe en la CENTRAL una llamada se informa la
ubicacin de la emergencia mediante coordenadas, lo mismo que la ubicacin de todas las ambulaciones.
La central es el punto (0,0) u origen de coordenadas. Se sabe que existen N ambulancias en servicio.
Realice un algoritmo que, dada la informacin necesaria, informe las coordenadas de la ambulancia ms
cercana al punto de emergencia. (Nota: llamar al profesor cuando vaya a compilar este archivo pues hay
que enlazar con la librera matemtica para poder hacer uso de las races).











Algoritmo serie

entero: c1<-0, c2<-0,num,i, N;

Inicio
Escribir "Digite el numero de terminos: ";
Leer N;
Para i<-0 Hasta N-1 Con Paso 1 Hacer
num<-2*i;
Si c1 = c2 Entonces
c1<-0;
c2<-c2+1;
num<-(-1)*num;
FinSi
c1<-c1+1;
Escribir num, " ";
FinPara
Fin Algoritmo































8. Realizar un algoritmo que muestre los primeros N trminos de la siguiente serie: 0, - 2, 4, 6, -8,
10, 12, 14, -16, 18, 20, 22, 24, -26, 28, 30 ...














Proceso ambulancias

real: x_amb, y_amb, x_emer, y_emer, d, x_min;
entero: N, i, num_amb;


Inicio
N<-5; // Se asumen 5 ambulancias; para hacer mas general el
// problema se puede solicitar al usuario que introduzca
// el numero de ambulancias, pero este no es el caso asi
// que si desea otro numero de ambulancias modifique el
// valor asignado por defecto (es decir 5).
Escribir "Digite las coordenadas de la emergencia: ";
Leer x_emer;
Leer y_emer;
// Se tiene que leer al menos la coordenada de la primera ambulancia
// pues el valor de la distancia arrojado sera tomado como referencia
// para el ciclo
Escribir "Digite las coordenadas de la ambulancia 1: ";
Leer x_amb;
Leer y_amb;
d<-((x_emer - x_amb)^2 + (y_emer - y_amb)^2)^(1/2);
d_min<-d;
num_amb<-1;
Escribir "La ambulancia # 1 se encuentra a una distancia de ",d," m";
Para i<-2 Hasta N Con Paso 1 Hacer
Escribir "Digite las coordenadas de la ambulancia ", i, ": ";
Leer x_amb;
Leer y_amb;
d<-((x_emer - x_amb)^2 + (y_emer - y_amb)^2)^(1/2);
Escribir "La ambulancia # ", i, " se encuentra a una distancia de ",d," m";
Si d <= d_min Entonces
num_amb<-i;
d_min<-d;
FinSi
FinPara
Escribir "Ambulancia # ", num_amb," dirijase a ayudar";
Fin Algoritmo

Algoritmo serie

entero: espacio_signo, conta_signo, N, i, num;

Inicio
espacio_signo<-1;
conta_signo<-0;
Escribir "Diga el numero de terminos a mostrar: ";
Leer N;
Para i<-0 Hasta N-1 Con Paso 1 Hacer
num<-2*i;
Si conta_signo = espacio_signo Entonces
num <- -num
espacio_signo <- espacio_signo + 1
conta_signo <- -1
FinSi
conta_signo <- conta_signo + 1
Escribir num;
FinPara
FinProceso

9. Hacer un algoritmo que encuentre la suma y el promedio de un grupo de datos positivos que
entran de a uno por registro.




















10. Elaborar un algoritmo que haga calcule A elevado a la B por sumas nicamente:





















5. Problemas propuestos
Para desarrollar el laboratorio no olvide tener en cuenta las siguientes consideraciones:
Algortimo suma_posotivos

entero: suma<-0, n_data<-0,num, prom

Inicio
Escribir "Digite el numero positivo a sumar o un numero negativo para terminar";
Leer num;
Mientras num>=0 Hacer
n_data<-n_data+1;
suma<-suma+num;
Escribir "Digite el numero positivo a sumar o un numero negativo para
terminar";
Leer num;

FinMientras
Si n_data = 0 Entonces
Escribir "No se ingresaron datos positivos";
Sino
prom<-suma/n_data;
Escribir "De los datos ",n_data," positivos ingresados, la suma dio: ",
suma, " y el promedio fue: ",prom;
FinSi
Fin Algoritmo

Algortimo sin_titulo

Entera: acum, A, B, aux
Inicio
acum<-0;
Escribir "Digite el valor de la base";
Leer A;
Escribir "Digite el valor del exponente";
Leer B;
aux<-A;
Para i<-1 Hasta B-1 Con Paso 1 Hacer
Para j<-1 Hasta A Con Paso 1 Hacer
acum<-acum+aux;
FinPara
aux <- acum;
acum <- 0;
FinPara
Escribir A,"^",B,"=",aux;
Fin Algoritmo
El laboratorio ser completamente desarrollado en clase y su nota depende de lo hecho en
clase.

Potrebbero piacerti anche