17 sept 2015

Unidad 1 PROGRAMAS DE COMPUTADORA

Unidad 1 PROGRAMAS DE COMPUTADORA



1. Introducción


Casi cualquier problema en las áreas de tecnología servicios y negocios puede ser resuelto con programas de computadora, estas soluciones generalmente son más confiables y de menor costo.

Los programas de computadoras son parte esencial para la solución de problemas a cualquier nivel, estas soluciones son llamadas aplicaciones y son realizadas por un equipo multidisciplinario donde se encuentran los programadores, diseñadores y analistas de sistemas, entre otros especialistas.

Los programadores utilizan lenguajes de programación para desarrollar las aplicaciones, estos lenguajes sirven como puente de enlace entre el análisis realizado por el equipo de desarrolladores 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.

Por todo lo anteriormente mencionado deducimos que el programador debe tener cierta lógica para trabajar con el lenguaje, esto es, debe saber exactamente las capacidades brindadas por el lenguaje y mas aun debe tener nociones claras de los fundamentos generales de la programación.

La programación requiere una serie de conocimientos básicos comunes a cualquier lenguaje de programación que permitan indicarle al computador inequívocamente las tareas a realizar. Dichos conocimientos se conocen como fundamentos de programación, los cuales son 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 la solución de problemas computacionales.

2. Sistema de procesamiento


Un ordenador es una maquina de procesamiento de información. Maquina porque tiene cables, circuitos y otros elementos mecánicos; de procesamiento porque es capaz de transformar o procesar datos y de información porque maneja conjuntos ordenados de datos.

3. Algoritmos


Proceso para resolver problemas.
Conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven un problema planteado.
Creado por: Abú Jafar Mohammed Imn Musa Khwararizmi

Características:
v  Tiene que estar bien definido
v  Tiene que ser preciso
v  Tiene que ser finito

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

La programación consiste adaptar un 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


El diseño de un algoritmo es un proceso creativo ya que no existe un conjunto de reglas que indiquen expresamente como escribir un algoritmo correctamente.

Sin embargo, existen una serie de pasos que permiten resolver el problema de una manera más conveniente:

v  Análisis del problema
v  Diseño del algoritmo
v  Verificación del algoritmo



4.1 Análisis del problema


El primer paso es identificar el problema. Se debe revisar cuidadosamente el problema para determinar que 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 nos esta pidiendo, con que elementos se cuenta y cuales se deben solicitar para así establecer el camino a seguir o la solución a implementar.

4.2 Implementación del algoritmo


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 algoritmo inicial. Este puede ser refinado en sucesivas operaciones hasta obtener la solución más detallada y más fácil de traducir a un lenguaje de programación.

4.3  Verificación del algoritmo

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

 

5. programas de computadora


Es una secuencia de instrucciones que le indican al computador que realice operaciones específicas para lograr un resultado deseado. Consiste en uno o más módulos o rutinas, cada uno de los cuales puede estar compuesto de varios subprogramas. Un programas es un conjunto de instrucciones que ejecutadas ordenadamente resuelven un problema, es la implementación de un algoritmo.

Un programa de computadora no es:
v  Una caja mágica
v  Intrínsicamente correcto.

Un programa de computadora es:
v  Una solución a un problema.
v  Secuencia de instrucciones hechas para ejecutarse en una computadora
v  Sólo tan correcto como un programador lo haya hecho.


1.   Definiciones básicas


Lenguaje de alto nivel: es un lenguaje de programación orientado al problema, es el más cercano al lenguaje humano. Ejemplo: cobol, PL/I, fortran, java, etc.

Algunos lenguajes de alto nivel se denominan orientados a objetos (ó OOPL): smalltalk, java, c++, eiffel, etc.

Ventajas:
v  Son independientes del procesador.
v  Fáciles de aprender, implementar y mantener.
v  Tienen carácter genérico.

Desventajas:
v  Menos eficientes en el manejo de los recursos.
v  Requiere un proceso de traducción.

Lenguajes de bajo nivel (ensamblador): es un lenguaje fuente que usa el programador para codificar sentencias simbólicas que un compilador puede convertir una a una en instrucciones de lenguaje de maquina, hace uso de mnemotecnicos, abreviaturas, para representar instrucciones de maquina.

Ventajas:
v  No es tan complicado como el lenguaje de maquina.
v  Eficiente en el manejo de los recursos.

Desventajas:
v  Cada procesador tiene su propio  juego de instrucciones en ensamblador.
v  Debe ser traducido.

Lenguaje de maquina: puede ser interpretado directamente por los circuitos internos de la computadora y está basado de ceros (0) y unos (1).

Ventajas:
v  No necesita ser traducido.
v  Opera directamente con la maquina.
v  Puede llegar a ser muy eficiente en el manejo de los recursos.

Desventajas:
v  Extremadamente difícil de aprender, implementar y mantener.
v  Es único y particular de cada procesador.

Compilar: traducir un programa hecho en un lenguaje de alto nivel a un lenguaje de maquina. Generalmente una instrucción de alto nivel se traduce a varias de lenguaje de maquina.

El proceso de compilar se divide en 2 pasos:
1.   Compilar las instrucciones de alto nivel para producir lo que se denomina el código objeto.
2.   Enlazar (link) que es tomar el código objeto generado y cualquier otro código objeto requerido para que el programa este completo y colocarlos juntos para tener el programa ejecutable.

Base de datos: 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 y retener y posteriormente recuperar.

 


2.   Crear un programa de computadora


Para crear un programa el programador debe escribir las instrucciones del código fuente en un editor. Este conjunto de instrucciones se denominan archivo fuente, éste 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 archivo fuente, el compilador listará cada uno de ellos y no produce el ejecutable.

3.   Funcionamiento del compilador/enlazador


El compilador crea un archivo objeto y un listado del programa respalda la salida. El archivo objeto se usa como entrada al enlazador para realizar lo que se denomina el paso  de “edición de enlace”. El enlazador combina el archivo objeto con otros archivos objetos ya existentes (éstos generalmente se encuentran en un archivo en disco llamado librería de enlace) para producir un programa ejecutable.

4.   Datos, tipos de datos, operaciones incorporadas


Para que un programa de computadora pueda ser ejecutado debe ser cargado en memoria. La unidad del procesamiento del computador sólo puede trabajar con los datos  instrucciones cargadas en memoria.

4.1 Dato

Es cualquier elemento de información que se usa a lo largo del programa, son elementos sobre los que se opera cuando se efectúa alguna instrucción.

Normalmente un dato tiene un nombre que lo identifica y distingue de los demás, dicho nombre no es más que otra forma de referenciar la dirección de memoria que ocupa el dato.

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

4.2  Tipo de dato

Es una definición que agrupa los valores válidos para un conjunto de datos y las operaciones que se pueden realizar sobre ellos.

Los tipos de datos pueden ser:

v  Primitivo: tipos básicos o simples predefinidos en el sistema o definidos por el usuario.
o   numéricos: enteros, real.
o   lógicos o boléanos.
o   carácter.
o   cadena o string.
v  Complejos: agregados por el programador.

Los diversos lenguajes de programación pueden añadir más tipos de datos. En algunos lenguajes se definen tipos especiales para la fecha y hora, sobre todo en los mas modernos tales como java.

4.3  Constantes y variables


Las constantes son instancias de un tipo  de dato cualquiera que tiene un valor fijo, que se le da cuando se define. Este valor no puede ser modificado durante la ejecución del programa.

Las variables son instancias de un tipo de dato cualquiera cuyo valor pude cambiar durante la ejecución del programa.  Las variables deben declararse indicando su nombre y su tipo, antes de usarlas.

El nombre que se le da a una variable tiene que ser significativo, éste será un conjunto de caracteres que dependiendo del lenguaje pueden tener ciertas restricciones, a esto se le conoce como reglas para construir identificadores. 

Un identificador es una palabra que no es propia del lenguaje, la construye el programador basándose en ciertas reglas.

En algunos lenguajes las variables pueden tomar un valor por defecto si al declararla no se le asigna un valor inicial.

Las constantes pueden llevar asociados un nombre o no, si no lo llevan se llaman literales.  Su valor hay que darlo al momento de la declaración y ya no puede cambiar a lo largo del programa. Y en cuanto al tipo de dato en algunos lenguajes hay que ponerlo, en otros  no hace falta.

4.4  Relación entre variables y constantes en memoria


Al declarar una variable o constante con nombre, el sistema reserva un espacio de memoria. El espacio reservado depende del tipo de dato de la variable o constante.

En esa zona es en la que se guarda el valor asociado a la variable o constante y cuando el programa use la variable o constante, irá a ese lugar a buscar el valor.

5.   Expresiones: tipos y operadores


Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales, con un sentido univoco y definido. De la evaluación de una expresión resulta un único valor o resultado.

Toda expresión tiene asociada un tipo que se corresponde con el tipo del valor que devuelve la expresión cuando se evalúa. Existen expresiones numéricas y lógicas.



5.1  Expresiones numéricas: operadores aritméticos

Es una combinación de variables y constantes numéricas con operadores aritméticos y que al evaluarla devuelve un valor numérico. Los operadores más comunes: +,-,*,/.

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

Operación resto: devuelve el resto de una división

lenguaje
operador
ejemplo
resultado
c
%
5%2
1
pascal
mod
5mod2
1


Operación división entera: devuelve el cociente de una división entera en la que no se consideran los decimales.

lenguaje
operador
ejemplo
resultado
c
/
5/2
2
pascal
div
5 div 2
2

Operación potencia: devuelve el valor de una base elevada a una potencia dada.
lenguaje
operador
ejemplo
resultado
basic
^
5^2
25

Todos los anteriores son operadores binarios, el operador de coloca en el medio y toma 2 operandos. También  existen los operadores que utilizan sólo un operando y se denominan unarios.

El     signo negativo: devuelve el valor actual del operando multiplicado por (-1)

lenguaje
operador
ejemplo
resultado
c
-
x=5; -x
x=-5

Operador decremento e incremento: devuelven el valor actual decrementado o incrementado en una unidad.

--5;
++5;

5.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 en dicha expresión veamos el siguiente ejemplo para comprender:


2+3*2+3;
Si se evalúa en el orden de aparición tendríamos algo como lo siguiente
(((2+3)*2)+3);
Resultado: 13
Si se evalúa primero las sumas y luego la multiplicación se tendrá la siguiente expresión:
(2+3)*(2+3);
Resultado: 25

Si se evalúa primero la multiplicación y luego la suma se tendría la expresión:
2+(3*2)+3;
Resultado: 11

Entonces, como resolver esta 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 aplicaremos primero el de mayor prioridad.

Cada lenguaje puede establecer sus propias reglas de prioridad. Siempre se puede utilizar los paréntesis para definir y cambiar el orden en que se evalúa una expresión aritmética.
El orden de precedencia definido comúnmente para los operadores aritméticos básicos es:
  1. ^
  2. *, /, div y mod
  3. +y-

Entre dos operadores que tienen la misma precedencia para resolver la ambigüedad hay que usar la regla de asociatividad. La más normal es la de la asociatividad por la izquierda.


1.2 expresiones lógicas: operadores relaciónales y lógicos

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

Los operadores relacionales mas usados son:
< menor que
> mayor que
= igualdad (= =)
<> diferente (en c: ¡=)
<= menor o igual que
=> mayor o igual que

¿Cómo se evalúa una expresión relacional?
  1. se evalúa el primer operando y se sustituye por su valor
  2. se evalúa el segundo operando y se sustituye por su valor.
  3. se evalúa el operador relacional y se devuelve el valor booleano correspondiente.

                 ((5*4)+1 –(5^2)) <(2-1);

                       -4 < 1; la expresión retorna a verdadero.

No hay comentarios:

Publicar un comentario