1 - Fundamentos Básicos

Descargar como odt, pdf o txt
Descargar como odt, pdf o txt
Está en la página 1de 17

4

Conceptos Básicos1 (semana 1):


Hardware
Corresponde a la parte física o tangible del ordenador y está compuesta por los siguientes
elementos:

• dispositivos de entrada,
• dispositivos de salida,
• dispositivos de almacenamiento.

Software
Es la parte lógica de un sistema de cómputo, no es tangible pero se hace visible cuando se saca
algún provecho a un ordenador. El software abarca todo tipo de aplicaciones (aplicaciones o
también denominados programas) que sirven para controlar, manipular, capturar datos, que luego
son mostrados como información entendible para el usuario.

Lenguajes de programación
Un lenguaje de programación es el entorno donde se escribe una serie de instrucciones para que
el ordenador efectúe cualquier operación. Esas instrucciones deben estar entonces dentro de una
serie de reglas que define el lenguaje.

Un lenguaje de programación es un conjunto de símbolos, reglas sintácticas y reglas semánticas que


nos permiten conformar instrucciones. Estas instrucciones serán las que nos permitan codificar
nuestros programas.

Como vemos esta definición es bastante general y muy amplia, lo cual explica en parte la gran
variedad de lenguajes de programación que han existido desde el siglo pasado hasta la actualidad.
Los diversos lenguajes de programación modernos resuelven distintos problemas, es por esto que en
nuestro desarrollo como profesionales del software, es necesario que comprendamos estas
herramientas tan importantes.

La problemática de los lenguajes de programación ha evolucionado con el pasar de los años. El


primer lenguaje de programación no necesitó ser diseñado por nadie. Es el lenguaje binario. Por
convención se define con sus únicos símbolos siendo 1 y 0. Esto es porque por la naturaleza de los
dispositivos electrónicos, solamente pueden procesar la siguiente información: 'hay corriente
circulando' o 'no hay corriente circulando'. Es por esto que en informática suele decirse con tanta
ligereza que "todo se resume a unos y ceros".

Más hacia la actualidad nacen lenguajes de programación con aún mayor nivel de abstracción
debido al cambio de paradigma que plantearían los mismos. Entre estos lenguajes incluimos
algunos de los más usados actualmente:

SQL - Java - C# - PHP

Clasificación de lenguajes de programación:

Lenguaje Máquina: son aquellos cuyas instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el
programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria
más pequeña el bit (dígito binario 0 ó 1).

1 Zapata Ospina, Carlos Andrés, Fundamentos de programación, Guía de autoenseñanza. Caldas, Colombia, 2006
Lenguaje de Bajo Nivel (Ensamblador): en este lenguaje las instrucciones se escriben en códigos
alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

Lenguaje de Alto Nivel: los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran,
etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con
palabras similares a los lenguajes humanos (en general en inglés), lo que facilita la escritura y
comprensión del programa.

Variable
Una variable es un espacio reservado en memoria que recibe un nombre representativo, donde se
almacena un dato de cualquier tipo. Las variables poseen la característica de cambiar de contenido
sobre la ejecución de un algoritmo. Definido de otra manera, una variable, es un contenedor (como
una caja o recipiente) en donde se puede almacenar datos.

Constantes
Como su nombre lo indica son datos que siempre van a tener el mismo valor, y por ninguna razón
este valor puede ser modificado. También comparten el mismo concepto de reglas empleado en la
declaración de variables.

Programa

Un programa para computadora es un conjunto de instrucciones que le indican al hardware qué


tipo de acciones debe efectuar con los datos. La programación es la acción de codificar o escribir
esas instrucciones sobre un entorno llamado lenguaje de programación, para generar aplicaciones
software o simplemente programas.

Un programa es una entidad de Software que nos permite resolver una problemática puntual.
Decimos que es una entidad de Software dado que no se trata de un conjunto de componentes
físicos (como el hardware) sino que nos permite manipular los mismos. Cuando hablamos de
programa, nos referimos a un conjunto de elementos lógicos (llamados algoritmos) que son
especificados, diseñados y posteriormente implementados por el equipo de desarrollo.

Es correcto y muy común encontrarse con casos en los que un programa (entre otras cosas):
• Resuelve la contabilidad de una empresa.
• Manipula un robot.
• Lee y reproduce archivos de audio, video, texto, etc.
• Realiza operaciones matemáticas.
Algoritmo

Cuando se quiere dar solución a un problema a nivel computacional se emplean algoritmos.


Entiéndase algoritmo como una secuencia de pasos coherentes y finitos para resolver un
problema. En un algoritmo se fijan una serie de acciones precisas y lógicas que conllevan a
resolver cualquier problema.

En términos formales, un algoritmo es una unidad lógica fundamental. Es decir, una porción de
razonamiento. Un algoritmo permite lograr resolver un problema con un objetivo concreto. Suele
realizarse una analogía entre los algoritmos y las recetas de cocina. Es decir, si nuestro problema a
resolver es 'Cocinar un bizcochuelo de vainilla', podemos plantear de forma ordenada nuestra receta
de la siguiente manera:

1. Precalienta el horno a 200ºC.


2. Rocía un molde para torta con mantequilla y espolvorea con harina.
3. Tamiza la harina, el polvo de hornear y la sal en un recipiente grande.
4. Agrega la mantequilla de a poco y bate utilizando una batidora eléctrica a baja velocidad,
hasta que la mezcla se asemeje a arena gruesa.
5. Agrega el azúcar de a una cucharada a la vez, hasta que la mezcla se parezca a la arena
húmeda.
6. Añade los huevos, de a uno a la vez, mientras bates.
7. Agrega la vainilla y la leche y bate a velocidad media, hasta que esté todo bien mezclado
(ten cuidado de no batir de más).
8. Coloca la masa en el molde preparado. Hornea por unos 30-35 minutos o hasta que al
insertar un palillo este salga seco.
9. Saca del horno y deja enfriar durante unos 5 minutos.

Entonces, se reconocen los pasos de forma ordenada y concreta, que necesitamos seguir para lograr
'Cocinar un bizcochuelo de vainilla'. Esperaremos lograr esto mismo cuando intentemos definir
nuestros algoritmos: definirlos como un conjunto de pasos ordenados.

Pero en programación, decimos que los algoritmos, a diferencia de los programas resuelven
problemas más generales. Entre estos problemas más generales podemos incluir:
• Ordenar un conjunto de datos desordenados.
• Calcular el dígito verificador de la cédula.
• Encriptación de una contraseña.
• Calcular el área de un polígono.

Si bien es difícil llegar a una definición formal de 'algoritmo', trataremos a los mismos como un
conjunto ordenado de instrucciones que debe interpretar un computador con el fin de
ejecutar una operación en particular.

Diferencian entre “algoritmo computacional” (programa) y “algoritmo no computacional” (ejemplo


de la torta).

Todo algoritmo lo podemos dividir en tres partes:


1. Entrada de datos
2. Procesamiento
3. Salida de datos
Diagrama de flujo:

El siguiente paso luego de tener pensado nuestro algoritmo, es realizar el diseño del mismo. Este
diseño se le llama diagrama de flujo, y representa básicamente los planos del código que
realizaremos.

• Representación gráfica del algoritmo


• Se expresa con figuras los pasos por los que transita el algoritmo

Pseudocodigo: Luego de realizar el diagrama de flujo y antes de comenzar a programar, es


necesario realizar un paso previo, que se podría definir cómo la traducción del diagrama de flujo
llevado a una descripción del código que se deberá programar.
Conceptos Básicos (semana 2):

Trabajando con Mumuki, expresiones:

Una expresión (en el contexto de programación) es la manera en que expresamos algo a ser
evaluado en un lenguaje de programación. Es la forma de decirle al computador “esto vale tanto”,
“sumar y restar los siguientes números”, “averigua la multiplicación entre estos 2 números”, etc;
también puede ser un valor literal, es decir: 5, verdadero, falso, “hola”, etc.

Así como el lenguaje español (y cualquier otro lenguaje humano) tiene sus reglas de sintaxis,
también lo tiene cualquier lenguaje de programación. En español es correcto decir: “dime la suma
entre 3 y 2”, e incorrecto decir: “3 y 2 la suma dime entre”. Estudiaremos cómo debemos conformar
las expresiones, a través de los operadores y operandos, de manera generalizada sin profundizar en
algún lenguaje de programación en particular.

Afortunadamente las reglas de sintaxis para formar expresiones en un lenguaje de programación de


hoy en día son muy similares.

Expresiones simples:
Formalmente, en programación, una expresión es una combinación de constantes, variables o
procedimientos, que es interpretada de acuerdo a las normas particulares de precedencia y
asociación para un lenguaje de programación en particular. Como en matemáticas, la expresión es
su valor evaluado, es decir, la expresión es una representación de ese valor. La misma, deberá estar
escrita bajo unas reglas de sintaxis.

Algunos elementos que pueden formar parte de una expresión son:

• Valores literales: 2, "hola" o 5.7.


• Variables, operadores y llamadas a procedimientos: 4 * 3 - 2 entrega el valor 10 al ser
evaluada por el computador.

Según el tipo de datos que manipulan, las expresiones se clasifican


en aritméticas, relacionales o lógicas.

Su clasificación depende de si la expresión hace uso de operadores aritméticos, relacionales o


lógicos respectivamente. Así como en matemática están los operadores
matemáticos: sumar, restar, dividir, etc; y los operandos numéricos: valor numérico; también
existen otros tipos de operadores y operandos.

Operadores aritméticos
Los operadores aritméticos se aplican sobre números, ya sean reales o enteros y realizan
operaciones equivalentes a las operaciones aritméticas básicas. Como se pueden aplicar sobre
diferentes tipos de datos, los lenguajes de programación tienen reglas detalladas que permiten
determinar el tipo de datos del resultado. En términos generales se pueden resumir de la siguiente
forma:

1. Si ambos operandos son de tipo entero, el resultado será de tipo entero.


2. Si ambos operandos son de tipo real, el resultado será de tipo real.
3. Si un operando es real y el otro entero, el operando de tipo entero se convertirá a real y
luego se aplicará la operación.
Esta es una lista de los operadores aritméticos más frecuentemente encontrados en los lenguajes de
programación:

Operadores relacionales
Los operadores relacionales permiten realizar comparaciones entre valores de tipos de datos
numéricos como los enteros y los reales así como entre caracteres. Estos operadores reciben
parámetros de tipo numérico o carácter pero su resultado es de tipo lógico. Esto significa que solo
devuelven uno de dos valores posibles: verdadero si la relación se cumple y falso si la relación no se
cumple.

Los siguientes son los operadores relacionales más comunes en los lenguajes de programación:

Operadores lógicos
Los operadores lógicos implementan las principales conectivas de la lógica proposicional. Trabajan
con operandos de tipo lógico y los más comunes son la conjunción (y), la disyunción (o) y la
negación (no).

El operador y tiene valor verdadero si sus dos parámetros son verdaderos y tiene valor falso en los
otros casos. El operador o tiene el valor verdadero si alguno de sus operandos es verdadero. El
operador no trabaja solamente sobre un operando, tiene valor verdadero si el operando es falso y
tiene valor falso si el operando es verdadero.
La siguiente tabla brinda algunos ejemplos de su uso:

En la mayoría de los lenguajes de programación modernos, los operadores lógicos se representan


mediante símbolos:

Variables
Por ahora solo diremos que las variables son símbolos que representan un valor (numérico,
verdadero o falso, texto, y otros), tal cual las conocemos en matemáticas, comúnmente como
variables x - y - z - a - b - etc.

Por ejemplo en la siguiente expresión:

costo_por_servicio2 * 2

estamos multiplicando por 2 el valor representado en la variable costo_por_servicio. Esto quiere


decir que si costo_por_servicio vale 10, entonces la expresión valdrá 20, si costo_por_servicio vale
3, entonces la expresión valdrá 6.

total := costo_por_servicio * 2

en este caso el valor de la expresión será asignado a la variable total. Es decir que ahora si
costo_por_servicio vale 5, entonces la variable total valdrá 10, o si costo_por_servicio vale 23,
entonces la variable total valdrá 46.

Expresiones complejas y precedencia de operadores


Al igual que en las operaciones usadas en la aritmética, en los lenguajes de programación las
operaciones simples que hemos visto hasta el momento se pueden combinar en operaciones más
complejas y estas se evalúan realizando las operaciones en un orden preestablecido.

Este orden está especificado por la precedencia de los operadores. Los operadores con mayor
precedencia se evalúan antes que los operadores con menor precedencia. Cuando el computador

2 en programación, es una buena práctica que las variables tengan un nombre descriptivo a su representación, es decir,
en el ejemplo anterior, la variable de nombre costo_por_servicio resulta intuitivo saber que equivale al valor del costo
del servicio (sea cual fuese ese valor). De forma análoga precio_producto y cantidad_adquirida.
encuentra una expresión con dos operadores que tiene el mismo nivel de precedencia, los evalúa de
izquierda a derecha.

En el siguiente ejemplo se efectúa primero la multiplicación y luego la suma, porque ese operador
tiene precedencia.

total := costo_por_servicio + precio_producto * cantidad_adquirida

Al igual que en las matemáticas básicas, es posible alterar el orden de evaluación usando paréntesis
para agrupar y acomodar expresiones.

En la siguiente expresión se usan los paréntesis para realizar primero la suma que modifica el precio
actual y luego calcular el costo total usando la multiplicación:

costo_total := (precio_actual + aumento_del_costo) * cantidad_adquirida

Operaciones lógicas:

Los operadores que se muestran a continuación pueden realizar acciones con datos o variables del
mismo tipo que sean de tipo lógico (Verdadero v. V. – Falso f. F ).

And [Y] (Conjunción)


El concepto de conjunción corresponde a la unión de dos elementos. Para que el resultado sea
verdadero, se necesita que ambos elementos sean verdaderos. Por ejemplo:

Con datos boléanos.

Con expresiones matemáticas.

Or [O] (Disyunción)
Él O lógico realiza la operación de disyunción o separación y análisis de elementos o expresiones.
Para que el resultado sea verdadero basta conque una de las expresiones o elementos sea verdadero.
Por ejemplo:
Con datos boléanos.

Con expresiones matemáticas

NOT ( Negación lógica)


El NO lógico realiza la operación de negación sobre una expresión. Para obtener verdadero la
expresión debe ser falsa y viceversa. Por ejemplo:

Con datos boléanos.

Con expresiones matemáticas.


Pensamiento Computacional

Cuando hablamos de Pensamiento Computacional (de ahora en adelante "PC"), estamos hablando
de cierta forma de pensar (modelos mentales) que necesitamos para entender cómo resolver
problemas a través de los computadores.

El PC es un método para resolver problemas usando tecnología y está inspirado en el conjunto de


competencias y habilidades que un profesional utiliza cuando crea una aplicación computacional.
Para alcanzar a desarrollar estas habilidades, debemos empezar a aplicar tipos de pensamientos
abstractos, matemáticos e ingenieril en una forma de resolver problemas de manera inteligente e
imaginativa.

La potencia de esta temática no está solo en el conocimiento acumulado detrás de las tecnologías,
sino en la oportunidad para evidenciar los problemas que han llevado a estas soluciones y
especialmente a otros para los cuales aún no se tiene solución.

Ventajas del pensamiento computacional en el siglo XXI:


El pensamiento computacional se ha vuelto más crucial para las personas del siglo XXI y entre sus
ventajas encontramos:
• Las habilidades de pensamiento computacional mejoran las competencias laborales y son
beneficiosas para las carreras en prácticamente todos los sectores.
• Ayuda a los trabajadores de una empresa a asumir un papel activo en pensar los problemas y
crear soluciones.
• A través de las técnicas de descomposición y la construcción de secuencias de pasos ayuda a
resolver problemas utilizando el pensamiento algorítmico.
• Impulsa a entender cuáles aspectos de un problema son susceptibles a ser resueltos mediante
la computación.
• Contribuye a reconocer la posibilidad de las técnicas computacionales de una manera
novedosa.

Las cuatro fases:


En el proceso de resolución pueden distinguirse distintas fases. Podemos distinguir las 4
principales:
1. Descomposición (Divide y Vencerás).
2. Reconocimiento de patrones.
3. Abstracción.
4. Elaboración de algoritmo.

Descomposición (Divide y Vencerás):


En la cultura popular, Divide y Vencerás hace referencia a un refrán que implica resolver un
problema difícil, dividiéndolo en partes más simples tantas veces como sea necesario, hasta que la
resolución de las partes se torna obvia. La solución del problema principal se construye con las
soluciones encontradas.

Si bien el refrán (y su definición) es muy abarcativa y se puede aplicar en muchos contextos


(cotidianos, biológicos, matemáticos, algorítmicos, programación), nos centraremos en su
aplicación al momento de programar y mejorar nuestro código.

Para que pueda aplicarse la técnica, necesitamos:

• El problema original debe poder dividirse fácilmente en un conjunto de subproblemas, del


mismo tipo que el problema original, pero con una resolución más sencilla.
• La solución de un subproblema debe obtenerse independientemente de los otros.
• Normalmente los subproblemas deben ser de tamaños parecidos. Como mínimo necesitamos
que haya dos subproblemas. Si sólo tenemos un subproblema hablamos de técnicas de
reducción (o simplificación).
• Necesitamos un método directo de resolver los problemas de tamaño pequeño.
• Es necesario tener un método de combinar los resultados de los subproblemas.
• Normalmente para resolver los subproblemas, se utilizan llamadas recursivas al mismo
algoritmo (aunque no siempre necesariamente).

Reconocimiento de patrones:
Los patrones constituyen una herramienta para el análisis de la programación con una doble
singularidad:

Evitan el trabajo tedioso que supone repetir partes de código, de diagramas de flujo, o de
procedimientos que en esencia se repiten pero aplicados a contextos y situaciones distintas. Exige
la capacidad de distinguir lo que tienen de común situaciones distintas.

Esta facultad es útil en la programación pero igualmente en multitud de situaciones de la vida o de


las actividades científica y profesionales, de hecho nacieron como tales en la arquitectura.

El concepto de patrón y su práctica se aplica, en la computación y en otros dominios, a estructuras


de información que permiten resumir y comunicar la experiencia acumulada y la resolución de
problemas, tanto en la práctica como en el diseño.

De esta forma un patrón puede entenderse como una plantilla, una guía, un conjunto de directrices o
de normas de diseño.

Los patrones pueden entenderse desde dos perspectivas:

• La propia del dominio en el que estamos trabajando (la arquitectura, el diseño industrial, el
diseño instruccional, etc.).
• Desde la perspectiva de los lenguajes y las técnicas computacionales que permiten el
desarrollo de patrones.

Podemos decir entonces que un patrón permite la adquisición de “buenas prácticas” y sirve como
referencia para nuevas aplicaciones y casos.

Abstracción:
La abstracción es la habilidad que le permite al ser humano combatir la complejidad del mundo real
al considerar sólo lo esencial del objeto o fenómeno que se esté analizando.

Por ejemplo: la abstracción de un Ciprés (especie arbórea) el concepto general de “árbol”, implica:

• Extraer la información esencial que lo caracteriza y que se puede aplicar para ser incluido
dentro de la categoría general de los árboles
• El tiempo de vida (más de dos años)
• Número de troncos (uno solo)
• Material del tronco (leñoso)
• Ramificación (a cierta altura)
El conocimiento humano está dividido en diferentes áreas de estudio porque cada una se enfoca en
un aspecto específico de la realidad, cada disciplina tiene sus propias abstracciones. En ese sentido,
la abstracción es un concepto clave en toda actividad humana y en cualquier área de estudio, como
la matemática, la física, la biología o el arte.

El concepto de abstracción es una de las principales ideas del Pensamiento Computacional en el


proceso de solución de problemas. Éste, promueve el desarrollo de las habilidades de abstracción a
través del análisis, el diseño y el modelado de soluciones por medio de algoritmos, programas,
estructuras de datos abstractas, etc.

Para resolver un problema, normalmente definimos una abstracción con la que podemos resolverlo
de acuerdo con nuestros intereses. A veces el nivel de abstracción que se define está restringido por
las limitaciones que se tienen en nuestros sistemas.

Un ejemplo claro en donde se usa la abstracción es en los video-juegos. En los video-juegos cada
elemento que se grafica es una abstracción que el analista diseñó para representar determinados
objetos.

Los primeros videos juegos que se desarrollaron tenían limitaciones importantes en las capacidades
computacionales existentes, por tanto el nivel de abstracción era mucho más simplista de lo que
puede llegar a ser hoy en día. Con el avance de tarjetas gráficas ha sido posible cada vez llegar a
escenarios más realistas y por tanto, a mayor grado el nivel de abstracción de un problema.

Hoy en día podemos tener juegos de estrategias, carreras, etc. donde cada movimiento físico, cada
elemento que se encuentre en la pantalla, tuvo que haber sido abstraído para poder programarlo y
visualizarlo en el juego.

Elaboración de algoritmos:
Como paso final, se debe elaborar los algoritmos correspondientes, identificador a realizar, a partir
del análisis realizado en las fases previas. Para la realización de un algoritmo es necesario realizar
una secuencia de pasos para llegar a cumplir con la resolución de un problema dado.

El algoritmo deberá cumplir con las características que se indicaron para posteriormente
implementarse en un lenguaje de programación comprensible por una computadora.

Luego, la implementación de los algoritmos se deben realizar en un lenguaje de programación para


que una computadora pueda comprender las instrucciones que el algoritmo modela para así poder
ejecutarlas y lograr el resultado esperado.

En el párrafo anterior ya podemos hablar de una aplicación o programa de computadora, que estará
compuesto por una serie de instrucciones que ordenadas una tras otra, logran representar los
algoritmos diseñados y dar así solución a los requerimientos identificados.
Alternativas condicionales y repeticiones (semana 3):
Básicamente las alternativas condicionales tratan sobre ejecutar un conjunto de instrucciones
(donde pueden ser expresiones también) dependiendo de cierto valor o de cierta expresión.

Por ejemplo: “si la suma entre 2 y 3 es 5, entonces ejecutar tales instrucciones, de lo contrario
ejecutar tales otras instrucciones”.

Las alternativas condicionales controlan el flujo de un programa, tomando decisiones en base a


expresiones. Nosotros como programadores debemos anticiparnos y deducir qué posibilidades
pueden ocurrir en un algoritmo o programa y dar respuesta a cada una de ellas.

Con ello el computador deja de ser "tonto" y comienza a poder tomar algún tipo de decisión.
Aunque no nos demos cuenta, nos encontramos con condiciones y distintas alternativas a realizar,
en nuestra vida cotidiana:

• Si llueve llevo paraguas.


• Si me alcanza el dinero me compro un laptop, si no me compraré una tablet.
• Los lunes y miércoles tengo partido, los martes clase de inglés y el jueves francés. Los
demás días libres.

Al realizar programas de cualquier tipo, debemos pensar en esas situaciones, que a veces nos las
marca la propia lógica de la aplicación que estamos realizando.

Por ejemplo: debemos hacer un sistema que vende entradas para un partido y que se apliquen
descuentos para ciertas personas, como jubilados o socios, entonces deberemos usar condicionales
para observar esas situaciones, si se cumplen o no, a fin de dar el precio de la entrada con el
descuento que toca, si es que toca aplicar algún descuento.

En esta clase veremos cómo aplicar alternativas condicionales básicas. Nos ayudarán a que
nuestros programas sean más dinámicos, ejecutando un conjunto de instrucciones u otras en
función de las condiciones.

Por último, veremos sobre qué trata la estructura de bloques, como por ejemplo "procedure" y
"function" en Gobstones, que nos ayudan en mucho para simplificar el código, evitando duplicar
conjunto de instrucciones que tal vez debamos utilizar en distintas partes o funcionalidades de
nuestro programa.

Alternativas condicionales:
Por defecto, las instrucciones de un programa se ejecutan secuencialmente, es decir que el orden en
que se ejecutan las instrucciones es de arriba hacia abajo, línea por línea. El orden secuencial no
altera el flujo de control del programa, respecto al orden de escritura de las instrucciones.

La ejecución de un programa de forma secuencial, es adecuada siempre y cuando el algoritmo de


nuestro programa no tenga condiciones algunas, por ejemplo para hallar el área de un triángulo
rectángulo:

1. Obtener la base del triángulo.


2. 2Obtener la altura del triángulo.
3. Calcular base x altura / 2.
4. Informar al usuario del resultado final.

¿Qué sucede si modificamos levemente nuestro problema?

Si ahora quisiéramos hallar el área de un triángulo o de un círculo, dependiendo de lo que el usuario


elija, ¿cómo quedaría? Debido a que tenemos que ejecutar determinadas instrucciones,
dependiendo del tipo de figura a la que se le desea hallar el área, el flujo de ejecución de forma
secuencial no sería el adecuado.

El algoritmo en este caso sería:

1. Consultar al usuario si desea hallar el área de un triángulo o un círculo.


|-> Si desea hallar el área de un triángulo:
|-> 1. Obtener la base del triángulo.
|-> 2. Obtener la altura del triángulo.
|-> 3. Calcular base x altura / 2.
|->Sino:
|-> 1. Obtener el radio.
|-> 2. Calcular Pi * radio * radio.
2. Informar al usuario del resultado final.
Sin importar la complejidad de los algoritmos que se desee implementar, todos se pueden expresar
con 2 estructuras básicas que todos los lenguajes ofrecen de una forma u otra:

• Ejecución secuencial.
• Selección (if, if-else).
• Repetición (repeat, while, do-while, for).

Selección if-else
La instrucción if, (que significa "si" en pseudocódigo), permite alterar la secuencia seleccionando
entre dos opciones posibles.

Esta instrucción puede escribirse de las siguientes formas:

1. Condicional simple (if):


En esta forma, los pasos o instrucciones que se encuentran dentro se ejecutan únicamente cuando la
evaluación de la condición sea verdadera.

2. Condicional completo (if-else):


Estructura de decisión “si, sino”. Implica que luego de consultar una condición (verdadera o falsa),
ingresa al bloque de código correspondiente.
Repetición:
A menudo es necesario ejecutar una instrucción o un bloque de instrucciones más de una vez. Por
ejemplo: “implementar un programa que calcule la suma de N números leídos desde teclado.”

Podríamos escribir un programa en el que apareciese repetido el código que deseamos que se
ejecute varias veces, donde nuestro programa podría ser demasiado largo, ya que tendríamos una
instrucción de suma en el código por cada número leído hasta llegar a N.

Además, una vez escrito el programa para un número determinado de repeticiones (por ejemplo:
sumar matrices 3x3), el mismo programa no podríamos reutilizarlo si necesitáramos realizar un
número distinto de operaciones (por ejemplo: sumar matrices 4x4).

Las repeticiones, también conocidas como “bucles”, nos permiten resolver de forma elegante este
tipo de problemas. Podemos usarlas cuando conocemos el número de veces que deben repetirse las
operaciones, o podemos repetir mientras se cumpla una condición. Veremos a continuación una de
ellas, llamadas Repetición While.

Repetición While:
La estructura de iteración -o bucle- while permite repetir la ejecución de un conjunto de sentencias
mientras se cumpla una condición (es decir, mientras cierta expresión sea verdadera):

Otra herramienta interesante sería aquella que permita repetir una acción MIENTRAS se cumpla
una condición. Observen que hasta el momento sólo podíamos repetir un número fijo de veces una
determinada tarea (o utilizar cada elemento de una lista bien definida, que es similar), pero no
podíamos resolver problemas en los que no se sabe cuánto hay que repetir la tarea.

Esta instrucción se llama "while".


Un problema que se introduce con el uso de esta instrucción es la posibilidad de que un programa
no termine. ¿Cómo es posible esto? Si la condición del while nunca llega a ser falsa, jamás
terminará de ejecutar una tarea. El siguiente ejemplo puede no terminar:

while (hayBolitas (Negro) ) {


Poner (Verde)
}

Si existen bolitas negras en la celda actual, se seguirán poniendo bolitas verdes indefinidamente ya
que no hay una condición que finalice la instrucción.

El programa efectivamente no terminará nunca. Por esta razón, cuando utilizamos un while,
debemos pensar si la tarea que definimos hará que la condición en algún momento pase a ser falsa,
dado que si esto no sucede, la tarea, como acabamos de ver, no terminará de ejecutarse jamás

También podría gustarte