CONTENIDO
|
EVALUACION
|
FECHA
|
INTRODUCCION A LA
PROGRAMACION
|
Composición video: Importancia de la
Programación
|
12-16/10/2015
|
HISTORIA DE LA
PROGRAMACION
|
Discusión grupal
|
19-23/10/2015
|
UNIDAD 1: PROGRAMAS
DE COMPUTADORA
|
Desarrollo de Cuestionario Investigación
del Tema
|
26-30/10/2015
|
Examen Escrito
|
2-6/11/2015
|
|
UNIDAD 2: CONCEPTOS
DE DISEÑO ESTRUCTURADO
|
Boceto para las diapositivas
|
9-13/11/2015
|
Diapositivas en Power Point
|
16-20/11/2015
|
|
Exposición Final
|
30-4/12/2015
|
|
UNIDAD 3:
PROGRAMACIÓN ESTRUCTURADA
|
||
UNIDAD 4:
PROCEDIMIENTOS Y FUNCIONES
|
||
UNIDAD 5:
ESTRUCTURA DE DATOS: ARREGLOS
|
||
UNIDAD 6:
REPRESENTACION DE DATOS
|
||
UNIDAD 7: ENTRADA Y SALIDA
|
Contenido Programático de la Materia Estructura de Datos. De la Escuela Técnica Comercial Rómulo Gallegos
20 sept 2015
PROGRAMACIÓN DE LA MATERIA ESTRUCTURA DE DATOS
19 sept 2015
18 sept 2015
HISTORIA DEL SOFTWARE
HISTORIA DEL SOFTWARE

INTRODUCCIÓN
Durante nuestra carrera como estudiantes hemos sido testigos de los grandes y sorprendentes avances que la tecnología ha desarrollado en los últimos años. El estudiar la especialidad de Técnico Medio en Informática nos ha mantenido mucho más cerca de este desarrollo.
Estos avances han sido muy rápidos en la realidad, pero no podemos hablar de que nacen de la noche a la mañana, cada uno de ellos refleja una investigación de mucho tiempo. Estas nuevas tecnologías nos demuestran con hechos y resultados lo importante que son para en la actualidad; a su vez se van convirtiendo en un estándar para poder competir en el mundo real.
Un factor que ha sido relevante en este desarrollo de tecnologías ha sido el Software, ya que ha facilitado y agilizado varios procesos que ya se manejaban con anterioridad. Además que se ha convertido en una característica primordial que deben tener las Organizaciones para poder convertirse en una de las mejores a nivel mundial.
Este trabajo nos presenta como empezó, desarrolló y que rumbos toma el Software actualmente.
PRIMERA ERA
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. Desde entonces el campo se ha desarrollado tremendamente. La programación de computadoras era un “arte de andar por casa” para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costos a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. Los problemas a ser resueltos eran principalmente de una naturaleza técnica, el énfasis estaba en expresar algoritmos conocidos eficazmente en algún lenguaje de programación.
En estos primeros años lo normal era que el hardware fuera de propósito general. Por otra parte, el software se diseña a medida para cada aplicación y tenía una distribución relativamente pequeña. El software como producto estaba en su infancia. La mayoría del software se desarrollaba y era utilizado por la misma persona un organización. La misma persona lo escribía , lo ejecutaba y, si fallaba, lo depuraba. Debido a que la movilidad en el trabajo era baja, los ejecutivos estaban seguros de que esa persona estará allí cuando se encontrara algún error. Debido a este entorno personalizado del software, el diseño era un proceso implícito, realizado en la mente de alguien, y la documentación normalmente no existía.
A lo largo de los primeros años aprendimos mucho sobre la implementación de sistemas informáticos, pero relativamente poco sobre la ingeniería de las computadoras. Sin embargo, en honor de la verdad, debemos reconocer que durante esa era se desarrollaron muchos sistemas informáticos excepcionales. Algunos de ellos todavía se siguen utilizando hoy y, por sus características, siguen siendo admirados con toda justicia.
SEGUNDA ERA
La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina. Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de en minutos. Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos.
La segunda era se caracterizó también por el establecimiento del software ya se desarrollaba para tener una amplia distribución en un mercado multidisciplinario. Los programas se distribuían para computadoras grandes y para minicomputadoras, a cientos e incluso a miles de usuarios. Los patronos de la industria, del gobierno y de la universidad se aprestaban a “desarrollar el mejor paquete de software” y ganar así mucho dinero.
Conforme crecía el número de sistemas informáticos, comenzaron a extenderse as bibliotecas de software de computadora. Las casas desarrollaban proyectos en los que se producían programas de decenas de miles de sentencias fuente. Los productos de software comprados al exterior incorporaban cientos de miles de nuevas sentencias. Una nube negra apareció en el horizonte. Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido. Esta actividades se llamaron colectivamente mantenimiento del software. El esfuerzo gastado en el mantenimiento del software comenzó a absorber recursos en una medida alarmante.
Aún peor, la naturaleza personalizada de muchos programas los hacía virtualmente imposibles de mantener. Había comenzado una crisis del “software”
TERCERA ERA
La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continuó más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y creciente demanda de acceso “instantáneo” a los datos, supusieron una fuente presión sobre los desarrolladores del software. Aún más, los sistemas y el software que lo permitían continuaron residiendo dentro de la industria y de la academia. El uso personal era extraño.
La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnóstico de suero sanguíneo, pero ninguno ha sido más importante que la computadora personal. En menos de una década, las computadoras llegarán a ser fácilmente accesibles al público.
CUARTA ERA
La cuarta era de la evolución de sistemas informáticos se aleja de las computadoras individuales y da los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma. Las arquitecturas informáticas están cambiando de entornos centralizados de grandes computadoras a entornos descentralizados cliente/servidor. Las redes de información en todo el mundo proporcionan una infraestructura que iguala a expertos y políticos en pensar sobre una “superautopista de información” y una “conexión del ciberespacio”. De hecho internet se puede observar como un “software” al que pueden acceder usuarios individuales.
La industria del software ya es la cuna de la economía del mundo. Las decisiones tomadas por gigantes de la industria tales como Microsoft arriesgan billones de dólares. A medida que la cuarta generación progresa, han comenzado a surgir nuevas tecnologías. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones. Aunque las predicciones de las computadoras de “quinta generación”” continúan eludiéndonos, “las técnicas de cuarta generación” para el desarrollo del software están cambiando en forma en que la comunidad del software construye programas informáticos. Los sistemas expertos y el software de inteligencia artificial han salido del laboratorio para entrar en aplicaciones prácticas de una gran variedad de problemas del mundo real. El software de redes neuronales artificiales junto con la aplicación de lógica difusa ha abierto posibilidades excitantes para el reconocimiento de patrones y habilidades de procesamiento de información de carácter humano. La programación de realidad virtual y los sistemas multimedia ofrecen formas radicalmente diferentes de comunicar información al usuario final. “Los algoritmos genéricos” ofrecen el potencial para el software que reside dentro de las computadoras biológicas masivamente en paralelo.
Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de los sistemas basados en computadora, y estos problemas continúan aumentado.
APORTACIONES AL CAMPO
Durante el desarrollo del tema, nos hemos percatado del problema que existió en algún momento respecto a que no se llevaba una planificación para un buen desarrollo del software. Esto trajo consecuencias que repercutieron en las Organizaciones.
Muchas de estas consecuencias originaron pérdidas millonarias en diferentes Empresas como el caso de una Aerolínea Internacional de los Estados Unidos de América, que tuvo el problema de que al momento de que un pasajero pretendía hacer su reservación de vuelo, el Sistema de Información mostraba que los asientos se encontraban ocupados, mientras que físicamente el vuelo contaba con demasiados asientos libres. Esto origino una pérdida de $50 millones de dólares.
A la vez se presentaron casos en los cuales las pérdidas eran iguales o mayores materialmente hablando. Las transacciones financieras de aquél entonces se empezaron a llevar por medio de Software Especializado. Pero también tuvo errores, ya que al enviar facturas de pago, su total de pago presentaba $0.00, lo cual originó bastantes pérdidas.
Pero no sólo existieron pérdidas materiales en los malos desarrollos de Software de aquellos días. Una computadora que se usaba para el servicio militar de los Estados Unidos de América, reportó una alarma acerca de la Unión Soviética de Repúblicas Socialistas había iniciado un ataque de proyectiles nucleares en contra de ese país. Esto origino una gran movilización para contrarrestar el ataque, se alistaron a los bombarderos atómicos norteamericanos, pero al día siguiente a través de un periódico se daba la noticia que todo había sido un error en el Software de la computadora.
Otra de las consecuencias en donde si hubo pérdidas humanas, fue en un caso en Inglaterra, en donde se enjuiciaba a una mujer de 54 años de edad por asesinar a su hija. Esto fue debido a un mensaje de un sistema informatizado hizo de la compañía de Seguro Social, informaba a la mujer que ella estaba gravemente enferma, se le decía que padecía una forma incurable de sífilis, además de que había infectado a sus dos hijos. En pánico, ella estranguló a su hija de 15 años e intento matar a su hijo de 13, el muchacho escapó y consiguió ayuda para después impedir que su madre se suicidará. Finalmente el juez culpó el error de la computadora y no consideró a la mujer responsable de sus acciones.
Como nos podemos dar cuenta estas consecuencias fueron de gran gravedad. En los primeros dos casos se atacó hacia los recursos financieros de grandes empresas a nivel internacional. En los siguientes casos aparte de afectar materialmente a la Sociedad, se pierde una vida humana por un error en el Software acerca de un padecimiento. Es así como se observa los diferentes tipos de consecuencias que se originaban por un mal desarrollo de Software.
Con este tipo de casos nos hemos percatado de la importancia que tiene una planeación acerca del desarrollo del Software. En aquel entonces el programador no se adentraba hacia las repercusiones que pudiera tener el Software que estaba creando, y ante la falta de documentación para la enseñanza de la creación de Software, los programadores aprendían solamente practicando.
Actualmente, nosotros como desarrolladores de Software, al momento de diseñarlo debemos de darnos cuenta de varias cosas para no tener ese tipo de errores que existieron con anterioridad. Además de otras cosas creemos que entre lo más importante que debemos saber es:
- ¿Hacia quién va dirigido el SW?
- ¿Quienes serán los usuarios?
- ¿Qué tipo de información les será proporcionada?
- La facilidad de acceso.
esto, entre muchas otras cosas más. Pero ante todo siempre debemos adoptar la postura de todos los tipos de usuarios que vayan a trabajar con el Software, ya que así podremos observar si los resultados que se obtienen son los que se requieren, es decir todo en base a una buena planeación.
Sin embargo, no es del todo satisfactorio dejar las cosas simplemente en las etapas de planeación. Después de que los programas estén terminados deben recibir mantenimiento, y los esfuerzos de mantenimiento normalmente sobrepasan el esfuerzo gastado en el diseño y programación original.
Parte importante de este aspecto es la documentación. Se deben documentar el Software y los procedimientos para que estén codificados en un formato que pueda ser fácilmente accesado. La documentación permite que los usuarios, programadores y analistas observen el sistema, Software y procedimientos sin tener que interactuar con él.
Después de ver todos los avances podemos observar que no sólo se cambia una manera de trabajar, sino que se cambia la forma de conceptualizar la vida, ¿Quién vive ya sin la ayuda de una computadora que agilice procesos?, y en caso drástico podemos ver que se cambian las costumbres y cultura de la Sociedad Actual.
CONCLUSIONES
A manera de conclusión, queremos finalizar con una semblanza ágil y rápida que nos permitirá observar los aspectos más relevantes que a nuestro juicio han marcado con hechos la Evolución del Software.
ERA
|
AÑOS
|
CARACTERÍSTICAS
|
1ª
|
1950 - 1965
|
|
2ª
|
1965 - 1972
|
|
3ª
|
1972 - 1989
|
|
4ª
|
1989 - ¿?
|
|
Creemos de suma relevancia el mencionar algunas de los lenguajes de programación que fueron utilizados en sus respectivas eras. Esto nos ayudará a comprender mejor el objetivo que se perseguía en cada una de ellas.
ERA
|
LENGUAJES
|
CARACTERÍSTICAS
|
1ª
|
|
|
2ª
|
|
|
3ª
|
|
|
4ª
|
|
|
En estos días se habla de una nueva plataforma desarrollada por Microsoft: La plataforma .NET, que permitirá a los desarrolladores crear aplicaciones extensas e incluso sistemas de componentes y servicios con gran capacidad para operar entre sí.
Este tipo de aplicaciones se pueden limitar a una organización, pero ésa no es la idea general, ya que los muchos analistas son de la opinión de que hay gran necesidad de aplicaciones que puedan existir en un ambiente distribuido basado en Internet.
Pero creemos que como normalmente sucede sobre todo con el Software de Sistemas, algunas áreas no están terminadas, y aunque la nueva plataforma ofrezca características modernas y sencillas, utilizarlas dependerá si Microsoft logra que los principales negocios acepten cambiar a esta nueva forma de crear soluciones.
A continuación se presenta una lista de algunas personas que hicieron contribuciones significativas en la creación y crecimiento de la industria de productos de software
- Charles Bachman. Inventó la tecnología del banco de datos en los inicios de los sesentas.
- John Backus. FORTRAN desarrollado para IBM (1954)
- Bob Bemer. Uno de los diseñadores de COBOL y el ASCII normal para IBM (años sesenta); inventor de la sucesión del Escape, el mecanismo universal para toda la computadora.
- Larry Constantine. Inventa los datos que fluyen en los diagramas, presentan primero en papel, los conceptos de un plan estructurado en 1968.
- Peter Cunningham. Funda una de las primeras empresas de investigación de mercado para enfocar el software y comienza a comercializar los productos del software en 1974.
- Tom DeMarco. El pionero en utilizar una metodología de caso, el autor, y consultor en los años setenta.
- Wilfred J. Dixon. Empezó distribuyendo el software estadístico en 1962.
- Frank Dodge. Co - fundó McCormack & el Regate qué vendió el primer software de contabilidad en 1969.
- Larry Ellison. Dejó camino abierto para los DBMS.
- Dave Ferguson. Logró vender el primer producto de software con éxito contra un programa de IBM.
- Ken Orr. Crea la metodología de caso desarrollada en los años setenta.
La mayoría de estas personas aquí nombradas, trabajaron sobre algún aspecto del Software con el que aún se trabaja, pero en otros casos, este tipo de avances dieron pie a nuevas investigaciones que han contribuido al desarrollo del mismo, es decir, que han servido como base para descubrir nuevas fisonomías del Software con el que actualmente se trabaja.
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:
- ^
- *, /, div y mod
- +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?
- 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 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.
Suscribirse a:
Comentarios (Atom)