Skip to main content

Processing

TiposTypes deof operaciones
operations

LasThe operacionesoperations ato realizarbe conperformed loswith datosthe data puedencan ser de muy diversa naturaleza:be:

  • AritméticasArithmetic: operacionesclassic clásicasoperations deof suma,addition, resta,subtraction, multiplicaciónmultiplication yand división.
    division or maths operations.
     
  • LógicasLogics: comparaciones,comparisons, negación,negation, Y,AND, O.
    OR.
     
  • Concatenación:Concatenation: uniónunion deof variosseveral elementoselements (cadenasstrings deof caracterescharacters oor variables deof diferentesdifferent tipos)
    types)
     
  • BuclesLoops: ImplicaInvolves laperforming realizaciónactions derepeatedly. accionesIn dethis formacase repetida.it Enwill estebe casoconvenient convendráto distinguirdistinguish dostwo tipos:
    types:
     
    • NúmeroPreviously deknown vecesnumber aof repetirtimes lato acciónrepeat conocidothe previamente:action: we usaremoswill lasuse estructuras  Para (en inglésthe For ) oor RepetirRepeat .structures. 
    • NúmeroNumber deof vecestimes ato repetirrepeat dependiendodepending deon valoresvalues obtenidos:obtained: usaremoswe laswill estructurasuse the structures MientrasWhile  (While...do)  oor RepetirRepeat hastauntil que (Do .Do...while), segúndepending deseemoson evaluarwhether lawe condiciónwant antesto oevaluate despuésthe decondition labefore primeraor iteración.after Estasthe estructurasfirst veremositeration. queWe sonwill condicionalessee ademásthat dethese repetitivas.
      structures are conditional as well as repetitive.
       
  • CondicionalesConditional: implicaimplies lacarrying realizaciónout desome unasactions accionesor uothers otrasby tomando decisiones. Estructurasmaking Si-entoncesdecisions. Structures If-then (If-else), Según (Switch).
    and Switch.

LosWe treshave primerosalready tiposseen dethe operacionesfirst yathree lostypes hemosof idooperations viendoin enthe losprevious apartadosexamples. anteriores.We Noswill centraremosnow ahorafocus enon lasthe doslast últimastwo, ,although siwe bienwill introduciremosintroduce diversasvarious operacionesoperations enin losthe ejemplosexamples parato profundizardelve eninto sutheir uso.
use.

IteracionesIterations yand buclesloops

ParaTo practicarpractice conwith estasthese estructuras,structures, realizaremoswe unwill pequeño programa que nos calcule el promedio de varios números. En primer lugar el programa solicita la cantidad de númeroscreate a promediar,simple luegoprogram pidethat quewill secalculate introduzcanthe losaverage númerosof tantasseveral veces como le hayamos dichonumbers (aquímarks, estáfor laexample). repetición)First, Althe finalprogram muestrarequests elthe promedio.number Enof estemarks caso,to comoaverage, elthen númeroit deasks iteracionesthat esthe conocido,marks usaremosbe laentered instrucciónas many times as we have told it (here is the repetition). At the end, it shows the average. In this case, since the number of iterations is known, we will use the Para.FOR Asimismo,statement. utilizaremosLikewise, we will use operadores aritméticosarithmetic y deand concatenaciónconcatenation .
operators.

PasosSteps 1 yand 2: AnálisisAnalysis yand diagramaflow dechart flujoof delthe programaAverage Promedio deof n números
marks 
program

LosThe elementoselements implicadosinvolved serán:
are:

  • Inicio y finStart deand algoritmo.
    end of algorithm.
     
  • SalidasOutputs: SolicitarRequest númeronumber deof calificaciones,marks, mostrarshow promedio.
    average.
     
  • EntradasInputs: cantidadnumber deof númerosmarks yand númerosmarks ato promediar.
    be averaged.
     
  • AlmacenamientoStorage: númeronumber deof elementoselements (número entero)integer), entered números introducidosnumbers (númeroreal real)number), acumuladocumulative desum laof suma de númerosnumbers (númeroreal real)number), yand promedioaverage (númeroreal real)
    number)
     
  • ProcesamientoProcessing: iteraciones,loop, addition sumasand y división.division.

ElThe diagramaflowchart deassociated flujowith asociado a la instrucciónthe PARAFOR instruction esis elas siguiente:follows:

image-1663516782391.png

Diagrama de flujo:Flowchart:

image-1662139909769.png

PasosSteps 3, 4 y 5: Codificación,Coding, compilacióncompilation yand verificaciónchecking delof programathe PromedioAverage deof n númerosmarks conprogram with PSeInt

ComoAs vimoswe ensaw elin apartadothe anterior,previous despuéssection, deafter renombrarrenaming elthe algoritmoalgorithm, comenzamoswe porbegin definirby lasdefining the variables implicadasinvolved escribiendoby lawriting expresiónthe expression Definir

image-1662140249122.png

PSeInt permiteallows definiryou variasto define several variables delof mismothe tiposame entype laon mismathe línea,same separadasline, conseparated comas.with Comocommas. veis,As hemosyou definidocan unasee, únicawe variablehave defined a single numi dondevariable guardaremoswhere elwe númerowill introducidosave porthe lanumber personaentered usuariaby cadathe vez.
user each time.

ANext continuaciónwe solicitamosrequest lathe cantidadnumber deof númerosnumbers ato promediaraverage (Escribir), leemoswe laread respuestathe yresponse laand almacenamosstore enit lain the corresponding variable correspondiente (leer) eand inicializamoswe elinitialize valorthe devalue acumof enaccum to 0, aunquealthough enactually realidadit nowould seríanot necesariobe puestonecessary quesince esit elis valorthe asignadovalue porassigned defecto.by default.

image-1662141575309.png

ConWith elthe valorvalue deof nnum defined definidoby porthe eluser usuariocomes llegathe eltime momentofor derepetition: lawe repetición:will solicitaremosask althe usuariouser queto introduzcaenter una númeronumber nnum veces.times. ParaTo ellodo usaremosthis elwe comandowill use the For (Para) disponiblecommand enavailable lain ventanathe dewindow laon derecha.
the right.

image-1662141816788.png

AlWhen hacerwe clicclick sobreon elthe comando,command, sethe nosfollowing escribeninstructions lasare siguientes instrucciones en nuestra hoja de algoritmo
written:

image-1662141863542.png

ComoAs variable numérica habitualmente se define una variablea local variable (i, j, k...) queis haceusually dedefined, contador.which Elacts valoras iniciala escounter. The initial value is 1 yand el valorthe final elvalue númerois dethe vecesnumber queof queremostimes repetirwe lawant instrucción.to Enrepeat pasothe seinstruction. especificaThe el crecimiento del contador de una iteración a otrastep (enPaso) nuestrospecifies casothe degrowth unoof enthe uno)counter
from one iteration to another (in our case one by one)

PorFinally, últimoin en lathe  secuencia de acciones hemoswe dehave ponerto queput eswhat lowe quewant queremosto quebe serepeated repitaeach entime. cadaIn ocasión.our Encase, nuestrorequest casothe solicitarnumber, elread número,it leerloand yadd sumarloit ato losthe anterioresprevious guardandoones, elsaving resultadothe enresult lain variablethe acumaccum .variable.


image-1662142157986.png

ElThe valorvalue deof numi is serefreshed refrescaand yvaries varíain eneach cadaiteration, iteración,since puestowe quehave yaalready hemossaved guardadothe elvalue valorof delthe númeroprevious anteriornumber enin elthe acumulado.accumulated one.

EnIn una programaprogram esit muyis importantevery usarimportant elto use the minimum mínimonumber númeroof denecessary variables precisasso paraas nonot añadirto complejidadadd innecesariaunnecessary alcomplexity mismo.to it. (Principio KISS dePrinciple diseñoof deSoftware software)
Design)

HemosWe concatenadohave enconcatenated elthe mensajenumeric de solicitud lacounter variable numéricain dethe contador.request Esomessage. nosThis permiteallows mostrarleus alto usuarioshow enthe quéuser iteraciónwhat seiteration encuentra.they Laare instrucciónon. The Escribir seguidainstruction defollowed losby elementosthe aelements concatenarto separadosbe porconcatenated comasseparated losby colocacommas places them enon lathe mismasame línealine yand sinwithout separaciónseparation entrebetween ellosthem. PorThat esois eswhy precisoit consideraris losnecessary espaciosto deconsider separaciónthe enseparation lasspaces cadenasin dethe caracterescharacter questrings incluyamos.that we include.

Por último, asignamos el valor del promedio al cálculo correspondiente y mostramos el resultado nuevamente concatenando dos mensajes.

image-1662142637559.pngFinalmente le damos a Ejecutar y verificamos el proceso realizado.

image-1662142946677.gif

Nuevamente en la verificación del programa podemos experimentar la robustez del programa frente a fallos, introduciendo números decimales con coma, negativos, etc...Invitamos a realizarlo e introducir las instrucciones necesarias para prevenir dichos fallos.

Pasos 3, 4 y 5: Codificación, compilación y verificación del programa Promedio de n números con Scratch

En Scratch los bloques relacionados con las estructuras repetitivas se encuentran en Control y son Por siempre, Repetir y Repetir hasta que.

image-1662143361611.png

En nuestro caso, como el número estará definido, usaremos Repetir.

En primer lugar en el bloque Variables definiremos las variables necesarias.

image-1662143846692.png

De forma análoga, utilizando los bloques de Sensores, Apariencia, Variables explicados en los apartados de Entradas, Salidas y Datos, construimos el programa. En Operadores encontraremos los bloques necesarios para la realización de las operaciones aritmético, lógicas y de concatenación.

image-1662144265898.png

El programa finalmente con todos los elementos quedaría así:

image-1662144307622.png

Condicionales

Para practicar con estas estructuras, realizaremos un pequeño programa en el que tras solicitar una nota numérica, y verificar en primer lugar si el valor recibido es correcto, nos indicará si la nota corresponde a un APROBADO o un SUSPENSO.

Pasos 1 y 2: Análisis y diagrama de flujo del programa Boletín

Los elementos implicados serán:

  • Inicio y fin de algoritmo.
  • Salidas: Solicitar calificación numérica, mostrar calificación textual o mensaje de error.
  • Entradas: calificación numérica
  • Almacenamiento: calificación numérica (número real, puede tener decimales)
  • Procesamiento: lógicas (comparación,Y,O) y condicionales.

Diagrama de flujo:

image-1662145686642.png

En este caso hemos definido la condición de error mediante el operador lógico O, indicando que se considere errónea cualquier calificación menor que cero o mayor que 10. Este programa puede ser resuelto de forma análoga utilizando el operador Y, indicando que considere válida cualquier nota numérica mayor o igual que cero y menor o igual que 10.

Pasos 3, 4 y 5: Codificación, compilación y verificación del programa Boletín con PSeInt

En primer lugar renombramos el algoritmo (boletin en nuestro caso) y definimos las variables implicadas que solo es la calificación numérica (nota_num)

A continuación solicitamos la calificación numérica (Escribir) y la introducimos en la variable definida (Leer)

image-1663089130188.png

Ahora vendría la aplicación de la condición. Los comandos encargados en PSeInt de introducir las condiciones son Si-entonces, Según, Mientras y Repetir. Un ejemplo de la sintaxis de cada una se puede apreciar en la siguiente figura

image-1663089429905.png

  • Si-entonces: verifica que se cumple una condición o no y en función de ello ejecuta unas acciones. Se pueden anidar unas condicionales dentro de otras.
  • Según: se utiliza cuando una variable puede adoptar un número discreto de opciones (tipo menú) y se define el comportamiento ante ellas y ante el caso de que no coincida con ninguna.
  • Mientras: evalúa una condición en bucle y mientras es verdadera ejecuta una acción. Mezcla condicional y bucle.
  • Repetir-hasta que : ejecuta una acción en bucle hasta que una condición se cumple en cuyo momento se interrumpe. Mezcla condicional y bucle.

En nuestro ejemplo la condición solo se evalúa una vez por lo que descartamos las dos últimas, y el valor numérico introducido puede tener infinitos valores entre 0 y 10 por lo que la segunda tampoco es válida. Usaremos entonces el comando Si-entonces.

Vamos a aprovechar para introducir dos nuevos operadores, el operador Y representado por el carácter & y el operador representado por la doble barra || que se utilizan cuando queremos que se evalúe más de una condición simultáneamente. En nuestro caso podemos considerar dos opciones:

  • Si la nota introducida es menor que 0 o mayor que 10, no tiene sentido,y  hay que dar un mensaje de error. En caso contrario habrá que distinguir (condicional anidada) si es menor que 5 y entonces el mensaje dicta suspenso, y si es mayor o igual que 5 que será aprobado.

image-1663090532743.png

  • Si la nota introducida es mayor o igual que 0 y menor o igual que 10, es correcta y hay que distinguir (condicional anidada) si es menor que 5 o mayor. En caso contrario sacar el mensaje de error.

image-1663090588263.png

Las dos son correctas y elegir una u otra solo dependerá de la persona programadora y si prefiere usar operadores Y u O.

image-1663091091215.png

Finalmente sólo nos quedaría Ejecutar el programa y verificar su correcto funcionamiento.

Dejamos como ejercicio de ampliación el reformular este programa para que siga preguntando hasta que reciba una calificación válida. Como pista sugerimos explorar las posibilidades de la instrucción Repetir.

Pasos 3, 4 y 5: Codificación, compilación y verificación del programa Boletín con Scratch

En Scratch los bloques relacionados con las estructuras condicionales se encuentran en Control, junto a los bucles.

image-1663091520009.png

Los operadores lógicos Y y O se encuentran en Operadores, junto con los de comparación y los ya vistos anteriormente: aritméticos, de concatenación...

image-1663091770998.png

Como en todos los programas empezaremos definiendo las variables necesarias, en nuestro caso sólo una desde los bloques de Variables.

A continuación solicitaremos la calificación mediante el bloque disponible en Sensores y almacenaremos su respuesta en la variable recién creada.

Por último evaluaremos la respuesta obtenida mediante el bloque correspondiente de Control y utilizando los operadores lógicos de Operadores, según sea su valor ofreceremos el mensaje de error o escribiremos la calificación final  con el bloque correspondiente de Apariencia.

El código resultante sería el siguiente:

image-1663092570898.png

En este caso hemos utilizado el operador O porque Scratch no dispone de los operadores combinados menor o igual y mayor o igual, y así nos ahorramos el tener que combinar ambos operadores con un operador lógico O. Recordad el principio KISS.

Por último, verificamos el correcto funcionamiento del programa y su robustez frente a los errores más comunes. En Scratch ejecutamos haciendo clic sobre la bandera verde.

image-1663093519089.gif

Pruébalo aquí !!

{{@5685}}