2da. Sesión Practica PyC 2019 - I
2da. Sesión Practica PyC 2019 - I
Tema 3:
Programación Estructurada:
Estructuras de control secuencial y selectiva
Profesor
John Ledgard Trujillo Trejo
true
case a case a action(s) break
false
true
case b case b action(s) break
false
.
.
.
true
case z case z action(s) break
false
default action(s)
int main()
{
ENTRADA: consumo, nump
float igv = 0.19, porprop = 0.1;
SALIDA: montoporp
float consumo;
INTERMEDIOS : montoigv, propina, montot
float nump;
float montoporp, montoigv, propina, montot;
inicio
escribir (“Ingrese primer examen: ”)
leer(exa1)
escribir (“Ingrese segundo examen: ”)
leer(exa2)
escribir (“Ingrese tercer examen: ”)
leer(exa3)
escribir (“Ingrese nota controles y tareas: ”)
leer (control)
nta_final 0.2*exa1+0.3*exa2+0.3*exa3+0.2*control
escribir (“La nota final es: ”, nota_final)
fin
Algoritmo distancia_proyectilvar
var
ENTRADA: coox1, cooy1, coox2, cooy2 real: coox1, cooy1, coox2, cooy2
SALIDA: distancia real: distancia
inicio
escribir (“Ingrese X de coordenada 1: ”)
leer(coox1)
escribir (“Ingrese Y de coordenada 1: ”)
leer(cooy1)
escribir (“Ingrese X de coordenada 2: ”)
leer(coox2)
escribir (“Ingrese Y de coordenada 2: ”)
leer(cooy2)
distancia ((coox1-coox2)^2+(cooy1-cooy2)^2)^0.5
escribir (“La distancia recorrida es: ”, distancia)
fin
Una empresa constructora vende terrenos con la forma A de la figura. Realice un algoritmo para
obtener el área respectiva de un terreno de medidas de cualquier valor.
Algoritmo área_terreno
real: A, B, C
real: area
inicio
escribir (“Ingrese valor de A: ”)
leer(A)
escribir (“Ingrese valor de B: ”)
ENTRADA: A, B, C leer(B)
SALIDA: area escribir (“Ingrese valor de C: ”)
leer(C)
area (A-C)*B/2 + C*B
escribir (“El área del terreno es: ”, area)
fin
Todas las semanas se estudia la posible variación en el precio de la bencina. Para ello, se utiliza un polinomio de
tercer grado, de la forma:
en donde x es un factor que determina semanalmente el Ministerio de Economía. Cuando el valor del polinomio es
mayor que 10, esa semana la bencina sube, en un factor igual al valor obtenido. Cuando el valor del polinomio es
menor que −10, el valor de la bencina baja en un factor igual al valor absoluto del valor obtenido para el polinomio.
Cuando el valor se encuentra en el intervalo [−10; 10], el precio no cambia en esa semana. Nos interesa contar con
un algoritmo que evalué el precio de la bencina para una semana particular, e indique no sólo si sube, baja, o se
queda igual, sino también en cuánto sube. Por ejemplo, si el valor del polinomio resultara ser -15, entonces el precio
de la bencina para la semana siguiente bajaría en un 15
Algoritmo precio_bencina
var
real: x
real: p
inicio
ENTRADA: x
SALIDA: escribir (“Ingrese valor de x: ”)
INTERMEDIOS : p p x^3-2*x^2+3*x-5
si (p<-10) entonces
escribir (“El valor de la bencina baja: ”, -p)
sino
si ((p>=-10) y (p<=10)) entonces
escribir (“El valor de la bencina se mantiene”)
sino
escribir (“El valor de la bencina sube: ”, p)
fin_si
fin_si
John Ledgard Trujillo Trejo
fin
10 de mayo de 2019
Problema 6
Algoritmo Ecuacion_segundo_grado
var
Calcular las posibles raíces para real: coe1, coe2, coe3
una ecuación de segundo grado: real : raiz1, raiz2, dis
ax2+bx+c=0 inicio
escribir (“Ingrese los coeficientes :”,)
leer (coe1, coe2, coe3)
si (coe1 = 0) entonces
escribir (“La ecuación dada no es de 2do. Grado”)
sino
dis coe2*coe2 – 4*coe1*coe3
ENTRADA: coe1, coe2, coe3 si (dis > 0) entonces
SALIDA: raiz1, raiz2 raiz1 (-coe2 – raiz(disc))/2*coe1
INTERMEDIOS : disc raiz2 (-coe2 + raiz(disc))/2*coe1
escribir (“Las raices de la ecuación son: “, raiz1, raiz2)
sino si (dis = 0) entonces
raiz1 -coe2/2*coe1
raiz2 raiz1
escribir (“Las raices de la ecuación son:”, raiz1, raiz2)
sino escribir (“No existen raíces reales”)
fin_si
fin_si
fin_si
fin
int main()
{
float coe1, coe2, coe3;
float raiz1, raiz2, dis;
/***********************************************************
Universidad Nacional Mayor de San Marcos
Facultad de Ingenieria de Sistemas e Informatica
Laboratorio de Algoritmica I
***********************************************************
Nombre de archivo : C:\ecuasg.CPP
Fecha de Creación : 9/05/01
Hora de Creación : 12:03:24 PM
Descripción : Solucion a la ecuacion de segundo grado
Autor : Ing. John Ledgard Trujillo Trejo
Copyright : Unmsm - 2001
*/
//Inclusion de librerias
#include <conio.h>
#include <iostream.h>
#include <math.h>
int main()
{
Declaración de variables.
float coe1, coe2, coe3;
float raiz1, raiz2, dis;
clrscr();
cout<<"Ingrese el valor de los coeficientes: ";
cin>>coe1;
cin>>coe2; cout imprime un string de caracteres contenidos entre “ y ”.
Imprime el valor de una variable y constante. << operador de flujo de
cin>>coe3;
salida.
if (coe1==0)
{ cin ingresar valores por el teclado. >> operador de flujo de entrada.
cout<<"La ecuacion dada no es de segundo grado";
}
else
{
dis = coe2*coe2-4*coe1*coe3;
cout<<"Discriminante="<<dis<<endl;
if (dis>0)
{
raiz1 = (-coe2+sqrt(dis))/2*coe1;
raiz2 = (-coe2-sqrt(dis))/2*coe1;
cout<<"Las raices de la ecuacion son:" ;
cout<<raiz1<<“ y “<<raiz2<<endl;
}
else
if (dis==0)
{
raiz1=-coe2/2*coe1;
raiz2=raiz1;
cout<<"Las raices de la ecuacion son:";
cout<<raiz1<<“ y “<<raiz2<<endl;
}
else
{
cout<<"No existe solucion en los reales";
};
};
getch();
}
Algoritmo ubicación_punto
var
real : coorx, coory, distancia
inicio
escribir ("Ingresar la coordenada x: ")
leer (coorx)
escribir ("Ingresar la coordenada y: "
leer (coory)
si (coorx>0 y coory>0) entonces
escribir ("El punto (", coorx, ", " coory, “) pertenece al I cuadrante")
fin_si
si (coorx<0 y coory>0) entonces
escribir ("El punto ", coorx, ", ", coory, ") pertenece al II cuadrante”)
fin_si
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main() // Programa Principal
{
float coorx, coory, distancia; //coordenadas x e y.
cout << "Ingresar la coordenada x: ";cin>>coorx; //pide coordenada x
cout << "Ingresar la coordenada y: ";cin>>coory; //pide coordenada y
clrscr();
if (coorx>0 && coory>0)
cout << "El punto ("<<coorx<<", "<<coory<<") pertenece al I cuadrante\n";
if (coorx<0 && coory>0)
cout << "El punto ("<<coorx<<", "<<coory<<") pertenece al II cuadrante\n";
if (coorx<0 && coory<0)
cout << "El punto ("<<coorx<<", "<<coory<<") pertenece al III cuadrante\n";
if (coorx>0 && coory<0)
cout << "El punto ("<<coorx<<", "<<coory<<") pertenece al IV cuadrante\n";
Algoritmo recibo_de_consumo
real: C1, C2, recibo
inicio
escribir ("Escribe el valor del contador anterior al último: ")
leer (C1)
escribir ("Escribe el último valor del contador: ")
leer (C2)
si (C1 > C2) entonces
escribir ("ERROR: El último valor es menor que el anterior.")
sino
C1 C2 - C1
si (C1 <= 100) entonces
recibo 100 + 50*C1;
sino si (C1<=250) entonces
recibo 5100 + 70*(C1 - 100)
sino
recibo 5100 + 70*150 + 100*(C1 - 250)
fin_si
escribir ("El valor del recibo es: ", recibo)
fin_si
fin_si
fin
#include <stdio.h>
#include <conio.h>
void main() {
float C1,C2, recibo;
printf("Escribe el valor del contador anterior al último: ");
scanf("%f", &C1);
printf("Escribe el último valor del contador: ");
scanf("%f", &C2);
if (C1>C2)
printf("ERROR: El último valor es menor que el anterior.");
else {
C1=C2-C1;
if (C1<=100)
recibo=100 + 50*C1;
else if (C1<=250)
recibo= 5100 + 70*(C1-100);
else
recibo= 5100 + 70*150 + 100*(C1-250);
printf("El valor del recibo es: %f.\n", recibo);
}
getch();
}
Algoritmo CUENTA
Var
Entero: CP
Real : PU, Cant, CT, MonN, Des
Const
D1 = 0.02 //Porcentaje de descuento 1
D2 = 0.01 // Porcentaje de descuento 2
Inicio
leer CP, Cant
si CP=100 entonces
PU 24.05
sino
si CP=247 entonces
PU 105.00
sino
si CP=16 entonces
PU 10.35
Sino
PU 16.00
fin_si
fin_si
fin_si
CT PU * Cant
si CT 1000 entonces
Desc CT *D1
sino
si CT 800 entonces
Desc CT*D2
Sino Desc 0
fin_si
fin_si
MonN CT – Desc
escribir(CT, Desc, MonN)
fin
#include <iostream.h>
#include <constrea.h>
main()
{
int CP;
float PU, Cant, CT, MonN, Desc;
const float D1=0.02, D2 = 0.0;
cout<<"Ingrese el codigo del producto y la cantidad: ";
cin>>CP>>Cant;
if (CP==100) PU=24.05;
else if (CP==247) PU=105.00;
else if (CP==16) PU=10.35;
else PU=16.00;
CT = PU * Cant;
if (CT>=1000) Desc=CT*D1;
else if (CT>=800) Desc = CT*D2;
else Desc=0;
MonN = CT - Desc;
cout<<CT<<endl<<Desc<<endl<<MonN;
getch();
}
Algoritmo Número_mayor
Var
Real : num1, num2, num3
ENTRADA: num1, num2, num3 Real : mayor
SALIDA: mayor Inicio
leer (num1, num2, num3)
si (num1 > num2) and (num1 > num3) entonces
mayor num1
sino
si (num2 > num1) and (num2 > num3) entonces
mayor num2
sino
mayor num3
fin-si
fin-si
escribir (“El número mayor es :”, mayor)
Fin
1.48
¿ Preguntas ?
1.49