Está en la página 1de 22

# usando el if condicional ternario

# <bloque_1> if <cond> else <bloque_2>

# usando el if condicional ternario


# <bloque_1> if <cond> else <bloque_2>
from math import sqrt
# usando la fórmula de Herón para calcular área de un triángulo
a=20.5;b=9.0;c=18.5;print(" .. caso A:",a,b,c)
print(" .. se puede construir") if (a+b)>c and (b+c)>a and (c+a)>b else print(" .. NO se puede
construir")
s=(a+b+c)/2
area=sqrt(s*(s-a)*(s-b)*(s-c))
print(" ..área:",area)

c=5.5;print(" .. caso B:",a,b,c)


print(" .. se puede construir") if (a+b)>c and (b+c)>a and (c+a)>b else print(" .. NO se puede
construir")
s=(a+b+c)/2
area=sqrt(s*(s-a)*(s-b)*(s-c))
print(" ..área:",area)
Ejemplos:

/// Calcula el promedio de una lista de n datos


/// Tomado de los ejemplos del "Pseint"
Algoritmo Promedio
Definir i,n como Entero
Definir acum,dato,prom como Real
Escribir "Ingrese la cantidad de datos:";Leer n
acum=0
Para i=1 Hasta n con paso +1 Hacer
Escribir "Ingrese el dato ",i,":";Leer dato
acum=acum+dato
FinPara
prom=acum/n
Escribir "El promedio es: ",prom
FinAlgoritmo

/// Aquí comienza el algoritmo


Funcion s=sumar ( n )
Definir i, s Como Entero;
s=0;
Para i=1 Hasta n Con Paso 1 Hacer
s=s+i;
FinPara
FinFuncion
Algoritmo Sumatoria
/// Enunciado: calcular la sumatoria de los números enteros de 1 a N
/// El valor de N es generado por el programa en un rango [+90 .. +100]
Definir S1, S2, N Como Entero;
N=Azar(11)+90;
S1=sumar(N);
S2=N*(N+1)/2; /// Aplicando teoría de matemáticas
Escribir "N : ",N;
Escribir S1;
Escribir S2;
FinAlgoritmo
Ejemplos de programas usando “for” en Python

from math import exp


e = 1 # 1/0!
fact = 1 # 0!
print("... e: ",e)
for i in range(1,13):
fact = fact*i # N! = (N-1)! * N
ter = 1.0/fact
e = e+ter;print("... e: ",e)
print("... e: ",e,", ... e: ",exp(1))
from math import pi
# / n (número de términos de la serie)
n = 200
i=1
signo = +1
suma = 1
for j in range(2,n+1):
signo = signo*(-1)
i = i+2
ter = signo/i
suma = suma+ter
npi = 4.0*suma
print(" ... con n: ",n,", pi: ",npi,", contra pi verdadero: ",pi)

Serie de Fibonacci
m = int(input(" .. Ingrese M entre 10 y 75: "))
while (m<10) or (m>75):
m = int(input(" ...Error... .. Ingrese M entre 10 y 75:"))
suma = 1
pen = 0
i = 0;
print(" .. ",i,": ",pen)
ult = 1
i=1
print(" .. ",i,": ",ult)
sgte = pen+ult
for i in range(2,m):
suma = suma+sgte
ult = pen
pen = sgte
sgte = pen+ult
print(" .. ",i,": ",sgte," ",suma)

Reto: modificar el anterior programa usando un arreglo lineal


denominado s
Más teoría, ejemplos y ejercicios
En “PseInt”, cuando se trabajan arreglos y/o matrices, se deben asociar dos comandos: a) el comando “Definir” y b)
el comando “Dimension”
1) Definir [nombre del arreglo] Como [tipo de dato];
2) Dimension [nombre del arreglo] [ número máximo de elementos a usar];
Ejemplo:
Definir region Como Entero;
Dimension region[5];
Algoritmo ArregloCifras
Definir i, cifras Como Entero;
Dimension cifras[10];
cifras[0]=100;
i=5;
Mientras i<10 Hacer
cifras[i]=550;
i=i+1;
Fin Mientras
FinAlgoritmo
///El siguiente ejemplo (modificado) es tomado de los ejemplos del “PseInt”
/// (y que se encuentra en la última diapositiva de la presentación .PPT
/// arreglos_II_2023.ppt)
Algoritmo ejemplo_indices_para
/// Modificado de los ejemplos que trae el "PseInt"
Definir A,i Como Enteros;
/// declara un arreglo de 10 elementos
Dimension A[10]
/// recorre los 10 elementos y
///va asignandoles enteros aleatorios
para i=0 hasta 9 Hacer
A[i] = azar(100)
FinPara
escribir""
Escribir "Los elementos del arreglo son:";escribir""
/// recorre los 10 elementos utilizando subindices
/// y los muestra en pantalla
para i desde 0 hasta 9 Hacer
escribir sin saltar " ",A[i]
FinPara
Escribir "";escribir"" // deja una linea en blanco
Escribir "En orden inverso:";escribir""
/// recorre los 10 elementos en orden inverso
/// y los muestra en una misma linea
para i = 9 hasta 0 Hacer
escribir sin saltar " ",A[i]
FinPara
escribir""
FinAlgoritmo
Algoritmo El_Histograma1_II_2023
Definir coleccion,i,NroDatos Como Entero;
Dimension coleccion[100];
Escribir " .. Dar nro. de datos de la coleccion (<= 100): "
Leer NroDatos;
i=0;
Mientras i<NroDatos Hacer
Escribir "Por favor dar dato ",i+1," :"
Leer coleccion[i];
i=i+1;
Fin Mientras
// Paso 3 Calcular Histograma
// Paso 4 Presentar Histograma
FinAlgoritmo

Paso 3.
(ver código PseInt resaltado en amarillo)

Algoritmo El_Histograma1_II_2023
Definir coleccion,histograma,i,j,NroDatos Como Entero;
Dimension coleccion[100],histograma[5];
Escribir " .. Dar nro. de datos de la coleccion (<= 100): "
Leer NroDatos;
i=0;
Mientras i<NroDatos Hacer
Escribir " .. Por favor dar dato ",i+1," :"
Leer coleccion[i];
i=i+1;
Fin Mientras
// Paso 3 Calcular Histograma
i=0;
Mientras i<5 Hacer
histograma[i]=0;
i=i+1;
Fin Mientras
i=0;
Mientras i<NroDatos Hacer
j=coleccion[i]-1;
histograma[j]=histograma[j]+1;
i=i+1;
Fin Mientras
// Paso 4 Presentar Histograma
FinAlgoritmo
(ver código PseInt resaltado en amarillo)

Algoritmo El_Histograma1_II_2023
Definir coleccion,histograma,i,j,m,NroDatos Como Entero;
Dimension coleccion[100],histograma[5];
Escribir " .. Dar nro. de datos de la coleccion (<= 100): "
Leer NroDatos;
i=0;
Mientras i<NroDatos Hacer
Escribir " .. Por favor dar dato ",i+1," :"
Leer coleccion[i];
i=i+1;
FinMientras
// Paso 3 Calcular Histograma
i=0;
Mientras i<5 Hacer
histograma[i]=0;
i=i+1;
FinMientras
i=0;
Mientras i<NroDatos Hacer
j=coleccion[i]-1;
histograma[j]=histograma[j]+1;
i=i+1;
FinMientras
// Paso 4 Presentar Histograma
i=0;
Mientras i<5 Hacer
Escribir Sin Saltar" .. ",i+1, " : "
m=histograma[i];
j=0;
Mientras j<m Hacer
Escribir Sin Saltar"*"
j=j+1;
FinMientras
Escribir""
i=i+1;
FinMientras
FinAlgoritmo

//
// Solución PseInt usando números aleatorios
//
Algoritmo El_histograma2_II_2023
Definir coleccion,histograma,i,j,m,NroDatos Como Entero;
Dimension coleccion[100],histograma[5];
//Escribir " .. Dar nro. de datos de la coleccion (<= 100): "
//Leer NroDatos;
i=0;
NroDatos=Azar(81) + 10; ///
Escribir" .. Nro de datos : ",NroDatos; Escribir"";
Mientras i<NroDatos Hacer
//Escribir " .. Por favor dar dato ",i+1," :"
//Leer coleccion[i];
coleccion[i]=Aleatorio(1,5);i=i+1;
FinMientras
// Paso 3 Calcular Histograma
i=0;
Mientras i<5 Hacer
histograma[i]=0;i=i+1;
FinMientras
i=0;
Mientras i<NroDatos Hacer
j=coleccion[i]-1;
histograma[j]=histograma[j]+1;i=i+1;
FinMientras
// Paso 4 Presentar Histograma
i=0;
Mientras i<5 Hacer
Escribir Sin Saltar" ..", i+1, " : "
m=histograma[i];j=0;
Mientras j<m Hacer
Escribir Sin Saltar"*";j=j+1;
FinMientras
Escribir""; i=i+1;
FinMientras
Escribir""
FinAlgoritmo
Ejercicios:
1) Los algoritmos anteriores presentados en “PseInt” modificarlos utilizando la estructura “para”

Para variable_numerica=valor_inicial Hasta valor_final Con Paso paso Hacer


secuencia_de_acciones
Fin Para

2) Los algoritmos modificados del paso 1) migrarlos a Python; 2) ejecutarlos en Python; 3)


realizar ajustes en Python que permitan tener un código más compacto; y 4) volverlos a
ejecutar desde Python

Actividad: esta actividad consta de dos partes. En la primera parte, deben tomar lápiz y una hoja de
papel y construir una tabla de los primeros 100 números enteros, indicando en ella, cuáles son
números primos. Por favor construir, en una hoja de papel, la tabla de los primeros 100 números
enteros.
En la segunda parte se pide realizar un programa en “PseInt”.
Para la primera parte, con la tabla que acaban de construir, sigan las instrucciones que están a
continuación usando lápiz y papel.
Segunda parte: sin mirar la solución que sigue a continuación, realice un programa en “PseInt”, que
utilice un vector y que simule las operaciones hechas en la primera parte de la actividad, con el
objeto de determinar los números primos de la tabla (vector o arreglo lineal)

Solución:

Algoritmo LaCriba_II_2023
Definir tabla,i,j,n,m Como Entero
Dimension tabla[900]
n=100
/// Crear tabla de los primeros cien números
Para i=0 Hasta n-1 Con Paso 1 Hacer
tabla[i]=i+1
FinPara
m=n-1
tabla[0]=0 /// tachamos el número 1 (colocamos un cero)
Para i=2 Hasta m Con Paso 1 Hacer /// rango de múltiplos
Para j=i+1 Hasta n-1 Con Paso 1 Hacer /// verificar en toda la tabla los múltiplos de i
Si tabla[j]<>0 & tabla[j]%i=0 Entonces
tabla[j]=0 /// tachamos el número colocando un cero
FinSi
FinPara
FinPara
m=0
Para i=0 Hasta n-1 Con Paso 1 Hacer
Si tabla[i]<>0 Entonces
m=m+1;Escribir Sin Saltar" ",tabla[i]
FinSi
FinPara
Escribir"";escribir""
Escribir".. para ",n," números de la tabla hay un total de ",m," números primos";escribir""

Actividad: migrar el anterior programa PseInt a Python y ejecutarlo; luego


modificar y ejecutar el programa Python obtenido según procedimientos
realizados en clase

También podría gustarte