Documente Academic
Documente Profesional
Documente Cultură
Facultad de Ingeniera
Proyecto Curricular de Ingeniera de Sistemas
Programacin Bsica grupo 85
Taller No.1
Fecha.
Objetivos
Cuando se construyen algoritmos a menudo se hace indispensable representar tomas de decisiones ya sea evaluando entre
dos opciones disponibles o evaluando mltiples opciones. El primer caso va a ser posible representarlo usando la estructura
de control if-condicion-else (C++ / Python), en la cual se van a evaluar nicamente condiciones de carcter booleano, es
decir cuya respuesta sea nicamente verdadero o falso.
C++ Python
if (expresion_logica) { if (expresin_logica):
acciones_por_verdadero; acciones_por_verdadero
else{ else:
acciones_por_falso; acciones_por_falso
} }
Para el segundo caso se aplicar ya sea una sucesin de estructuras if-condicin- sino en C++ y Python anidadas de la
siguiente manera:
C++ Python
if (expresion_logica) { if (expresin_logica):
acciones_por_verdadero; acciones_por_verdadero
else{ else:
if (expresion_logica) { if (expresin_logica):
acciones_por_verdadero; acciones_por_verdadero
else{ else:
...
}
}
O con una estructura switch, que evala el contenido de una variable y segn la opcin desencadena una accin:
C++ Python
En Python no existe una estructura de control switch, para
esto se implementa la estructura if usando elif, que permite
evaluar el contenido de la variable en caso contrario de que
switch (variable) { el primer condicional no sea verdadero:
case valor_variable_especifica_1:
secuencia_de_acciones_1; if (expresin_lgica_1): #funciona como case_1
break; acciones_por_verdadero_1
case valor_variable_especifica_2: elif (expresin_lgica_2): #funciona como case_2
secuencia_de_acciones_2; acciones_por_verdadero_2
break; elif (expresin_lgica_3): #funciona como case_3
case valor_variable_especifica_3: acciones_por_verdadero_2
secuencia_de_acciones_3; else: #de otro modo
break; secuencia_de_acciones_dom;
default: //de otro modo
secuencia_de_acciones_dom;
break;
}
Al igual que se usan estructuras condicionales para el desarrollo de algoritmos, tambin se usan otro tipo de que son las
estructuras iterativas, que nos permite repetir una parte del algoritmo un determinadas veces, dependiendo una condicin o
un nmero, el primer caso se representa con la estructura while para C++ y Python, lo ms importante a recordar de la
sentencia while es que su condicin de terminacin (expresin booleana) se comprueba cada vez antes de que el cuerpo
del sea ejecutado. El cuerpo se ejecuta mientras se cumpla la condicin de control. Si la condicin es false (0), entonces el
cuerpo no se ejecuta. Hay que hacer notar que, si la condicin es true (1) inicialmente, la sentencia mientras no terminar
(ciclo o bucle infinito) a menos que en el cuerpo de la misma se modifique de alguna forma la condicin de control del ciclo.
Una sentencia while se ejecutar cero o ms veces.
C++ Python
while (expresion_logica){
while (expresin_logica):
secuencia_de_acciones;
secuencia_de_acciones
}
Al igual que en la sentencia mientras, en la sentencia do-while para C++ el cuerpo del bucle se ejecuta mientras que sea
verdad la expresin booleana que constituye la condicin de control. Adems, esta condicin se comprueba cada vez tras la
ejecucin del cuerpo, no antes, como en el mientras. El cuerpo de una sentencia repetir siempre se ejecuta al menos una
vez. Cuando esto pueda ocurrir es ms conveniente su uso que la sentencia do-while (C++).
En Python no existe una estructura de control do-while definida, para esto se usa la estructura while en un ciclo infinito y se
usa el break, para romper este ciclo en un momento determinado, esto se explica en el cdigo de ejemplo mostrado a
continuacin:
C++ Python
do{ while(True): #Mantiene un ciclo infinito
secuencia de acciones
secuencia_de_acciones if (expresin_lgica): #debe romper el bucle infinito
}while (expresin_logica); break
Finalmente la sentencia FOR se usa cuando no se necesita una iteracin dada una condicin numrica, si no que se quiere
iterar un nmero especfico de veces, la sentencia FOR en C++ contiene las siguientes partes:
Parte de inicializacin (for int variable_numerica = valor_inicial), que inicializa las variables de control del bucle.
Parte de finalizacin (variable_numerica operador_lgico valor_final), que contiene la variable definida en la
inicializacin con un operador lgico (<, <=,>,>=) usado correctamente con un valor final especfico.
Parte de incremento (variable_numerica_con_incremento), que modifica la variable de control de bucle, dndole
incremento segn el paso escogido.
En Python tiene la siguiente estructura:
Parte de inicializacin (for variable in range) donde se define una variable y se declara que va a adoptar un rango
Parte de finalizacin (valor_inicial, valor_final) esta parte es especficamente para valores numricos, ya que la parte de
finalizacin tambin puede tener una lista o una cadena. No existe una parte de incremento ya que Python recorre valor
por valor desde el inicial hasta el final.
C++ Python
Sintaxis: Sintaxis:
for (int variable_numerica = valor_inicial; variable_numerica for variable in range (valor_inicial, valor_final):
operaror_logico valor_final; secuencia_de_acciones
variable_numerica_con_incremento) {
secuencia _de_acciones; Ejemplo:
} for i in range (1,10)
Ejemplo: print (Hola, i)
for (int i = 0 ; i >10 ; i++) {
cout << i;
}
Competencias asociadas
Consideraciones generales
Para la elaboracin del presente taller se debe tener en cuenta en cada punto:
Recursos y Herramientas
Ejercicios
Circulo Radio
Cuadrado Lado
Rectngulo Base, altura
Triangulo Los tres lados
Trapecio Base mayor, base menor y altura
18. Calcular el valor de la derivada de una funcin polinmica de grado 3 evaluada en un valor
19. Leer nmeros hasta recibir un cero y calcular el promedio de los nmeros recibidos
20. Leer nmeros hasta recibir tres nmeros negativos y calcular el promedio de los nmeros positivos recibidos
21. Convertir nmeros entre las diferentes bases como se muestra a continuacin
Desde Hasta
Decimal Octal Binario Hexa
Binario Decimal Octal Hexa
Binario Decimal Octal Hexa
Octal Binario Decimal Hexa
22. Leer nmeros nicamente en sentido ascendente. Una vez reciba un nmero que sea menor que el anterior. Con solo
los nmeros ascendentes hallar cuntos de ellos fueron impares
23. Determinar si un nmero es primo
24. Hallar MCD de todos los nmeros ledos antes de recibir un nmero negativo
25. Hallar el MCM de todos los nmeros ledos antes de recibir un nmero negativo
26. Generar el valor de un dado
27. Dado el valor de un ngulo determinar qu tipo de ngulo es
28. Dado un valor descomponerlo en sus factores primos
29. Dados dos nmeros enteros positivos calcular
a. La combinacin del primero en el segundo
b. La permutacin del primero en el segundo
30. Dado un monto, un nmero de meses y un valor de inters mensual de un prstamo calcular el valor total a pagar