Trabajo
Integrantes:
Jorge Martínez
Edisson Roa
1 Diseñe una solución para resolver los siguientes problemas y trate de refinar sus soluciones
mediante algoritmos adecuados
   (g)Determinar si un número es primo o no
   Inicio
   div=2, num
   leer: num
   Si(num<=3)
            Presentar: “El número es primo”
   Sino
            Mientras(div<num){
                     Si(num%div==0)
                             Presentar: “El número no es primo”
                             Hasta(div=num/2)
                     Sino
                             div++
   Presentar: “El número es primo”
   Fin
   (i)Calcular el tiempo transcurrido entre dos horas dadas en formato hh:mm de un mismo
   dia
   Inicio
   h1, h2, m1, m2, the, ths, rm, ht, mt;
   Leer: h1
   Leer: h2
   Leer: m1
   Leer: m2
              the=(h1*60)+m1
              ths=(h2*60)+m2
              rm=(ths-the)
              ht=(rmDIV60)
              mt=(rm%60)
Presentar: “Horas”
Presentar: “Min”
Fin
(j) Calcular la suma de los 30 primeros números primos
Inicio
div=2, num, acumulador=6, cont=3, primo=4
leer: primo
Mientras(div<primo)&&(cont<=30){
                Si(div=primo/2)
                       acumulador = acumulador+primo
                       cont++
                Sino
                       primo++
Presentar: “”
Fin
(k) Calcular el factorial de un número
Inicio
fac=1, num, cont=1
Leer: fac
Leer: num
Leer: con
Mientras (cont<=num)
            fact=(fact*cont)
              cont++
Presentar: “Factorial”
Fin
3. Escriba un programa que obtenga tres números, los almacene y luego calcule y muestre un
reporte sobre su suma y promedio
Inicio
Leer: a, b, c, suma, prom;
Leer: num1
Leer: num2
Leer: num3
num1=a
num2=b
num3=c
suma= a+b+c
Presentar: “La suma es: “suma””
prom= suma/3
Presentar: “ El promedio es: “prom””
Fin
4. Escriba un programa para resolver un sistema de ecuaciones como este
                          Ax+by=c
                          Dx+ey=f
Inicio
Leer px, py, sx, sy, pr, sr, y, x
Si (px==sx)&&(py==sy){
         sx= (sx*-1)
         sy=(sy*-1)
         sr=(sr*-1)
Sino
         sx=(sx*-px)
         sy=(sy*-px)
         sr=(sr*-px)
tx=px+sx
ty=py+sx
tx=pr+sr
y= tr/ty
Presentar: “El valor de y es; “y” ”
px= px
py=py*y
pr=pr
x= pr-py
Presentar: “El valor de x es; “x” ”
FIN
6 Realice un diagrama de flujo y seudocódigo para los siguientes enunciados
      a) Dado un número entero, indique si es para o no
           Inicio
           Leer: num
           Si (num%2)==0
                  Presentar: “El número es par”
           Sino
                  Presentar: “El número es impar”
           FIN
                                 Inicio
                                  Leer:
                                  Num
                                                    Presentar: “El
           Presentar: “El        (num%2)==0         número No es
           número es par”   SI                NO
                                                        par”
                                 FIN
      b) Dados los números reales. Indique cuál es el mayor
           Inicio
           Leer: num1, num2, mayor
           Si(num>num2){
                  mayor=num1
           Sino
                  mayor=num2
           }
           Presentar: “mayor”
           FIN
                                      Inicio
                                       Leer:
                                       num1,
                                       num2,
                                       mayor
          mayor=num1   SI             num1>num2        NO
                                                            mayor=num2
                                      FIN
7. ¿Qué es lo que debería mostrar el programa representado en el siguiente diagrama de
flujo?
- Complete las figuras con lo que falte
-¿Qué es lo que hace el programa?
Este programa lo que haces es evaluar las variables y comprobar cuál de las dos variables es
mayor
-¿Es un buen algoritmo? ¿Por qué?
Si es un buen programa porque es fácil de entenderlo, pero hay como optimizarlo y quitar un
proceso que es incensario en el diagrama.
                            INICIO
                              a,b
                            x=a>b
          SI                x=(b>a)               NO
 “b es mayor                                      “a es mayor
    que a”                                           que b”
                             FIN
- Complete las figuras con lo que falte
-¿Qué es lo que hace el programa?
-¿Es un buen algoritmo? ¿Por qué?
8. Un año es bisiesto si es múltiplo de 4, pero no de 100, pero sí de 400. Determine un
algoritmo que permita determinar si un año introducido desde el teclado es bisiesto o no.
Inicio
Leer: año
Si (año%4)== 0
      Presentar: “Es año bisiesto”
Sino
      Presentar: “No es año bisiesto”
Fin
10. Realice un programa para encontrar los 100 primeros números perfectos.
Inicio
Leer: b=1,a, k, l, p
For K=2,700,1
       a=0
For l= l,k,l
      Si (K/l)==0
             a =a+1
                     si (a-k)=k
                            p=k
                            b= b+1
                     sino
                         Fin
      Sino
               Fin
Fin For
FIN
12. Leer dos números positivos a y b e imprimir los a primeros números primos si a < b. En
caso contrario imprimir el resultado de la serie:
Inicio
Leer: a, b, primo=0, numero=1, cont=1, div=2, divisor, fracción
Si(a<b)
          Mientras (div<=a)&&(cont<=0)
                     Si(div=numero/2)
                              primo= num
                              Presentar: “primo”
                              cont++
                     Fin si
               Fin Mientras
Sino
         Mientras (cont<=b)
                    divisor: (cont*a)
                    Presentar: “ 1/divisor ”
                    cont++
FIN
14. Realice un diagrama de flujo que indique el procedimiento para hallar el máximo común
divisor de dos números enteros (MCD) por el algoritmo de Euclides
       Inicio
  Num1, Num2, r
      “Diga dos
      números ”
       Num1,
       Num2
                                                                                           Hasta
   Num1<Num2            Num1=Num2       Num2=Num1   r= Num1-Num2   Num1=Num2   Num2=r
                                                                                        (Num1=Num2)
       R=Num1
  “El MCD es:”, r
         FIN
15. Efectuar el cálculo de la siguiente serie de números:
Inicio
Leer: n, r, producto=1
Mientras (n<20)
         producto= producto*n
         r= 1/ producto
Fin
24. Obtener el número en sistema binario que corresponda a un número en sistema decimal
introducido desde un dispositivo de E/S.
Inicio
Leer: num, A[50]
Repetir
      num%2
      Mod= A[i]
Hasta (num=1)
Presentar: “A[j]”
Fin
7. Se tiene 3 jugadores que deben adivinar un número entero generado por la computadora
en forma aleatoria (entre 1 y 100). Los jugadores rotan tratando de adivinar el número. Gana
el jugador que adivina primero. Cuando el jugador da el número: si su distancia al número
que se desea adivinar está en los rangos presentados a continuación, la computadora
mostrará los siguientes mensajes.
[ 1 ... 10) ‡ Te quemas
[ 10 ... 20) ‡ Caliente
[ 20 ... 30) ‡ Tibio
[ 30 ... ∞) ‡ Frío
Inicio
Leer: p1, p2, p3, num
Si (num<=10)
      Presentar: “Te quemas”
           Si (num>=11)&&(num<=20)
                  Presentar: “Caliente”
             Si (num>=21)&&(num<=30)
                  Presentar: “Tibio”
             Sino
                  Presentar: “Frio”
Fin Si
FIN
3.5 Evaluar la expresión
4 / 2*3 / 6+6 / 2 / 1 / 5^2 / 4*2 = 0,000138
3.8. Si el valor de A es 4, el valor de b es 5 y el valor de C es 1, evaluar las siguientes
expresiones
a) B * A – B ^ 2 / 4 * C = 13,75
b) (A*B) / 3 ^ 2 = 2,22
c) ( ((B+C) / 2 * A + 10) * 3 * B) – 6 = 324
3.11 Encontrar el valor de cada una de las siguientes expresiones o decir si no es una
expresión valida:
a) 9 – 5 – 3= 1
b) 2 div 3 + 3 / 5= 1,2
c) 9 div 2 / 5= 0,9
d) 7 mod 5 mod 3= 1
e) 7 mod (5 mod 3)= 1
f) (7 mod 5) mod 3= 2
g) (7 mod 5 mod 3)= 1
h) ((12+3) div 2) / (8 – (5+1))= 3,75
i) 12/ 2*3= 2
j) raiz2 (cuadrado(4))= No valida
k) cuadrado (raiz2(4))= No valida
l) trunc(815) + redondeo (815)= No valida
3.12 Se desea calcular independientemente la suma de los números pares e impares
comprendidos entre 1 y 200
Inicio
Leer: num1, s1=0, s2=2
Si ((num%2)==2)&&(num=<200)
         s1= s1+num
          num++
          Presentar: s1
Sino ((num%2)==1)&&(num=<200)
         s2=s2+num
            num++
            Presentar: s2
Fin
3.13 Leer una serie de números distintos de cero (el último número de la serie es -99) y
obtener el número mayor. Como resultado se debe visualizar el número mayor y un mensaje
de indicación de número negativo, caso de que haya leído un número negativo.
Inicio
Leer: mayor, positivo=true
Mientras (n!=0)&&(n!= -99){
      Leer: n
         Si(│n│>mayor)
           mayor=n
                Si (n<0)
                       positivo= Falso
                Sino
                       positivo= True
Presentar: “mayor”
Si (positivo=falso){
Presentar: “negativo”
Fin
3.16 Se trata de escribir el algoritmo que permita emitir la factura correspondiente a una
compra de un artículo determinado, del que se adquiere una o varias unidades. El IVA a
aplicar es del 15 por 100 y si el precio bruto (precio venta mas IVA) es mayor de 1000 euros,
se debe realizar un descuento del 5 por 100
Inicio
numart, valorart, valsiniva, valconiva, valcondes,
Leer: valorart
Leer: numart
valsiniva= (valorar*numart)
valconiva=(valsiniva+(valsiniva*15))
Si (valconiva>1000)
         Valcondes=(valconiva-(valconiva*0.005))
         Presentar: “EL valor de los artículos es:”; valcondes
Sino
      Presentar: “EL valor de los artículos es:”; valconiva
FIN
3.18 Sumar los números pares del 2 al 100 e imprimir su valor
Inicio
Leer: suma=0, num=1
Si (num%2)==0
          suma= suma+num
Sino
          suma++
Hasta (num=100)
Presentar: “Suma”
Fin
3.23 Dados diez números enteros, visualizar la suma de los números pares de la lista,
cuantos números pares existen, y cuál es la media aritmética de los números impares.
Inicio
Leer: s1=0, s2=0, contr=0, m
Si (num[actual%2]==0)
   s1= s1+num-actual
  contr=contr+1
  num++
Sino
       s2=s2+ num[actual]
         num++
         m= s2/ num[actua;]
Presentar: “suma”
Presentar: “El numero de pares es”; “contr”
Presentar “n”
Fin
3.27 Desarrollar un algoritmo que determine en un conjunto de cien números naturales:
¿Cuántos son menores de 15?
¿Cuántos son mayores de 50?
¿Cuántos están comprendidos entre 25 y 45?
Inicio
Leer: num, contr=0
Si (num[actual]<15)
      contr=contr+1
      Presentar: “Los números menores de 15 son” , contr
Fin si
           contr==0
Si(num[actual]>50)
           Contr=contr+1
         Presentar: “Los números menores de 50 son” , contr
Fin si
          Contr==0
Si (num[actual]>25)&&(num[actual]<45)
            contr=contr+1
           Presentar: “Los números comprendidos son” , contr
Fin si
FIN