Está en la página 1de 30

Fundamentos de

Programación 1

UNIDAD 2
Introducción a algoritmos
y programas
Unidad 2: Introducción a algoritmos y programas

Introducción

Solo cuando se ha comprendido la historia de la informática es cuando se es capaz de entender la base


y razón detrás de esta disciplina y sus constantes evoluciones, así como los cambios y las mejoras por las
que ha pasado a lo largo de los años; especialmente durante la segunda mitad del siglo pasado. Todo ello
desemboca en la creación de lenguajes de programación, cuyas raíces son los algoritmos, que han
permitido desarrollar programas cada vez más avanzados.

Sin embargo, es momento de que


comiences a integrar todo lo que sabes
sobre los algoritmos y su estructura, ya
que iniciarás el proceso de
programación a partir del conocimiento
de sus elementos más básicos,
encontrados en casi cualquier
programa, como la cabecera,
interruptores, contadores,
totalizadores, etc. Además, tendrás un
acercamiento a las principales normas
de escritura de algoritmos y programas.

La forma de integrar el conocimiento sobre la estructura algorítmica es a través de la creación de un programa.

¿Qué son los datos?, ¿qué diferencia una constante de una variable? o ¿cómo se manipulan las
entradas y salidas de información? Son solo parte de la extensa teoría que podrás encontrar a lo largo
del documento, ya que también examinarás las operaciones más básicas sobre las cuales estructurar tu
programa a futuro, así como la realización de las funciones internas como elemento clave en el manejo
de datos, las reglas de escritura y realización de algoritmos para su posterior conversión a programas.

Fundamentos de Programación 1
1
Unidad 2: Introducción a algoritmos y programas

1. Tipos de datos

Tipo informático
CONCEPTO

Es el atributo de cualquier dato (constante, variable o dato almacenado


en la memoria interna o en la memoria externa) guardado por el
programa de manera implícita o explícita.
IMPORTANTE

Importante: Por lo general, el tipo indica la forma física del contenido


del dato. Así, un tipo induce naturalmente una representación interna de
los datos, así como el tamaño sobre la semántica del lenguaje en un
conjunto de operadores que se aplican a los valores pertenecientes a este
tipo.

Entonces, podemos convenir en que los tipos son características de los lenguajes de programación
y se clasifican de la siguiente forma:

• Tipos predefinidos.
• Tipos definidos por el usuario.
CONCEPTO

Tipo predefinido
Es un tipo propuesto por el lenguaje, con una semántica explícita y
un conjunto preciso de operadores.

Fundamentos de Programación 1
2
Unidad 2: Introducción a algoritmos y programas

A su vez, se clasifica de la siguiente forma:

Tipo básico:

Traduce tipos de representación interna de los datos en lenguaje de


programación, como enteros, reales (con representación en punto
flotante), lógicos, carácter (código ASCII, Unicode, entre otros) y
cadena de caracteres (menos frecuente).

Tipo complejo

Traduce un tipo abstracto de datos o un tipo de datos que responden a una


necesidad dentro del paradigma de programación, por ejemplo, el tipo
enumerado, el semáforo (en programación concurrente), el mensaje en la
programación distribuida asíncrona, etcétera.

Tipo definido por el usuario

Es posible que el programador decida definir sus propios tipos, siendo estos más cercanos al problema
que se quiere resolver gracias a una extensa variedad de lenguajes. Se esclarece la existencia de un tipo
llamado compuesto, que se trata de un conjunto ordenado de variables con tipos conocidos (struct en C,
record en PASCAL o PL/SQL).
IMPORTANTE

Importante: En el paradigma de la programación orientada a objetos


también existen nociones de tipo jerárquico y de tipo opaco con
respecto a la visibilidad o la herencia.

La comprobación de tipificación constituye la operación donde se verifica la compatibilidad de los tipos


al interior de una expresión; esta se puede dar de dos maneras:
• Estática: realizada al momento de la compilación.
• Dinámica: realizada al momento de la ejecución del programa.

Esta fase de comprobación de los tipos es necesaria para garantizar la corrección del código y evitar los
errores de desbordamiento. Cuando se hace una operación entre tipos diferentes es posible realizar
antes una conversión de un tipo a otro (por lo general, el más débil se convierte en el más fuerte), y luego
se lleva a cabo la operación. La compatibilidad de los tipos está indicada en la parte de la semántica del
lenguaje. La tipificación es fuerte cuando solo son aceptadas las transformaciones para el tipo más
fuerte. Por ejemplo, el lenguaje Pascal; en caso contrario, la tipificación se considera débil.

Fundamentos de Programación 1
3
Unidad 2: Introducción a algoritmos y programas

1.1 Clasificaciones

Todo dato que se utilice en un


programa de computador debe
ser almacenado en memoria. La
memoria del computador está
dividida en espacios del mismo
tamaño, dentro de los cuales se
puede guardar información. Cada
espacio es una celda que tiene
asociada una dirección única en
memoria que permite conocer su
ubicación y acceder a la
información contenida en ella para
consultarla, modificarla o borrarla.

La memoria otorga los espacios que ocupan los datos que se ingresen al computador, por lo que se almacenarán allí por
defecto.

Los datos se pueden clasificar según la cantidad de celdas que se utilicen para almacenarlos.
• Simples: son aquellos que hacen uso de una sola celda.
• Estructurados: son aquellos que hacen uso de más de una celda.
Esto también depende de la cantidad de datos que se quiera almacenar. Dentro del pseudocódigo existen
los siguientes tipos de datos simples:

Numéricos
Por tratarse de datos simples, recuerda que requieren de una sola celda para su almacenamiento. Estos,
en particular, mantienen la siguiente clasificación:
• Enteros
Ejemplo: 3, -3, 1234, 0, 6 -45
• No enteros o número con punto decimal
Para abreviar los llamaremos “decimales”.
Ejemplo: 3.5, -2.02, 4.3

Lógicos o booleanos
Este tipo de dato se representa con dos valores: falso o verdadero. En inglés su denominación cambia a
false or true. Estos se abrevian con una V y F, según corresponda, mayúsculas.

Fundamentos de Programación 1
4
Unidad 2: Introducción a algoritmos y programas

1.2 Caracteres
Pueden ser una letra del alfabeto, un dígito o símbolo especial (incluido el espacio en blanco). A todos
ellos se les conoce como símbolos alfanuméricos.
• Letras
Ejemplos: a, b, c; A, B, C
• Dígitos
Ejemplos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• Símbolos
Ejemplos: +, /, *, ?, %, $, #, !, , ä, .

En este caso los dígitos entre comillas son totalmente diferentes a los datos tipo numéricos, ya que, por
tratarse de caracteres, no pueden ser empleados en operaciones aritméticas.

Todo dato alfanumérico usa comillas simples de esta forma: ‘a’ , ‘0’ , ‘,’ , ‘W’. Entre comillas puede haber
más de un carácter, a esto se le conoce como cadena de caracteres o simplemente cadena. Estas se
escriben entre comillas dobles en lugar de comillas simples, son un tipo de dato estructurado, porque
requieren más de una celda. Por ejemplo: “0987hn” “casa” “pedro”.
IMPORTANTE

Importante: La cantidad de celdas depende de la cantidad de caracteres


que se encuentran entre comillas, por ejemplo: “hola” h o l a.

1.3 Tipos de datos y lenguajes


Todos los lenguajes de programación soportan algún tipo de dato. Por ejemplo, el lenguaje de
programación convencional Pascal soporta tipos base, tales como enteros, reales y caracteres, así
como tipos compuestos como arrays (vectores y matrices) y registros. Los tipos abstractos de datos
logran extender la función de un tipo de dato; ocultan la implementación de las operaciones definidas
por el usuario asociadas con el tipo de datos. Esta capacidad de ocultar la información permite el
desarrollo de componentes de software reutilizables y extensibles.

Tipo de dato
CONCEPTO

Describe un conjunto de objetos con la misma representación, de la cual


existe, también, un conjunto operacional definido por ellos. Tales objetos
se entienden como valores.

Fundamentos de Programación 1
5
Unidad 2: Introducción a algoritmos y programas

IMPORTANTE Importante: Un valor depende de su representación y su interpretación, por


lo que una definición informal de un tipo de dato es: representación +
operaciones.

Cabe destacar que existe un número de operaciones asociadas con cada tipo. Es posible realizar aritmética
sobre tipos de datos enteros y reales, concatenar cadenas o, incluso, recuperar o modificar el valor de un
elemento.

La mayoría de los lenguajes tratan las


variables y constantes de un
programa como instancias de un tipo
de dato, el cual proporciona una
descripción de ellas, que indican al
compilador cosas como: cuánta
memoria se debe asignar para una
instancia, cómo interpretar los datos
en memoria y qué operaciones son
permisibles sobre esos datos.

Las variables y constantes de un programa se consideran como instancias de un tipo de dato según la gran mayoría de los
lenguajes de programación.

Ejemplo: Cuando se escribe una declaración tal como float t z en C o C++,


POR EJEMPLO

se está declarando una instancia denominada z del tipo de dato float. Este
tipo de dato indica al compilador que reserve, por ejemplo, 32 bits de
memoria, y que operaciones tales como sumar y multiplicar están
permitidas, mientras que operaciones como «el resto» (módulo) y
desplazamiento de bits no lo son.

Fundamentos de Programación 1
6
Unidad 2: Introducción a algoritmos y programas

Sin embargo, no se necesita escribir la declaración del tipo float, ya que el autor de compilador lo hizo
por nosotros y se construyen en el compilador. Los tipos de datos construidos dentro de un compilador
se conocen como tipos de datos fundamentales (predefinidos), y por ejemplo, en C y C++ son entre
otros: int, char y float.

Cada lenguaje de programación incorpora una colección de tipos de datos fundamentales, que incluyen
normalmente enteros, reales, carácter, etc. Además, también soportan un número de constructores de
tipos incorporados que permiten generar tipos más complejos. Por ejemplo, Pascal soporta registros y
arrays.
IMPORTANTE

Importante: En lenguajes convencionales tales como C, Pascal, etc., las


operaciones sobre un tipo de dato son composiciones de constructores de
tipo y operaciones de tipos base. Por lo que podría sintetizarse de la
siguiente manera:
Operaciones = Operaciones constructor + Operaciones base.
PREGUNTA

¿Cuál es la diferencia entre dato e información?

Esto puede entenderse gracias a una analogía a la que estarás


acostumbrado. Si miras la receta de alguna preparación en particular,
los datos conforman los ingredientes de la receta, mientras que la
información vendría a ser el plato servido.

2. Operaciones primitivas

El primer objetivo de toda computadora es el


manejo de la información o datos. Estos datos
pueden ser las cifras de venta de una tienda o
las calificaciones de una clase. Recuerda que un
dato es la expresión general que describe los
objetos con los cuales opera una computadora
y la mayoría pueden trabajar con varios tipos
(modos) de datos.

Los datos representa el objetivo principal de manejo de cualquier computadora, siendo estos la expresión general que describe a los
objetos con los cuales opera la máquina.

Fundamentos de Programación 1
7
Unidad 2: Introducción a algoritmos y programas

Los algoritmos y los programas correspondientes operan sobre esos tipos de datos. La acción de las
instrucciones ejecutables de las computadoras se refleja en cambios en los valores de las partidas de
datos. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos
de salida.

En el proceso de resolución de problemas, el diseño de la estructura de datos es tan importante como


el diseño del algoritmo y del programa que se basa en el mismo. Un programa de computadora opera
sobre datos, ya sea que estos se encuentren almacenados internamente en la memoria de medios
externos como discos, memorias USB, de teléfonos celulares, etc., o bien introducidos desde un
dispositivo como un teclado, un escáner o un sensor eléctrico. Las operaciones primitivas son los
elementos básicos de cualquier algoritmo o programa. Estas, junto con las estructuras de control, nos
permitirán construir cualquier programa.

2.1 Operaciones de asignación

Operador de asignación
Permite almacenar valores en las variables. El operador de
CONCEPTO

asignación se representa en un algoritmo mediante el símbolo ←.


El formato general de una operación de asignación es el siguiente:
identificador de variable ← expresión.

Ejemplo: La operación edad ← 25 asigna a la variable de identificador edad el valor 25.

El operador de asignación tiene menor prioridad que cualquier otro. Esto hace que, en primer
lugar, se calcule el valor de la expresión al lado derecho del operador y, en segundo lugar, este valor
se almacene en la variable cuyo nombre aparece a la izquierda del operador de asignación. Es
posible utilizar el mismo identificador en ambos lados del operador de asignación, dando lugar a
operaciones de conteo o de acumulación. Veamos un ejemplo:

Ejemplo: total ← total + 1


POR EJEMPLO

Será una operación de conteo que incrementa en 1 el valor de la


variable total, mientras que:
total ← total + incremento
Será una operación de acumulación que incrementa el valor de la
variable total en una cantidad igual al valor almacenado en la variable
incremento.

Una instrucción de asignación en C utiliza como operador de asignación el carácter igual (=) y finaliza en
punto y coma (;).

Fundamentos de Programación 1
8
Unidad 2: Introducción a algoritmos y programas

POR EJEMPLO Ejemplo: edad = 25


Corresponde a la operación anterior de asignación. Adviértase la diferencia
entre este operador y el operador relacional “igual que” (==). El primero
asigna un valor a una variable, mientras que el segundo compara dos
valores para determinar si son iguales. Es habitual entre los
programadores inexpertos confundir ambos operadores.

En C, el tipo del valor obtenido al evaluar el lado derecho de una instrucción de asignación se convertirá
al tipo de la variable que se encuentra en el lado izquierdo, lo que puede provocar una alteración del
valor realmente almacenado (por ejemplo, al asignar el valor real 5.45 a una variable de tipo entero, se
almacenará el valor 5).
Por ello, para evitar errores, es recomendable en general que el dato que se asigna pueda
almacenarse sin pérdidas en la variable especificada (por ejemplo, el valor entero 5 podrá almacenarse
sin pérdidas en una variable de tipo entero o de tipo real).

2.2 Operaciones aritméticas

Operador aritmético
CONCEPTO

Permite llevar a cabo operaciones aritméticas entre operandos, ya


sean números constantes o variables.
El resultado de una operación aritmética será un número.

Veamos a continuación una tabla donde podrás encontrar algunos operadores aritméticos con la
operación que realizan, un ejemplo de su uso y el resultado de dicho ejemplo.

Fundamentos de Programación 1
9
Unidad 2: Introducción a algoritmos y programas

Operación Ejemplo Resultado

81
** Potencia 3**4

Multiplicación 10.5*7 73.5


*

/ División 18/5 3.6

Módulo 15mod2 1
mod (residuo)

División
div entera
17div3 5

+ Suma 127.45+32.73 160.18

- Resta 65.30-32.33 32.97

Si dentro de una expresión se tiene más de un operador aritmético se debe respetar la siguiente jerarquía
expuesta a modo de reglas para resolver una expresión aritmética.

Subexpresiones
Si una expresión contiene subexpresiones entre paréntesis, estas se
evalúan primero; respetando claro la jerarquía de los operadores
aritméticos en tal subexpresión. Si las subexpresiones se
encuentran anidadas por paréntesis, primero se evalúan aquellas
que se encuentran en el último nivel de anidamiento.

Aplicación según jerarquía

Los operadores aritméticos se aplican teniendo en cuenta


la jerarquía y de izquierda a derecha.

Fundamentos de Programación 1
10
Unidad 2: Introducción a algoritmos y programas

2.3 Operaciones lógicas

Expresiones lógicas o booleanas

Se nombran así en honor al matemático George Boole, están formadas por


CONCEPTO

números, constantes o variables y operadores lógicos o relacionales.

Estas expresiones dan como resultado verdadero o falso.

Son utilizadas en estructuras selectivas, consideradas así ya que, dependiendo del resultado de la
evaluación, se toma por un determinado camino alternativo; repetitivas, cuando a partir del
resultado evaluativo se continúa con el ciclo o se interrumpe el mismo.

¿Existe jerarquía entre operaciones aritméticas?


PREGUNTA

Sí. Existe una jerarquía que funciona como las leyes de aritmética,
primero los paréntesis y luego de izquierda a derecha.

3. Constantes, variables y expresiones

3.1 Constantes
Los programas de computadora contienen ciertos valores que no deben cambiar durante la
ejecución del programa, conocidos como constantes. De igual forma, existen otros valores que
cambiarán durante la ejecución del mismo; a estos se les llama variables.

Constante

Es un dato que permanece sin cambios durante todo


CONCEPTO

el desarrollo del algoritmo o durante la ejecución del programa.


Se divide en dos tipos: constantes de caracteres y constantes lógicas
(boolean).

Fundamentos de Programación 1
11
Unidad 2: Introducción a algoritmos y programas

Constante de caracteres

Consiste en un carácter válido encerrado dentro de apóstrofes.


POR EJEMPLO

Ejemplo: 'B' '+' '4' ';'


Si se desea incluir el apóstrofe en la cadena entonces debe aparecer
como un par de apóstrofes, encerrados dentro de simples comillas: "".

Una secuencia de caracteres se denomina normalmente una cadena y una constante tipo cadena es
una cadena encerrada entre apóstrofos. Por consiguiente, 'Juan Minguez' y 'Pepe Luis Garcia' son
constantes de cadena válidas. Nuevamente, si un apóstrofo es uno de los caracteres en una constante
de cadena, debe aparecer como un par de apóstrofos: 'John"s'.

Constante lógica (boolean)

Solo existen dos constantes de este tipo: verdadero o falso. La mayoría de los lenguajes de
programación permiten diferentes tipos de constantes: enteras, reales, caracteres y booleanos o
lógicas, y representan datos de esos tipos.

3.2 Variables
En un programa de ordenador, permanentemente, necesitaremos almacenar valores de forma
temporal. Podrían ser datos del disco duro, proporcionados por el usuario (escritos), o lo que sea.
También pueden ser resultados obtenidos por el programa, intermedios o finales. Estos datos pueden
ser de varios tipos: números, texto, etc. Aún así, tan pronto como necesitamos almacenar información
durante un programa, usamos una variable.

Para usar una imagen, una variable es un cuadro, que el programa (computador) identificará con una
etiqueta. Para acceder al contenido de la caja, solo tienes que designarlo por su etiqueta.

Fundamentos de Programación 1
12
Unidad 2: Introducción a algoritmos y programas

En realidad, en la memoria RAM del


computador, por supuesto, no hay
una caja real, y no hay más etiquetas
pegadas en ella. En el computador,
físicamente, hay una ubicación de
memoria, identificada por una
dirección binaria. Si estuviéramos
programando en un lenguaje
directamente entendible por la
máquina, tendríamos que evitar
designar nuestros datos con
10011001 y otro 01001001; aunque
esos lenguajes existen llevando el
nombre de ensambladores y no son
los únicos idiomas disponibles.

La memoria RAM del computador tiene una ubicación física identificada con una dirección binaria.

Los lenguajes de programación más avanzados (que son los que usa casi todo el mundo) se encargan, entre
otras funciones, de ahorrarle al programador la tediosa gestión de las ubicaciones de memoria y sus
direcciones. Y, a medida que comience a comprender, es mucho más fácil usar las etiquetas de su elección
que tener que lidiar con direcciones binarias.

Declaración de variables
Lo primero que debes hacer antes
de poder utilizar una variable es
crearla y darle un nombre. Esto se
hace al comienzo del algoritmo,
incluso antes de las propias
instrucciones. Esto se llama la
declaración de variables. Es una
especie de declaración de reserva
de espacios de memoria donde se
va a poner datos calculados o fijos.
El nombre de la variable obedece a
requisitos que cambian según los
idiomas.

Los nombres de las variables pueden constar de letras e, incluso, números. Sin embargo, suele excluir la mayoría de signos
de puntuación.

Fundamentos de Programación 1
13
Unidad 2: Introducción a algoritmos y programas

Sin embargo, una regla general estricta es que un nombre de variable puede constar de letras y números,
pero excluye la mayoría de los signos de puntuación, especialmente los espacios. Un nombre de variable
correcto también debe comenzar con una letra. En cuanto al número máximo de signos para un nombre de
variable, depende del idioma utilizado.
IMPORTANTE

Importante: En el pseudocódigo algorítmico, por supuesto, somos libres en el


número de signos para un nombre de variable, aunque por razones
puramente prácticas, y para consternación de Stéphane Bern, generalmente
evitamos los nombres largos.

Al declarar una variable, no es suficiente crear un cuadro (reservar una ubicación de memoria); todavía
tenemos que especificar qué queremos poner en él, porque esto depende del tamaño de la caja (la
ubicación de la memoria) y el tipo de codificación utilizada.

Tipos digitales clásicos

Comencemos con un caso muy frecuente, el de una variable destinada a recibir números. Si reservamos un
byte para codificar un número, te recordaría que solo podemos codificar 2 8 = 256 valores diferentes. Esto
puede significar, por ejemplo, números enteros del 1 al 256, o del 0 al 255, o del –127 al +128… Si
reservamos dos bytes, tenemos derecho a 65.536 valores; con tres bytes, 16.777.216, etc. Y hay otro
problema: ¿esta codificación debe representar números decimales?, ¿números negativos? En definitiva, el
tipo de codificación (es decir, el tipo de variable) elegido para un número determinará:

• Los valores máximo y mínimo de los números que se pueden almacenar en la variable.
• La precisión de estos números (en el caso de números decimales).

Todos los idiomas, sean los que sean, ofrecen un "ramo" de tipos numéricos, cuyo detalle puede variar
ligeramente de un idioma a otro. A grandes rasgos; sin embargo, encontramos los siguientes tipos:

Tipo digital Playa

0 a 255
byte (byte)

Integer -32 768 a 32 767

-2 147 483 648 a 2 147 483 647


long integer

Float

Double

Fundamentos de Programación 1
14
Unidad 2: Introducción a algoritmos y programas

En algorítmica, no nos vamos a molestar demasiado con los subtipos de variables numéricas (sabiendo
que siempre tendremos bastantes preocupaciones así). Por tanto, nos contentamos con especificar que
se trata de un número, teniendo en cuenta que en un lenguaje real será necesario ser más preciso.

Tipos numéricos
Algunos idiomas permiten otros tipos numéricos, entre ellos:

• El tipo de moneda (con estrictamente dos dígitos después del punto decimal).
• El tipo de fecha (día / mes / año).

Estos tipos no serán utilizados a lo largo de la explicación del curso; pero se señalan porque no dejarás
de encontrarlos en la programación misma.

Tipo alfanumérico

Afortunadamente, los espacios de memoria, que son las variables, pueden contener mucha información
además de números. Sin esto, estaríamos un poco molestos para cuando tengamos que almacenar un
apellido, por ejemplo. Por lo tanto, también tenemos el tipo alfanumérico, llamado tipo de carácter,
cadena o en inglés el tipo string.

Confusión entre dígitos y secuencia de dígitos


Por ejemplo, 423 puede representar el número 423 (cuatrocientos
veintitrés) o la secuencia de caracteres 4, 2 y 3. ¡Y no son lo mismo
en absoluto! Con el primero podemos hacer cálculos, con el
segundo nada. Por lo tanto, las comillas ayudan a evitar cualquier
ambigüedad: si no hay ninguna, 423 es cuatrocientos veintitrés. Si
los hay, "423" representa la secuencia de dígitos 4, 2, 3.

Mezclar el nombre de la variable con su contenido

En pocas palabras, consiste en confundir la etiqueta de una espacio


de memoria y lo que hay dentro. Lamentablemente suele ser el
más grave y frecuente de los errores que se comenten al programar
un tipo alfanumérico.

Tipo booleano
El último tipo de variables es el tipo booleano, aquí se almacenan únicamente los valores lógicos
VERDADERO y FALSO. Podemos representar estas nociones abstractas de VERDADERO y FALSO por
cualquier cosa que queramos: inglés (VERDADERO y FALSO) o números (0 y 1). Poco importa, ya que lo
esencial es entender que el tipo booleano es muy económico en cuanto al espacio de memoria que
ocupa, ya que para almacenar dicha información binaria basta con un solo bit.
Los programadores suelen pasar por alto el tipo booleano, erróneamente. Es cierto que no es
estrictamente imprescindible y que se podría escribir casi cualquier programa ignorándolo por completo.
Sin embargo, si el tipo booleano se pone a disposición de los programadores en todos los lenguajes, no
es por nada.

Fundamentos de Programación 1
15
Unidad 2: Introducción a algoritmos y programas

El uso de variables
booleanas muy a menudo
resulta ser un poderoso
instrumento para la
legibilidad de los
algoritmos: puede hacer la
vida más fácil para la
persona que escribe el
algoritmo, así como para la
persona que lo relee para
corregirlo.

Las variables booleanas pueden facilitar el proceso de escribir y corregir un algoritmo.

Entonces, ahora sí, es cierto, en algorítmica hay una cuestión de estilo: es exactamente como en el lenguaje
cotidiano, hay varias formas de expresarse para decir básicamente lo mismo.

¿Se puede usar una variable boolean,


para una operación matemática?
PREGUNTA

La respuesta vendría a ser negativa ya que las variables boolean solo


pueden almacenar dos valores lógicos: verdadero y falso.

4. Operadores relacionales y conectores lógicos

4.1 Operadores relacionales


Los operadores relacionales se utilizan para comparar dos operandos, que pueden ser números,
caracteres, alfanuméricos, constantes o variables. A su vez las constantes o variables pueden ser del tipo
entero, real, carácter o cadena de caracteres. El resultado de una expresión con operadores relacionales es
verdadero o falso.

En la siguiente tabla se presentan los diferentes operadores relacionales, la descripción del símbolo, un
ejemplo de su uso y el resultado del mismo. Se puede ver como un ejemplo de la utilización de operadores
relacionales con variables.

Fundamentos de Programación 1
16
Unidad 2: Introducción a algoritmos y programas

Operación Ejemplo Resultado

81
** Potencia 3**4

Multiplicación 10.5*7 73.5


*

/ División 18/5 3.6

Módulo 15mod2 1
mod (residuo)

División
div entera
17div3 5

+ Suma 127.45+32.73 160.18

- Resta 65.30-32.33 32.97

4.2 Conectores lógicos


Los operadores lógicos son operadores que permiten formular condiciones complejas a partir de
condiciones simples. Estos se clasifican de la siguiente manera:

• Negación (NO-NOT)
• Conjunción (Y- AND)
• Disyunción (O-OR)

¿Los conectores lógicos se pueden combinar


en una misma expresión?
PREGUNTA

Sí se pueden combinar, pero siempre que la expresión tenga lógica para


el programa, este combina or y and en una expresión. También cabe
recordar que debe estar siempre bien complementada con paréntesis u
otro elemento.

Fundamentos de Programación 1
17
Unidad 2: Introducción a algoritmos y programas

5. Operaciones de entrada y salida

Imaginemos que hicimos un programa para calcular el cuadrado de un número, digamos 12. Si
mantenemos las cosas simples, escribimos algo como esto:
Variable A en Numérico
Inicio
A ← 12^2
Fin
Está bien, el programa cumple el objetivo. Nos da el cuadrado de 12. Pero si quieres el cuadrado de un
número que no sea 12, tienes que reescribir el programa, lo que no sería eficiente. Por otro lado, el
resultado sin duda lo está calculando la máquina; sin embargo, lo guarda cuidadosamente para sí misma
y el usuario que ejecuta este programa nunca sabrá cuál es el cuadrado de 12.

Por eso, afortunadamente,


existen instrucciones que
permiten a la máquina
dialogar con el usuario, en
cierto sentido, estas
instrucciones permiten al
usuario teclear valores para
uso del programa. Esta
operación es la lectura.

Existen instrucciones que permiten al programa dialogar con el usuario y mostrarle determinados valores en pantalla, tales
acciones se denominan lectura y escritura.

En el otro sentido, otras instrucciones permiten que el programa comunique valores al usuario
mostrándolos en la pantalla. Esta operación es escribir.

A primera vista, se puede tener la impresión de que los especialistas en procesamiento de datos no fueron
muy creativos cuando bautizaron estas operaciones; ya que cuando el usuario debe escribir en el teclado, a
esta instrucción se le llama lectura, cuando debe leer en la pantalla se le llama escritura. Pero la respuesta es
que un algoritmo es una secuencia de instrucciones que programa la máquina, ¡no al usuario!
Entonces, cuando le decimos a la máquina que lea un valor, implica que el usuario tendrá que escribir este
valor. Y cuando se le pide a la máquina que escriba un valor, es para que el usuario pueda leerlo.

Fundamentos de Programación 1
18
Unidad 2: Introducción a algoritmos y programas

IMPORTANTE Importante: Leer y escribir son, por tanto, términos que, como siempre en
programación, deben entenderse desde el punto de vista de la máquina
que se encargará de ejecutarlos y no del usuario que utilizará el programa.
Y ahí, todo se vuelve perfectamente lógico.

5.1 Leer y escribir instrucciones


Tan pronto como el programa encuentra una instrucción de lectura, la ejecución se detiene, esperando
que se escriba un valor en el teclado. La interrupción puede durar unos segundos, unos minutos o varias
horas: lo único que ejecutará el resto de las instrucciones es que se haya pulsado la tecla Enter.
Una vez se realiza, suceden dos cosas. Para empezar, todo lo que se presionó antes de la tecla Enter
(una secuencia de letras, números o una combinación de ambos) se ingresa en la variable que sigue a la
instrucción Read. Y luego, inmediatamente, la máquina ejecuta la siguiente instrucción.

Instrucción de lectura

La lectura es otra forma de asignar un valor a una variable. Con la


CONCEPTO

declaración de asignación, el programador elige de antemano cuál debe ser


este valor.
Con la instrucción leer, deja esta elección al usuario.

Por el contrario, para escribir algo en la pantalla, es tan simple como:


escribir Carlos
Antes de leer una variable, se recomienda escribir etiquetas en la pantalla, para advertir al usuario lo que
debe escribir; de lo contrario, el pobre usuario se pasará el tiempo preguntándose lo que el computador
espera de él. Veamos un ejemplo:
Escriba "Ingrese su nombre: "
Leer Nombre
Leer y escribir son instrucciones algorítmicas que no presentan particular dificultad, una vez asimilado
adecuadamente el problema del sentido del diálogo (hombre → máquina, o máquina ← hombre).

Fundamentos de Programación 1
19
Unidad 2: Introducción a algoritmos y programas

¿Qué otros dispositivos de entrada y salida


PREGUNTA puedes llegar a mencionar?

Se pueden mencionar: entrada, pistola código de barras, lector huella


digital, salida impresora pantalla etc.

6. Estructura general de un programa


6.1 Definición de programa
Programa de computadora

Es un conjunto de instrucciones (órdenes dadas a la máquina)


que producirán la ejecución de una determinada tarea. En
CONCEPTO

esencia, un programa es un medio para conseguir un fin. El fin


será probablemente definido como la información necesaria para
solucionar un problema.

El proceso de programación es, por consiguiente, un proceso de solución de problemas y el


desarrollo de un programa requiere de las siguientes fases.

Fases del desarrollo de programas

Definición y análisis del problema


1

Diseño de algoritmos
2
• Diagrama de flujo
• Diagrama N-S
Codificación del programa • Pseudocódigo
3

Depuración y verificación del programa


4

Documentación
5

Mantenimiento
6

Fundamentos de Programación 1
20
Unidad 2: Introducción a algoritmos y programas

6.2 Partes constitutivas de un programa


Luego de decidir desarrollar un programa, es deber del programador establecer un conjunto de
especificaciones que el programa necesita contener, entre ellos están las entradas, las salidas y los
algoritmos de resolución. Estos últimos serán los que incluyan las técnicas de obtención de salidas a
partir de las entradas, a nivel conceptual, un programa puede considerarse como una caja negra.

La caja negra o el algoritmo de resolución, en realidad, es el conjunto de códigos que transforman las
entradas del programa (datos) en salidas (resultados). El programador debe establecer de dónde
provienen las entradas al programa. Las entradas, en cualquier caso, procederán de un dispositivo de
entrada (teclado, disco...). Cabe destacar que el proceso de introducir los datos o información de
entrada, en la memoria del computador se le denomina entrada de datos, operación de lectura o acción
de leer.

En cambio, la operación de salida se entiende como escritura o acción de escribir. Estas deben
presentarse en los dispositivos periféricos de salida, tales como una pantalla, impresoras, discos, etc.

6.3 Instrucciones y su tipología

Codificación del programa

También conocido como el proceso de diseño algorítmico, consiste


en definir las acciones o instrucciones que se encargarán de
CONCEPTO

resolver el problema. Estas deben escribirse y, posteriormente,


almacenarse dentro de la memoria de la máquina en el mismo
orden que han de ejecutarse, es decir, en secuencia.

Un programa puede ser lineal o no lineal. Un programa es lineal si las instrucciones se ejecutan
secuencialmente, sin bifurcaciones, decisión ni comparaciones. De la siguiente manera:
Instrucción 1
Instrucción 2
.
.
.
Instrucción n

En el caso del algoritmo, las instrucciones se suelen conocer como acciones, y se tendría:

Acción 1
Acción 2
.
.
.
Acción n

Pero un programa es no lineal cuando se interrumpe la secuencia mediante instrucciones de bifurcación.


De la siguiente manera:

Fundamentos de Programación 1
21
Unidad 2: Introducción a algoritmos y programas

Acción 1
Acción 2
.
.
.
Acción x
Acción n
.
Acción n + i

6.4 Elementos básicos de un programa

En programación se debe
separar la diferencia entre el
diseño del algoritmo y su
implementación en un
lenguaje específico. Por ello,
es necesario distinguir
claramente entre los conceptos
de programación y el medio en
que ellos se implementan en
un lenguaje específico. Sin
embargo, una vez que se
comprenda cómo utilizar los
conceptos de programación y
la enseñanza de un nuevo
lenguaje es relativamente fácil.

Siempre debes diferenciar entre el diseño de algoritmo y su implementación en un lenguaje específico.

Los lenguajes de programación poseen elementos básicos utilizados como bloques constructivos y reglas,
denominadas sintaxis de lenguaje, para las que dichos elementos se combinan.

Solamente las instrucciones sintácticamente correctas pueden ser interpretadas por la computadora y los
programas que contengan errores de sintaxis son rechazados por la máquina. Veamos a continuación cuáles
son tales elementos.

Fundamentos de Programación 1
22
Unidad 2: Introducción a algoritmos y programas

Elementos básicos de un programa

Palabras reservadas
1

Identificadores
2
•Nombres de variables
•Procedimientos
Caracteres del programa •Funciones
3 •Nombre

Constantes y variables
4

Expresiones
5

Instrucciones
6

Existen otros elementos, además de los básicos, que forman parte de un programa. Para un correcto
diseño algorítmico y, naturalmente, codificación del programa, es esencial que tales elementos sean
comprendidos a cabalidad; además de entender y verificar que funcionen como se espera. Veámoslos a
continuación.

• Bucles
• Contadores
• Acumuladores
• Interruptores
• Estructuras:
• Secuenciales
• Selectivas
• Repetitivas
IMPORTANTE

Importante: El amplio conocimiento de todos los elementos de


programación y el modo de su integración en los programas constituyen las
técnicas de programación que todo buen programador debe conocer.

Fundamentos de Programación 1
23
Unidad 2: Introducción a algoritmos y programas

6.5 Escritura de algoritmos y programas


La escritura de un algoritmo mediante una herramienta de programación debe ser lo más clara y
estructurada posible, de modo que su lectura facilite considerablemente el entendimiento del algoritmo
y su posterior codificación en un lenguaje de programación.

Los algoritmos deben ser escritos en lenguajes similares a los programas. Utilizaremos esencialmente
el lenguaje algorítmico, basado en pseudocódigo, y la estructura del algoritmo requerirá la lógica de los
programas escritos en el lenguaje de programación estructurado; por ejemplo, Pascal.

Cabecera del programa Bloque algoritmo

Acción simple que comienza con la Es el resto del programa y se


palabra algoritmo. Esta palabra será compone de dos secciones: las
seguida por el nombre asignado al acciones de declaración y las
programa completo. acciones ejecutables.

Las declaraciones definen o declaran las variables y constantes que tengan nombres. Las acciones
ejecutables son las acciones que posteriormente deberá realizar la computación cuando el algoritmo
convertido en programa se ejecute.

Cabecera del programa o algoritmo

Todo algoritmo y programa debe comenzar con una cabecera donde se exprese el identificador o nombre,
este debe corresponder con la palabra que señale el lenguaje. En los lenguajes de programación, la
palabra reservada suele ser program. En algorítmica se denomina algoritmo.

algoritmo DEMO1

Declaración de variables
Ahora se da inicio a la declaración o descripción de todas las variables utilizadas en el algoritmo, listando
sus nombres y especificando sus tipos. Esta sección comienza con la palabra reservada var (abreviatura de
variable) y tiene el siguiente formato.

var
tipo-1 : lista de variables-1
tipo-2 : lista de variables-2
.
.
tipo-n : lista de variables-n

Fundamentos de Programación 1
24
Unidad 2: Introducción a algoritmos y programas

En este tipo cada lista de variables corresponde a una variable simple o lista separada por comas donde
cada tipo se trata de uno de los tipos de datos básicos, ya sean entero, real, char o boolean. Por ejemplo,
la sección de declaración de variables.

var
entera: Numero_Empleado
real: Horas
real: Impuesto
real: Salario

O de modo equivalente
var
entera: Numero_Empleado
real: Horas, Impuesto, Salario

Esto declara que solo las tres variables hora, impuesto y salario son de tipo real.

Aprovechando este momento, recordemos algunas buenas prácticas que has de tener en cuenta siempre
que te encuentres programando. Sobre todo, con la declaración de variables:

1. El utilizar nombres de variables significativos, estos deben sugerir lo que dichas variables
representan, lo que facilitará el programa, además de hacerlo más legible.
2. La inclusión de breves comentarios que indiquen la forma de utilizar la variable.

Como tal, quedarían declaradas de la siguiente forma:

var
entera : Numero_Empleado // número de empleado
real : Horas, // horas trabajadas
Impuesto, // impuesto a pagar
Salario // cantidad ganada

Declaración de constantes numéricas


En esta sección se declaran todas las constantes que tengan nombre. Su formato es el siguiente. Cabe
destacar que los valores de estas constantes ya no pueden variar en el transcurso del algoritmo.
const
pi = 3.141592
tamaño = 43
horas = 6.50

Fundamentos de Programación 1
25
Unidad 2: Introducción a algoritmos y programas

Declaración de constantes y variables carácter


¿Qué se puede declarar en la sección del programa conocida como const? Pues, aquellas constantes de
carácter simple, numéricas y cadenas de caracteres.

const
estrella = '*'
frase = '12 de octubre'
mensaje = 'Hola mi nene'

6.6 Ejemplo básico de programación estructurada


En algunos lenguajes (históricamente, suelen ser lenguajes antiguos), las líneas de programación están
numeradas. Y las líneas son ejecutadas por la máquina en el orden de estos números. Hasta ahora, en sí
mismo, no existe problema. Pero el truco es que en todos estos lenguajes hay una instrucción de
bifurcación denominada ”goto” en pseudocódigo, instrucción que envía el programa directamente a la
línea especificada. Por el contrario, este tipo de lenguaje no incluye instrucciones como FinMientras o
FinSi, que “cierran” un bloque.

Tomemos el ejemplo de: SI entonces …Sino…

Ejemplo: Programación no estructurada.


1000 Si condición Entonces Ir a
POR EJEMPLO

1200
1100 instrucción 1
1110 etc.
1120 etc
1190 Ir a 1400
1200 instrucción 2
1210 etc.
1220 etc
1400 continuación del algoritmo

Ejemplo: Programación estructurada.


POR EJEMPLO

Si condición Entonces
instrucciones 1
Sino….
instrucciones 2
Terminar Si

Un programa escrito en este tipo de lenguaje (no estructurado) aparece como una serie de ramas
enredadas entre sí . Por un lado, no podemos decir que esto favorezca la legibilidad del programa. Por
otro lado, es una importante fuente de errores, porque tarde o temprano nos olvidamos de un "goto", o
le ponemos de más, etc.

Fundamentos de Programación 1
26
Unidad 2: Introducción a algoritmos y programas

Por el contrario, la programación


estructurada, especialmente si se
cuida la presentación poniendo
líneas de comentarios y
practicando la sangría, evita
errores y revela su estructura
lógica de forma muy clara. El
peligro es que, si bien la mayoría
de los lenguajes de programación
utilizados son estructurados, aún
ofrecen la posibilidad de practicar
la programación no estructurada
la mayor parte del tiempo.

Aunque se puede emplear un estilo sin estructura definida, no se recomienda, debido a que la programación estructurada
evita errores mientras refleja una lógica muy clara.

En este caso, las líneas no están designadas por números, pero algunas pueden identificarse por nombres
(llamadas "etiquetas") y hay disponible una instrucción de bifurcación. En otras palabras, aun cuando un
lenguaje te ofrezca la posibilidad de desviarte de la programación estructurada, no se debe utilizar bajo
ningún concepto.

¿Existen lenguajes donde no se declaren


PREGUNTA

las variables?

Sí existen (PHP), pero el control de estas se torna difícil y


se pueden perder en un programa extenso.

Fundamentos de Programación 1
27
Unidad 2: Introducción a algoritmos y programas

Conclusión

A lo largo de este material hemos indagado dentro de la estructura algorítmica, realizando de a poco la
analogía natural hacia las líneas de código de programas estructurados. Se revisaron las operaciones más
sencillas para comenzar tu proceso de programación: las operaciones primitivas y los tipos de datos que las
conforman.
También aprendiste a definir una constante y una variable; además de asignar valores a estos. Recuerda que
existen diversos tipos de variables: digitales clásicos, numéricos, alfanuméricos y booleanos. Incluso,
repasaste la forma de asignar valores a dichas variables y la manera correcta de hacerlo.
Por último, entendiste las instrucciones que se le deben indicar a un programa para que este permita
resolver un problema de forma eficaz para un usuario, diferenciando entre la lectura y la escritura. No
olvides que existen reglas determinadas para el manejo de las variables.

Dado lo anterior, te encuentras


en condiciones de generar tus
primeros programas con
estructura básica definida y, lo
más importante, solucionar o
satisfacer un problema dado.
Te invito a comenzar a
plantearte problemas lógicos y
resolverlos a través de la
construcción de código de
programación.

Conociendo la estructura algorítmica y sus reglas para comenzar su escritura te encuentras en condiciones de comenzar a
construir tus propios programas.

Fundamentos de Programación 1
28
Unidad 2: Introducción a algoritmos y programas

Referencias bibliográficas

Cedano Olvera, M. A. y Rubio González, J. A. (2015). Fundamentos de computación para ingenieros. Grupo
Editorial Patria. Recuperado el 17 de enero de 2022 de https://elibro-
net.bibliotecadigital.umayor.cl:2443/es/lc/umayor/titulos/39445.

Juganaru Mathieu, M. (2015). Introducción a la programación. Grupo Editorial Patria. Recuperado el 17 de


enero de 2022 de https://elibro-net.bibliotecadigital.umayor.cl:2443/es/lc/umayor/titulos/39449.

Moreno Pérez, J. C. (2015). Programación. RA-MA Editorial. Recuperado el 17 de enero de 2022 de https://elibro-
net.bibliotecadigital.umayor.cl:2443/es/lc/umayor/titulos/62476.

Trejos Buriticá, O. I. (2017). Lógica de programación. Ediciones de la U. Recuperado el 17 de enero de 2022 de


https://elibro-net.bibliotecadigital.umayor.cl:2443/es/lc/umayor/titulos/70315.

Fundamentos de Programación 1
29

También podría gustarte