miércoles, 21 de octubre de 2009

Conceptos de Programación



CONCEPTOS DE PROGRAMACIÓN



TIENE QUE PRACTICAR una hora al día TODOS LOS DÍAS. NO DIGA QUE NO SE LE DIJO







Unidad 1: Programas de Computadora

Objetivos del Aprendizaje



Al finalizar esta unidad, usted será capaz de:


• Definir el propósito y el contenido de un programa de computadora.

• Establecer una metodología para resolver problemas de procesamiento de datos.
• Definir el concepto de dato, los tipos de datos y las funciones incorporadas a los lenguajes de programación.
•. Enumerar las recomendaciones más comunes necesarias para programar con estilo.

En la actualidad es común contar con la ayuda de las computadoras para la solución de problemas. Para casi cualquier problema típico en las áreas de negocios, servicios y tecnologías, entre otras, la solución puede ser modelada con programas de computadora, esta solución es
generalmente más confiable y de menor costo. Los programas de computadora permiten dar solución a problemas de cualquier nivel, estas soluciones típicamente "amadas aplicaciones, las realiza un equipo multidisciplinario donde se encuentran los programadores, diseñadores y analistas de sistemas, entre otros especialistas.


Generalmente, los programadores utilizan algún lenguaje de programación para desarrollar las aplicaciones requeridas por los clientes. Estos lenguajes de programación sirven como puente de enlace entre el análisis realizado por el equipo de desarrollo y la capacidad de cálculo que ofrece
la computadora. En otras palabras, por medio del lenguaje de programación, el programador le indicará al computador la secuencia de instrucciones que se deben ejecutar para obtener la solución esperada por los clientes.


Todo esto hace pensar que de alguna manera, un programador debe tener cierta lógica que le ayude a tratar con el lenguaje de programación, esto es, deba saber exactamente las capacidades brindadas por el lenguaje de programación y más aún, debe tener nociones claras de los fundamentos generales de la programación. Como cualquier ciencia, la programación requiere de una serie de conocimientos básicos comunes a cualquier lenguaje de programación, que le permitan al programador indicarle inequívocamente al computador las tareas que éste debe realizar. Dichos conocimientos básicos son conocidos como Fundamentos de Programación, los cuales no son más que un conjunto de reglas, técnicas y conceptos que ayudan a definir lo que se puede hacer con un lenguaje de programación y así dar los primeros pasos para desarrollar aplicaciones para la solución de problemas computacionales.


Este curso introduce al estudiante a los fundamentos de la programación de manera breve y concisa. Se discuten diversos temas, tales como: ¿qué son los programas de computadora?, el diseño estructurado, la lógica de programación, diagramas de flujos, pseudocódigo, entrada y salida, entre otros.

Para desarrollar programas de computadora existe una gran variedad de lenguajes de programación, por esta razón, fue necesario definir una notación genérica que permitiera, en primer lugar, representar y describir el problema de forma clara y sencilla.

Esta representación se obtiene con el uso de algoritmos, los cuales permiten definir una secuencia finita de pasos claros y sencillos, para obtener una solución del problema.

El proceso para desarrollar programas de computadora requiere entender y conceptuar el problema, para luego definir los aspectos importantes acerca de la entrada, salida y
almacenamiento.

En esta unidad se discuten los conceptos básicos más importantes de la programación y la metodología para desarrollar una solución computacional de un problema.

2. Sistemas de Procesamiento

Un ordenador es una máquina de procesamiento de información. Es una máquina, porque tiene cables, circuitos y demás elementos mecánicos. Es además de procesamiento, porque es
capaz de transformar o procesar datos y de información porque maneja conjuntos ordenados de datos.


Para procesar la información se requiere del hardware como microprocesador, memoria RAM, entre otros y del software que sirve para manejar el hardware tal corno programas, sistema operativo, etc.

3. Algoritmos

El concepto de algoritmo fue desarrollado por el matemático persa Abu Jafar Mohammed Ibn Musa Al Khwarizmi. Se puede decir que un algoritmo es una fórmula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden, resuelven el problema planteado.

Un algoritmo debe tener las siguientes características:


  • Estar bien definido.
  • Ser preciso.
  • Ser finito. (es decir: El algoritmo tiene que tener un fin en un tiempo razonable)

Básicamente, un algoritmo es un proceso metódico que define una serie finita de pasos sencillos
y sin ambigüedades para la solución de un problema.

La programación consiste en adaptar el algoritmo al ordenador. El algoritmo es independiente de la implementación en algún lenguaje de programación.

4. Metodología para Diseñar Algoritmos

Un algoritmo es una fórmula para obtener la solución de un problema, ésta fórmula puede ser planteada de diferentes formas y cada una de estas formas puede efectivamente resolver el problema planteado. Por esa razón, el diseño de un algoritmo es un proceso creativo, ya que no existe un conjunto de reglas que indiquen expresamente cómo escribir un algoritmo en forma correcta, por el contrario. si existen muchas maneras de resolver un problema, entonces existen muchos algoritmos que implementen la solución.

Sin embargo, hay una serie de pasos que permiten resolver un problema de la forma más
conveniente
, estos son:

• Análisis del problema.

• Diseño del algoritmo.

• Verificación del algoritmo.



Figura 1.1: Metodología de Diseño de Algoritmos


1.1 Análisis del Problema

El primer paso es identificar el problema. Se debe revisar cuidadosamente el problema para determinar qué tipo de información se necesita producir como salida. Luego se identifica toda
la información que se necesita para encontrar la solución. En otras palabras, es importante considerar lo que se está pidiendo en el problema
, con qué elementos se cuenta y cuáles se deben solicitar para establecer el camino a seguir en la solucionar el problema. Luego de obtener
todos estos datos, se inicia la fase de Diseño del Algoritmo
.

1.2 Diseño del Algoritmo

En esta fase, la solución del problema puede requerir varios pasos, así que es necesario buscar la manera más fácil para simplificar la propuesta. Una forma de hacerlo, es identificar los procesos más importantes y colocarlos en orden ascendente según su importancia y precedencia, esto sirve como un algoritmo inicial.

Este algoritmo inicial podrá ser refinado en sucesivas operaciones, hasta obtener una solución más detallada y más fácil de traducir a un lenguaje de programación.

1.3 Verificación del Algoritmo

Cuando el algoritmo está listo, es necesario comprobar que cumple con los procesos ideados y produce el resultado esperado. Una manera de hacerlo, es por medio de la ejecución manual, que consiste en realizar una prueba del algoritmo con datos significativos y comprobar que al ejecutar todos los procesos se obtienen los resultados esperados para la salida.


5. Programas de Computadora

Un programa es un conjunto de instrucciones que ejecutadas ordenadamente resuelven un problema, en otras palabras es la implementación del algoritmo. Un programa de computadora es una secuencia de instrucciones que le indican al computador que realice operaciones
específicas para lograr un resultado deseado
. Consiste de uno o más módulos o rutinas, cada uno de los cuales puede estar compuesto a su vez de otros módulos o subprogramas. Un programa
de computadora
no es:

  • Una caja mágica.
  • Intrínsicamente correcto.

Un programa de computadora debe ser.

  • Una solución a un problema.
  • Una secuencia de instrucciones hechas para ejecutarse en una computadora.
  • Sólo tan correcto como el programador lo haya hecho.

En resumen, un programa de computadora es un conjunto de instrucciones generadas por el programador, que le dicen al computador exactamente lo que debe hacer.



6. Definiciones Básicas

A continuación se presentan un conjunto de definiciones básicas que se usan en el entorno de un programa de computadora:


Lenguaje de Máquina: es un lenguaje que puede ser interpretado directamente por los circuitos internos de la computadora porque está basado en instrucciones compuestas por secuencias de ceros (0) y unos (1).


Ventajas:

  • No necesita ser traducido puesto que la máquina lo entiende.
  • Opera directamente con la máquina.
  • Puede llegar a ser muy eficiente en el manejo de recursos.
  • El programador tiene control absoluto del computador

Desventajas son:

  • Los porgramas son extremadamente difíciles de mantener.
  • Es único y particular para cada procesador.

Lenguaje de Bajo Nivel (Ensamblador): es un lenguaje que usa el programador para codificar
sentencias simbólicas que un compilador (programa traductor) puede convertir una a una en instrucciones de lenguaje de máquina. Hace uso de mnemotécnicos o abreviaturas, para representar las instrucciones de máquina.

Ventajas

  • Más fácil de entender que el lenguaje de máquina
  • El programador tiene control absoluto del computador

Desventajas

  • Dependiente del procesador
  • Se requiere el mapa del computador con todas las rutinas del sistema operativo


Lenguajes de Alto Nivel: Es un lenguaje de programación orientado al ser humano y usa comandos e instrucciones en lenguaje parecido al lenguaje escrito humano. Ejemplo: Cobol, Fortran, Java, PL/I.


Algunos lenguajes de alto nivel se denominan Lenguajes de Programación Orientado a Objetos (ó OOPL). Ejemplos de éstas son: Smalltalk, Java, C++, Eiffel, etc.


Ventajas:

• Lenguajes fuentes independientes del procesador.

• Son mucho más fáciles de implementar y mantener.

• Tienen un carácter genérico.

Desventajas son:

• Menos eficientes en el manejo de los recursos.

• Requiere de un proceso de traducción (compilación).


Compilar: Es traducir un programa escrito en un lenguaje de alto nivel a un programa en lenguaje de máquina, que es la forma en que la computadora puede ejecutar directamente las acciones o
instrucciones
. Típicamente una instrucción de alto nivel se compila o traduce, en muchas instrucciones de lenguaje de máquina.

En algunos casos, el proceso de compilación se descompone en dos pasos:

• Compilar las instrucciones de alto nivel para producir lo que se denomina el código objeto.

• Enlazar (link) que es tomar el código objeto generado y cualquier otro código objeto que sea requerido, que haya sido previamente generado y colocarlos juntos, produciendo así el programa ejecutable o código ejecutable.


Base de Datos: Es una colección de datos completa e integrada, organizada para evitar duplicados, que permite recuperar información para satisfacer a una amplia variedad de usuarios.


Sistema Operativo: Es una colección organizada de software que se usa para ayudar y controlar las operaciones de una computadora.


Almacenamiento: Se refiere a un dispositivo en el que los datos se pueden ingresar, guardar y posteriormente recuperar.


7. Crear un Programa de Computadora

Para crear un programa de computadora, generalmente el programador debe partir de un algoritmo y escribir las sentencias (instrucciones) del código fuente en un editor. Un editor es un
programa utilitario que permite la edición de textos y programas. Existen muchos editores que están diseñados específica mente para ayudar en la creación del programa fuente. Algunos incluso siguen la especificación da un lenguaje particular.


El conjunto de sentencias fuente se denomina un "programa fuente". El programa fuente es la entrada para el compilador, que lo convierte en un conjunto de comandos entendibles por el computador llamado "programa ejecutable"


Si se encuentra algún error en la sintaxis de los comandos en el programa fuente, el compilador listará cada uno de ellos y no producirá el programa ejecutable. El programador debe repetir los pasos de editar/compilar hasta que no se encuentren errores de compilación.


La Figura 1.2 presenta en forma esquemática los pasos para crear un programa de computadora.



fig 1.2************




Figura 1.2: Creación de un Programa de Computadora



8. Funcionamiento del Compilador/Enlazador

Previo a la creación del programa ejecutable, el compilador. si no detecta errores de
sintaxis, crea un programa objeto y un listado del programa fuente. La Figura 1.3 muestra la creación del programa ejecutable, partiendo del programa fuente, con un paso de enlace (link) involucrado.


El programa objeto, producido por el compilador, se usa como la entrada al enlazador para realizar lo que se llama el paso de "edición de enlace". El enlazador, combina el programa objeto recién creado con otros programas objeto ya existentes, produciendo el programa ejecutable. los
otros programas objeto generalmente residen en un archivo en disco llamado "Librería de Enlace".

9. Datos, Tipos de Datos y Funciones Incorporadas

Un programa de computadora, para que pueda ser ejecutado, debe ser cargado en memoria. La unidad de procesamiento del ordenador sólo puede trabajar con los datos e instrucciones que residen en la memoria.

9.1 Dato

El dato es cualquier objeto o elemento de información que se usa a lo largo de diversas operaciones dentro de un programa o fragmentos de éste. Los datos son los elementos sobre los que se opera cuando se efectúa una operación en el computador, es decir, cuando se ejecuta una instrucción en un programa.

Un dato tiene un nombre que lo identifica y distingue de los demás elementos del programa. Dicho nombre no es más que otra forma de referenciar la dirección de memoria que ocupa el dato, así que cuando se trabaja con el nombre del dato, en realidad se trabajar con el valor que se
encuentra en esa dirección de memoria.

Cuando se está trabajando con un programa de computadora, siempre se está trabajando con direcciones de memoria, es por ello que es una estrategia común referenciar esas posiciones de memoria por medio de nombres o identificadores significativos para los humanos. En otras palabras, un programa de computadora es una serie de instrucciones organizadas para
manipular y trabajar con direcciones de memoria en un computador.

Los datos pertenecen a un tipo de dato específico, lo cual le indica al computador el rango de valores que dicho dato puede aceptar y las operaciones que sobre él se pueden realizar.

Por último, los datos poseen un valor que bien puede cambiar o permanecer constante a lo largo del programa o mientras el dato esté disponible.


9.2 Tipo de Dato

El tipo de dato es una definición que agrupa los valores válidos para un conjunto de datos y las operaciones que sobre ellos se pueden realizar. Normalmente, se puede establecer una relación de orden sobre los datos de naturaleza escalar o con valores determinísticos.

Cada tipo de dato tiene una representación determinada en el computador. Esto tiene que ver con el tamaño o la cantidad de memoria que el computador reserva para almacenar los datos de un tipo especifico cualquiera. Todo, absolutamente todo, en la memoria de un computador se representa por medio de código binario, un código binario es un número en base 2, cuyos dígitos son ceros o unos. De esta manera, un código cualquiera puede ser tratado como un número entero en un momento dado, como un carácter en otro o en cualquier otra forma diferente de acuerdo a las necesidades del programa.

Los tipos de datos pueden ser:

Tipo dato primitivo: Tipos básicos o simples predefinidos en el sistema.

• Tipo de dato definidos por el usuario: Agregados por el programador.

Los tipos de datos primitivos más importantes son:

numéricos, lógicos y carácter. A continuación se detalla cada uno de ellos:

• Numéricos: Pueden ser a su vez:

Entero: Subconjunto finito del conjunto matemático de los números enteros. No tiene parte decimal. El rango de los valores depende del tamaño que se les asigne en la memoria para su representación, este tamaño es definido por el lenguaje de programación, usualmente 2 bytes.

Real: Subconjunto finito del conjunto matemático de los números reales. Llevan signo y parte decimal. Se almacenan usualmente en 4 bytes o más (dependiendo del lenguaje de programación que se utilice). Si se utilizan números reales muy grandes, se puede usar notación científica que se divide en mantisa, base y exponente. De tal forma que el valor se obtiene multiplicando la mantisa por la base elevada al exponente.

Lógicos o booleanos: Es aquel que sólo puede tomar uno de los dos valores, verdadero o falso (1 ó O). Este es el tipo de dato que retorna todas las operaciones
lógicas.

Caracter: Abarca al conjunto finito y ordenado de caracteres que reconoce la computadora: letras, dígitos, caracteres especiales, ASCII, UNICODE. Generalmente, sus valores se representan dentro de un par de comillas simples, aunque también se puede suministrar su código numérico o posición dentro del conjunto de caracteres válidos que se esté usando.

Tipo cadena o string: Conjunto de caracteres, que usualmente se presentan entre los símbolos de comilla doble ("”).


Los diversos lenguajes existentes pueden añadir más tipos de datos u otros modificadores. Por ejemplo, el modificador Long se usa comúnmente con los tipos entero (int) para indicar un
entero de gran tamaño (Long int).

En algunos lenguajes se definen tipos especiales para la fecha y hora, sobre todo en los lenguajes modernos, tales como Java.

9.3 Variables

Las variables son instancias de un tipo de dato determinado, cuyo valor puede cambiar durante la ejecución del programa o corrida del algoritmo.

Antes de usar una variable, el programador debe definirla o declararla, indicando su nombre y el tipo de dato al que pertenece.

El nombre que se elija para una variable se denomina identificador y debe ser un nombre significativo que esté relacionado con el propósito para el que se vaya a usar la variable en el programa.

El identificador de una variable será un conjunto de caracteres que tendrán ciertas restricciones, según lo defina el lenguaje de programación. Por lo general, el identificador de una variable tiene que empezar por una letra, el tamaño y caracteres permitidos como parte del identificador dependen del lenguaje de programación.

Algunos lenguajes de programación asignan un valor por omisión o defecto a las variables, al momento de su declaración. En cualquier caso una variable puede tomar un valor inicial e ir cambiándolo a lo largo de la ejecución del programa o corrida del algoritmo. Al momento de asignar un valor inicial a una variable, se le denomina inicialización de la variable.


9.4 Variables Acumuladoras

Aquellas variables que el programador use para ir sumando valores a lo largo de la ejecución del programa, se denominan acumuladoras y es recomendable inicializarlas con un valor conveniente al uso que posteriormente se les dé.


9.5 Variables Contadoras

Se llaman así a las variables que el programador usa para ir contando a lo largo de la ejecución del programa.


9.6 Constantes

Las constantes son instancias de un tipo de dato determinado, que tienen un valor fijo asignado por el programador en el momento en que la define. Este valor no puede ser modificado durante la ejecución del programa o corrida del algoritmo.

Las constantes pueden llevar asociados un nombre o no, si no lo llevan, se llaman literales. El programador especifica su valor al definir la constante,
que ya no puede cambiar a lo largo de la ejecución del programa. En cuanto al tipo de dato, hay que colocarlo o no dependiendo del lenguaje de programación. Si no hace falta colocarlo, es porque la constante tomará el tipo de dato del valor que se le asigne al definirla.

Por ejemplo: Const PI=3,1416.

La ventaja de usar constantes con nombre, es que en cualquier lugar donde quiera que vaya la constante, basta con colocar su nombre y luego el compilador lo sustituirá por su valor.


Las constantes sin nombres o literales son de valor fijo: 5, 6, 'a', "hola".

9.7 Relación entre Variables y Constantes en Memoria

Al declarar una variable o constante con nombre, automáticamente se reserva en memoria espacio para guardarla. El espacio reservado depende del tipo de dato de la variable o
constante. En esa zona de memoria, es en la que se guardará el valor asociado a la variable o constante. Cuando el programa use esa variable o constante, irá a ese lugar de la memoria a buscar su valor.


10. Expresiones: Tipos y Operadores

Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales (nombres de funciones estándar), con un sentido unívoco y definido.
De la evaluación de una expresión resulta un único valor o resultado.

Una expresión tiene asociado un tipo de dato que corresponde con el tipo del valor que devuelve la expresión cuando se evalúa, por lo que habrá tantos tipos de expresiones como tipos de datos. En tal sentido, se tienen expresiones numéricas y lógicas.


10.1 Expresiones Numéricas: Operadores Aritméticos

La expresión numérica es una combinación de variables y constantes numéricas con operadores aritméticos, que al evaluarla devuelve un valor numérico.

Algunos de los operadores aritméticos más comunes son: +, -, *, / , los cuales equivalen a las operaciones suma, resta, multiplicación y división respectivamente.

Otras operaciones aritméticas soportadas en algunos lenguajes de programación son:


Operador Resto o Módulo: Devuelve el resto de una división entera.

Operador División Entera: Devuelve la parte entera del cociente de una división.

Operador Potencia: Devuelve el valor de una base elevada a una potencia dada.


Los operadores anteriores se denominan operadores binarios porque utilizan dos operando. Existen también otros tipos de operadores que sólo necesitan de un operando y se denominan operadores unarios.

Algunos de los operadores unarios más comunes son:

El signo negativo: Operador unario que devuelve el valor actual del operando multiplicado por menos uno (-1).















Lenguaje


Operador



Ejemplo


Resultado


Pascal





X:=3; X:=X;



X = 3




10.2 Reglas de Precedencia

El orden en que se evalúan los operadores aritméticos dentro de una expresión influye directamente en el resultado que retorna dicha expresión.

Ejemplo:

Sea la siguiente expresión aritmética: 2 + 3 * 2 + 3

Si se evalúa en el orden de aparición se tiene: (((2 + 3) * 2) + 3) = 13

Si se evalúa primero la suma (+) y luego la multiplicación (*) se tendrá la expresión:

(2 + 3) * (2 + 3) = 25

Si se evalúa primero la multiplicación y luego la suma se tendrá la expresión:

2 + (3 * 2) + 3 = 11


Entonces, ¿Cómo resolver está situación potencialmente problemática?


La solución es aplicar prioridad entre los operadores, de modo que ante la posibilidad de usar varios operadores aritméticos en una misma expresión, siempre se aplicará primero el de mayor
prioridad
.

Cada lenguaje de programación puede establecer sus propias reglas de prioridad o precedencia de operadores. Siempre se pueden utilizar los paréntesis ( ) para definir y cambiar el orden en que se evalúa una expresión aritmética dada.

El orden de precedencia definido comúnmente para los operadores aritméticos básicos es:


  1. ^
  2. *, /, Div, Mod
  3. +, -

Entre dos operaciones que tienen la misma precedencia, para resolver la ambigüedad hay que usar la regla de la asociatividad. La más normal, es la asociatividad por la izquierda (primero lo de la izquierda).


  1. De esta forma, la expresión 2+3 * 2/ 3 - 5 ^ 2 será evaluada como:

(2 + (3 * 2) I 3)) - (5 ^ 2).


10.3 Expresiones Lógicas: Operadores Relacionales y Lógicos.

Una expresión lógica es aquella que sólo puede devolver uno de dos valores: verdadero o falso. Los operadores que pueden aparecer en una expresión lógica son de dos tipos: lógicos o relacionales. Los operadores lógicos sólo trabajan sobre expresiones o datos que retornan valores booleanos. Los operadores relacionales trabajan con expresiones numéricas para realizar comparaciones que retornan un valor booleano.
Es común tener expresiones que combinan tanto los operadores lógicos como relaciona les, en estas expresiones se evalúa más de una condición o relación por medio de operadores lógicos
.

Los operadores relacionales más usados son:

< menor que

> mayor que

= igualdad (en C: ==)

<> diferente (en C: !=)

menor o igual que

mayor o igual que


Para evaluar una expresión relacional:


• Se evalúa el primer operando y se sustituye por su valor.

• Se evalúa el segundo operando y se sustituye por su valor.

• Se aplica el operador relacional y se devuelve el valor booleano correspondiente.


Ejemplo:

((5*4)+1-(5^2)) (2-1)- 4) <>


Ejercicio:

Evaluar las siguientes expresiones si a la variable "x" se le asigna el valor 2 y a la variable "y" se le asigna el valor 4.

Cada respuesta debe ser VERDADERO o FALSO, según corresponda:

  1. x = y ____________
  2. x <> y ____________
  3. y >= x ____________
  4. x >= y ____________

El problema es que en algunos casos se requiere preguntar o evaluar más de una condición al mismo tiempo, para esto, están los operadores lógicos.

Los operadores lógicos más utilizados son:

Y (and, &&)

O (or )

No (not, ~, !)

O exclusivo (xor, ^)

Y, O y O Exclusivo (xor) son operadores binarios.

Estos operadores trabajan bajo el esquema: <Operando 1> Operador <Operando 2>

El operador No es de tipo unario y se coloca precediendo al operando al que se niega.

La tabla de verdad para los operadores lógicos binarios es como sigue:























***********************************************







Operando 1



Operando 2



Op1 AND
Op2



Op1 Or Op2



Op1 Xor Op2



V



V



V



V



F



V



F



F



V



V



F



V



F



V



V



F



F



F



F



F




V: Verdadero; F: Falso













Operando



Not operando



V



F



F



V




Se observa que para que el operador lógico ANO sea Verdadero, es necesario que ambos operandos sean Verdaderos.

Para que el operador lógico OR sea Verdadero, basta con que al menos uno de sus operandos
sea Verdadero.


Para que el operador XOR sea Verdadero, ambos operandos deben ser diferentes entre sí.



Ejercicio:


Si x representa "1 > 2" (FALSO) e y representa "4 ¿Cuál es el resultado de cada una de las siguientes expresiones?:



1. NOT x :________________

2. x AND y :_______________

3. y OR x :________________

4. (NOT x) AND y :_____________

5. x XOR y :_________________



11. Funciones Incorporadas

Las funciones Incorporadas son funciones adicionales a las operaciones básicas, que se
incorporan al lenguaje de programación. Se consideran estándar en la mayoría de
lenguajes de programación
. Son dependientes del lenguaje y normalmente se encuentran en librerías externas que se pueden incluir en Un programa. La sintaxis exacta y el nombre de las funciones pueden variar de un lenguaje a otro, pero la funcionalidad suele mantenerse entre las diversas herramientas de programación.


Las más comunes son las librerías de soporte matemático y las de entrada / salida.

Todos los lenguajes de programación proporcionan mecanismos para incorporar diversos elementos que brinden funcionalidad extra a los programas. La Tabla 1.7, muestra la forma en que algunos lenguajes de programación populares incorporan funcionalidad extra.



Tabla Funcionalidad extra en algunos lenguajes





12. Operación de Asignación

La operación de asignación consiste en atribuir un valor a una variable. El valor asignado puede ser una expresión, una constante o el valor de otra variable.


Las formas más comunes del operador de asignación se resumen en la Tabla 1.8:


























Lenguaje



Operador



Ejemplo



Pascal



:=



X := X + 3;



C y C++



=



X = X +3;



Java



=



X = Math.sin(90.0);




Tabla 1.8: Operador de Asignación



En los ejemplos de la tabla anterior, var representa la variable a la que se le asigna el valor dado en la expresión a la derecha del operador de asignación.


El proceso de asignación se realiza en 2 fases:

• Se evalúa la expresión de la parte derecha de la asignación obteniéndose un único valor.

• Se asigna ese valor a la variable de la parte izquierda.


Debe tenerse en cuenta:

• En la parte izquierda de la operación de asignación, sólo puede haber una variable.

• La variable a la que se le asigna el valor pierde su valor anterior.

• Si la variable a la que se le asigna un valor (parte izquierda) participa en la expresión a evaluar (parte derecha), como por ejemplo la sentencia: x = x + 1, entonces como primero se evalúa la expresión antes de realizar la asignación, el valor usado en la expresión es el que tenía la variable antes de la operación. En el ejemplo dado si x tenía un valor igual a 5, entonces la evaluación de la expresión x = x + 1 seria x = 5 + 1, quedando x con un valor final de 6.

• El tipo de dato del valor resultante al. evaluar la parte derecha de una operación de
asignación, tiene que ser del mismo tipo de dato o de un tipo compatible
, con la variable a la cual se le va a asignar el resultado de la operación. Muchos lenguajes de programación imponen sus propias reglas de conversión de tipos de datos, definiendo cuáles son las operaciones permitidas entre los diversos tipos de datos. -


13. Recomendaciones

Cuando se programa existen una serie de problemas y errores de programación que tienden a presentarse una y otra vez en los programas.

Para minimizar la ocurrencia de errores en la programación, es aconsejable que se consideren las siguientes recomendaciones:


• Reutilizar código probado: Puede existir un código ya desarrollado y probado para resolver totalmente o parte del problema que pueda utilizarse. Esto facilita la solución del problema y minimiza el tiempo de desarrollo.Al reutilizar código no se desperdicia tiempo depurando una parte de la lógica que se sabe que funciona.

• No asumir los datos de entrada como válidos: Si no se tiene ningún control sobre la fuente de los datos, no se tiene ningún control sobre la calidad de los mismos.

• No asumir que los datos de entrada están en la secuencia correcta.

• Verificar siempre la secuencia: Es muy fácil para alguien proporcionar datos erróneos.

• Diseñar los tamaños de los campos de datos, de modo que tengan capacidad para contener el valor más grande permitido.

• Usar comentarios libremente. Explicar cualquier cosa que pueda confundir a un futuro lector, además de señalar cualquier área que pueda estar sujeta a cambios.

• Hacer programas legibles y fáciles de entender.

• Usar nombres adecuados para las variables, que sean auto descriptivo.

• Usar sangrías, alineación y espacios donde sea necesario (líneas blancas y columnas



Resumen


Ahora que ha completado esta unidad, usted debe ser capaz de:

• Definir el propósito y el contenido de un programa de computadora.

• Utilizar una metodología para resolver problemas de procesamiento de datos.

• Describir el funcionamiento de un compilador/enlazador.

• Definir el concepto de Dato.

• Describir los diferentes tipos de datos y las operaciones incorporadas a los lenguajes de programación.

• Presentar las recomendaciones que ayudan a programar con estilo.



Unidad 1: Examen de Autoevaluación

1) ¿Cuáles de los siguientes son lenguajes de alto nivel?


a) Cobol

b) Fortran

e) Java

d) Ensamblador

2) Se entiende por algoritmo, un conjunto de reglas bien definidas para la solución de un problema en un número de pasos que podría no ser finito.

a) Verdadero

b) Falso

3) Seleccione las afirmaciones correctas en referencia a un programa de computadora.

a) Es una solución a un problema

b) Es una caja mágica

c) Es un conjunto de instrucciones hechas para ejecutarse en una computadora

d) Todas las anteriores

4) Para diseñar un programa de computadora se requiere de un proceso que cumpla con las siguientes características:

a) Actualizable

b) Fácil de mantener

c) No estructurado

d) Ninguna de las anteriores


5) Seleccione las afirmaciones correctas:

a) El conjunto de sentencias creadas para resolver un problema se denomina "programa fuente"

b) Un compilador convierte un programa fuente en un programa ejecutable

c) Si se encuentran errores de sintaxis en las instrucciones del programa fuente el compilador lista cada uno de ellos y produce un archivo ejecutable

d) Ninguna de las anteriores

6) ¿Cuáles de los siguientes son lenguajes de programación orientado a objetos?

a) Java


b) C

e) C++

d) Cobol


7) Compilar es traducir un programa escrito en un lenguaje de máquina en un programa de alto nivel; forma en la cual la computadora puede ejecutar acciones o instrucciones.

a) Verdadero

b) Falso


8) Para minimizar la ocurrencia de errores en la programación se recomienda revisar que los programas cumplan con lo siguiente:

a) Reutilización de código

b) Asumir que todas las entradas dé usuario son correctas

c) Verificar que la secuencia de entrada de datos es la requerida por el programa

d) Que las instrucciones sean legibles y fáciles de entender


9) Un sistema operativo es una colección organizada de software que se usa para ayudar y, en parte, controlar las operaciones de una computadora.

a) Verdadero

b) Falso

10) ¿Cuáles de los siguientes son dispositivos de almacenamiento?

a) Teclado

b) Cinta magnética

e) Impresora

d) Otra computadora







Respuestas de la Unidad 1: Examen de Autoevaluación

No sea tont@. Vea las respuestas solamente si "sabe" que ha respondido bien. Si no está seguro de su respuestas entonces vuelva a leer el capítulo de la pregunta

1) a, b y c

2) b

3) a y c

4) a y b

5) a y b

6) a y c

7) b

8) a, c y d

9) a

10) b y d