2do Secundaria
Computación
A D D I N U
1 I
PSe Int
Razonamiento Ra zonamiento y Demostración
Conceptualiza un conjunto. ü Identifica los tipos de conjuntos. característica ü Clasifica los conjuntos según la característica de sus elementos. elementos . ü
PSeIn t es que se inician te t n a i d u tu t s e s o l a tir ra asis ti tá pensado pa acionales. ta pu t PSeIn t es tá m o c s o m tm t i r o g l gramas o a trucción de pro o para to ac t ta en la cons tr er con t m i r p o m o c r a za z i l tii o se suele u t uras de tu truc t El pseudocódig es tr e d o s u l e o m os básicos co to p t r con trroducir conce in t ener que lidia te t n i s , c tc t e , s e l b aria va es, v te Es te trrol, expresion con t lenguaje real. n u e d s i x a ta t n e la si ticularidades d area de ta las par ti e la t te n t a i p i c n i r p l a itarle acil ta fa ende f te ando un ta tware pre t w so f t uaje presen t g n e l o d u e s p e te t tmos en es tm nas escribir algori le ademas algu r a d n i r b y , s a i tenc asis te o de ayudas y to trrar errores y conjun t con t n e a n e d u y a ue le as adicionales q ta erramien t he h itmos. e los algor tm d a c i g ó l a l r e comprend
COLEGIO ALBERT EINSTEIN
1
2do Secundaria
Computación
A N A M S E
1 1
Algoritmos Aprendizajes Esperados ü
Conocer y utilizar las diversas formas de repre sentar los algoritmos b) PSEUDOCÓDIGO
¿Qué es un Algoritmo?
m Es
una forma de representar un algoritmo, que se acerca a los lenguajes deprogramación y con elementos del lenguaje natural.
dene algoritmo como un conjunto ordenado y nito de operaciones que permite hallar la solución de un pro blema. Método y notación en las distintas fórmulas del cálculo. El algoritmo constituye un método para resolver un problema mediante una secuencia de pasos a seguir. Dicha secuencia puede ser expresada en forma de dia grama de ujo con el n de seguirlo de una forma más sencilla. De acuerdo con el concepto anterior, el algoritmo po dría estar incluido en la denición de programa de or denador de la Ley de Propiedad Intelectual (TRLPI), al referirse a éste como toda secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o indi rectamente, en un sistema informático para realizar una función o una tarea o para obtener un resultado deter minado, cualquiera que fuere su forma de expresión y jación.
m El
pseudocódigo se compone de: - Cabecera - Declaraciones - Cuerpo
m La
cabecera es la parte del algoritmo que po see el nombre de éste. m Las declaraciones son las variables y constan tes que utilizará el algoritmo para resolver el problema. m El cuerpo son el conjunto de instrucciones o acciones que están entre el Inicio y el Fin. Representación mediante Pseudocódigo:
a
Todo algoritmo puede ser representado por:
a) Lenguaje natural. b) Pseudocódigo. c) Diagramas de flujo. d) Lenguajes de programación.
a) LENGUAJE NATURAL m Problema:
Sumar 2 números.
mRepresentación
c) DIAGRAMAS DE FLUJO Un diagrama de ujo es un diagrama que utiliza símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas unidas por echas, denominadas líneas de ujo, que indican las secuencia que debe ejecutar el algo ritmo
mediante Lenguaje natural:
- Inicio Suma - Ingresar primer número - Guardar número en variable a - Ingresar segundo número - Guardar número en variable b - Sumar a y b - Guardar resultado en R - Mostrar R - Fin m Desventajas: - Ambiguo - Extenso COLEGIO ALBERT EINSTEIN
2
2do Secundaria
A N A M S E
1 2
Computación
Simbologías de diagramas, conceptos básicos Aprendizajes Esperados ü
Conoce adecuadamente los elementos de un programa
DIAGRAMA DE FLUJO Es un esquema para representar grácamente un algo ritmo. Se basan en la utilización de diversos símbolos para representar operaciones especícas, es decir, es la representación graca de las distintas operaciones que se tienen que realizar para resolver un problema, con indi cación expresa el orden lógico en que deben realizarse. Se les llama diagramas de ujo porque los símbolos uti lizados se conectan por medio de echas para indicar la secuencia de operación. Para hacer comprensibles los diagramas a todas las personas, los símbolos se someten a una normalización; es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de ujo. Esto trajo como conse cuencia que sólo aquel que conocía sus símbolos, los podía interpretar. La simbología utilizada para la elabo ración de diagramas de ujo es variable y debe ajustarse a un patrón denido previamente. El diagrama de ujo representa la forma más tradicional y duradera para especicar los detalles algorítmicos de un proceso. Se utiliza principalmente en programación, economía y procesos industriales.
SÍMBOLOS UTILIZADOS EN LOS DIAGRAMAS DE FLUJO
Este se utiliza para representar el inicio o el fin de un algoritmo. También puede representar una parada o una interrupción programada que sea necesaria realizar en un programa. Este se utiliza para un proceso determinado, es el que se utiliza comúnmente para representar una instrucción, o cualquier tipo de operación que origine un cambio de valor. Este símbolo es utilizado para representar una entrada o salida de información, que sea procesada o registrada por medio de un periférico.
IMPORTANCIA DE LOS DIAGRAMAS DE FLUJO Los diagramas de ujo son importantes porque nos facili ta la manera de representar visualmente el ujo de datos por medio de un sistema de tratamiento de información, en este realizamos un análisis de los procesos o proce dimientos que requerimos para realizar un programa o un objetivo. Por ejemplo: si nosotros queremos realizar una pizza, primero necesitamos los ingredientes, este ya seria un proceso, luego de haber conseguido los ingredientes ne cesitamos realizar la masa, este seria otro proceso, luego realizamos la salsa, este seria otro procesos y nalmente unimos todo lo que hemos hecho y agregamos los com plemento como el jamón, el queso, etc. Para la realiza ción de esta pizza ya contamos con 4 procesos los cual podemos desarrollar en un diagrama de ujo y unirlos en el mismo. Para así obtener un producto nal que seria nuestra pizza.
COLEGIO ALBERT EINSTEIN
Este es utilizado para la toma de decisiones, ramificaciones, para la indicación de operaciones lógicas o de comparación entre datos. Este es utilizado para enlazar dos partes cualesquiera de un diagrama a través de un conector de salida y un conector de entrada. Esta forma un enlace en la misma página del diagrama.
3
2do Secundaria
Computación
Este es utilizado para enlazar dos partes de un diagrama pero que no se encuentren en la misma pagina. Este es utilizado para indicar la secuencia del diagrama de flujo, es decir, para indicar el sentido de las operaciones dentro del mismo. Este es utilizado para representar la salida de información por medio de la impresora. Este es utilizado para representar la salida o para mostrar la información por medio del monitor o la pantalla.
( ( x 2 5 ) ) = 2 4 = 2 2 x 5 2
Ejercicios de Aplicación
COLEGIO ALBERT EINSTEIN
4
2do Secundaria
A N A M S E
1 3
Computación
Variables, Constantes Aprendizajes Esperados ü
Reconocer y utilizar algoritmos, pseudocódigos como herramientas para el bosquejo de solución de un problema
Constantes
Tipos de Datos Simples
Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Ejemplo: pi = 3.1416Constantes
Datos Numéricos:
Permiten representar valores escalares de forma numéri ca, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.
Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa. Ejemplo:
Datos lógicos:
pi = 3.1416 Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una compara ción entre otros datos (numéricos o alfanuméricos).
Variable
Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identicarla dentro de un algoritmo.
Datos alfanuméricos (string):
Es una secuencia de caracteres alfanuméricos que per miten representar valores identicables de forma des criptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.
Ejemplo: area = pi * radio ^ 2
INSTRUCCIONES DE ENTRADA SALIDA Y ASIGNACION
Las variables son : el radio, el area y la constate es pi Tipos De Datos
ENTRADA Y SALIDA DE INFORMACION Los cálculos que realizan las computadoras requieren para ser útiles la entrada de datos necesarios para ejecu tar las operaciones que posteriormente se convertirán en resultados, es decir, salida. Las operaciones de entrada permiten leer determinados valores y asignarlos a determinada variables. Esta en trada se conoce como operación de lectura ( read). Los datos de entrada se introducen al procesador mediante dispositivos de entrada. La salida puede aparecer en un dispositivo de salida. La operación de salida se denomi na escritura (write) En la escritura de algoritmos las acciones de lectura y escritura se representan por los formatos siguientes: Leer (lista de variables de entrada) Escribir (lista de variables de salida)
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.
COLEGIO ALBERT EINSTEIN
5
2do Secundaria
Computación
PROCESO DE ASIGNACION La operación de asignación es el modo de darle valores a una variable. La operación de asignación se representa con el símbolo u operador. La operación de asignación se conocen como instrucciones o sentencia de asignación cuando se reere a un lenguaje de progra mación. El formato general de una operación de asignación es:
OPERADORES LOGICOS (BOOLEANOS) un segundo tipo de expresiones es la expresión lógica o booleana, cuyo valor es siempre verdadero o falso. Se denomina también expresiones booleanas. Las expresiones lógicas se forman combinando constan tes lpogicas, variables lógicas y otras expresiones utili zando los operadores not, and, y or, y los operadores re lacionales (de relación o comparación ) =, <, >, <=, >=, <>.
nombre de la variable <- expresión
OPERADORES RELACIONALES Los operadores relacionales o de relación permiten reali zar comparaciones de valores de tipo numérico o carác ter. Los operadores de relación sirven para expresar las condiciones en los algoritmos. Los operadores de relación se recogen en la Tabla.
La echa (operador de asignación) se sustituye en otros lenguajes por = (BASIC, FORTRAN ) o = Pascal). Sin embargo, es preferible el uso de la echa en la redac ción del algoritmo, pera evitar ambigüedades dejando el uso del símbolo = exclusivamente para el operador de igualdad. La operación de asignación: A <5; Signica que a la variable A se le ha asignado el valor 5. Las operaciones de asignación se clasican en: - Asignación aritmética - Asignación lógica - Asignación de caractéres
Operador
< > = <= => <>
Mayor que Menor que Igual que Mayor o Igual a Menor o Igual a Distinto de
OPERADORES LOGICOS Los operadores lógicos o boléanos básicos son not(no), and (y), y or (o). La tabla recoge el funcionamiento de dichos operadores.
EXPRESIONES las expresiones son combinaciones de constantes, varia bles, símbolos de operaciones, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional; por ejemplo: a - ( b + 3 ) /c
( ( x 2 5 ) ) = 2 = 2 4 2 x 5 2
Una expresión consta de operadores y operando. Según sea el tipo de objetos que manipulan, se clasican las expresiones en: - Aritméticas - Relaciónales - Lógicas - Carácter
Ejercicios de Aplicación
Escribir un algoritmo que lea dos números e imprima del primero su cuadrado y del segundo su cubo.
OPERADORES ARITMETICOS las expresiones aritméticas son análogas a las fórmulas matemáticas. Las variables y constantes son numéricas (real o entera) y las operaciones son las aritméticas. + Suma Resta * Multiplicación / División ** Exponenciación div División entera mod Módulo (resto)
2) Algoritmo que lea dos números, calculando y escri biendo el valor de su suma, resta, producto y división.
Operadores DIV y MOD
El símbolo / se utiliza para la división real y el operador div – en algunos lenguajes, por ejemplo BASIC. A div B Sólo se pueden utilizar si A y B son expresiones enteras y obtienen la parte entera A/B. Por consiguiente. 19 div 6 toma el valor 3. COLEGIO ALBERT EINSTEIN
Signicado
6
2do Secundaria
A N A M S E
1 4
Computación
Identificadores, palabras reservadas Aprendizajes Esperados ü
Comprender y entender cada una de las fases de desarrollo de un programa
IDENTIFICADORES Y PALABRAS RESERVADAS
cadores generalmente son entidades en tiempo de com pilación, es decir, en tiempo de ejecución el programa compilado contiene referencias a direcciones de memo ria y offsets más que identicadores textuales (estas di recciones de memoria u offsets, han sido asignadas por el compilador a cada identicador). En lenguajes interpretados los identicadores están fre cuentemente en tiempo de ejecución, a veces incluso como objetos de primera clase que pueden ser manipu lados y evaluados libremente. En Lisp, éstos se llaman símbolos.
Identicador Los identicadores (IDs) son símbolos léxicos que nom bran entidades. El concepto es análogo al de “nombre”. Los identicadores se usan ampliamente en práctica mente todos los sistemas de procesamiento de la infor mación. Nombrar las entidades hace posible referirse a las mismas, lo cual es esencial para cualquier tipo de procesamiento simbólico. Identicadores en lenguajes informáticos
Los compiladores e intérpretes normalmente no asignan ningún signicado semántico a un identicador basado en la secuencia de caracteres actual. Sin embargo, hay excepciones. Por ejemplo:
En los lenguajes informáticos, los identicadores son ele mentos textuales (también llamados símbolos) que nom bran entidades del lenguaje. Algunas de las de entidades que un identicador puede denotar son las variables, las constantes, los tipos de dato, las etiquetas, las subrutinas (procedimientos y funciones) y los paquetes.
En Perl una variable se indica utilizando un prejo llama do sigil, que especica aspectos de cómo se interpreta la variable en las expresiones.
En muchos lenguajes algunas secuencias tienen la forma léxica de un identicador pero son conocidos como pa labras clave (o palabras reservadas). Lo habitual es que si un identicador se corresponde con una palabra clave o reservada, éste ya no pueda utilizarse para referirse a otro tipo de entidades como variables o constantes (en unos pocos lenguajes, como PL/1, esta distinción no está del todo clara).
En Ruby una variable se considera automáticamente como inmutable si su identicador empieza con una le tra mayúscula. En Fortran, la primera letra de una variable indica si por defecto es creada como entero o como otante. Palabras reservadas Las palabras reservadas son palabras claves las cuales tienen un signicado especial dentro del lenguaje, estas palabras están en el idioma inglés o algunas solo son abreviaturas de éstas. A continuación se muestra un lis tado de algunas de las palabras reservadas de Turbo Pas cal, es decir aquellas que no pueden ser utilizadas para darle nombre a nuestras variables, constantes, funciones o procedimientos:
Los lenguajes informáticos normalmente ponen restric ciones en qué caracteres pueden aparecer en un iden ticador. Por ejemplo, en las primeras versiones de C y C++, los identicadores están restringidos para que sean una secuencia de una o más letras ASCII, dígitos numéricos (que en ningún caso deben aparecer como primer carácter) y barras bajas. Las versiones posteriores de estos lenguajes, así como otros muchos más lengua jes modernos soportan casi todos los caracteres Unicode en un identicador. Una restricción común es que no está permitido el uso de espacios en blanco ni operado res del lenguaje. En lenguajes de programación compilados, los identi COLEGIO ALBERT EINSTEIN
7
2do Secundaria
Absolute Asm Circle Destructor Downto External Forward If Inline Label Not Or Procedure Record Set String Type Uses While
Computación
And Begin Const Div Else File Function Implementation Interface Mod Object Packed Program Rectangle Shl Then Unit Var With
Array Case Constructor Do End For Goto In Interrupt Nil Of Private Random Repeat Shr To Until Virtual Xor
No es necesario aprendernos todas estas palabras en un solo día, ya que con el tiempo y la práctica habremos aprendido un gran número de éstas, sin siquiera darnos cuenta. Para conocer más palabras reservadas, puede encontrar información en el índice de temas que vienen incluidos en la Ayuda de Turbo Pascal.
( ( x 2 5 ) ) = 2 = 2 2 x 4 5 2
Ejercicios de Aplicación
CALCULAR EL ÁREA DE UN RECTÁNGULO Proceso sin_titulo Escribir “ingrese la base del rectangulo” Leer b Escribir “ingrese la altura” Leer h a<-b*h Escribir “el area del rectangulo es : “, a FinProceso SUMA,MULTIPLICACIÓN Y DIVISIÓN Proceso sin_titulo Escribir “ingrese el primer valor” Leer a Escribir “ingrese el segundo valor” Leer b s<-a+b m<-a*b d<-a/b Escribir “la suma de los valores es: “, s Escribir “la multiplicacion de los valores es: “, m Escribir “la division de los valores es: “, d Finproceso
COLEGIO ALBERT EINSTEIN
8
2do Secundaria
A N A M S E
7 1 y 5
Computación
structuras básicas de programación Aprendizajes Esperados ü
Comprender los conceptos de tipos de datos}, variables, instrucciones de entrada, salida y asignación
Estructuras de control Las estructuras de control tienen una nalidad bastante denida: su objetivo es ir señalando el orden en que tie nen que sucederse los pasos de un algoritmo. Veamos un ejemplo: supongamos que acabamos de mostrar un mensaje en la pantalla que pregunte al usua rio “¿desea seguir adelante?”. Obviamente, de la respuesta del usuario va a depender la siguiente acción del programa. Por ejemplo, si este mensaje se nos presenta tras haber pulsado un botón de cerrar la aplicación, si nosotros elegimos “Sí”, la aplica ción se cerrará, y si elegimos “No”, la aplicación seguirá adelante. El programador tiene que haber escrito código para las dos posibilidades, aunque cuando el programa esté funcionando, sólo se elegirá una. Las estructuras de control son de tres tipos: 1. Secuenciales 2. Selectivas 3. Repetitivas
La palabra condición nos sugiere frases como “lo haré a condición de que me dejes...”. Analicemos esta frase con un poco de detenimiento. Decimos “lo haré”, pero, ¿”lo haré” siempre, pase lo que pase? o, por el contrario, ¿”lo haré” si antes hay algo que debe cumplirse? En la frase está claro que no se ha di cho “lo haré” sin más, si no que hay como una pequeña cláusula “SI me dejas tu AUTO”. Ya nos ha vuelto a aparecer el SI; esto parece querer decir que debe ser algo importante. Lo que signica “SI me dejas tu AUTO” es lo siguiente, en caso de que la acción “dejarme tu auto” sea cierta (o verdad, usaré ambas palabras), yo “lo haré”. Pero si la acción “dejarme tu auto” es falsa (o mentira), yo NO “lo haré”. En esto reside el “quid” de las estructuras que vamos a ver a continuación: se EVALUA una condición, y se ac túa en consecuencia, según que la condición sea VERDADERA o FALSA.
Estructuras secuenciales Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero se haya escrito será el que primero se ejecute (al implementarlo, por ejemplo). Veamos un ejemplo: queremos leer el radio de un cír culo, calcular su área y mostrar por pantalla al usuario el resultado. Declaracion de variables REAL: radio, area n declaracion de variables
Estructuras selectivas Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o al ternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra. Alternativas simples Son los conocidos “si... entonces”. Se usan de la siguien te manera (una vez más, la escritura es más o menos per sonal, siempre que las intenciones queden claras para todos): yo quiero evaluar una condición, y si se cumple (es decir, si es cierta), entonces realizaré una serie de pasos. Esto lo podemos escribir así: SI se cumple la condicion, ENTONCES: Hago el paso 1 .... Hago el paso N n del SI Muy estrictamente, sería: SI se cumple la condicion, ENTONCES: inicio Hago el paso 1
inicio mostrar por pantalla ‘dame el radio del circulo’ leer del teclado la variable radio area <- 3.14159*radio mostrar por pantalla ‘el area del circulo es:’ mostrar por pantalla el contenido de la variable area n Ahora vamos a pasar a las estructuras selectivas y a las repetitivas. Para ello, necesitamos primero hablar un poco de... CONDICIONES. COLEGIO ALBERT EINSTEIN
9
2do Secundaria
Computación
.... Hago el paso N n n del SI pero con una buena sangría nos podemos evitar escribir de más ;) Es importante cerrar el SI, ya que, si no se cumple la condición, el programa seguirá a continuación de donde termina el SI. Por ejemplo, queremos calcular la raíz cuadrada de un número; sin embargo todos sabemos (¡supongo! ;)) que la raíz cuadrada de un número negativo NO es un nú mero real. Esto quiere decir que, tras leer el número por teclado, tendremos que ver si es positivo, ya que sólo en este caso podremos calcular su raíz cuadrada. Veamos como queda: Declaracion de variables REAL: numero, raiz n declaracion de variables
inicio mostrar por pantalla ‘introduce un numero’ leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar por pantalla ‘la raiz cuadrada es:’ mostrar por pantalla raiz SI NO es numero >=0 ENTONCES: {es decir, si numero es negativo} mostrar por pantalla ‘lo siento, no puedo calcular la raiz cuadrada de un numero negativo’ n del SI n Alternativas múltiples Es muy probable que tengamos la necesidad de incluir en nuestros programas alternativas con muchas opcio nes posibles. Esto lo podríamos hacer a base de anidar “si ... entonces ... si no”, pero si es un número elevado de alternativas, se hace demasiado farragoso como para resultar inteligibles. Por ejemplo, si queremos hacer un menú que dé a elegir cuatro opciones, un posible algo ritmo sería: {Algoritmo MENU a base de ‘si ... entonces ... sino’} Declaracion de variables ENTEROS: opcion n declaracion de variables
inicio mostrar por pantalla ‘introduce un numero’ leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar por pantalla ‘la raiz cuadrada es:’ mostrar por pantalla raiz n del SI n Como extraer una raíz cuadrada es una operación que, en principio, no es elemental, yo he puesto raiz_ cuadrada(numero), eso signica que, en alguna parte, tengo denida una función que me calcula la raíz cua drada de un número. Ya hablaremos de funciones y su brutinas más adelante, pero hago esta aclaración para que conste que raiz_cuadrada no forma parte de ningún tipo de especicación de pseudocódigo ;-) Sin embargo, hubiera sido bonito haber podido avisar al usuario de que no podíamos calcular la raíz cuadrada en caso de que el número fuera negativo, pero no os preo cupeis, para ello tenemos las... Alternativas dobles O el famoso trío “si ... entonces ... sino” ;-D Se usan de esta forma: queremos evaluar una condición, si es verdad, realizaré una serie de pasos, y SI NO es verdad (es decir, si es falsa, si es una puerca mentira co china... ;) ), entonces realizaré otra serie de pasos. Esto lo podemos escribir así: SI se cumple la condicion, ENTONCES: Hago el paso A1 .... Hago el paso AN y SI NO se cumple la condicion, ENTONCES: Hago el paso B1 .... Hago el paso BM n del SI Con esto, nuestro algoritmo para la raíz cuadrada que daría: Declaracion de variables REAL: numero, raiz n declaracion de variables COLEGIO ALBERT EINSTEIN
inicio mostrar por pantalla ‘menu de opciones:’ mostrar por pantalla ‘1. Diccionario de sinonimos’ mostrar por pantalla ‘2. Diccionario de antonimos’ mostrar por pantalla ‘3. Buscar palabra’ mostrar por pantalla ‘4. Salir’ leer del teclado la variable opcion SI opcion = 1 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 2 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 3 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 4 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES mostrar por pantalla ‘opcion incorrecta’ n del SI n del SI n del SI n del SI n Farragoso, ¿verdad? Para evitar esto (¿os imaginas que en vez de cuatro fue ran 20 las alternativas?), está la estructura “según sea”. La idea es esta; por ejemplo, como en el algoritmo que hemos puesto del menú, pedimos al usuario que entre una opción, y hay cuatro posibilidades, cuatro posibles valores para los que haremos algo. Entonces, SEGUN lo que valga la variable opción, elegi 10
2do Secundaria
Computación
remos una alternativa de entre todas las posibles. La forma de escribir esto en pseudocódigo es: SEGUN SEA la variable o la expresion HACER VALOR1: {las acciones que toque} ... VALORN: {las acciones que toque} por defecto: {las acciones que toque} n SEGUN ¿Qué pinta ahí ese ‘por defecto’? No es más que una alternativa por si acaso se elige algu na opción no contemplada entre las que se ofrece. Como ejemplo, vamos a ver nuestro menú utilizando la alternativa múltiple SEGUN SEA: {Algoritmo MENU a base de ‘segun sea’} Declaracion de variables ENTEROS: opcion n declaracion de variables
veces, mientras se cumple una cierta condición que ha de ser claramente especicada. La condición podrá ser verdadera o falsa, y se comprobará en cada paso o itera ción del bucle. Básicamente, existen tres tipos de estructuras repetitivas; los bucles “mientras...” (o “while”), los bucles “repetir... mientras que” (o “do... while”) y los bucles “desde” (o “bucles for”). Vamos a verlas todas dentro de un ejem plo para claricar los dos párrafos iniciales, que quedan tan bonitos como oscuros para quien nunca ha visto un bucle. hay que hacer notar que todo bucle consta de tres partes básicas, a saber: • Decisión: donde se evalúa la condición y, en caso de ser cierta, se ejecuta el... • Cuerpo del bucle: son las instrucciones que queremos ejecutar repetidamente un cierto número de ve ces. • Salida del bucle: es la condición que dice cuándo saldremos de hacer repeticiones (“mientras protestes, se guirás fregando platos”, en cuanto dejas de protestar, se acabó fregar más platos). Una forma de controlar un bucle es mediante una varia ble llamada CONTADOR, cuyo valor se incrementa o decrementa en una cantidad constante en cada repeti ción que se produzca. También, en los bucles suele haber otro tipo de variables llamadas ACUMULADOR, cuya misión es almacenar una cantidad variable resultante de operaciones sucesi vas y repetidas. Es como un contador, con la diferencia que el incremento/decremento es variable.
inicio mostrar por pantalla ‘menu de opciones’ mostrar por pantalla ‘1. Diccionario de sinonimos’ mostrar por pantalla ‘2. Diccionario de antonimos’ mostrar por pantalla ‘3. Buscar palabra’ mostrar por pantalla ‘4. Salir’ leer del teclado la variable opcion SEGUN SEA opcion HACER: opcion = 1 : {lo que toque a esta opcion} opcion = 2 : {lo que toque a esta opcion} opcion = 3 : {lo que toque a esta opcion} opcion = 4 : {lo que toque a esta opcion} por defecto: {mostrar un posible mensaje de error} n SEGUN n Así queda mucho más claro, no sólo para nosotros, si no para cualquier persona que tuviera que leerlo; además, es una forma más sencilla de manejar una alternativa múltiple :) Podemos abreviar un poquito el texto; es igualmente vá lido poner, dentro del SEGUN, lo siguiente: SEGUN SEA opcion HACER: 1 : {lo que toque a esta opcion} 2 : {lo que toque a esta opcion} 3 : {lo que toque a esta opcion} 4 : {lo que toque a esta opcion} por defecto: {mostrar un posible mensaje de error} n SEGUN Me quedan las estructuras repetitivas, que las veremos en la próxima entrega, si no esto puede ser mucho trago de golpe O:) En cualquier caso, ya tienes cosas para ir empezando a pensar en la escritura de algoritmos. Yo sugiero los si guientes...
Vamos a suponer que estamos pensando en un progra ma que deba REPETIR algunas veces una acción. Pues bien, las ESTRUCTURAS REPETITIVAS vienen a rescatar nos de la tediosa tarea de repetir cientos de líneas que en unas pocas quedan apañadas. Estructura MIENTRAS(condición) En este tipo de estructura, el cuerpo del bucle (ya sabe las acciones que deben ejecutarse repetidas veces) se repite MIENTRAS se cumple una determinada condición, que especicamos entre paréntesis. Su estructura, genéricamente, es esta: mientras(condición) hacer acción 1 ........ acción N n mientras
Aplicado a nuestra situación real, sería: Declaración de variables ENTEROS: Contador n Declaración variables
Estructuras de control; repetitivas
inicio
Estructuras repetitivas Este tipo de estructuras marcan como orden de ejecu ción la reiteración de una serie de acciones basándose en un bucle. Un BUCLE (loop, en inglés) es una parte de algoritmo cuyas instrucciones son repetidas un cierto número de COLEGIO ALBERT EINSTEIN
Contador <- 1 mientras(Contador<=300.000.000) hacer mostrar por pantalla ‘Prometo ser bueno O:-)’ Contador <- Contador+1 n mientras n 11
2do Secundaria
( ( x 2 5 ) ) = 2 = 2 2 x 4 5 2
Computación
Ejercicios de Aplicación
EJERCICIO CREACIÓN DE MENÚS PSEINT HACER UN ALGORITMO QUE MUESTRE UN MENÚ DE OPCIONES, 1. SUMA, 2. RESTA, 3. MULTIPLICA, 4. DIVIDE, 5. SALIR; QUE AL PEDIRLE AL USUARIO DOS NÚMEROS Y AL ELEGIR UNA DETERMINADA OPCIÓN, EJEMPLO, 1. SUMA, EL PROGRAMA HAGA LAS OPERACIONES CORRESPONDIENTES SEGÚN CADA CASO. SOLUCIÓN: Proceso MENU OPCION<-1; MIENTRAS OPCION<>5 HACER NUMERO1<-0; NUMERO2<-0; ESCRIBIR “INGRESE UN NUMERO”; LEER NUMERO1; ESCRIBIR “INGRESE OTRO NUMERO”; LEER NUMERO2; Escribir “SELECCIONES UNA DE LAS OPCIONES”; Escribir “ 1. SUMA”; Escribir “ 2. RESTA”; Escribir “ 3. MULTIPLICAR”; Escribir “ 4. DIVIDIR”; Escribir “ 5. SALIR”; LEER OPCION; SI OPCION=1 ENTONCES RESULTADO<-NUMERO1+NUMERO2; FinSi SI OPCION=2 ENTONCES RESULTADO<-NUMERO1-NUMERO2; FinSi SI OPCION=3 ENTONCES RESULTADO<-NUMERO1*NUMERO2; FinSi SI OPCION=4 ENTONCES RESULTADO<-NUMERO1/NUMERO2; FinSi SI OPCION<>5 ENTONCES Escribir RESULTADO; FinSi FinMientras FinProceso
EJERCICIO DE MENÚS - HORARIO DE CLASES SEGÚN EL DÍA HACER UN ALGORITMO QUE DESPLIEGUE UN MENÚ CON LOS DÍAS DE LA SEMANA, Y SEGÚN EL DÍA ELEGIDO POR EL USUARIO, EL PROGRAMA MOSTRARA EL HORARIO DE CLASES DE ESE DÍA. NOTA: SI EL USUARIO ELIGE EL DÍA DOMINGO EL PROGRAMA DEBERÁ FINALIZAR O SALIR.
COLEGIO ALBERT EINSTEIN
12
2do Secundaria
Computación
A N A S E M
1 8
Procesos Aprendizajes Esperados ü
Aprender a resolver utilizando pseudocódigos y su codificación en un lenguaje de programación de alto nivel
Procesos Un proceso es la ejecución de un programa, es decir, los datos e instrucciones están cargados en la memoria principal, ejecutándose o esperando a hacerlo.
( ( x 2 5 ) ) 2 = 2 2 x 4 = 5 2
Algoritmo que lea dos números y nos diga cual de ellos es mayor o bien si son iguales (recuerda usar la estructu ra condicional SI)
Un proceso no tiene porqué estar siempre en ejecución. Puede pasar por diferentes estados:
Proceso ejercicio_3 Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 //comparamos los dos numeros, //si el primero es mayor o igual que el segundo entra Si (numero1>=numero2) Entonces //Si el numero1 y numero2 son iguales entra y escri be que son iguales //Sino lo son escribe que el numero1 es el mayor Si (numero1=numero2) Entonces escribir "los numeros " numero1 " " numero2 " son iguales" Sino Escribir numero1 " es el mayor de los dos" FinSi //Si el primer Si es falso, escribe que el numero2 es mayor Sino Escribir numero2 " es el mayor de los dos" FinSi FinProceso
Preparado: Un proceso preparado es un proceso que está preparado para ejecutarse. Sólo le “falta” la CPU En Ejecución: Un proceso en ejecución es un proceso que “tiene” CPU, se está ejecutando
Bloqueado: Un proceso bloqueado está esperando que ocurra un suceso antes de poder “usar” la CPU. Dicho suceso suele ser una operación de Entrada / Salida: pul sar una tecla, leer de disco... Pero también puede ser que esté esperando a que otro proceso haga algo 1. Creación del proceso. Está preparado para ejecutarse 2. El proceso se ejecuta en CPU 3. El proceso espera a que ocurra un suceso y se bloquea 4. Ocurre el suceso por el que esperaba el proceso. Está preparado para ejecutarse 5. El proceso “sale” de la CPU 6. Fin de la ejecución del proceso
COLEGIO ALBERT EINSTEIN
Ejercicios de Aplicación
13
2do Secundaria
Computación
Algoritmo que lea tres números distintos y nos diga cual de ellos es el mayor (recuerda usar la estructura condi cional Si y los operadores lógicos).
Leer tres números que denoten una fecha (día, mes, año). Comprobar que es una fecha válida. Si no es válida escribir un mensaje de error. Si es válida escribir la fecha cambiando el número del mes por su nombre. Ej. si se introduce 1 2 2006, se deberá imprimir “1 de febrero de 2006”. El año debe ser mayor que 0. (Recuerda la estructura segun sea).
Proceso ejercicio_4 Escribir “Introduce el primer numero” Leer numero1 Escribir “Introduce el segundo numero” Leer numero2 Escribir “Introduce el tercer numero” Leer numero3 //comparamos el numero1 con el numero2 y nume ro3 //Si las dos condiciones son verdaderas el numero1 es el mayor Si (numero1>numero2 Y numero1>numero3) Entonces Escribir “el numero “ numero1 “ es el mayor” //si el numero1 no es el mayor, //comparamos el numero2 con el numero3 Sino Si (numero2>numero3) Entonces Escribir “El numero “ numero2 “ es el mayor” Sino Escribir “El numero “ numero3 “ es el mayor” FinSi FinSi FinProceso
NOTA: en PSeInt, si queremos escribir sin que haya sal tos de linea, al nal de la operacion escribir escribimos sin saltar. Proceso ejercicio_ Escribir “Introduce el dia” Leer dia Escribir “Introduce el mes” Leer mes Escribir “Introduce el año” Leer año //comprobamos que la fecha es correcto si ((dia<=31 y dia>=0) y (mes<=12 y mes>=0) y año>0) Entonces Escribir dia sin saltar //usamos el segun sea para escribir el mes Segun mes Hacer 1: escribir “ de enero de” sin saltar 2: escribir “ de febrero de “ sin saltar 3: escribir “ de marzo de “ sin saltar 4: escribir “ de abril de “ sin saltar 5: escribir “ de mayo de “ sin saltar 6: escribir “ de junio de “ sin saltar 7: escribir “ de julio de “ sin saltar 8: escribir “ de agosto de “ sin saltar 9: escribir “ de septiembre de “ sin saltar 10: escribir “ de octubre de “ sin saltar 11: escribir “ de noviembre de “ sin saltar 12: escribir “ de diciembre de “ sin saltar FinSegun Escribir año Sino Escribir “error” FinSi FinProceso
Teniendo en cuenta que la clave es “eureka”, escribir un algoritmo que nos pida una clave. Solo tenemos 3 intentos para acertar, si fallamos los 3 intentos nos mos trara un mensaje indicándonos que hemos agotado esos 3 intentos. (Recomiendo utilizar un interruptor). Si acer tamos la clave, saldremos directamente del programa. contador<-0 //interruptor acierto<-Falso //usamos un interruptor, cuando acertemos, //cambiara y la condicion sera falsa Mientras (contador<3 Y acierto=falso) Hacer //ponemos aqui leer porque con las variables //iniciales entra en el bucle Escribir “introduce la clave” Leer clave si (clave=”eureka”) Entonces Escribir “la clave es correcta” //el interruptor cambia cuando acertamos acierto<-Verdadero FinSi contador<-contador+1 FinMientras //este mensaje solo aparecera si hemos agotado //todos los intentos y no hemos acertado si (contador=3 Y acierto=falso) Entonces Escribir “Ya no tienes mas intentos” FinSi
COLEGIO ALBERT EINSTEIN
14
2do Secundaria
Computación
A N A M S E
1 9
Estructuras Aprendizajes Esperados ü
Realizar programas usando pseudocódigos
Diagrama de Flujo y Pseodocódigp Enunciado: realizar un programa que al ingresar un nú mero del 1 al 7, indique qué día de la semana es, siendo 1=lunes. 2=martes, 3=miércoles, 4=jueves, 5=vien res, 6=sábado y 7=domingo. Diagrama de Flujo y Pseodocódigp Enunciado: Realizar un programa que al ingresar una le tra, indique si es consonante o vocal. COLEGIO ALBERT EINSTEIN
15
2do Secundaria
COLEGIO ALBERT EINSTEIN
Computación
16