Guia Lab3 ProgEstru 2019
Guia Lab3 ProgEstru 2019
TEMPORIZACIÓN:
Inicio de la Práctica: 01 de Abril
Tiempo de Desarrollo de la Práctica de Laboratorio: 2 Sesiones
Semana del 01 al 03 de Abril 2019.
Las estructuras lógicas selectivas se utilizan cuando se debe tomar una decisión
en el desarrollo de la solución de un problema. La toma de decisión se basa en la
evaluación de una o más condiciones que nos señala como consecuencia de la
rama a seguir.
Es frecuente que nos encontremos con situaciones en las que debemos tomar
varias decisiones. Cuando esto ocurre, decimos que se realizan en cascada. Es
decir, se toma una decisión, se señala el camino a seguir, nos encontramos con
otra decisión, se marca el siguiente camino, y así sucesivamente. En éstos casos
debemos construir un árbol de decisión para plantear la solución.
Las estructuras algorítmicas selectivas son: if, if–else, switch. Cuando las
estructuras selectivas se aplican en cascada, se utiliza una combinación de las
estructuras señaladas anteriormente.
La estructura selectiva if permite que el flujo del diagrama siga por un camino
específico si se cumple una condición determinada. Si al evaluar la condición el
resultado es verdadero, entonces se sigue por un camino específico – hacia abajo
– y se ejecuta una operación o acción o un conjunto de ellas. Por otra parte, si el
resultado de la evaluación es falso, entonces se pasa(n) por alto esa(s)
operación(es). En ambos casos se continúa con la secuencia normal del diagrama
de flujo. Observemos la representación gráfica de esta estructura:
En lenguaje C, la estructura selectiva if se escribe de la siguiente forma:
if(<condición>)
<operación>;
Ejemplo:
1.- Leer dos valores numéricos enteros y almacenarlos en dos variablesa yb, mostrando un
mensaje de Verdadero, en que el valor de a es mayor que b.
Pseudocódigo en Pseint
Proceso dosvaloresnumericosEnt
Definir a, b, Como Entero;
Escribir "Ingrese dos numeros := "
Leer a, b;
Si a > b
Escribir "El Numero es Verdadero "
Fin
FinProceso
En Lenguaje C.
Ejemplo N° 1
#include<stdio.h>
int main(intargc, char *argv[]) {
int a, b;
printf("Introduzca dos numeros:= ");
scanf("%d %d", &a, &b);
if (a > b){
printf("El Numero es Verdadero");
La estructura selectiva doble if – else, permite que el flujo del diagrama se bifurque
por dos ramas diferentes en el punto de la toma de decisión. Si al evaluar la
condición el resultado es verdadero, entonces se sigue por un camino específico –
el de la izquierda, y se ejecuta una acción determinada o un conjunto de ellas. Si
el resultado de la evaluación es falso, entonces se sigue por otro camino – el de la
derecha, y se realiza(n)otra(s) acción(es). En ambos casos, luego de ejecutar las
acciones correspondientes, se continúa con la secuencia normal del diagrama de
flujo. Observemos la representación gráfica de esta estructura:
Ejemplo:
1.- Leer dos valores distintos y almacenarlos en dos variables de nombre `a' y `b', y
determinar cuál
es el mayor dejando el resultado en una tercera variable de nombre ‘c’.
Pseudocódigo en Pseint
Proceso dosnumerosdistintos
Definir a, b, c Como Real;
Escribir "Ingrese dos números := "
Leer a, b;
Si a > b
c=a
SiNO
c=b
FinSi
Escribir "El Mayor es:= ", c
Fin
FinProceso
En Lenguaje C.
Ejemplo 1
#include<stdio.h>
int main(intargc, char *argv[]) {
float a, b, c;
printf("Ingrese 2 Numeros:= ");
scanf("%f %f", &a, &b);
if (a > b) // Valores de a==20, y b==5
c = a;
else
c = b;
printf("El Mayor es:= %.2f",c);
return 0;
}
Ejemplo2
Transformar en código el siguiente pseudocódigo, relativo a determinar la naturaleza par o
impar de un número.
Nota: El procedimiento a emplear será basado en el uso del operador de módulo, % ó
modulo (mod).
1. Pseudocódigo en Pseint
2. Proceso numeropareimpar
3. Definir Num, Resp Como Entero;
4. Escribir "Ingrese un número entero := "
5. Leer Num;
6. Resp = Num % 2
7. Si (Resp == 0)
8. Escribir “El Numero es Par”
9. SiNo
10. Escribir “El Numero es Impar”
11. FinSi
12. Fin SiNo
Solución
#include <stdio.h>
#include <stdlib.h>
// Ejercicios Resueltos
intmain(intargc, char *argv[]) {
intNum, Res;
printf("Programa para determinar naturaleza par o impar de un numero\n\n");
printf ("Introduzca un numero entero: ");
scanf ("%d", &Num);
Res = Num%2;
if (Res==0) {
printf ("El numero es par\n");
} else { //Esta es la Otra Alternativa
printf ("El numero es impar\n");
}
return 0;
}
Sintaxis:
if(condición1)
sentencia1
elseif(condición2)
sentencia2
.
.
.
elseif(condición n)
sentencian
else
sentencia e.
Observemos la representación gráfica de esta estructura:
Ejemplo:
1. Escribir un programa, en C, que:
1) Pida por teclado dos números (datos enteros).
2) Calcule la suma y multiplicación de ambos números.
3) Muestre por pantalla:
"La suma es mayor.", en caso de que sea mayor que la multiplicación de ambos números.
"La multpilicación es mayor.", en caso de que sea mayor que la suma de ambos números.
"La suma y multiplicación son iguales.", en caso de que así sea.
En pantalla:
if ( suma >multiplicacion )
printf( "La suma es mayor." );
else
/* Inicio del anidamiento */
if ( multiplicacion> suma )
printf( "La multiplicacion es mayor." );
else
printf( "La suma y multiplicacion son iguales." );
/* Fin del anidamiento */
return 0;
}
Otra Forma
#include<stdio.h>
intmain(intargc, char *argv[]) {
int a, b;
printf( "Introduzca el primer numero (entero): " );
scanf( "%d", &a );
printf( "Introduzca el segundo numero (entero): " );
scanf( "%d", &b );
if ( a + b > a * b )
printf( "La suma es mayor." );
else
return 0;
}
EJERCICIOS RESUELTOS:
Pseudocódigo en pseint
Proceso bomberos
Definir estatura Como Real;
definir sexo como caracter;
Escribir "Ingrese el sexo representado con un solo caracter:";
Leer sexo; Escribir "Ingrese la estatura en metros:";
Leer estatura; si (estatura >= 1.65 y estatura <= 1.90) y (sexo = 'F' o sexo = 'f')
Entonces
Escribir "Usted es aceptada en el cuerpo de bomberos";
Fin Si
FinProceso
Diagrama de flujo:
Código en Lenguaje C:
//bomberos.c
#include <stdio.h>
floatestatura;
charsexo;
void main(void)
{
printf("Ingrese el sexo representado con un solo caracter:");
scanf("%c",&sexo);
printf("Ingrese la estatura en metros:");
scanf("%f",&estatura); if ((estatura >= 1.65 && estatura <= 1.90) && (sexo == 'F' || sexo == 'f') )
printf( "Usted es aceptada en el cuerpo de bomberos\n");
}
Pseudocódigo en pseint
1. Proceso productoimportado
2. Definir pre, npr Como Real;
3. Escribir "Ingrese el precio del producto: ";
4. Leer pre; si pre < 1500 npr<- pre * 1.11; Sino npr<- pre * 1.08;
5. FinSi
6. Escribir "Nuevo precio del producto: ",npr;
7. FinProceso
Diagrama de flujo:
CódigoenLenguaje C:
Pseudocódigo en PSeint
Proceso menor
Definir a, b, c, menor como entero;
a <- 2;
b <- 4;
c <- 1;
Si (a < b) Entonces
Si (a < c) Entonces
menor<- a;
Sino
menor<- c;
Sino Si (b < c) Entonces
menor<- b;
Sino
menor<- c;
FinSi
FinSi
FinSi
Escribir "El menor = ",menor;
FinProceso
Diagrama de flujo:
Código en Lenguaje C:
#include<stdio.h>
int main(intargc, char *argv[]) {
int a, b, c, menor;
a = 2;
b = 4;
c = 1;
if (a < b)
if (a < c)
menor = a;
else
menor = c;
else
if (b < c)
menor = b;
else
menor = c;
2.-Una empresa con tres departamentos tiene establecido un plan de incentivos para sus
vendedores. Al final del período, a cada departamento se le pide el importe global de las
ventas. A los departamentos que excedan el 33% de las ventas totales se les adiciona al
salario de los vendedores un porcentaje equivalente al 20% del salario mensual. Las
nóminas de los tres departamentos son iguales. Si se tienen los siguientes datos:
•Ventas del departamento 1.
•Ventas del departamento 2.
•Ventas del departamento 3.
•Salario de los vendedores de cada departamento.
Hacer un programa en Lenguaje C que determine cuánto recibirán los vendedores de
cada departamento al finalizar el período.
3.-El dueño de una empresa desea planificar las decisiones financieras que tomará 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 para tener un nuevo saldo de $20,000, pero si su capital tiene
actualmente un saldo superior a los $20,000 no pedirá ningún préstamo.