1 | 46
UNIVERSIDAD DE LAS FUERZAS ARMADAS
ESPE- EXTENSIÓN LATACUNGA
Asignatura: Fundamentos de programación Carrera: Mecatrónica
Nivel: 1º “C” NRC: 4345
Tema: Trabajo Final Fecha: Latacunga, 14 de julio del 2016
Integrantes
 Stephen Pérez
 Israel Pérez
 Javier Pullupaxi
 Fabián Rivas
 Cristian Sailema
2 | 46
Índice General
1. Introducción ..................................................................................................................................... 3
2. Objetivos........................................................................................................................................... 3
2.1 Objetivo General...................................................................................................................... 3
2.2 Objetivos Específicos............................................................................................................... 4
3. Ejercicios .......................................................................................................................................... 4
3.1 Ejercicio 1................................................................................................................................. 4
3.2 Ejercicio 2............................................................................................................................... 10
3.3 Ejercicio 3............................................................................................................................... 13
3.4 Ejercicio 4............................................................................................................................... 16
3.5 Ejercicio 5............................................................................................................................... 30
3.6 Ejercicio 6............................................................................................................................... 33
3.7 Ejercicio 7............................................................................................................................... 36
3.8 Ejercicio 8............................................................................................................................... 39
3.9 Ejercicio 9............................................................................................................................... 42
3.10 Ejercicio10.............................................................................................................................. 45
3 | 46
1. Introducción
C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control
de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy
alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de
aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre
todo, se aprende rápidamente.
Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se
denominan bucles y se denomina iteración al hecho de repetir la ejecución de una secuencia de
acciones.
La estructura repetitiva mientras (en inglés while: hacer mientras) es aquella en que el cuerpo
del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la
instrucción mientras, la primera cosa que sucede es que se evalúa la condición (una expresión
booleana). Si se evalúa falsa, no se toma ninguna acción y el programa prosigue en la siguiente
instrucción del bucle.
El bucle hacer mientras es análogo al bucle mientras y el cuerpo del bucle se ejecuta una y
otra vez mientras la condición (expresión booleana) sea verdadera. Existe, sin embargo, una
gran diferencia y es que el cuerpo del bucle está encerrado entre las palabras reservadas hacer y
mientras, de modo que las sentencias de dicho cuerpo se ejecutan, al menos una vez, antes de
que se evalúe la expresión booleana. En otras palabras, el cuerpo del bucle siempre se ejecuta,
al menos una vez, incluso aunque la expresión booleana sea falsa.
La estructura desde (for) ejecuta las acciones del cuerpo del bucle un número especificado de
veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del
bucle.
2. Objetivos
2.1 Objetivo General
 Evaluar los conocimientos adquiridos, a través de la resolución de problemas
propuestos, para determinar el grado de aprendizaje que posee cada estudiante.
4 | 46
2.2 Objetivos Específicos
 Analizar cada uno de los problemas, mediante el análisis del mismo, para conocer qué
proceso debemos ocupar.
 Dar solución a cada problema, usando diversos procesos como while, do while y for,
para llegar a un resultado específico.
 Verificar el resultado obtenido, por medio del ejecutable que se genera a partir del
pseudocódigo.
3. Ejercicios
3.1 Ejercicio 1
Análisis del Problema
Entrada
Se ingresa el número que se quiere convertir.
Después se ingresa un número (1, 2 o 3) que representa el sistema binario, octal y hexadecimal
según se desee.
Proceso
Opción 1: Sistema Binario
El número ingresado será dividido sucesivamente para 2, y si el residuo de dicha división es
impar se colocará un 1, caso contrario 0. Se almacenarán estos datos para imprimirlos de forma
inversa, es decir desde el último valor hacia el primero.
Opción 2: Sistema Octal
El número ingresado será dividido para 8, la parte decimal y se multiplica por 8, mientras que
la parte entera se vuelve a dividir para 8, hasta que sea inferior a dicho número. Se imprimen la
parte decimal multiplicada desde el valor final hasta el primero.
Opción 3: Sistema Hexadecimal
El número ingresado será dividido para 16, la parte decimal y se multiplica por 16, se mantiene
ese resultado siempre que no sea mayor a 10, en cuyo caso se colocan letras (
10=A,11=B,12=C,13=D,14=E y 15=F) mientras que la parte entera se vuelve a dividir para 16,
hasta que sea inferior a dicho número. Se imprimen estos datos desde el valor final hasta el
primero.
5 | 46
Diagrama de flujo (DFD)
6 | 46
7 | 46
Pseudocódigo
#include<stdio.h>
int main(void)
{
printf("Ingrese el valor a transformar:n");
int n;
int conv;
int j=0;
int k;
int opc;
int n_tem;
int n_temp=0;
int n_temp1=0;
scanf("%d",&n);
printf("Para convertirlo al sistema binario Presione 1:n");
printf("Para convertirlo al sistema octal Presione 2:n");
printf("Para convertirlo al sistema hexadecimal Presione 3:n");
scanf("%d",&opc);
switch (opc)
{
case 1:printf("%d",n);printf(" en el sistema binario es :t");
for(conv=1;conv<=n;conv*=2)
j=conv;
for(j=conv;j>=1;j=(conv/=2))
{
for(j=conv;j>=1;j=(conv/=2))
{
8 | 46
if(n_tem>=j){
n_temp1=k/j;
printf("%d",n_temp1);
}
}
}
break;
case 2:printf("n");printf("%d",n);
printf(" en el sistema octal es :t");
for(conv=1;conv<=n;conv*=8)
j=conv;
for(j=conv;j>=1;j=(conv/=8))
{
for(j=conv;j>=1;j=(conv/=8))
{
n_temp=n_tem%j;
if(n_tem>=j)
{
n_temp1=k/j;
printf("%d",n_temp1);
}
}
break;
case 3 :printf("n");printf("%d",n);
printf(" en el sistema hexadecimal es :t");
for(conv=1;conv<=n;conv*=16)
j=conv;
for(j=conv;j>=1;j=(conv/=16))
{
for(j=conv;j>=1;j=(conv/=16))
{
_temp=n_tem%j;
if(n_tem>=j)
{
n_temp1=k/j;
if(n_temp1==10)
{
n_temp1='A';
printf("%c",n_temp1);
}
if(n_temp1==11)
{
n_temp1='B';
printf("%c",n_temp1);
}
if(n_temp1==12)
{
9 | 46
n_temp1='C';
printf("%c",n_temp1);
}
if(n_temp1==13)
{
n_temp1='D';
printf("%c",n_temp1);
}
if(n_temp1==14)
{
n_temp1='E';
printf("%c",n_temp1);
}
if(n_temp1==15)
{
n_temp1='F';
printf("%c",n_temp1);
}
else if(n_temp1>=0 && n_temp1<=9)
printf("%d",n_temp1);
}
}
printf("n");
}
}
break;
}
return 0;
}
10 | 46
3.2 Ejercicio 2
Un objeto es dejado caer a una altura de 100 mts. Diseñe un pseudocódigo que
imprima cada
décima de segundo la distancia entre el objeto y el suelo y al final imprima el tiempo necesario
en décimas de segundo para que el objeto toque el suelo.
Análisis del Problema
Entrada
Ingrese la altura
Proceso
1. Calcular el tiempo que va a tomar llegar hasta el piso con la fórmula:
𝒕𝒊𝒎𝒑𝒐 = √
𝟐𝒈𝒓𝒂𝒗𝒆𝒅𝒂𝒅
𝒂𝒍𝒕𝒖𝒓𝒂
2. Establecemos el intervalo de tiempo en décimas de segundo.
Salida
Imprimimos el tiempo y la distancia en cada décima de segundo.
11 | 46
Diagrama de Flujo (DFD)
12 | 46
Pseudocódigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
printf("nPrograma para analizar la caida de un cuerpo a 100 metrosn ");
float g,t,d,tf,h,a;
h=100;
g=9.8;
t= sqrt((2*h)/g);
getch();
system("cls");
for(a=0.1;a<=t;a=a+0.1)
{
h=0.5*g*pow(a,2);
d=100-h;
printf("nEl tiempo es: %.2fnt",a);
printf("nLa distancia suelo objeto es: %.2fnt",d);
}
tf= t/0.1;
printf("nEl timepo necesario es : %.2f dsnt",tf);
getch();
return 0;
13 | 46
3.3 Ejercicio 3
La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus mejores vendedores
de acuerdo a la siguiente tabla:
Si vendió Le corresponde de Comisión sobre ventas totales
1, 000,000 <= v < 3, 000,000 3%
3, 000,000 <= v < 5, 000,000 4%
5, 000,000 <= v < 7, 000,000 5%
7, 000,000 <= v 6%
Análisis del Problema
Entrada
Ingresar la cantidad de la venta anual por el vendedor.
Proceso
Si la venta cumple (𝟏, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟑, 𝟎𝟎𝟎, 𝟎𝟎𝟎)
Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟑%
Si la venta cumple (𝟑, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟓, 𝟎𝟎𝟎, 𝟎𝟎𝟎)
Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟒%
Si la venta cumple (𝟓, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟕, 𝟎𝟎𝟎, 𝟎𝟎𝟎)
Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟓%
Si la venta cumple (𝟕, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟏𝟎, 𝟎𝟎𝟎, 𝟎𝟎𝟎)
Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟔%
Salida
Se imprime la comisión de acuerdo a la condición que cumpla el vendedor.
14 | 46
Diagrama de Flujo (DFD)
15 | 46
Pseudocódigo
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main ()
{
int n,i;
float v,com;
n=100;
getch();
system("cls");
for (i=1;i<=n;i=i+1)
{
printf("Ingrese el valor de la venta del vendedor %dn",i);
scanf("%f",&v);
if (v<=1000000 or v<3000000)
{
com=v*0.03;
}else{
if (v<=3000000 or v<5000000)
{
com =v*0.04;
}else{
if (v<=5000000 or v<7000000)
{
com=v*0.05;
}else{
if (v<=7000000 or v<=10000000)
{
com=v*0.06;
}
}
}
}
printf("La comisión por ventas del vendedor %d es: %.2f",i,com);
getch ();
system("cls");
}
getch ();
return 0;
}
SI
16 | 46
3.4 Ejercicio 4
Diseñe un pseudocódigo que imprima la fecha en palabras a partir de la representación
siguiente: S, DD, MM, AA. En donde: S = Día de la semana, 1 a 7 (1 = lunes; 2 = martes;
etc.); DD = Día del mes, 1 a 30 ó 31, según el mes. Fijar el mes de febrero con 28 días;
AA = Dos últimas cifras del año.
Análisis del Problema
Entrada:
Datos en números de la fecha a imprimir.
Proceso:
Utilización de la estructura condicional switch – case para condicionar la impresión en
palabras de un dia de la semana dado un numero especificado en la siguiente tabla.
1 Lunes
2 Martes
3 Miércoles
4 Jueves
5 Viernes
6 Sábado
7 Domingo
Utilización de la estructura condicional switch – case para condicionar la impresión en
palabras de un día del mes es decir si en la variable mm se ingresa por ejemplo el numero
dos con esta condición se imprimirá “Dos”.
Utilización de la estructura condicional switch – case para condicionar la impresión en
palabras de un mes del año dado los números especificados en la siguiente tabla.
Uso de un una estructura if para condicionar que el mes de Febrero tiene 28 días.
17 | 46
1 Enero
2 Febrero
3 Marzo
4 Abril
5 Mayo
6 Junio
7 Julio
8 Agosto
9 Septiembre
10 Octubre
11 Noviembre
12 Diciembre
Utilización de la estructura condicional switch – case para condicionar la impresión de las
dos cifras de un año en la variable aa la misma que ira desde el año 1990 hasta el año
2020.
Salida:
La fecha impresa en letras.
18 | 46
Diagrama de Flujo (DFD)
INICIO
int s, dd, mm, aa
´ESTE PROGRAMA IMPRIME EN
NUMEROS LA FECHA INGRESADA
EN NUMERO´
´Ingrese el día ´
s
´Ingrese el día
del mes´
dd
´Ingrese el mes
en números ´
mm
1
19 | 46
´Ingrese el año en el intervalo
de 1900 hasta 2020´
aa
1
SI
s = ´Lunes´
NO
s = ´Martes´
SI
NO
s = ´Miércoles´
SI
NO
s = ´Jueves´
SI
NO
s = ´Viernes´
SI
NO
s = ´Sábado´
SI
NO
s = ´Domingo´
SI
2
20 | 46
aa
2
SI
´Uno´
N
´Dos´
´Tres´
´Cuatro´
´Cinco´
´Seis´
´Siete´´
N
N
N
N
N
´Ocho´
´Nueve´
´Diez´
´Once´
´Doce´
´Trece´´
N
N
N
N
3
4
dd=1
dd=2
dd=7
dd=6
dd=5
dd=4
dd=3
dd=1
dd=1
dd=1
dd=1
dd=9
dd=8
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
21 | 46
3
SI
dd=1 ´Quince´
N
dd=1 ´Dieciseis´
dd=1 ´Diecisiete´
dd=1 ´Dieciocho´
dd=1
dd=2
dd=2
´Veinte´´
N
N
N
N
N
dd=2
´Veintiuno´
dd=2
dd=2
´Veintitrés´
dd=2
´Veinticuatro
´
dd=2
´Veinticinco
dd=2
N
N
N
N
5
6
4
´Veintidós´
´Diecinuev
´Veintiseis´
´Veintisiete´
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
22 | 46
5
SI
dd=2 ´Veintiocho´
N
dd=2 ´veintinuev
e´
dd=3 ´Treinta´
dd=3 ´Treintiuno
´
N
N
N
6
SI
´Enero
´
N
´Marzo´
´Abril´
´Mayo´
´Junio´
N
N
N
N
N
mm=
mm=
SI
SI
SI
´Febrero´
dd<=2
SI
´Este tiene menos
dias´
No
mm=
mm=
mm=
mm=
´Julio´
N
mm=
7
8
SI
SI
SI
SI
SI
23 | 46
´Agosto´
´Septiembre
´
´Octubre´
´Noviembr
N
N
N
N
mm=
mm=
mm=10
mm=11
´Diciembre
N
mm=12
9
10
SI
SI
SI
SI
SI
7
8
SI
´Noventa´
N
aa=1991
SI
´Noventa
y uno´
N
aa=1990
SI
´Noventa
y dos´
N
aa=1993
SI ´Noventa
y tres´
N
aa=1992
SI
´Noventa
y cuatro´
N
aa=1995
SI
´Noventa
y cinco´
N
aa=1994
SI
´Noventa
y seis´
N
aa=1996
24 | 46
SI ´Noventa
y siete´
N
aa=1998
SI
´Noventa
y ocho´
N
aa=1997
SI
´Noventa
y nueve´
N
aa=2000
SI ´Cero -
Cero´
N
aa=1999
SI
´Cero -
Uno´
N
aa=2002
SI
´Cero -
Dos´
N
aa=2001
SI
´´Cero -
Tres´
N
aa=2003
9
10
SI ´´Cero -
Cuatro´
N
aa=2005
SI
´Cero -
Cinco´
N
aa=2004
SI
´Cero -
Seis´
N
aa=2007
SI ´Cero -
Siete´
N
aa=2006
11
12
25 | 46
SI ´Cero -
Ocho´
N
aa=2009
SI
´Cero -
Nueve´
N
aa=2008
SI
´Diez´
N
aa=2011
SI ´Once´
N
aa=2010
SI
´Doce´
N
aa=2013
SI
´Trece´
N
aa=2012
SI
´´Catorce´
N
aa=2014
SI ´´Quince´N
aa=2016
SI
´Dieciseis´
N
aa=2015
SI
´Diecisiet
e´
N
aa=2018
SI ´Diecioch
o´
N
aa=2017
13
14
11
12
26 | 46
Pseudocódigo
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main ()
{
system("cls");
int s, dd, mm, aa;
printf ("t ESTE PROGRAMA IMPRIME EN NUMEROS LA FECHA INGRESADA
EN NUMERO DE ACUERDO nA LA SIGUINETE TABLA PARA LOS DIAS Y
MESESn");
printf("n DIAS DE LA SEMANA nn");
printf ("n 1 = Lunes");
printf ("n 2 = Martes");
printf ("n 3 = Miércoles");
printf ("n 4 = Jueves");
printf ("n 5 = Viernes");
printf ("n 6 = Sábado");
printf ("n 7 = Domingo");
printf ("n MESES DEL ANIO n");
printf ("n 1 = Enero");
printf ("n 2 = Febrero");
printf ("n 3 = Marzo");
printf ("n 4 = Abril");
printf ("n 5 = Mayo");
printf ("n 6 = Junio");
printf ("n 7 = Julio");
printf ("n 8 = Agosto");
printf ("n 9 = Septimbre");
printf ("n 10 = Octubre");
printf ("n 11 = Noviembre");
printf ("n 12 = Diciembre");
SI ´Diecinue
ve´
N
aa=2020
SI
´Veinte´
´
N
aa=2019
13
14
FIN
27 | 46
printf ("n Ingrese la fecha que desea escribir en palabras en el Orden S/DD/MM/AA
n");
printf ("n Ingrese el diat");
scanf ("%d", &s);
printf ("n Ingrese el dia del mes del 1 al 31 recuerde que febrero tiene 28 diast");
scanf ("%d", &dd);
printf ("n Ingrese el mes en numerost");
scanf ("%d",&mm);
printf ("n Ingrese el año desde 1900 hasta 2020 t");
scanf ("%d", &aa);
switch (s)
{
case 1: printf ("Lunes"); break;
case 2: printf ("Martes"); break;
case 3: printf ("Miercoles"); break;
case 4: printf ("Jueves"); break;
case 5: printf ("Viernes"); break;
case 6: printf ("Sabado"); break;
case 7: printf ("Domingo"); break;
}
printf(" -t");
switch (dd)
{
case 1:printf ("Uno"); break;
case 2:printf ("Dos"); break
case 3:printf ("Tres"); break;
case 4:printf ("Cuatro"); break;
case 5:printf ("Cinco"); break;
case 6:printf ("Seis"); break;
case 7:printf ("Siete"); break;
case 8:printf ("Ocho"); break;
case 9:printf ("Nueve"); break;
case 10:printf ("Diez"); break;
case 11:printf ("Once"); break;
case 12:printf ("Doce"); break;
case 13:printf ("Trece"); break;
case 14:printf ("Catorce"); break;
case 15:printf ("Quice"); break;
case 16:printf ("Dieciseis"); break;
case 17:printf ("Diecisiete"); break;
case 18:printf ("Dieciocho"); break;
case 19:printf ("Diecinueve"); break;
case 20:printf ("Veinte"); break;
case 21:printf ("Veinte y uno"); break;
case 22:printf ("Veinte y dos"); break;
case 23:printf ("Veinte y tres");break;
case 24:printf ("Veinte y cuatro"); break;
case 25:printf ("Veinte y cinco"); break;
case 26:printf ("Veinte y seis"); break;
case 27:printf ("Veinte y siete"); break;
case 28:printf ("Veinte y ocho"); break;
28 | 46
case 29:printf ("Veinte y nueve"); break;
case 30:printf ("Treinta"); break;
case 31:printf ("Treinta y uno"); break;
}
printf(" -t");
switch (mm)
{
case 1:printf ("Enero"); break;
case 2:;
if (dd<=28)
{
printf ("Febrero");
}else{
printf ("n Este mes tiene 28 dias ingres otra vez la
fecha");
}break;
case 3:printf ("Marzo"); break;
case 4:printf ("Abril"); break;
case 5:printf ("Mayo"); break;
case 6:printf ("Junio"); break;
case 7:printf ("Julio"); break;
case 8:printf ("Agosto"); break;
case 9:printf ("Septiembre"); break;
case 10:printf ("Octubre"); break;
case 11:printf ("Noviembre"); break;
case 12:printf ("Diciembre"); break;
}
printf(" -t");
switch (aa)
{
case 1990:printf ("Noventa"); break;
case 1991:printf ("Noventa y Uno"); break;
case 1992:printf ("Noventa y Dos"); break;
case 1993:printf ("Noventa y Tres");break;
case 1994:printf ("Noventa y Cuatro");break;
case 1995:printf ("Noventa y Cinco");break;
case 1996:printf ("Noventa y Seis");break;
case 1998: printf ("Noventa y Siete");break;
case 1997:printf ("Noventa y Ocho");break;
case 1999:printf ("Noventa y Nueve");break;
case 2000:printf ("Cero-Cero");break;
case 2001:printf ("Cero-Uno");break;
case 2002:printf ("Cero-Dos");break;
case 2003:printf ("Cero-Tres");break;
case 2004:printf ("Cero-Cuatro");break;
case 2005:printf ("Cero-Cinco");break;
case 2006:printf ("Cero-Seis");break;
case 2007:printf ("Cero-Siete");break;
case 2008:printf ("Cero-Ocho");break;
29 | 46
case 2009:printf ("Cero-Nueve");break;
case 2010:printf ("Diez");break;
case 2011:printf ("Once");break;
case 2012:printf ("Doce");break;
case 2013:printf ("Trece");break;
case 2014:printf ("Catorce");break;
case 2015:printf ("Quince");break;
case 2016:printf ("Dieciseis");break;
case 2017:printf ("Diecisiete");break;
case 2018:printf ("Dieciocho");break;
case 2019:printf ("Diecinueve");break;
case 2020:printf ("Veinte");break;
}
getch ();
return 0;
}
30 | 46
3.5 Ejercicio 5
Un grupo de 100 estudiantes presentan un examen de Física. Diseñe un diagrama que lea por
cada estudiante la calificación obtenida y calcule e imprima:
A.- La cantidad de estudiantes que obtuvieron una calificación menor a 50.
B.- La cantidad de estudiantes que obtuvieron una calificación de 50 o más pero menor que 70.
C.- La cantidad de estudiantes que obtuvieron una calificación de 70 o más pero menor que 80.
D. La cantidad de estudiantes que obtuvieron una calificación de 80 o más.
Análisis del Programa
Entrada
Ingrese la calificación obtenida de cada estudiante.
Proceso
Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟓𝟎
Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟏 = 𝐠𝐫𝐮𝐩𝐨𝟏 + 𝟏
Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟓𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟕𝟎
Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟐 = 𝐠𝐫𝐮𝐩𝐨𝟐 + 𝟏
Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟕𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟖𝟎
Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟑 = 𝐠𝐫𝐮𝐩𝐨𝟑 + 𝟏
Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟖𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟏𝟎𝟎
Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟒 = 𝐠𝐫𝐮𝐩𝐨𝟒 + 𝟏
Salida
Se imprimirá el número de estudiantes que se acumularon en el grupo1, grupo2, grupo3,
grupo4.
31 | 46
Diagrama de Flujo (DFD)
32 | 46
33 | 46
3.6 Ejercicio 6
Un avión que viaja 800 Km/h. Dispara un proyectil auto impulsado, en el momento del disparo,
el avión hace un giro de 90 grados y acelera a 20 mtrs/seg 2. El proyectil sigue su curso,
acelerando a 10 mtrs. /seg 2. Diseñe un pseudocódigo que escriba cada segundo, la distancia
que separa al avión del proyectil, hasta que estén a 10,000 mtrs o más.
Análisis del Problema
Entrada
La velocidad del avión: 800 km/h (222.22 m/s).
Aceleración del avión después del disparo: 20 m/s2.
Aceleración del proyectil después del disparo: 10 m/s2.
La distancia máxima de separación entré el proyectil y el avión: 10000 m.
Proceso
Declaramos las variables que nos van ayudar a la resolución de nuestro ejercicio:
Enteros: tiempo, contador (a).
Decimal: Velocidad del avión, velocidad del proyectil, aceleración del avión, aceleración del
proyectil, distancia del avión, distancia del proyectil, distancia avión proyectil.
Con el for no ayudamos para que el proceso se repita a cada segundo.
Luego calculamos las distancias del avión y del proyectil y asi poder calcular la distancia que
los separa.
da ← (via * t) + (0.5 * aca * a2
)
dp ← (vip * t) + (0.5 * acp * a2
)
dap ← da2 + dp2
Salida:
La distancia que separa el avión del proyectil a cada segundo.
34 | 46
Diagrama de Flujo (DFD
INICIO
int t, a
float via, vip, aca, acp, da, dp, dap
via ← 222.22
vip ← 222.22
aca ← 20
acp ← 10
t ← 21
Ka = 1 ; a < = t ; a = a+1
da ← (via * t) + (0.5 * aca * a2
)
dp ← (vip * t) + (0.5 * acp * a2
)
dap ← da2 + dp2
SI
dap <=
´La distancia entre el avión y el
proyectil es: ´, dap
NO
FIN
35 | 46
Pseudocódigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
main ()
{
int t,a;
float via, vip, aca, acp, da, dp, dap;
via=vip=222.22;
aca=20;
acp=10;
t=21;
for(a=1;a<=t;a=a+1)
{
da=(via*t)+(0.5*aca*pow(a,2));
dp=(vip*t)+(0.5*acp*pow(a,2));
dap=sqrt(pow(da,2)+pow(dp,2));
if (dap<=10625)
{
printf("n La distancia entre el avion y el proyectil en el
tiempo de %d s es:%.2f n",a,dap);
}
}
getch();
return 0;
}
36 | 46
3.7 Ejercicio 7
Una pizzería, vende sus pizzas en tres tamaños: 
pequeña (10 in de diámetro); mediana (12 in
de diámetro); y grandes (16 in de diámetro); Una pizza puede ser sencilla (con sólo salsa y
carne), o con ingredientes extras, tales como pepinillos, champiñones o cebollas
Los
propietarios desean desarrollar un programa que calcule el precio de venta de una pizza,
dándole el tamaño y el número de ingredientes extras. El precio de venta será 1.5 veces el costo
total, que viene determinado por el área de la pizza, más el número de ingredientes.
En
particular el costo total se calcula sumando: 

 Un costo fijo de preparación

 Un costo base variable que es proporcional al tamaño de la pizza
 Un costo adicional por cada ingrediente extra. Por simplicidad se supone que cada
ingrediente extra tiene el mismo costo por unidad de área.

Análisis del Programa
Entrada
Ingresar el tamaño, el tipo de pizza y el número de ingredientes.
Proceso
1. Escogemos el tamaño
2. Obtenemos el área de la pizza.
3. Escogemos el tipo
4. Si se necesita ingredientes extra multiplicamos cada ingrediente extra por su costo.
5. Se obtiene el valor total sumando el área, el costo de mano de obra y el valor del
ingrediente extra.
6. El valor total se multiplica por 1.5.
Salida
Se imprime el valor a pagar de la pizza
37 | 46
Diagrama de Flujo (DFD
38 | 46
Pseudocódigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int tamano, seleccion, ningre, cp=5;
float pi=3.1411592,pv1, pv2, ap;
printf("Ingrese el tamano de la pizza que deseannn");
printf("1) Pequenan ");
printf("2) Medianan ");
printf("3) Granden");
scanf("%d",& tamano);
getch();
system("cls");
switch(tamano)
{
case 1: ap=pi*100;break;
case 2: ap=pi*144;break;
case 3: ap=pi*256; break;
default: printf("Ingrese un numero validonn");break;
}
printf("Ingrese el tipo de pizza que desea nn");
printf("1) Sencillan");
printf("2) Con ingredientesnn");
scanf("%d",& seleccion);
getch();
system("cls");
switch(seleccion)
{
case 1:pv1=1.5*(cp+ap);
printf("El precio a pagar por su pizza es: %.2f",pv1);
break;
case 2:
printf("Ingrese el numero de ingredientes extra desea 3c/u(cebolla,
champinones, pepinillosttnn");
scanf("%d", & ningre);
pv2=1.5*(cp+ap+ningre*3);
printf("El precio a paga por su pizza con ingredientes extra es: %.2f",pv2);
break;
}
getch ();
return 0;
}
39 | 46
3.8 Ejercicio 8
Diseñar un pseudocódigo que calcule el promedio ponderado para alumno del ITT. El cálculo
se hace de la siguiente forma:
- Se multiplica cada calificación por los créditos de cada materia
- El resultado anterior se suma con los resultados de todas las materias, por separado se suman
los créditos de cada materia y finalmente se divide la suma de todas las materias por sus
respectivos créditos, entre la suma de todos los créditos.
Análisis del Problema
Entrada:
Ingrese el número de materia que Ud. Estudia
Ingrese el número de créditos de cada materia
Ingrese la nota de la materia
Proceso:
total1= nota*créditos;
total2= total2+total1;
creditost = creditost+creditos;
prom = total2/creditost;
Salida
El promedio del estudiante es: prom
40 | 46
Diagrama de flujo (DFD)
41 | 46
Pseudocodigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int x=1,a,materia,creditos,creditost,i;
float nota,total1,total2,total3,prom;
creditost=0;
total2=0;
for(x;x==1;x=x+0)
{
printf("Ingrese el número de materias que ud estudianmateria(s):");
scanf("%d",&materia);
for(i=1;i<=materia;i=i+1)
{
printf("Cuantos creditos tiene la materia %dnCreditos:",i);
scanf("%d",&creditos);
printf("Ingrese el valor de la nota de la materia %dnNota:",i);
scanf("%f",&nota);
total1=nota*créditos;
total2=total2+total1;
creditost=creditost+creditos;
}
prom=total2/creditost;
printf("El promedio del estudiante es: %.2f",prom);
printf("n1.-Continuarn2.-SalirnnOpcion:");
scanf("%d",&a);
switch(a)
{
case 1:x=1;break;
case 2:x=2;break;
default: printf("La opcion no es valida");
}
}
getch ();
return 0;
}
42 | 46
3.9 Ejercicio 9
Calcule la suma de los términos de la serie FIBONACCI cuyos valores se encuentran entre 100
y 10,000.
Análisis del Problema
Entrada
Se ingresa la cantidad de términos que se quieren.
Proceso
Se realiza la sucesión de Fibonacci, empezando con el 0 y el 1, sumando los términos
anteriores: 0 1 1 2 3 5 8 13…
Se sumarán únicamente los valores que estén en el rango de 100 y 10 000.
Salida
Se imprime el valor de la suma.
43 | 46
Diagrama de flujo (DFD)
44 | 46
Pseudocódigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main()
{
int long f,s,a,b,i,n;
a=0;
b=1;
s=0;
scanf("%d",&n);
printf("%d n",a);
printf("%d n",b);
for (i=3;i<=n;i=i+1)
{
f=a+b;
printf("%d n",f);
a=b;
b=f;
if(f>=100 & f<=10000 )
{
s=s+f;
}
}
printf("%d n",s);
getch ();
return 0;
}
45 | 46
3.10 Ejercicio10
Calcule exactamente el número de días vividos por una persona hasta la fecha.
Contemplar los años bisiestos.
Análisis del Problema
Entrada
Ingrese la fecha de su nacimiento
Ingrese la fecha actual
Proceso
Años= (ano-ano1)*365.242189;
Días=dia-dia1;
Meses=mes-mes1;
r= (anos+dias+ (meses)*(365.242189/12));
Salida
Los días que Ud. ha vivido son: r
Diagrama de flujo (DFD)
46 | 46
Pseudocódigo
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int dia1,mes1,ano1,dia,mes,ano,r,dias,meses,anos;
printf("Ingrese la fecha de naciemiento (dd/mm/aa)nFecha de Nacimiento:nDia:");
scanf("%d",&dia1);
printf("nMes:");
scanf("%d",&mes1);
printf("nAno");
scanf("%d",&ano1);
printf("nIngrese la fecha actual(dd/mm/aa)nFecha actual:nDia:");
scanf("%d",&dia);
printf("nMes:");
scanf("%d",&mes);
printf("nAno");
scanf("%d",&ano);
anos=(ano-ano1)*365.242189;
dias=dia-dia1;
meses=mes-mes1;
r=(anos+dias+(meses)*(365.242189/12));
printf("nLos dias que ud ha vivido son: %d diasn",r);
system("pause");
system("cls");
getch ();
return 0;
}

EJERCICIOS BUCLES REPETITIVOS LENGUAJE C

  • 1.
    1 | 46 UNIVERSIDADDE LAS FUERZAS ARMADAS ESPE- EXTENSIÓN LATACUNGA Asignatura: Fundamentos de programación Carrera: Mecatrónica Nivel: 1º “C” NRC: 4345 Tema: Trabajo Final Fecha: Latacunga, 14 de julio del 2016 Integrantes  Stephen Pérez  Israel Pérez  Javier Pullupaxi  Fabián Rivas  Cristian Sailema
  • 2.
    2 | 46 ÍndiceGeneral 1. Introducción ..................................................................................................................................... 3 2. Objetivos........................................................................................................................................... 3 2.1 Objetivo General...................................................................................................................... 3 2.2 Objetivos Específicos............................................................................................................... 4 3. Ejercicios .......................................................................................................................................... 4 3.1 Ejercicio 1................................................................................................................................. 4 3.2 Ejercicio 2............................................................................................................................... 10 3.3 Ejercicio 3............................................................................................................................... 13 3.4 Ejercicio 4............................................................................................................................... 16 3.5 Ejercicio 5............................................................................................................................... 30 3.6 Ejercicio 6............................................................................................................................... 33 3.7 Ejercicio 7............................................................................................................................... 36 3.8 Ejercicio 8............................................................................................................................... 39 3.9 Ejercicio 9............................................................................................................................... 42 3.10 Ejercicio10.............................................................................................................................. 45
  • 3.
    3 | 46 1.Introducción C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan bucles y se denomina iteración al hecho de repetir la ejecución de una secuencia de acciones. La estructura repetitiva mientras (en inglés while: hacer mientras) es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición (una expresión booleana). Si se evalúa falsa, no se toma ninguna acción y el programa prosigue en la siguiente instrucción del bucle. El bucle hacer mientras es análogo al bucle mientras y el cuerpo del bucle se ejecuta una y otra vez mientras la condición (expresión booleana) sea verdadera. Existe, sin embargo, una gran diferencia y es que el cuerpo del bucle está encerrado entre las palabras reservadas hacer y mientras, de modo que las sentencias de dicho cuerpo se ejecutan, al menos una vez, antes de que se evalúe la expresión booleana. En otras palabras, el cuerpo del bucle siempre se ejecuta, al menos una vez, incluso aunque la expresión booleana sea falsa. La estructura desde (for) ejecuta las acciones del cuerpo del bucle un número especificado de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del bucle. 2. Objetivos 2.1 Objetivo General  Evaluar los conocimientos adquiridos, a través de la resolución de problemas propuestos, para determinar el grado de aprendizaje que posee cada estudiante.
  • 4.
    4 | 46 2.2Objetivos Específicos  Analizar cada uno de los problemas, mediante el análisis del mismo, para conocer qué proceso debemos ocupar.  Dar solución a cada problema, usando diversos procesos como while, do while y for, para llegar a un resultado específico.  Verificar el resultado obtenido, por medio del ejecutable que se genera a partir del pseudocódigo. 3. Ejercicios 3.1 Ejercicio 1 Análisis del Problema Entrada Se ingresa el número que se quiere convertir. Después se ingresa un número (1, 2 o 3) que representa el sistema binario, octal y hexadecimal según se desee. Proceso Opción 1: Sistema Binario El número ingresado será dividido sucesivamente para 2, y si el residuo de dicha división es impar se colocará un 1, caso contrario 0. Se almacenarán estos datos para imprimirlos de forma inversa, es decir desde el último valor hacia el primero. Opción 2: Sistema Octal El número ingresado será dividido para 8, la parte decimal y se multiplica por 8, mientras que la parte entera se vuelve a dividir para 8, hasta que sea inferior a dicho número. Se imprimen la parte decimal multiplicada desde el valor final hasta el primero. Opción 3: Sistema Hexadecimal El número ingresado será dividido para 16, la parte decimal y se multiplica por 16, se mantiene ese resultado siempre que no sea mayor a 10, en cuyo caso se colocan letras ( 10=A,11=B,12=C,13=D,14=E y 15=F) mientras que la parte entera se vuelve a dividir para 16, hasta que sea inferior a dicho número. Se imprimen estos datos desde el valor final hasta el primero.
  • 5.
    5 | 46 Diagramade flujo (DFD)
  • 6.
  • 7.
    7 | 46 Pseudocódigo #include<stdio.h> intmain(void) { printf("Ingrese el valor a transformar:n"); int n; int conv; int j=0; int k; int opc; int n_tem; int n_temp=0; int n_temp1=0; scanf("%d",&n); printf("Para convertirlo al sistema binario Presione 1:n"); printf("Para convertirlo al sistema octal Presione 2:n"); printf("Para convertirlo al sistema hexadecimal Presione 3:n"); scanf("%d",&opc); switch (opc) { case 1:printf("%d",n);printf(" en el sistema binario es :t"); for(conv=1;conv<=n;conv*=2) j=conv; for(j=conv;j>=1;j=(conv/=2)) { for(j=conv;j>=1;j=(conv/=2)) {
  • 8.
    8 | 46 if(n_tem>=j){ n_temp1=k/j; printf("%d",n_temp1); } } } break; case2:printf("n");printf("%d",n); printf(" en el sistema octal es :t"); for(conv=1;conv<=n;conv*=8) j=conv; for(j=conv;j>=1;j=(conv/=8)) { for(j=conv;j>=1;j=(conv/=8)) { n_temp=n_tem%j; if(n_tem>=j) { n_temp1=k/j; printf("%d",n_temp1); } } break; case 3 :printf("n");printf("%d",n); printf(" en el sistema hexadecimal es :t"); for(conv=1;conv<=n;conv*=16) j=conv; for(j=conv;j>=1;j=(conv/=16)) { for(j=conv;j>=1;j=(conv/=16)) { _temp=n_tem%j; if(n_tem>=j) { n_temp1=k/j; if(n_temp1==10) { n_temp1='A'; printf("%c",n_temp1); } if(n_temp1==11) { n_temp1='B'; printf("%c",n_temp1); } if(n_temp1==12) {
  • 9.
  • 10.
    10 | 46 3.2Ejercicio 2 Un objeto es dejado caer a una altura de 100 mts. Diseñe un pseudocódigo que
imprima cada décima de segundo la distancia entre el objeto y el suelo y al final imprima el tiempo necesario en décimas de segundo para que el objeto toque el suelo. Análisis del Problema Entrada Ingrese la altura Proceso 1. Calcular el tiempo que va a tomar llegar hasta el piso con la fórmula: 𝒕𝒊𝒎𝒑𝒐 = √ 𝟐𝒈𝒓𝒂𝒗𝒆𝒅𝒂𝒅 𝒂𝒍𝒕𝒖𝒓𝒂 2. Establecemos el intervalo de tiempo en décimas de segundo. Salida Imprimimos el tiempo y la distancia en cada décima de segundo.
  • 11.
    11 | 46 Diagramade Flujo (DFD)
  • 12.
    12 | 46 Pseudocódigo #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<math.h> main() { printf("nProgramapara analizar la caida de un cuerpo a 100 metrosn "); float g,t,d,tf,h,a; h=100; g=9.8; t= sqrt((2*h)/g); getch(); system("cls"); for(a=0.1;a<=t;a=a+0.1) { h=0.5*g*pow(a,2); d=100-h; printf("nEl tiempo es: %.2fnt",a); printf("nLa distancia suelo objeto es: %.2fnt",d); } tf= t/0.1; printf("nEl timepo necesario es : %.2f dsnt",tf); getch(); return 0;
  • 13.
    13 | 46 3.3Ejercicio 3 La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus mejores vendedores de acuerdo a la siguiente tabla: Si vendió Le corresponde de Comisión sobre ventas totales 1, 000,000 <= v < 3, 000,000 3% 3, 000,000 <= v < 5, 000,000 4% 5, 000,000 <= v < 7, 000,000 5% 7, 000,000 <= v 6% Análisis del Problema Entrada Ingresar la cantidad de la venta anual por el vendedor. Proceso Si la venta cumple (𝟏, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟑, 𝟎𝟎𝟎, 𝟎𝟎𝟎) Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟑% Si la venta cumple (𝟑, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟓, 𝟎𝟎𝟎, 𝟎𝟎𝟎) Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟒% Si la venta cumple (𝟓, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟕, 𝟎𝟎𝟎, 𝟎𝟎𝟎) Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟓% Si la venta cumple (𝟕, 𝟎𝟎𝟎, 𝟎𝟎𝟎 ≤ 𝒗 < 𝟏𝟎, 𝟎𝟎𝟎, 𝟎𝟎𝟎) Se procede de la siguiente manera: 𝐜𝐨𝐦𝐢𝐬𝐢𝐨𝐧 = 𝐯 ∗ 𝟔% Salida Se imprime la comisión de acuerdo a la condición que cumpla el vendedor.
  • 14.
    14 | 46 Diagramade Flujo (DFD)
  • 15.
    15 | 46 Pseudocódigo #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int n,i; float v,com; n=100; getch(); system("cls"); for (i=1;i<=n;i=i+1) { printf("Ingrese el valor de la venta del vendedor %dn",i); scanf("%f",&v); if (v<=1000000 or v<3000000) { com=v*0.03; }else{ if (v<=3000000 or v<5000000) { com =v*0.04; }else{ if (v<=5000000 or v<7000000) { com=v*0.05; }else{ if (v<=7000000 or v<=10000000) { com=v*0.06; } } } } printf("La comisión por ventas del vendedor %d es: %.2f",i,com); getch (); system("cls"); } getch (); return 0; } SI
  • 16.
    16 | 46 3.4Ejercicio 4 Diseñe un pseudocódigo que imprima la fecha en palabras a partir de la representación siguiente: S, DD, MM, AA. En donde: S = Día de la semana, 1 a 7 (1 = lunes; 2 = martes; etc.); DD = Día del mes, 1 a 30 ó 31, según el mes. Fijar el mes de febrero con 28 días; AA = Dos últimas cifras del año. Análisis del Problema Entrada: Datos en números de la fecha a imprimir. Proceso: Utilización de la estructura condicional switch – case para condicionar la impresión en palabras de un dia de la semana dado un numero especificado en la siguiente tabla. 1 Lunes 2 Martes 3 Miércoles 4 Jueves 5 Viernes 6 Sábado 7 Domingo Utilización de la estructura condicional switch – case para condicionar la impresión en palabras de un día del mes es decir si en la variable mm se ingresa por ejemplo el numero dos con esta condición se imprimirá “Dos”. Utilización de la estructura condicional switch – case para condicionar la impresión en palabras de un mes del año dado los números especificados en la siguiente tabla. Uso de un una estructura if para condicionar que el mes de Febrero tiene 28 días.
  • 17.
    17 | 46 1Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo 6 Junio 7 Julio 8 Agosto 9 Septiembre 10 Octubre 11 Noviembre 12 Diciembre Utilización de la estructura condicional switch – case para condicionar la impresión de las dos cifras de un año en la variable aa la misma que ira desde el año 1990 hasta el año 2020. Salida: La fecha impresa en letras.
  • 18.
    18 | 46 Diagramade Flujo (DFD) INICIO int s, dd, mm, aa ´ESTE PROGRAMA IMPRIME EN NUMEROS LA FECHA INGRESADA EN NUMERO´ ´Ingrese el día ´ s ´Ingrese el día del mes´ dd ´Ingrese el mes en números ´ mm 1
  • 19.
    19 | 46 ´Ingreseel año en el intervalo de 1900 hasta 2020´ aa 1 SI s = ´Lunes´ NO s = ´Martes´ SI NO s = ´Miércoles´ SI NO s = ´Jueves´ SI NO s = ´Viernes´ SI NO s = ´Sábado´ SI NO s = ´Domingo´ SI 2
  • 20.
  • 21.
    21 | 46 3 SI dd=1´Quince´ N dd=1 ´Dieciseis´ dd=1 ´Diecisiete´ dd=1 ´Dieciocho´ dd=1 dd=2 dd=2 ´Veinte´´ N N N N N dd=2 ´Veintiuno´ dd=2 dd=2 ´Veintitrés´ dd=2 ´Veinticuatro ´ dd=2 ´Veinticinco dd=2 N N N N 5 6 4 ´Veintidós´ ´Diecinuev ´Veintiseis´ ´Veintisiete´ SI SI SI SI SI SI SI SI SI SI SI SI
  • 22.
    22 | 46 5 SI dd=2´Veintiocho´ N dd=2 ´veintinuev e´ dd=3 ´Treinta´ dd=3 ´Treintiuno ´ N N N 6 SI ´Enero ´ N ´Marzo´ ´Abril´ ´Mayo´ ´Junio´ N N N N N mm= mm= SI SI SI ´Febrero´ dd<=2 SI ´Este tiene menos dias´ No mm= mm= mm= mm= ´Julio´ N mm= 7 8 SI SI SI SI SI
  • 23.
    23 | 46 ´Agosto´ ´Septiembre ´ ´Octubre´ ´Noviembr N N N N mm= mm= mm=10 mm=11 ´Diciembre N mm=12 9 10 SI SI SI SI SI 7 8 SI ´Noventa´ N aa=1991 SI ´Noventa yuno´ N aa=1990 SI ´Noventa y dos´ N aa=1993 SI ´Noventa y tres´ N aa=1992 SI ´Noventa y cuatro´ N aa=1995 SI ´Noventa y cinco´ N aa=1994 SI ´Noventa y seis´ N aa=1996
  • 24.
    24 | 46 SI´Noventa y siete´ N aa=1998 SI ´Noventa y ocho´ N aa=1997 SI ´Noventa y nueve´ N aa=2000 SI ´Cero - Cero´ N aa=1999 SI ´Cero - Uno´ N aa=2002 SI ´Cero - Dos´ N aa=2001 SI ´´Cero - Tres´ N aa=2003 9 10 SI ´´Cero - Cuatro´ N aa=2005 SI ´Cero - Cinco´ N aa=2004 SI ´Cero - Seis´ N aa=2007 SI ´Cero - Siete´ N aa=2006 11 12
  • 25.
    25 | 46 SI´Cero - Ocho´ N aa=2009 SI ´Cero - Nueve´ N aa=2008 SI ´Diez´ N aa=2011 SI ´Once´ N aa=2010 SI ´Doce´ N aa=2013 SI ´Trece´ N aa=2012 SI ´´Catorce´ N aa=2014 SI ´´Quince´N aa=2016 SI ´Dieciseis´ N aa=2015 SI ´Diecisiet e´ N aa=2018 SI ´Diecioch o´ N aa=2017 13 14 11 12
  • 26.
    26 | 46 Pseudocódigo #include<conio.h> #include <stdio.h> #include <stdlib.h> main () { system("cls"); int s, dd, mm, aa; printf ("t ESTE PROGRAMA IMPRIME EN NUMEROS LA FECHA INGRESADA EN NUMERO DE ACUERDO nA LA SIGUINETE TABLA PARA LOS DIAS Y MESESn"); printf("n DIAS DE LA SEMANA nn"); printf ("n 1 = Lunes"); printf ("n 2 = Martes"); printf ("n 3 = Miércoles"); printf ("n 4 = Jueves"); printf ("n 5 = Viernes"); printf ("n 6 = Sábado"); printf ("n 7 = Domingo"); printf ("n MESES DEL ANIO n"); printf ("n 1 = Enero"); printf ("n 2 = Febrero"); printf ("n 3 = Marzo"); printf ("n 4 = Abril"); printf ("n 5 = Mayo"); printf ("n 6 = Junio"); printf ("n 7 = Julio"); printf ("n 8 = Agosto"); printf ("n 9 = Septimbre"); printf ("n 10 = Octubre"); printf ("n 11 = Noviembre"); printf ("n 12 = Diciembre"); SI ´Diecinue ve´ N aa=2020 SI ´Veinte´ ´ N aa=2019 13 14 FIN
  • 27.
    27 | 46 printf("n Ingrese la fecha que desea escribir en palabras en el Orden S/DD/MM/AA n"); printf ("n Ingrese el diat"); scanf ("%d", &s); printf ("n Ingrese el dia del mes del 1 al 31 recuerde que febrero tiene 28 diast"); scanf ("%d", &dd); printf ("n Ingrese el mes en numerost"); scanf ("%d",&mm); printf ("n Ingrese el año desde 1900 hasta 2020 t"); scanf ("%d", &aa); switch (s) { case 1: printf ("Lunes"); break; case 2: printf ("Martes"); break; case 3: printf ("Miercoles"); break; case 4: printf ("Jueves"); break; case 5: printf ("Viernes"); break; case 6: printf ("Sabado"); break; case 7: printf ("Domingo"); break; } printf(" -t"); switch (dd) { case 1:printf ("Uno"); break; case 2:printf ("Dos"); break case 3:printf ("Tres"); break; case 4:printf ("Cuatro"); break; case 5:printf ("Cinco"); break; case 6:printf ("Seis"); break; case 7:printf ("Siete"); break; case 8:printf ("Ocho"); break; case 9:printf ("Nueve"); break; case 10:printf ("Diez"); break; case 11:printf ("Once"); break; case 12:printf ("Doce"); break; case 13:printf ("Trece"); break; case 14:printf ("Catorce"); break; case 15:printf ("Quice"); break; case 16:printf ("Dieciseis"); break; case 17:printf ("Diecisiete"); break; case 18:printf ("Dieciocho"); break; case 19:printf ("Diecinueve"); break; case 20:printf ("Veinte"); break; case 21:printf ("Veinte y uno"); break; case 22:printf ("Veinte y dos"); break; case 23:printf ("Veinte y tres");break; case 24:printf ("Veinte y cuatro"); break; case 25:printf ("Veinte y cinco"); break; case 26:printf ("Veinte y seis"); break; case 27:printf ("Veinte y siete"); break; case 28:printf ("Veinte y ocho"); break;
  • 28.
    28 | 46 case29:printf ("Veinte y nueve"); break; case 30:printf ("Treinta"); break; case 31:printf ("Treinta y uno"); break; } printf(" -t"); switch (mm) { case 1:printf ("Enero"); break; case 2:; if (dd<=28) { printf ("Febrero"); }else{ printf ("n Este mes tiene 28 dias ingres otra vez la fecha"); }break; case 3:printf ("Marzo"); break; case 4:printf ("Abril"); break; case 5:printf ("Mayo"); break; case 6:printf ("Junio"); break; case 7:printf ("Julio"); break; case 8:printf ("Agosto"); break; case 9:printf ("Septiembre"); break; case 10:printf ("Octubre"); break; case 11:printf ("Noviembre"); break; case 12:printf ("Diciembre"); break; } printf(" -t"); switch (aa) { case 1990:printf ("Noventa"); break; case 1991:printf ("Noventa y Uno"); break; case 1992:printf ("Noventa y Dos"); break; case 1993:printf ("Noventa y Tres");break; case 1994:printf ("Noventa y Cuatro");break; case 1995:printf ("Noventa y Cinco");break; case 1996:printf ("Noventa y Seis");break; case 1998: printf ("Noventa y Siete");break; case 1997:printf ("Noventa y Ocho");break; case 1999:printf ("Noventa y Nueve");break; case 2000:printf ("Cero-Cero");break; case 2001:printf ("Cero-Uno");break; case 2002:printf ("Cero-Dos");break; case 2003:printf ("Cero-Tres");break; case 2004:printf ("Cero-Cuatro");break; case 2005:printf ("Cero-Cinco");break; case 2006:printf ("Cero-Seis");break; case 2007:printf ("Cero-Siete");break; case 2008:printf ("Cero-Ocho");break;
  • 29.
    29 | 46 case2009:printf ("Cero-Nueve");break; case 2010:printf ("Diez");break; case 2011:printf ("Once");break; case 2012:printf ("Doce");break; case 2013:printf ("Trece");break; case 2014:printf ("Catorce");break; case 2015:printf ("Quince");break; case 2016:printf ("Dieciseis");break; case 2017:printf ("Diecisiete");break; case 2018:printf ("Dieciocho");break; case 2019:printf ("Diecinueve");break; case 2020:printf ("Veinte");break; } getch (); return 0; }
  • 30.
    30 | 46 3.5Ejercicio 5 Un grupo de 100 estudiantes presentan un examen de Física. Diseñe un diagrama que lea por cada estudiante la calificación obtenida y calcule e imprima: A.- La cantidad de estudiantes que obtuvieron una calificación menor a 50. B.- La cantidad de estudiantes que obtuvieron una calificación de 50 o más pero menor que 70. C.- La cantidad de estudiantes que obtuvieron una calificación de 70 o más pero menor que 80. D. La cantidad de estudiantes que obtuvieron una calificación de 80 o más. Análisis del Programa Entrada Ingrese la calificación obtenida de cada estudiante. Proceso Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟓𝟎 Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟏 = 𝐠𝐫𝐮𝐩𝐨𝟏 + 𝟏 Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟓𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟕𝟎 Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟐 = 𝐠𝐫𝐮𝐩𝐨𝟐 + 𝟏 Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟕𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟖𝟎 Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟑 = 𝐠𝐫𝐮𝐩𝐨𝟑 + 𝟏 Si cumple la condición 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 ≥ 𝟖𝟎 𝐚𝐧𝐝 𝐂𝐚𝐥𝐢𝐟𝐢𝐜𝐚𝐜𝐢𝐨𝐧 < 𝟏𝟎𝟎 Se acumula la calificación del estudiante n en: 𝐠𝐫𝐮𝐩𝐨𝟒 = 𝐠𝐫𝐮𝐩𝐨𝟒 + 𝟏 Salida Se imprimirá el número de estudiantes que se acumularon en el grupo1, grupo2, grupo3, grupo4.
  • 31.
    31 | 46 Diagramade Flujo (DFD)
  • 32.
  • 33.
    33 | 46 3.6Ejercicio 6 Un avión que viaja 800 Km/h. Dispara un proyectil auto impulsado, en el momento del disparo, el avión hace un giro de 90 grados y acelera a 20 mtrs/seg 2. El proyectil sigue su curso, acelerando a 10 mtrs. /seg 2. Diseñe un pseudocódigo que escriba cada segundo, la distancia que separa al avión del proyectil, hasta que estén a 10,000 mtrs o más. Análisis del Problema Entrada La velocidad del avión: 800 km/h (222.22 m/s). Aceleración del avión después del disparo: 20 m/s2. Aceleración del proyectil después del disparo: 10 m/s2. La distancia máxima de separación entré el proyectil y el avión: 10000 m. Proceso Declaramos las variables que nos van ayudar a la resolución de nuestro ejercicio: Enteros: tiempo, contador (a). Decimal: Velocidad del avión, velocidad del proyectil, aceleración del avión, aceleración del proyectil, distancia del avión, distancia del proyectil, distancia avión proyectil. Con el for no ayudamos para que el proceso se repita a cada segundo. Luego calculamos las distancias del avión y del proyectil y asi poder calcular la distancia que los separa. da ← (via * t) + (0.5 * aca * a2 ) dp ← (vip * t) + (0.5 * acp * a2 ) dap ← da2 + dp2 Salida: La distancia que separa el avión del proyectil a cada segundo.
  • 34.
    34 | 46 Diagramade Flujo (DFD INICIO int t, a float via, vip, aca, acp, da, dp, dap via ← 222.22 vip ← 222.22 aca ← 20 acp ← 10 t ← 21 Ka = 1 ; a < = t ; a = a+1 da ← (via * t) + (0.5 * aca * a2 ) dp ← (vip * t) + (0.5 * acp * a2 ) dap ← da2 + dp2 SI dap <= ´La distancia entre el avión y el proyectil es: ´, dap NO FIN
  • 35.
    35 | 46 Pseudocódigo #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<math.h> main () { int t,a; float via, vip, aca, acp, da, dp, dap; via=vip=222.22; aca=20; acp=10; t=21; for(a=1;a<=t;a=a+1) { da=(via*t)+(0.5*aca*pow(a,2)); dp=(vip*t)+(0.5*acp*pow(a,2)); dap=sqrt(pow(da,2)+pow(dp,2)); if (dap<=10625) { printf("n La distancia entre el avion y el proyectil en el tiempo de %d s es:%.2f n",a,dap); } } getch(); return 0; }
  • 36.
    36 | 46 3.7Ejercicio 7 Una pizzería, vende sus pizzas en tres tamaños: 
pequeña (10 in de diámetro); mediana (12 in de diámetro); y grandes (16 in de diámetro); Una pizza puede ser sencilla (con sólo salsa y carne), o con ingredientes extras, tales como pepinillos, champiñones o cebollas
Los propietarios desean desarrollar un programa que calcule el precio de venta de una pizza, dándole el tamaño y el número de ingredientes extras. El precio de venta será 1.5 veces el costo total, que viene determinado por el área de la pizza, más el número de ingredientes.
En particular el costo total se calcula sumando: 
  Un costo fijo de preparación
  Un costo base variable que es proporcional al tamaño de la pizza  Un costo adicional por cada ingrediente extra. Por simplicidad se supone que cada ingrediente extra tiene el mismo costo por unidad de área.
 Análisis del Programa Entrada Ingresar el tamaño, el tipo de pizza y el número de ingredientes. Proceso 1. Escogemos el tamaño 2. Obtenemos el área de la pizza. 3. Escogemos el tipo 4. Si se necesita ingredientes extra multiplicamos cada ingrediente extra por su costo. 5. Se obtiene el valor total sumando el área, el costo de mano de obra y el valor del ingrediente extra. 6. El valor total se multiplica por 1.5. Salida Se imprime el valor a pagar de la pizza
  • 37.
    37 | 46 Diagramade Flujo (DFD
  • 38.
    38 | 46 Pseudocódigo #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<math.h> main() { inttamano, seleccion, ningre, cp=5; float pi=3.1411592,pv1, pv2, ap; printf("Ingrese el tamano de la pizza que deseannn"); printf("1) Pequenan "); printf("2) Medianan "); printf("3) Granden"); scanf("%d",& tamano); getch(); system("cls"); switch(tamano) { case 1: ap=pi*100;break; case 2: ap=pi*144;break; case 3: ap=pi*256; break; default: printf("Ingrese un numero validonn");break; } printf("Ingrese el tipo de pizza que desea nn"); printf("1) Sencillan"); printf("2) Con ingredientesnn"); scanf("%d",& seleccion); getch(); system("cls"); switch(seleccion) { case 1:pv1=1.5*(cp+ap); printf("El precio a pagar por su pizza es: %.2f",pv1); break; case 2: printf("Ingrese el numero de ingredientes extra desea 3c/u(cebolla, champinones, pepinillosttnn"); scanf("%d", & ningre); pv2=1.5*(cp+ap+ningre*3); printf("El precio a paga por su pizza con ingredientes extra es: %.2f",pv2); break; } getch (); return 0; }
  • 39.
    39 | 46 3.8Ejercicio 8 Diseñar un pseudocódigo que calcule el promedio ponderado para alumno del ITT. El cálculo se hace de la siguiente forma: - Se multiplica cada calificación por los créditos de cada materia - El resultado anterior se suma con los resultados de todas las materias, por separado se suman los créditos de cada materia y finalmente se divide la suma de todas las materias por sus respectivos créditos, entre la suma de todos los créditos. Análisis del Problema Entrada: Ingrese el número de materia que Ud. Estudia Ingrese el número de créditos de cada materia Ingrese la nota de la materia Proceso: total1= nota*créditos; total2= total2+total1; creditost = creditost+creditos; prom = total2/creditost; Salida El promedio del estudiante es: prom
  • 40.
    40 | 46 Diagramade flujo (DFD)
  • 41.
    41 | 46 Pseudocodigo #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<math.h> intx=1,a,materia,creditos,creditost,i; float nota,total1,total2,total3,prom; creditost=0; total2=0; for(x;x==1;x=x+0) { printf("Ingrese el número de materias que ud estudianmateria(s):"); scanf("%d",&materia); for(i=1;i<=materia;i=i+1) { printf("Cuantos creditos tiene la materia %dnCreditos:",i); scanf("%d",&creditos); printf("Ingrese el valor de la nota de la materia %dnNota:",i); scanf("%f",&nota); total1=nota*créditos; total2=total2+total1; creditost=creditost+creditos; } prom=total2/creditost; printf("El promedio del estudiante es: %.2f",prom); printf("n1.-Continuarn2.-SalirnnOpcion:"); scanf("%d",&a); switch(a) { case 1:x=1;break; case 2:x=2;break; default: printf("La opcion no es valida"); } } getch (); return 0; }
  • 42.
    42 | 46 3.9Ejercicio 9 Calcule la suma de los términos de la serie FIBONACCI cuyos valores se encuentran entre 100 y 10,000. Análisis del Problema Entrada Se ingresa la cantidad de términos que se quieren. Proceso Se realiza la sucesión de Fibonacci, empezando con el 0 y el 1, sumando los términos anteriores: 0 1 1 2 3 5 8 13… Se sumarán únicamente los valores que estén en el rango de 100 y 10 000. Salida Se imprime el valor de la suma.
  • 43.
    43 | 46 Diagramade flujo (DFD)
  • 44.
    44 | 46 Pseudocódigo #include<conio.h> #include<stdio.h> #include<stdlib.h> main() { intlong f,s,a,b,i,n; a=0; b=1; s=0; scanf("%d",&n); printf("%d n",a); printf("%d n",b); for (i=3;i<=n;i=i+1) { f=a+b; printf("%d n",f); a=b; b=f; if(f>=100 & f<=10000 ) { s=s+f; } } printf("%d n",s); getch (); return 0; }
  • 45.
    45 | 46 3.10Ejercicio10 Calcule exactamente el número de días vividos por una persona hasta la fecha. Contemplar los años bisiestos. Análisis del Problema Entrada Ingrese la fecha de su nacimiento Ingrese la fecha actual Proceso Años= (ano-ano1)*365.242189; Días=dia-dia1; Meses=mes-mes1; r= (anos+dias+ (meses)*(365.242189/12)); Salida Los días que Ud. ha vivido son: r Diagrama de flujo (DFD)
  • 46.
    46 | 46 Pseudocódigo #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<math.h> intdia1,mes1,ano1,dia,mes,ano,r,dias,meses,anos; printf("Ingrese la fecha de naciemiento (dd/mm/aa)nFecha de Nacimiento:nDia:"); scanf("%d",&dia1); printf("nMes:"); scanf("%d",&mes1); printf("nAno"); scanf("%d",&ano1); printf("nIngrese la fecha actual(dd/mm/aa)nFecha actual:nDia:"); scanf("%d",&dia); printf("nMes:"); scanf("%d",&mes); printf("nAno"); scanf("%d",&ano); anos=(ano-ano1)*365.242189; dias=dia-dia1; meses=mes-mes1; r=(anos+dias+(meses)*(365.242189/12)); printf("nLos dias que ud ha vivido son: %d diasn",r); system("pause"); system("cls"); getch (); return 0; }