Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Tipos de datos, jerarquía de operadores y algoritmos, Monografías, Ensayos de Programación C

Conceptos básicos de informática, incluyendo tipos de datos lógicos y estructurados, jerarquía de operadores, algoritmos y diagramas de flujo. Se explica el desarrollo de software y el uso de compiladores en lenguajes como Pascal, Cobol, Fortran y Ada. Se incluyen ejemplos de expresiones aritméticas y su resolución.

Tipo: Monografías, Ensayos

2019/2020

Subido el 14/10/2021

noa-9
noa-9 🇵🇪

1 documento

1 / 18

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
LÓGICA DE PROGRAMACION
INDICE
GENERALIDADES
T1: HERRAMIENTAS DE
PROGRAMACIÓN
1.1 Herramientas de Programación
1.2 Tablas de verdad
1.3 Tipos de datos y jerarquía de
operadores
1.4 Algoritmos y Diagramas de Flujo
T2: ESTRUCTURAS BÁSICAS DE
PROGRAMACIÓN
T3: ESTRUCTURAS DE DATOS
1.1 Herramientas de Programación
« Anterior | Siguiente »
Sistema de información: es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio[1].
Procesamiento de Información: Es la capacidad de los Sistemas de Información para realizar cálculos con base en secuencias de operaciones preestablecidas. Estos cálculos pueden efectuarse con
datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser
utilizada para la toma de decisiones, lo que hace posible, entre otras cosas, que un tomador de decisiones genere una proyección financiera a partir de los datos que contiene un estado de resultados o
un balance general de un año base1.
Procesamiento de Datos: es cualquier ordenación o tratamiento de datos, o los elementos básicos de información, mediante el empleo de un sistema. Procesar datos es generar información para la
toma de decisiones[2].
1.1.1 Pasos del desarrollo de software.
Escribir un programa para resolver un problema involucra una serie de pasos desde su análisis hasta llegar a su implementación. Estos pasos se conocen como Desarrollo de Software y algunas veces
como Ingeniería de Software o Ciclo de Vida de un Sistema.
El desarrollo de software se puede definir como la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para
desarrollar, operar y mantenerlos. [Bohem, 1976].
1.1.2 Lenguajes de Programación.
Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que se utiliza para escribir los programas de computadoras. Un lenguaje de programación permite a uno o
más programadores especificar la forma precisa en que los datos van a ser operados en una computadora, cómo van a ser almacenados o transmitidos y qué acciones tomar ante ciertas circunstancias
o problemas que se deben resolver. El programador debe ser capaz de seleccionar el lenguaje de programación apropiado para resolver un problema bajo ciertas circunstancias específicas, de manera
óptima. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas
entre ellos para realizar la construcción del programa de forma colaborativa.
[1] Tomado de http://www.slideshare.net/miniproject/sistemas-de-informacin-1708626.
[2] Tomado de fccea.unicauca.edu.co/old/procesamiento.htm
1.1.3 Intérpretes y Compiladores.
Los compiladores, los interpretes y ls ensambladores se encargan de traducir lo que haya escrito en los lenguajes de alto nivel (código fuente) y lo convierten en código objeto (casi ejecutable).
Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:
Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su función es similar a la de un traductor humano,
que toma un libro lo analiza completamente y produce otro equivalente escrito en una lengua diferente.
Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye
sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
Con el intérprete es más fácil la búsqueda de errores, pues la ejecución del programa se puede interrumpir en cualquier momento para estudiar el entorno (valores de las variables, etc.).
El intérprete va analizando instrucción por instrucción y al momento en que detecta un error se detiene permitiendo su modificación o corrección. Además, el programa puede modificarse
sobre la marcha, sin necesidad de volver a comenzar la ejecución.
El compilador genera programas más rápidos y eficientes, pues este analiza todo el código de una sola vez y luego genera un archivo objeto, por lo cual el análisis del lenguaje fuente se
hace una sola vez, durante la generación del programa equivalente. Se tarda analizando solamente la primera vez, pero luego lo que se ejecuta es el código objeto, por lo cual las demás
ejecuciones son más rápidas. En cambio, un intérprete como no genera el código objeto, siempre se tarda realizando el análisis pues lo hace instrucción por instrucción hasta que termina
y no hayan más errores detectados. El tiempo de ejecución se irá reduciendo cuando se vayan depurando todos los errores encontrados.
Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este
tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman
interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. [1]
LENGUAJES COMPILADOS
Es un programa que traduce un programa escrito en un lenguaje de alto nivel, en un programa en lenguaje de máquina que la computadora es capaz de entender y ejecutar directamente.
Ejemplo de lenguajes que usan compilador:
Pascal
Cobol
Fortran
Ada
Modula 2
C , C++
Involucra dos pasos en su operación:
1. Convertir código fuente a objeto
2. Ejecutar el código objeto
Fases de compilación:
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Vista previa parcial del texto

¡Descarga Tipos de datos, jerarquía de operadores y algoritmos y más Monografías, Ensayos en PDF de Programación C solo en Docsity!

LÓ G I C A D E PR O G R A M A C I O N

INDICE

GENERALIDADES

T1: HERRAMIENTAS DE

PROGRAMACIÓN

1.1 Herramientas de Programación 1.2 Tablas de verdad 1.3 Tipos de datos y jerarquía de operadores 1.4 Algoritmos y Diagramas de Flujo T2: ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN T3: ESTRUCTURAS DE DATOS

1.1 Herramientas de Programación

« Anterior | Siguiente »

Sistema de información: es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio[1]. Procesamiento de Información: Es la capacidad de los Sistemas de Información para realizar cálculos con base en secuencias de operaciones preestablecidas. Estos cálculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones, lo que hace posible, entre otras cosas, que un tomador de decisiones genere una proyección financiera a partir de los datos que contiene un estado de resultados o un balance general de un año base^1. Procesamiento de Datos: es cualquier ordenación o tratamiento de datos, o los elementos básicos de información, mediante el empleo de un sistema. Procesar datos es generar información para la toma de decisiones[2].

1.1.1 Pasos del desarrollo de software.

Escribir un programa para resolver un problema involucra una serie de pasos desde su análisis hasta llegar a su implementación. Estos pasos se conocen como Desarrollo de Software y algunas veces como Ingeniería de Software o Ciclo de Vida de un Sistema. El desarrollo de software se puede definir como la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. [Bohem, 1976].

1.1.2 Lenguajes de Programación.

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que se utiliza para escribir los programas de computadoras. Un lenguaje de programación permite a uno o más programadores especificar la forma precisa en que los datos van a ser operados en una computadora, cómo van a ser almacenados o transmitidos y qué acciones tomar ante ciertas circunstancias o problemas que se deben resolver. El programador debe ser capaz de seleccionar el lenguaje de programación apropiado para resolver un problema bajo ciertas circunstancias específicas, de manera óptima. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

[1] Tomado de http://www.slideshare.net/miniproject/sistemas-de-informacin-1708626. [2] Tomado de fccea.unicauca.edu.co/old/procesamiento.htm

1.1.3 Intérpretes y Compiladores.

Los compiladores, los interpretes y ls ensambladores se encargan de traducir lo que haya escrito en los lenguajes de alto nivel (código fuente) y lo convierten en código objeto (casi ejecutable).

Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel: Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su función es similar a la de un traductor humano, que toma un libro lo analiza completamente y produce otro equivalente escrito en una lengua diferente. Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios: Con el intérprete es más fácil la búsqueda de errores, pues la ejecución del programa se puede interrumpir en cualquier momento para estudiar el entorno (valores de las variables, etc.). El intérprete va analizando instrucción por instrucción y al momento en que detecta un error se detiene permitiendo su modificación o corrección. Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución. El compilador genera programas más rápidos y eficientes, pues este analiza todo el código de una sola vez y luego genera un archivo objeto, por lo cual el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. Se tarda analizando solamente la primera vez, pero luego lo que se ejecuta es el código objeto, por lo cual las demás ejecuciones son más rápidas. En cambio, un intérprete como no genera el código objeto, siempre se tarda realizando el análisis pues lo hace instrucción por instrucción hasta que termina y no hayan más errores detectados. El tiempo de ejecución se irá reduciendo cuando se vayan depurando todos los errores encontrados. Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores. [1] LENGUAJES COMPILADOS Es un programa que traduce un programa escrito en un lenguaje de alto nivel, en un programa en lenguaje de máquina que la computadora es capaz de entender y ejecutar directamente. Ejemplo de lenguajes que usan compilador: Pascal Cobol Fortran Ada Modula 2 C , C++ Involucra dos pasos en su operación:

  1. Convertir código fuente a objeto
  2. Ejecutar el código objeto

Fases de compilación:

« Anterior | Siguiente »

[1] Tomado de www.scribd.com/doc/37261651/Emulador-y-Simulador.

ENLAZADOR (LINKER) El enlazador realiza la tarea de enlazar la funcionalidad de las teclas y funciones con el código objeto generado a través de la compilación de un programa. Una librería es la colección de varias teclas y sus funciones, las cuales son creadas por programadores expertos y almacenadas en lugares especiales para que se puedan utilizar por otros programadores. También pueden ser algunas funciones estándar como raíz cuadrada, logaritmo, random y otras. Para poder utilizar estas funciones predefinidas que están guardadas en las librerías, el programador tiene que hacer referencia a dicha librería, que es un archivo que se llama en la cabecera del programa. El proceso de enlace es mostrado a continuación:

1.3.2 Operadores y expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Una expresión representa una unidad de datos simple, tal como un número o un carácter. También puede consistir en alguna combinación de entidades interconectadas por uno o más operadores. Las expresiones también pueden representar condiciones lógicas que son verdaderas o falsas. Cada expresión tiene un valor, que se determina tomando los valores de las variables y constantes implicadas ejecutando las operaciones indicadas. Ejemplos: X = 9 * 15 + 6 2.5 + 13 = 15. A+B = C+D

ELEMENTOS DE UNA EXPRESIÓN: OPERANDOS OPERADORES

Un operador es un símbolo o palabra que significa que se ha de realizar cierta acción entre dos o más valores, llamados operandos. Ejemplos:

OPERADORES

Los operadores especifican el tipo de cálculo que se quiere desarrollar en los elementos de una expresión. Los operadores se pueden clasificar en las siguientes categorías: Aritméticos Relacionales Lógicos Alfanuméricos Asociativos

OPERADORES ARITMÉTICOS [1] Los operadores aritméticos son usados para realizar cálculos matemáticos. Algunos de los operadores aritméticos se listan a continuación:

[1] Extracto tomado de Fundamentals of Programming. NIIT.

EJEMPLOS: Supóngase que unas variables a y b tienen valores 10 y 3, respectivamente. Se muestran a continuación varias expresiones aritméticas en las que aparecen estas variables, acompañadas del resultado.

Para resolver una expresión aritmética se deben seguir las siguientes reglas: Primero se resuelven las expresiones que se encuentran entre paréntesis. Todas las sub expresiones entre paréntesis se evalúan de adentro hacia afuera, desde el paréntesis más interno hasta ir desapareciéndolos todos. Se deben seguir ciertas reglas de prioridad que veremos más adelante.

OPERADORES RELACIONALES

Usted puede comparar dos operandos utilizando operadores relacionales. El resultado es un valor de verdad ya sea Cierto o Falso. Tenemos seis operadores relacionales. La siguiente tabla muestra dichos operadores:

Operador Relacional Descripción Ejemplo Explicación = Compara los dos operandos y evalúa si son iguales x = y Devuelve verdadero si los valores son iguales y falso si no lo son <> Compara los dos operandos y evalúa si son diferentes x <> y Devuelve verdadero si los valores no son iguales y falso en caso contrario

Evalúa si el operando izquierdo es mayor que el derecho x > y Devuelve verdadero si el primero es mayor que el segundo y falso en caso contrario < Evalúa si el operando izquierdo es menor que el derecho x < y Devuelve verdadero si el primero es menor que el segundo y falso en caso contrario = Evalúa si el operando izquierdo es mayor o igual que el derecho

x >= y Devuelve verdadero si el primero es mayor o es igual que el segundo y falso en caso contrario <= Evalúa si el operando izquierdo es menor o igual que el derecho

x <= y Devuelve verdadero si el primero es menor o es igual que el segundo y falso en caso contrario

EJEMPLO

Supongamos que i,j y k son variables enteras con valores asignados 2,3 y 4 respectivamente. A continuación se presentan varias expresiones lógicas en las que aparecen estas variables.

OPERADORES LÓGICOS O BOOLEANOS

Los operadores lógicos son usados para combinar el resultado de expresiones conteniendo operadores relacionales. Existen tres operadores lógicos, que se describen en la siguiente tabla:

Operador Lógico Descripción Ejemplo AND Operador lógico AND x < 7 AND y > 100 OR Operador lógico OR x < 7 OR y > 100 NOT Operador Lógico de negación NOT x = 10

1.3.3 Jerarquía de operadores

El resultado de evaluar una expresión aritmética es un número. Ahora bien, cuando aparecen dos o más expresiones aritméticas, ¿Cómo saber qué operaciones hay que realizar primero? Por ejemplo, si tenemos una expresión 3 + 7 * 4. Cuál es la respuesta correcta?. Veamos:

  1. 3 + 7 = 10 10 * 4 = 40. Si hacemos primero la suma el resultado será 40.
  2. 7 * 4 = 28
  3. 3 + 28 = 31. Si hacemos el producto y el resultado lo sumamos con el primer término, la respuesta es 31. Sabemos que la matemática es exacta, entonces ¿Si hay una única respuesta, cómo la obtenemos?. Veamos otro ejemplo. Sea la expresión: X 2 + 1 / 2 Observe que esta expresión es totalmente diferente a esta otra (X 2 +1)/2, por lo que es importante codificar las expresiones aritméticas correctamente. Los paréntesis nos indican un orden para realizar las operaciones. Pero no siempre nos darán los paréntesis, por lo se creó la jerarquía de operadores. La jerarquía varía de lenguaje a lenguaje, por lo que es importante que cuando usted vaya a codificar en algún lenguaje, lo primero que debe revisar es la jerarquía que corresponde a ese lenguaje.

A = 10 + 6 * 4 / 2 * 2 – 4 * 6 * 2 / 2 * 3 / 2

A = 10 + 24 / 2 * 2 – 4 * 6 * 2 / 2 * 3 / 2

A = 10 + 12 * 2 – 4 * 6 * 2 / 2 * 3 / 2

A = 10 + 24 – 4 * 6 * 2 / 2 * 3 / 2

A = 10 + 24 – 24 * 2 / 2 * 3 / 2

A = 10 + 24 – 48 / 2 * 3 / 2

A = 10 + 24 – 24 * 3 / 2

A = 10 + 24 – 72 / 2

A = 10 + 24 – 36

A = 10 + 24 – 36

A = 34 – 36

A = -2 Respuesta.

EJEMPLO 3

Resolver la siguiente expresión, para A=5 y B=16. (A ^ 2) > (B * 2)

SOLUCIÓN

(A ^ 2) > (B * 2) El primer paso es sustituir los valores de A y B

( 5 ^ 2 ) > (16 * 2) Efectuamos los paréntesis, primero el de más a la izquierda

25 > ( 16 * 2 ) Resolvemos el paréntesis de la derecha

25 > 32 Se evalúa la expresión relacional y el resultado es

Falso Respuesta

EJEMPLO 4

Resolver la siguiente expresión, donde X=6 y B = 7. (X ^ 3 \ B) <= (X * 5 + B ^ 3 / 4)

SOLUCIÓN

(X ^ 3 \ B) <= (X * 5 + B ^ 3 / 4) Sustituir los valores de X y B

( 6 ^ 3 \ 7) <= (6 * 5 + 7 ^ 3 / 4) Evaluando potencia en paréntesis de más a la izquierda

( 216 \ 7 ) <= (6 * 5 + 7 ^ 3 / 4) Resolviendo paréntesis de más a la izquierda, hacemos división entera

30 <= (6 * 5 + 7 ^ 3 / 4) Procediendo con el paréntesis de la derecha, potencia tiene mayor prioridad

30 <= ( 6 * 5 +343 / 4) Producto y división real tienen misma prioridad, pero producto está más a la izquierda

30 <= (30 + 343 / 4 ) Luego sigue la división real

30 <= ( 30 +85.75 ) Efectuamos la suma

30 <= 115.75 Ya eliminamos los paréntesis, procedemos a evaluar el operador relacional

Verdadero Respuesta

EJEMPLO 3

Resolver la siguiente expresión NOT((15 > = 7 ^ 2) and ( (43 – 8 * 2) mod 4 < > 3 * 2 div 2 ) or 3 > = 3 )

SOLUCIÓN

NOT((15 >= 7 ^ 2 ) and ( (43 – 8 * 2) mod 4 < > 3 * 2 div 2) or 3 >= 3)

Resolviendo paréntesis de adentro hacia afuera y el de más a la izquierda. Potencia tiene mayor prioridad.

Not ((15 >= 49) and ((43 – 8 * 2 ) mod 4 < > 3 * 2 div 2 ) or 3

= 3 )

Pasamos al paréntesis de la derecha pues ya no hay operadores aritméticos en el primer paréntesis

Not ((15>=49) and (( 43 – 16 ) mod 4 < > 3 * 2 div 2 ) or 3 > = 3 )

Efectuamos la resta para quitar el paréntesis

Not ((15>=49) and (27 mod 4 <> 3 * 2 div 2 ) or 3 > = 3 ) Seguimos con el producto Not ((15>=49) and ( 27 mod 4 <> 6 div 2 ) or 3 > = 3 ) Div y mod tienen igual prioridad, el de más a la izquierda es mod. Not ((15>=49) and (3 <> 6 div 2 ) or 3 > = 3 ) Luego efectuamos el div Not (( 15>=49 ) and (3 <> 3 ) or 3 > = 3 ) Ya no hay operadores aritméticos, seguimos con los relacionales, el paréntesis de más a la izquierda Not (Falso and ( 3 <> 3 ) or 3 > = 3 ) Luego con el de la derecha Not (Falso and Falso or 3 > = 3 ) Quitamos el último operador relacional Not ( Falso and Falso or Verdadero) And tiene mayor prioridad que Or Not(Falso or Verdadero) Efectuamos Or Not(Verdadero) Evaluamos Negación False Respuesta

1.3.4 Escritura de formulas

Las fórmulas matemáticas se deben escribir en formato lineal. Esto obliga al uso frecuente de paréntesis que indiquen el orden de evaluación correcto de las operaciones. Linealizar una expresión significa, convertir una expresión algebraica en expresión aritmética o algorítmica.

EJEMPLOS 1:

Linealizar las siguientes expresiones: (no se olvide que linealizar significa escribir una expresión algebraica en una sola línea).

« Anterior | Siguiente »

Sabemos que la división real se representa por / y que usamos paréntesis para que se realicen las operaciones en el orden correcto. Respuesta:

X = ( a + b / c ) / ( a / b + c )

EJEMPLOS 1:

Linealizar las siguientes expresiones: (no se olvide que linealizar significa escribir una expresión algebraica en una sola línea).

Recuerde que los paréntesis ayudan a separar las expresiones para que se evalúen en el orden correcto, debemos poner los que sean necesarios pero tratando de que no vayan más de la cuenta. Respuesta: X = ( a / (a + b)) / (a / (a - b))

REPRESENTACIÓN DE ENTRADAS Y SALIDAS DE UN ALGORITMO.

ENTRADAS

Entradas son los datos proporcionados al computador para procesar y generar la salida. Para que los resultados sean correctos, se tienen que dar los datos de entrada correctos. La entrada se puede representar de varias formas. Flujogramas y pseudocódigo tienen diferentes métodos de representar la instrucción de aceptar una entrada. Algunos ejemplos de representación de entradas son los siguientes: En un Flujograma, la instrucción es representada usando el símbolo llamado “Entrada de datos”. Existe un símbolo para entrada por tarjeta perforada que ya está en desuso por haber desaparecido las mismas (Ver imágen 1).

Los símbolos utilizados en flujogramas para representar las entradas son los siguientes: En un pseudocódigo, la instrucción se da a través de teclado.

Existen varias formas de representar el pseudocódigo. Por ejemplo, para leer la edad de un estudiante en una variable llamada edad (Ver imágen 2).

Un computador requiere entradas para generar las salidas. Después de aceptar la entrada, el computador la procesa y luego despliega el resultado. Este resultado es llamado la salida. SALIDAS: Al igual que las entradas, hay diferentes formas de representar la salida. En un Flujograma, se utiliza el símbolo “desplegar”. Los símbolos utilizados en flujogramas para representar las salidas se ven en la imagen 3: En pseudocódigo, la instrucción “desplegar salida” es representada usando salida a pantalla o a papel que se ve en la imagen 4.

Representación de entradas en algoritmos.

Seleccione una imágen para agrandarla.

1.4.2 Representación de algoritmos.

Los comentarios en un algoritmo se usan como una referencia para explicar la lógica del mismo. Es una forma de documentar el proceso, estos no tienen efecto en el código del programa (el computador los ignora), sino que sirven para que el programador comprenda mejor lo que se está representando en el algoritmo. Los comentarios se pueden representar ya sea en una sola línea o en varias líneas. Para representar comentarios en una sola línea, se utilizan dos barras: //Este es un comentario. Para representar un comentario en varias líneas se utiliza la siguiente simbología: /* Este es un comentario en varias Líneas */

NOTACIONES PARA EL DISEÑO DE ALGORITMOS

Los algoritmos pueden ser representados en diferentes formas, entre las cuales tenemos:

Representación en pseudocódigo PSEUDO: Falso, imitación CODIGO: instrucciones escritas en un lenguaje de programación El pseudocódigo no es propiamente un código sino un tipo de descripción que incluye un poco de lenguaje natural y de instrucciones estandarizadas para los lenguajes de programación. Podemos decir que es un lenguaje intermedio entre el lenguaje natural (nuestra forma normal de expresarnos) y cualquier lenguaje de programación específico, como por ejemplo C, Fortran, Pascal, etc. Es una mezcla de lenguaje natural, símbolos, términos y otras características comúnmente utilizadas en los lenguajes de programación. Además es una técnica para diseño de programas que permite definir las estructuras de datos, las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. No existe una notación formal o estándar de pseudocódigo, sino que, cada programador puede utilizar la suya propia. Usted puede detectar errores cuando escribe pseudocódigo porque cada paso del pseudocódigo puede ser revisado durante la creación. Se concibió para superar las dos principales desventajas de los flujogramas: requiere mucho trabajo para elaborarlo y que no se puede modificar tan fácilmente sin tener que hacer un nuevo redibujo. VENTAJAS DEL PSEUDOCÓDIGO.

Es más fácil y rápido de elaborar en comparación con el Flujograma. Es más fácil detectar errores y hacer cambios. No necesita ser reescrito si se hacen cambios, ya que cada paso es independiente y puede ser modificado sin alterar los otros pasos. Es fácil su traducción a cualquier lenguaje de programación. Esto no se logra con los flujogramas y tablas de decisión, ya que el formato usado por el pseudocódigo es similar a un programa. Ambos contienen un grupo de instrucciones secuenciales usando un grupo de instrucciones definidas. Es un lenguaje algorítmico similar al español u otro idioma Es una imitación de las instrucciones reales para una computadora Permite representar en forma fácil operaciones repetitivas complejas. Al seguir las reglas se pueden observar claramente los niveles que tiene cada operación.

DESVENTAJAS DEL PSEUDOCÓDIGO.

No provee una representación gráfica del algoritmo, por lo que puede ser difícil entender la lógica compleja de un pseudocódigo.

Si el pseudocódigo contiene demasiadas condiciones anidadas puede ser difícil de entender.

El pseudocódigo puede ser diseñado en español o en inglés. Cuando se diseña en inglés, se tiene un grupo de instrucciones más parecidas a un lenguaje de programación. Entre las instrucciones utilizadas en el pseudocódigo inglés tenemos las siguientes: Begin …. End/ Start…. Stop. Estas instrucciones son usadas para iniciar y finalizar. Accept, read, input: Estas instrucciones son usadas para obtener una entrada de un usuario. Display, write, print: Estas son usadas para presentar un resultado o una salida. If… else: Son usadas para hacer decisiones.

EJEMPLO

Elaborar el pseudocódigo para encontrar la superficie de un círculo para un radio cualquiera.

1.4.3 Diseño de flujogramas

Continuando con el estudio de algoritmos, estudiaremos la representación en Diagramas de Flujo o llamados también Flujogramas.

Programación

Introducción

Algoritmo

Un algoritmo constituye una lista bien definida, ordenada y finita de operaciones, que permite encontrar la solución a un problema determinado.

Dado un estado inicial y una entrada, es a través de pasos sucesivos y bien definidos que se llega a un estado final, en el que se obtiene una solución (si hay varias) o la solución (si es única).

Algoritmo

Un algoritmo puede ser expresado en:

● Lenguaje natural (a veces, este no resulta muy claro, pero es muy útil para problemas simples)

● Pseudocódigo

● Diagramas de flujo

● Programas

Algoritmo

Ejemplo Indicar los pasos para resolver la siguiente ecuación:

Algoritmo

Ejemplo Indicar los pasos para obtener el área sombreada:

Algoritmo

Ejemplo Indicar los pasos para calcular:

Análisis y comprensión de un problema

Por lo general, un problema se descompone en subproblemas; por tanto, un algoritmo expresa la resolución de un problema (elemental o no).

Las etapas de desarrollo de un algoritmo, con base en la lógica, son las siguientes:

1. Definición. En esta etapa se especifi ca el propósito del algoritmo y se ofrece una definición clara del problema por resolver. Además, aquí también se establece lo que se pretende lograr con su solución.

Programación

Variables, tipos y expresiones

Introducción

El objetivo general de un programa es transformar datos en resultados útiles para el usuario. Los datos están almacenados en la memoria principal o en la memoria secundaria, ya sea de manera temporal (durante toda la ejecución del programa o durante una parte del tiempo de ejecución) o de manera permanente.

En la mayoría de los lenguajes de programación, los datos son de diferentes tipos, aparecen en expresiones o en las llamadas de funciones y se manejan a través del uso de variables.

Variables

El formato de representación y de estructuración de los datos depende del paradigma del lenguaje de programación y de la opción que el programador ha elegido para representar los datos.

La ventaja de las variables es que almacenan datos de entrada, de salida o intermedios.

El nombre de una variable debe ser único y no ambiguo.

Tipos de Variables

Las variables son de varios tipos; en la mayoría de los lenguajes de programación imperativa predominan los siguientes tipos:

● Variables simples. Son propias de los tipos básicos, para los datos enteros, flotantes, caracteres y lógicos. ● Variables compuestas. La definición del tipo de una variable compuesta depende de la sintaxis del lenguaje de programación y de su poder semántico. ● Arreglos de variables de tipo simple o tipo compuesto. Los arreglos sirven para almacenar una sucesión de valores del tipo indicado.

Tipos de Variables

(A) Conjuntos de números (B) Tipos simples en Python

Entero (int)

Real (float)

Booleano (bool)

Texto (str)

Complejo (complex)

Tipos de Variables

Ejemplo:

● El lado de un cuadrado? ● La temperatura de un día? ● El ángulo interno de un triángulo? ● La cantidad de hijos de una persona? ● La raíz discriminante en la ecuación de Baskara? ● El promedio de la estatura de un grupo de persona? ● El IMC de una persona?

Expresiones

En programación, una expresión es la traducción en lenguaje informático de un cálculo aritmético, lógico o de otra naturaleza.

La noción de la expresión fue inspirada de la noción de expresión matemática, por lo que su semántica es similar: la evaluación de una expresión se hace tomando en cuenta los valores que intervienen y aplicando los operadores.