viernes, 21 de junio de 2019

Ejercicios con PseInt de estructuras secuenciales - Avanzado


EJERCICIO #1


Construir un pseudocódigo que que calcule la distancia entre dos puntos cuyas coordenadas se ingresan al algoritmo.




EJERCICIO #2


Construir un algoritmo que convierta un número entre 8 y 15 a binario. (No utilizar estructuras condicionales y asumir que el usuario solo ingresa valores entre 8 y 15)




EJERCICIO #3


Un padre repartirá una cantidad de dinero entre sus cinco hijos. Cada uno recibirá una cantidad equivalente a:
  • Tamara: 85% del monto recibido por Josué
  • Josué: 27% de la cantidad a repartir
  • Caleb: 23% del monto total recibido entre Josué y Daniel
  • Daniel: 25% de la cantidad a repartir
  • David: lo que queda del dinero a repartir

Dada la cantidad de dinero a repartir, desarrolle un pseudocodigo que determine cuánto de dinero recibirá cada hijo. (Asumimos que el usuario ingresa valores positivos en la cantidad de dinero a repartir)




EJERCICIO #4


Realizar un pseudocódigo que permita ingresar el número de lados de un polígono regular y la medida de sus lados. Luego muestre el perímetro y área del polígono(Asumimos que el usuario ingresa valores positivos)




EJERCICIO #5


Desarrollar un pseudocódigo que permita ingresar una oración, luego devuelva el texto en minúsculas, mayúsculas y la primera letra en mayúsculas y las demás en minúsculas.

Ejercicios con PseInt de estructuras secuenciales - Intermedio


EJERCICIO #1


Construir un pseudocódigo que permita ingresar el precio base de un vehículo y calcule la comisión e impuesto que son el 12% y 18% y el precio final (Asumimos que el usuario solo ingresa valores mayores a cero en el precio base)




EJERCICIO #2


Realizar un pseudocódigo que solicite los nombres, apellidos, sueldo base, número de hijos y número de horas extra de un trabajador. Luego debe mostrar en pantalla su sueldo bruto que es el sueldo base más 100 soles por hijo y 25 soles por hora extra, luego el monto de su AFP (descuento) que equivale al 11% del sueldo bruto y finalmente su sueldo neto que es el resultado del sueldo bruto menos su AFP (Asumimos que el usuario solo ingresa valores mayores a cero en el sueldo base y mayores o iguales a cero en número de hijos y horas extra)




EJERCICIO #3


Realizar un pseudocódigo que permita ingresar un el sueldo base de un vendedor, el valor de las 3 ventas que realiza y muestre la comisión por sus ventas(el 10% del total de ventas) y su sueldo final (Asumimos que el usuario ingresa valores positivos)




EJERCICIO #4


Realizar un pseudocódigo que permita ingresar un el nombre de un equipo, los partidos ganados, empatados y perdidos y muestre su puntaje, si por cada ganado le dan 3 puntos, por empatado 1 y por perdido 0 (Asumimos que el usuario ingresa valores positivos)




EJERCICIO #5


Desarrollar un pseudocódigo que permita ingresar un monto de inversión en soles y lo reparta en la refacción de cinco avenidas de la siguiente manera:
  • Avenida La Mar - 35% del monto
  • Avenida Abancay - 25% del monto
  • Avenida 28 de Julio - 10% del monto
  • Avenida Aviación - 15% del monto
  • Avenida Tacna - restante del monto
Mostrar cuanto le correspondería a cada avenida.

lunes, 17 de junio de 2019

Ejercicios con PseInt de estructuras secuenciales - Básico


EJERCICIO #1


Construir un pseudocódigo para calcular el perímetro y área de un rectángulo. (Asumimos que el usuario solo ingresa valores mayores a cero y en metros)




EJERCICIO #2


Realizar un pseudocódigo que pida el radio de un círculo y devuelva el valor del área y su perímetro (Asumimos que el usuario solo ingresa valores mayores a cero y en metros)




EJERCICIO #3


Realizar un pseudocódigo que permita ingresar un número y nos devuelve el doble, la mitad y el cuadrado de dicho número




EJERCICIO #4


Crear una calculadora de adición, sustracción y multiplicación en pseudocódigo, que permita ingresar dos números y muestre la suma, resta y producto.




EJERCICIO #5


Desarrollar un pseudocódigo que convierta grados centígrados a grados Fahrenheit, grados kelvin y grados Rankine. El algoritmo debe mostrar los grados centígrados y las conversiones obtenidas.

jueves, 13 de junio de 2019

Estructuras repetitivas REPETIR HASTA QUE - PSeInt (Ejemplo)

Supongamos el siguientes enunciados:

  1. Elabore un programa que permita ingresar los nombres, apellidos y nota final de un estudiante, si la nota ingresada se encuentra fuera del rango de 0 a 20, el programa debe pedir nuevamente la nota hasta que esta se encuentre en el intervalo de 0 a 20. El programa no debe pedir nuevamente el nombre ya ingresado o reiniciarse.

Solución:


  • Primero debemos definir cuales serán las variables con las que trabajaremos.  En el pseudocódigo se hace mediante la palabra reservada Definir, en los lenguajes de programación de alto nivel se hace mediante las palabras reservadas: var, int, String, Float, Decimal, etc. 

Definir nombres, apellidos Como Caracter
Definir nota Como Entero

  • Luego debemos pedir que el usuario ingrese los datos del estudiante, pero para ello debemos escribir en pantalla un mensaje pidiéndole dicho valor. Para mostrar texto se usa la palabra reservada Escribir (el los lenguajes de alto nivel se usan palabras reservadas como cout, echo, etc) y para leer un valor que el usuario ingresa por teclado se usa la palabra reservada Leer (el los lenguajes de alto nivel se usan palabras reservadas como cin, scanner, etc.)

Escribir "Ingrese los nombres del estudiante"
Leer nombres
Escribir "Ingrese los apellidos del estudiante"
Leer apellidos

  • Empleamos la estructura REPETIR HASTA QUE (el los lenguajes de alto nivel se usan palabras reservadas como DO WHILE) que nos va permitir evaluar el valor ingresado.

Repetir
   Escribir "Ingrese la nota final del estudiante";
   Leer nota
Hasta Que nota <= 20 Y nota >= 0

Nota: Se inicia el bucle pidiendo la nota, si esta es menor de 0 o mayor de 20, se repite el proceso, pero si la nota se encuentra dentro del rango de 0 a 20, solo se ejecutaría una vexz el bucle, pero mientras el usuario ingrese una nota no válida, se le estará pidiendo que ingrese la corrercta.

Código completo:

Proceso nota_valida
   Definir nombres, apellidos Como Caracter
   Definir nota Como Entero

   Escribir "Ingrese los nombres del estudiante"
   Leer nombres
   Escribir "Ingrese los apellidos del estudiante"
   Leer apellidos

   Repetir
      Escribir "Ingrese la nota final del estudiante";
      Leer nota
   Hasta Que nota <= 20 Y nota >= 0

   Escribir "Los datos del estudiante son: ", apellidos, " ,", nombres
   Escribir "Su nota final es: ", nota
FinProceso

Estructuras repetitivas MIENTRAS - PSeInt (Ejemplo)

Supongamos el siguientes enunciados:

  1. Elabore un programa que permita ingresar un número y calcule el número de cifras.

Solución:


  • Primero debemos definir cuales serán las variables con las que trabajaremos.  En el pseudocódigo se hace mediante la palabra reservada Definir, en los lenguajes de programación de alto nivel se hace mediante las palabras reservadas: var, int, String, Float, Decimal, etc. 

Definir num, cifras Como Entero
cifras <- 1

  • Luego debemos pedir que el usuario ingrese la edad de la persona, pero para ello debemos escribir en pantalla un mensaje pidiéndole dicho valor. Para mostrar texto se usa la palabra reservada Escribir (el los lenguajes de alto nivel se usan palabras reservadas como cout, echo, etc) y para leer un valor que el usuario ingresa por teclado se usa la palabra reservada Leer (el los lenguajes de alto nivel se usan palabras reservadas como cin, scanner, etc.)

Escribir "Ingrese el número"
Leer num

  • Cuando ingresemos el número, desconocemos el número de cifras de este, entonces utilizamos una estructura repetitiva que nos permite repetir sentencias mientras se cumpla una condición, en este caso, utilizamos la sentencia MIENTRAS (el los lenguajes de alto nivel se usa por lo general la palabra reservada WHILE), esta permite establecer una condición, y si se cumple esta condicion el bucle se ejecuta, hasta que la condición sea falsa.

Mientras num / 10 > 1 Hacer
   cifras <- cifras + 1
   num <- TRUNC(num / 10)
FinMientras

Nota: Se inicia el bucle evaluando la condición que al dividir el número entre 10, este resulta mayor que 1, en caso se introduzca 7, este resultado no será meor de 1 y la cantidad de cifras es 1, pero si se introduce 12 la división resulta 1.2 y al ser mayor de 1, se aumenta cifras de 1 a 2 y el numero se divide entre 10 quitándole la parte decimal con la función TRUNC (ver aquí más)

Código completo:

Proceso calcular_cifras
   Definir num, cifras Como Entero
   cifras <- 1

   Escribir "Ingrese el número"
   Leer num

   Mientras num / 10 > 1 Hacer
      cifras <- cifras + 1
      num <- TRUNC(num / 10)
   FinMientras

   Escribir "La cantidad de cifras del número es: ", cifras
FinProceso

Estructuras repetitivas PARA - PSeInt (Ejemplo)

Supongamos el siguientes enunciados:

  1. Elabore un programa que permita ingresar la edad de diez personas e imprima en pantalla la edad mayor

Solución:


  • Primero debemos definir cuales serán las variables con las que trabajaremos.  En el pseudocódigo se hace mediante la palabra reservada Definir, en los lenguajes de programación de alto nivel se hace mediante las palabras reservadas: var, int, String, Float, Decimal, etc. 

Definir edad, edad_max Como Entero
edad_max <- 0

  • Luego debemos pedir que el usuario ingrese la edad de la persona, pero para ello debemos escribir en pantalla un mensaje pidiéndole dicho valor. Para mostrar texto se usa la palabra reservada Escribir (el los lenguajes de alto nivel se usan palabras reservadas como cout, echo, etc) y para leer un valor que el usuario ingresa por teclado se usa la palabra reservada Leer (el los lenguajes de alto nivel se usan palabras reservadas como cin, scanner, etc.)

Escribir "Ingrese la edad de la persona #"
Leer edad

  • Esas sentencias para leer edades deben de repetirse durante 10 veces, entonces utilizamos una estructura repetitiva que nos permite repetir sentencias un determinado número de veces, en este caso, utilizamos la sentencia PARA (el los lenguajes de alto nivel se usa por lo general la palabra reservada FOR), esta permite establecer un valor de inicio, luego un valor final y de cuanto en cuanto irá avanzando el bucle.

Para cont<-1 Hasta 10 Con paso 1 Hacer
   Escribir "Ingrese la edad de la persona #", cont
   Leer edad
   Si edad > edad_max Entonces
      edad_max <- edad
   FinSi
FinPara

Nota: Se inicia el bucle con la variable "cont" con valor 1, luego de la palabra reservada "hasta" se coloca el ultimo valor que tomará la variable "cont", en este caso 10 porque queremos repetir el proceso 10 veces. Finalmente, la palabra resevada "Con paso" nos indica de cuanto en cuanto avanza el bucle, en nuestro caso avanzaría de 1 en 1. De tal modo que inicia en 1,sigue 2, luego 3 y así sucesivamente hasta llegar a 10

Código completo:

Proceso calcular_edad 
   Definir edad, edad_max Como Entero
   edad_max <- 0

   Para cont<-1 Hasta 10 Con paso 1 Hacer
      Escribir "Ingrese la edad de la persona #", cont
      Leer edad
      Si edad > edad_max Entonces
         edad_max <- edad
      FinSi
   FinPara

   Escribir "La edad mayor del grupo es: ", edad_max
FinProceso

lunes, 10 de junio de 2019

Lenguajes de intercambio

¿Qué es un lenguaje de intercambio?

Un lenguaje de intercambio es un formato para el intercambio de datos entre aplicaciones informáticas de manera que no necesitan estar codificados en el mismo lenguaje de programación o instalados en un mismo sistema operativo, pero su uso va más allá.

¿Cuándo surgieron?

Surgen en los inicios de los años 90 cuando la proliferación de aplicaciones empezó a mostrar un alarmante problema a futuro que sería: "¿Cómo hacer que dos aplicaciones puedan comunicarse entre ellas si se encuentran codificadas en diferentes lenguajes de programación?"

¿Qué beneficios traen?

Transmitir información entre un programa realizado en JAVA y otro en PHP se podría realizar almacenando los datos en una base de datos mediante el primer programa y el segundo lea la base de datos, pero que pasaría si una de las aplicaciones no pudiera tener acceso a la base de datos y se requiere que la aplicación en JAVA reciba los datos desde la aplicación en PHP. Este caso se da cuando construimos aplicaciones móviles para Android, este si bien puede manejar su propia base de datos como un SQLite, no podría leer directamente datos desde un servidor MySQL, mientras que la aplicación en PHP si puede hacerlo y enviarle la información al programa en JAVA, y para que ambos entiendan la información a enviar es que se aprovecha un lenguaje de intercambio mediante Web Services.

¿Cuáles son los más usados?

Actualmente tenemos tres: XML, Json y YAML, XML es un lenguaje de marcado formal, mientras que Json y YAML son formatos inspirados en la sintaxis humana más que la de las computadoras utilizando texto plano en su totalidad, todos tienen sus ventajas y desventajas y están deben ser analizadas por los proveedores de Web Services y API Rest o SOAP para elegir el más conveniente

XML (Extensible Markup Language)

Inicialmente apareció el XML, un tipo de lenguaje de marcado como el HTML que mediante etiquetas permitía estandarizar la forma de intercambiar datos entre aplicaciones.

Por ejemplo si queremos transmitir la siguiente información: un usuario llamado Jhon que posee un correo que es jhon@mail.com y un número de teléfono que es 999999999 mediante XML, haríamos lo siguiente:

<persona>
   <nombre>Jhon</nombre>
   <contacto>
      <correo>jhon@mail.com</correo>
      <telefono>999999999</telefono>
   </contacto>
</persona>

Podemos identificar que existe una etiqueta llamada persona que contiene como atributos un nombre y un contacto, este contacto a la vez contiene información sobre un correo y un teléfono.


Json (JavaScript Object Notation)

Inicialmente apareció el XML, un tipo de lenguaje de marcado que nació de la notación en texto plano de los objetos de JavaScript, posee una simpleza que lo hizo muy popular e incluso uno de los responsables que el lenguaje de marcado HTML sobreviviera hasta nuestros días frente a la que iba ser su evolución (XHTML).

Por ejemplo si queremos transmitir la siguiente información: un usuario llamado Jhon que posee un correo que es jhon@mail.com y un número de teléfono que es 999999999 mediante Json, haríamos lo siguiente:

{
   "persona"{
      "nombre" : "Jhon"
      "contacto"{
         "correo" : "jhon@mail.com"
         "telefono" : "999999999"
      }
   }
}

Podemos identificar que existe una campo llamado persona que contiene como atributos un nombre y un contacto, este contacto a la vez contiene información sobre un correo y un teléfono, todos escritos como texto plano entre comillas dobles.

YAML(Ain't Markup Language)

Su traducción significa: "no es un lenguaje de marcado", aunque en su concepción se le trató y llamó como un lenguaje de marcado al igual que XML, actualmente se hace una distinción entre los lenguajes de marcado y los formatos para intercambio de datos como YAML o Json considerándolos como lenguajes de "marcado ligero".

Por ejemplo si queremos transmitir la siguiente información: un usuario llamado Jhon que posee un correo que es jhon@mail.com y un número de teléfono que es 999999999 mediante Yaml, haríamos lo siguiente:

---
   persona
     -nombre: Jhon
      contacto:
         -correo :jhon@mail.com
          telefono :999999999

Podemos identificar que existe una etiqueta llamada persona que contiene como atributos un nombre y un contacto, este contacto a la vez contiene información sobre un correo y un teléfono.




Ejercicio con PseInt usando funciones

Las funciones dentro de PseInt se pueden crear mediante la palabra reservada SubProceso, SubAlgortimo o Función. Esto dependerá del estilo d...