Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso...

82
Informática. Desarrollo científico del ordenador Autor: Abdiel Cáceres González [Ver curso online] Descubre miles de cursos como éste en www.mailxmail.com 1 mailxmail - Cursos para compartir lo que sabes

Transcript of Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso...

Page 1: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Informática. Desarrollocientífico del ordenadorAutor: Abdiel Cáceres González

[Ver curso online]

Descubre miles de cursos como éste en www.mailxmail.com 1

mailxmail - Cursos para compartir lo que sabes

Page 2: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Presentación del curso

Ordenador, ciencia e informática son las claves de este curso. Conoce eldesarrollo científico que hay detrás de una computadora u ordenador de últimageneración; la evolución de las computadoras revelando la ciencia de lacomputación en torno a hardware, software, estructura, sistemas de numeración(binario, decimal), etc. Estudiaremos los principios de programación y el desarrollode programas: codificación, editores, compiladores, depuradores, errores de código,etc.

Veremos, también, diseño Top-Down y pseudocódigo de algoritmos; laconstrucción de algoritmos siguiendo la orden de GOTO y el teorema de laestructura, llegando al detalle de cómo definir un problema y cómo escribiralgoritmos. Asimismo estudiaremos las variables, constantes y tipos de datos,además de los principios básicos de las expresiones y órdenes.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-hardware]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-informatica-ordenador-cientifico-desarrollo/opiniones]

Cursos similares

Cursos Valoración Alumnos Vídeo

Diseño y creación de bases de datosCon este curso de diseño y creación de bases de datos podrás desarrollarhabilidades en el diseño y creación de bases de datos, manej... [08 /02/10]

1.810  

Física. Estructura de un 'universo'imaginario (2/3)El movimiento ondulatorio puede ayudar a deducir las las medidas exactas de laslongitudes, distancias, velocidades, períodos de revolución, etc. ... [13 /08/09]

7 6  

WML. Internet para móvil (segunda parte)Internet para móvil y el lenguaje WML son las claves de este curso. En esta ocasiónestudiaremos la creación del WML y las variables m&a... [07 /07/09]

580  

Agua y energía. Sinergia Hidroenergética(3/5)Aprende con este curso a cerca del uso y aplicaciones de la energía atómica, lasaplicaciones de tecnología nuclear en la vida cotidiana y las con... [30 /01/09]

2.156  

Guía Rápida SPSS para WindowsGuía para aprender el uso de herrmientas básicas del paquete estadístico SPSSpara Windows... [05 /05/05]

5.945  

Descubre miles de cursos como éste en www.mailxmail.com 2

mailxmail - Cursos para compartir lo que sabes

Page 3: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

1. Era de la información. Evolución de las computadoras( 1 / 2 )[http://www.mailxmail.com/...-cientif ico-desarrollo/era-informacion-evolucion-computadoras-1-2]

INTRODUCCIÓN A LAS CIENCIAS COMPUTACIONALES

Resumen.- La carrera de ciencias computacionales ofrece una variedad de especialidadesde las cuales el alumno ira adquiriendo una línea de especialidad desde los primerossemestres de la misma. En esta materia se mostraran estas líneas de especialidad, asímismo se darán las bases para que el alumno empiece a resolver problemas mediante lacomputadora utilizando un lenguaje de programación.

El objetivo general de este curso es lograr que el alumno adquiera un panorama general delas ciencias computacionales y sirva de introducción hacia la carrera que está cursando,permitiéndole así visualizar la línea en la que podría especializarse.

Palabras Clave.- Ciencias de la computación, Historia de las computadoras, Fundamentosteóricos de las ciencias computacionales, Sistemas numéricos, Arquitecturas decomputadoras, Hardware y Software.

ACLARACIÓN

LAS notas de este curso siguen muy de cerca los apuntes de los cursos [1], y  son pues unarecopilación de diversas fuentes de información con algunas anotaciones propias, en las quepueden existir errores que deben atribuirse al autor del presente curso, y no a las fuentesde información. Las figuras, esas si, fueron tomadas libremente de algunos sitios deInternet, y a menos que se declare otra cosa, son de dominio público. Aclarado este asunto,empecemos con las notas del curso de Introducción a las Ciencias Computacionales.

I. ERA DE LA INFORMACIÓN

A. La evolución de las computadoras

DESDE los inicios de la historia de la humanidad, muchas personas han intentado construirmecanismos que sean capaces de hacer cálculos [2].

· Ábaco (500 A.C): Quizá fue el primer dispositivo mecánico que se utilizó para hacercálculos numéricos.

Figura. 1. Ábaco antiguo

· Regla de cálculo (1625 D.C.): Inventada por John Napier, fue una herramienta de cálculosumamente útil, pues se utilizó hasta fines de 1960. Utilizaba las distancias físicas paramultiplicar y restar.

Descubre miles de cursos como éste en www.mailxmail.com 3

mailxmail - Cursos para compartir lo que sabes

Page 4: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 2. Regla de cálculo

Descubre miles de cursos como éste en www.mailxmail.com 4

mailxmail - Cursos para compartir lo que sabes

Page 5: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

2. Era de la información. Evolución de las computadoras( 2 / 2 )[http://www.mailxmail.com/...-cientif ico-desarrollo/era-informacion-evolucion-computadoras-2-2]

· Pascalina (1642): Blas Pascal, cuando tenía 19 años de edad, construyó este dispositivomecánico, compuesto de engranes, para ayudar a su padre que trabajaba como cobrador deimpuestos. La pascalina solamente podía sumar.

Figura. 3. Pascalina, construida en 1642

· Charles Babbage (1822): Ch. Babbage diseñó una máquina que funcionaba con vapor yque llamó motor de diferencias, esta máquina era del tamaño de un cuarto y era capaz decalcular las tablas de multiplicar y las tablas de logaritmos.

Figura. 4. Máquina de diferencias construida por Charles Babbage en 1822.

· La ABC (1937): En 1847 George Bool desarrolló el álgebra bivalente, ahora conocida comoalgebra booleana, y es la base matemática en la que residen todos los cálculos que hacen lascomputadoras modernas, la primer computadora que utilizó este sistema se construyó en1937, se llamó ABC, que son las iniciales de Atanasoff Berry Computer.

Descubre miles de cursos como éste en www.mailxmail.com 5

mailxmail - Cursos para compartir lo que sabes

Page 6: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 5. Computadora ABC, hecha por Vincent Atanasoff y Clifford Berry en 1937.

Las primeras computadoras electrónicas se construyeron entre las décadas de 1920 y 1930,lo que marcó la era de las computadoras electrónicas.

Las computadoras que se construyeron con componentes electrónicos han cambiado deacuerdo a la tecnología electrónica de sus componentes, esta es la primera clasificación delos tipos de computadoras, cada clase se le conoce como generación.

Descubre miles de cursos como éste en www.mailxmail.com 6

mailxmail - Cursos para compartir lo que sabes

Page 7: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

3. Primera generación de computadoras[http://www.mailxmail.com/...a-ordenador-cientifico-desarrollo/primera-generacion-computadoras]

1) Primera generación de computadoras:

La primera generación de computadoras electrónicas ocurrió a partir de 1945 y duróaproximadamente hasta 1956. Una de las primeras computadoras que se construyeron fuela llamada ENIAC (Electronic Numeric Integrator And Calculator), construida en 1945 por laUniversidad de Pensilvania, en los Estados Unidos de América, y el propósito para suconstrucción fue realizar cálculos con fines bélicos, durante la segunda guerra mundial.

Las computadoras de la primera generación se caracterizaron por tener varios problemas encomún. Todos estos problemas tienen que ver con:

· Tamaño: Las computadoras de la primera generación eran enormes. La ENIAC pesaba 30toneladas y se requería todo un edificio para alojarla. Tenía 18,000 bulbos, 70,000resistencias y 5.000.000 soldaduras.

· Precio: Las computadoras de esta generación costaban tanto dinero que casi nadie podíacomprarlas, solamente las más grandes instituciones gubernamentales y unas pocasuniversidades, pues el costo estaba en el orden de los millones de dólares.

· Consumo de energía: Esta clase de computadoras gastaba muchísima energía eléctrica,alrededor de 200 KW/h, de modo que cuando la ENIAC funcionaba, toda la ciudad dePhiladelphia se enteraba, porque bajaba la corriente eléctrica.

· Poca confiabilidad: Esto se debió principalmente a que los componentes electrónicos conlos que estaban construidas estas computadoras, fallaban en promedio cada 7 minutos ymedio, lo que obligaba a reiniciar los cálculos en cada evento de esta naturaleza. Enocasiones la computadora arrojaba resultados diferentes en cada corrida, dependiendo dequé bulbo (o componente) estaba dañado.

Figura. 6. John von Neumann a un lado de la computadora ENIAC

En 1946, John von Neumann, quien fue pionero en las ciencias computacionales, estudió ehizo significativos aportes al desarrollo del software, de hecho, fue von Neumann quieninventó los diagramas de flujo. Las principales líneas de investigación en la teoría de laprogramación fueron:

· Las instrucciones y los datos se almacenan en un lugar específico en la computadora, lamemoria de lectura y escritura.

· El espacio en memoria era perfectamente distinguible por localidades únicas, nombradaspor medio de una dirección.

Descubre miles de cursos como éste en www.mailxmail.com 7

mailxmail - Cursos para compartir lo que sabes

Page 8: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

· Los programas se ejecutaban en forma secuencial, y a su vez, las instrucciones de losprogramas también se hacían en forma secuencial.

Descubre miles de cursos como éste en www.mailxmail.com 8

mailxmail - Cursos para compartir lo que sabes

Page 9: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

4. Nuevas generaciones de computadoras[http://www.mailxmail.com/...-ordenador-cientifico-desarrollo/nuevas-generaciones-computadoras]

2) Siguientes generaciones de computadoras:

La segunda generación de computadoras empezó en 1958, cuando la compañía BELLAT&T desarrolló el transistor. Los transistores eran más rápidos, más baratos, consumíanmenos energía eléctrica y como consecuencia eran más confiables que los bulbos, que eranlos componentes principales de las computadoras de la primera generación.

Con la invención del circuito integrado se terminó la segunda generación decomputadoras, dando paso a la tercera generación de computadoras.

Los circuitos integrados (CI´s) agrupaban todos los componentes esenciales de lacomputadora dentro de una unidad encapsulada. Esto hizo que se eliminaran las conexionespor cableado entre los componentes, lo que a su vez derivó en menos consumo de energía yredundó en mayor confiabilidad.

La memoria de la computadora fue de los componentes que se vieron más beneficiados,porque ahora es posible disponer de mayor capacidad de almacenamiento que nunca antes

La cuarta generación de computadoras empezó a mediados de la década de 1970, cuandolas primeras microcomputadoras ya estaban disponibles en el mercado. Notemos que hastala tercera generación, las clases de computadoras estaban diferenciadas principalmente porla tecnología de sus componentes, a partir de la cuarta generación, la clasificación se volviómás ambigua, debido a que ahora un aspecto importante era la funcionalidad y eldesempeño.

Figura. 7. La computadora Apple 1, de 1976, se vendió como un kit de "hágalo ustedmismo" en unos $600.0

El precio de las computadoras personales (PC´s), que son miles de veces más poderosasque la ENIAC, es mucho menor. Los avances tecnológicos, como el desarrollo de los CI´s ytecnología de superconductores hicieron posible que el costo de producción disminuyerasignificativamente, y con esto, el costo de venta para los usuarios finales.

Ahora ya hemos alcanzado la quinta generación de computadoras con la característica decómputo empotrado, cómputo vestible, cómputo molecular y la inteligencia artificial. En laactualidad hay computadoras hechas de moléculas de ADN, aunque su funcionalidad aún noes de propósito general, se están logrando significativos avances en este aspecto.

Ejercicios:

1 ) Elabore un ensayo sobre la historia de los lenguajes de programación, considerando demanera particular las fechas de los eventos más importantes y los personajes másrepresentativos.

Descubre miles de cursos como éste en www.mailxmail.com 9

mailxmail - Cursos para compartir lo que sabes

Page 10: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

2 ) Elabore una línea de tiempo sobre la historia de las computadoras y la historia de loslenguajes de programación.

3 ) Agregue a la línea del tiempo del ejercicio anterior, algunos de los eventos mássobresalientes en la historia universal.

Descubre miles de cursos como éste en www.mailxmail.com 10

mailxmail - Cursos para compartir lo que sabes

Page 11: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

5. Computador (ordenador). Características y funcionesbásicas[http://www.mailxmail.com/...desarrollo/computador-ordenador-caracteristicas-funciones-basicas]

B. Características y funciones básicas de las computadoras

En el principio de la era de la computación, el término computar significaba calcular, hacercálculos numéricos. Sin embargo, actualmente este concepto ha ampliado su definición,abarcando ahora muchas otras actividades, además de hacer cálculos matemáticos.

El término computar ahora significa, tomar datos, hacer un proceso con ellos y obtenercomo resultado información.

Para entender esto de los datos y la información, consideremos por ejemplo, el número 42,este número por sí mismo no dice mucho, pero cuando un programa arroja este resultado,al hacer una consulta acerca de la temperatura corporal actual de un paciente, entonces yase convierte en información, que implicaría hacer las acciones que sean pertinentes paraeste caso.

La naturaleza de las computadoras es hacer cálculos. Las computadoras son muy buenas enhacer tareas repetitivas, aburridas y tareas que las personas son propensas a cometererrores. Estas tareas son por lo general las sumas, comparaciones, búsquedas y cálculos demuchas áreas del conocimiento humano.

Casi el único modo en que las computadoras puedan fallar en hacer los cálculos, es queexista un defecto en los componentes con los que está construido, porque las computadorasno se cansan ni se aburren en hacer esas tareas.

A partir de la década de 1930, se hicieron muchas especulaciones acerca de la similitud dela computadora con el cerebro humano. No era para menos, pues la computadora podíaresponder con mucha precisión a preguntas relacionadas con cálculos; cosa que a laspersonas les costaba más trabajo. Esto hizo pensar a algunas otras personas que lacomputadora era capaz de pensar y razonar como un humano.

Alan M. Turing, matemático inglés, propuso una prueba, en la que se podría determinar, siuna computadora podía razonar como lo hace una persona normal y tener inteligencia comouna persona. Aunque esta prueba no estaba basada en formalismos (pero muchos otrosestudios de Alan Turing sí), si había confianza en el resultado.

Figura. 8. Alan M. Turing propuso lo que conocemos como la "prueba de Turing", en la cualse determinaba si la computadora era capaz de confundirse con un ser humano.

La prueba de Turing se trataba de hacer un dialogo entre una computadora y una persona,pero la persona no debería saber con quién estaba dialogando. Si la persona era capaz dereconocer que su interlocutor no era una persona, entonces la computadora no pasaría la

Descubre miles de cursos como éste en www.mailxmail.com 11

mailxmail - Cursos para compartir lo que sabes

Page 12: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

reconocer que su interlocutor no era una persona, entonces la computadora no pasaría laprueba; al contrario, si la persona no podía reconocer que se trataba de algo (no de alguien),entonces la computadora tendría el reconocimiento de tener inteligencia como la humana.

Hasta ahora, ninguna computadora ha sido capaz de vencer en la prueba de Turing, aunquelos avances en este sentido han sido asombrosos. Por ejemplo, se ha dado el caso de queuna computadora ha vencido en el juego del ajedrez a campeones mundiales de laespecialidad, hay computadoras que hacen diagnósticos médicos, cirugías, evaluaciones ytomas de decisiones. Pero aunque estas tareas resulten asombrosas para las computadoras,hay aún cosas humanas que no pueden hacer, como desarrollar tareas impredecibles, comoresponder a preguntas que jamás antes habían conocido.

Descubre miles de cursos como éste en www.mailxmail.com 12

mailxmail - Cursos para compartir lo que sabes

Page 13: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

6. Computador(ordenador). Software y hardware[http://www.mailxmail.com/...ador-cientifico-desarrollo/hardware-computador-ordenador-software]

Las computadoras están compuestas, de manera muy general, en software y hardware.

Sin el software o el hardware, las computadoras sirven de muy poco, y de nada para lo queoriginalmente fueron concebidas.

1) El software:

El software de la computadora son los programas (las instrucciones) de la computadora, esdecir, son los conjuntos de instrucciones que deben seguir de manera ordenada para llevara cabo la tarea para la cual han sido programadas.

Las personas que se relacionan con el software de las computadoras, normalmente caen enuna de dos clases, o son programadores o son usuarios de programas. Los programadoresson las personas que hacen los programas, implícitamente también son usuarios deprogramas, por otro lado, los usuarios se limitan a usar los programas hechos por losprogramadores.

Las personas que se dedican a las ciencias computacionales, tienen que ver la computacióncomo un objeto de estudio. Ya sea como programador o como usuario, los computólogosdeben proponer nuevos y mejores maneras de hacer computaciones, en cualquiera que seael objeto del cómputo.

En ocasiones se debe garantizar que un procedimiento es posible realizarlo con lacomputadora y desde otro punto de vista, explicar porqué tal o cual procedimiento esimposible hacerlo en una computadora, esto es la computabilidad.

2) El hardware:

Conocemos como hardware a lo que es tangible en la computadora, como el monitor, todoslos circuitos electrónicos, mecánicos o eléctricos; los componentes de plástico o cualquierotro material.

En general, el hardware de la computadora se puede dividir en tres partes:

I) El hardware de entrada:

Son aquellos dispositivos que sirven para meter datos a la computadora.

II) El hardware de procesamiento central:

Son aquellos componentes que sirven para procesar los datos, ya sean numéricos,alfanuméricos, visuales, textuales o de cualquier otra clase.

III) El hardware de salida:

Son los elementos constituyentes de la computadora que sirven para recibir información deella.

Descubre miles de cursos como éste en www.mailxmail.com 13

mailxmail - Cursos para compartir lo que sabes

Page 14: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

7. Ordenador. Supercomputadoras. Mainframe[http://www.mailxmail.com/...nador-cientifico-desarrollo/ordenador-supercomputadoras-mainframe]

C. Tipos de computadoras

En general, podemos distinguir las computadoras en 5 categorías. Estas categorías se hanestablecido para dar una idea general del poder de cómputo que está implícito al nombrar eltipo de computadora.

· Supercomputadoras. (Figura 9).

Las supercomputadoras normalmente son aquellas que son cientos de veces más rápidasque cualquier computadora de escritorio.

Las supercomputadoras normalmente están en cuartos muy fríos y se deben enfriar conlíquidos especiales para que la resistencia eléctrica sea mínima y garantice la máximavelocidad. El software que se corre en las supercomputadoras normalmente es un softwareespecializado, como la predicción del clima, la dinámica molecular (como el caso de laBlueGene/L de IBM que se muestra en la figura 9). De modo que la principal característica delas supercomputadoras es su velocidad de proceso, y no el número de procesos que puedanejecutar al mismo tiempo.

Figura. 9. Supercomputadora BlueGene L, la mejor del mundo hasta ahora (sep/2007). Es unamáquina de 360 TeraFLOPS (360 × 1012, o 360.000.000.000.000)

· Mainframe. (Figura 10).

El significado del término mainframe dentro de la computación, ha cambiado varias veces. Alprincipio, mainframe era un término con el que se designaba a las computadoras que sealojaban en cuartos enormes, luego se utilizó para distinguir las máquinas que compartíanlos recursos con muchas computadoras de menos poder de cómputo. Ahora, el término serefiere usualmente a las computadoras compatibles con el sistema IBM 360. Otrascomputadoras con las mismas capacidades se suelen llamar servidores. En general, nosotrosentenderemos como mainframe, una computadora que es capaz de compartir los recursoscon muchas otras computadoras de menor capacidad. Los mainframes se utilizan enuniversidades, bancos, etc. Una computadora mainframe acepta entradas de otrasterminales, u otros mainframes. Una terminal es una computadora con muy poco poder decómputo que requiere de los servicios que presta un mainframe, usualmente se les conocecomo terminales tontas.

Descubre miles de cursos como éste en www.mailxmail.com 14

mailxmail - Cursos para compartir lo que sabes

Page 15: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 10. Mainframe antigua, con el sistema IBM360.

Descubre miles de cursos como éste en www.mailxmail.com 15

mailxmail - Cursos para compartir lo que sabes

Page 16: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

8. Computador personal. Servidores[http://www.mailxmail.com/...ca-ordenador-cientifico-desarrollo/computador-personal-servidores]

· Computadoras personales. (Figura 11).

Son pequeñas y baratas. Generalmente solamente tienen un procesador, aunque ahora seestá volviendo común tener computadoras personales con más de un procesador. Alprincipio se les conocía como microcomputadoras, porque eran computadoras completasconstruidas a pequeña escala y que fueron adquiridas por la mayoría de los negocios.

Figura. 11. Computadoras personales. Actualmente ya tienen mucho poder de cómputo, sonrelativamente baratas y corren una amplia gama de aplicaciones.

Las computadoras personales pueden ejecutar una amplia gama de aplicaciones depropósito general, como procesadores de texto, hojas de cálculo, presentadores detransparencias, manejadores de bases de datos, entre otros.

También se conocen como terminales, o estaciones de trabajo. Pueden caber perfectamenteen un escritorio, en conjunto con un monitor, un ratón y un teclado. La mayoría de losnegocios hacen redes interconectando varias estaciones de trabajo. (Figura 12).

· Servidores de redes. (Figura 12).

Son similares a las PCs pero mucho más poderosas. Los servidores manejan la seguridad dela red, archivos compartidos e impresoras compartidas. Un servidor es una computadoraoptimizada para proporcionar servicios a otras computadoras en una red de computadoras.Los servidores generalmente tienen procesadores poderosos y mucha memoria y discosduros de enorme capacidad.

Descubre miles de cursos como éste en www.mailxmail.com 16

mailxmail - Cursos para compartir lo que sabes

Page 17: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 12. Computadoras personales. Frecuentemente se utilizan computadoras personalespara conectarlas y hacer una red de computadoras.

Descubre miles de cursos como éste en www.mailxmail.com 17

mailxmail - Cursos para compartir lo que sabes

Page 18: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

9. PDAs. Computadoras vestibles[http://www.mailxmail.com/...atica-ordenador-cientifico-desarrollo/pdas-computadoras-vestibles]

Por otro lado, ahora se están haciendo computadoras cada vez más pequeñas, y concada vez mayor capacidad de procesamiento y de almacenamiento de datos. Escomún ahora encontrar:

· Computadoras portátiles. (Figura 13)

También se les conoce por notebooks o laptops, son computadoras personales unpoco más caras que las computadoras personales de escritorio, porque la tecnologíaque se requiere para fabricarlas debe de caber en menos espacio y tener el mismopoder de cómputo y almacenamiento. La ventaja de una laptop sobre unacomputadora de escritorio es que es completamente portátil. Las energía principal laproporciona una batería, que debe de ser recargada en pocas horas, frecuentemente2 o 3 horas.

Figura. 13. Computadoras personales. Portátiles.

· PDAs. (Figura 14).

Los PDAs (Asistentes digitales personales) Son equipos de cómputo congeneralmente poco poder de cómputo, pero esto mejora a pasos agigantados.Frecuentemente son utilizados como asistentes personales, y las aplicaciones quecorren son teléfono móvil, agendas, editores de planes, listas de cosas por hacer,juegos, etc.

Caben en la palma de una mano, generalmente tienen una pantalla sensible al tactopara evitar el teclado. Utilizan una tecnología de reconocimiento de patrones que lespermite saber qué símbolo se dibuja con el lápiz sobre la pantalla.

Figura. 14. Computadoras personales. PDAs.

Descubre miles de cursos como éste en www.mailxmail.com 18

mailxmail - Cursos para compartir lo que sabes

Page 19: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

· Computadoras vestibles. (Figura 15).

La computación vestible aún se encuentra en desarrollo, pero se pretende crearcomputadoras tan pequeñas que se puedan incorporar en la vestimenta del usuario.Esto significaría una mejor conexión con el entorno. Por ejemplo, se podría detectarla identidad de un empleado y habilitar su entrada o negar el acceso sin tener queportar una credencial o detenerse a firmar; y muchas otras aplicaciones más.

Figura. 15. Las computadoras vestibles están en pleno desarrollo. En un futurocercano se podrán utilizar como ahora se utilizan los teléfonos celulares.

Descubre miles de cursos como éste en www.mailxmail.com 19

mailxmail - Cursos para compartir lo que sabes

Page 20: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

10. CPU. Organización o estructura. Memoria[http://www.mailxmail.com/...denador-cientifico-desarrollo/cpu-organizacion-estructura-memoria]

D. Organización de la computadora

A pesar de la gran diversidad de formas de las computadoras, todas ellas tienen en comúnque sirven para procesar datos y devolver información. Para entender cómo se procesan losdatos y cómo se devuelve la información, es útil considerar la organización de lacomputadora.

Las computadoras personales actuales, tienen en común (al menos hasta hace poco tiempo),que tienen un procesador, memoria, una interfaz y dispositivos de entrada y salida (figura16). Sin embargo, las computadoras multiprocesadores se están volviendo más comunescada vez. Aunque su organización es una generalización de la organización de lascomputadoras monoprocesador.

La unidad central de proceso (conocida como el procesador), la memoria y la interfaz deentrada y salida, componen la unidad computacional.

Figura. 16. Organización básica de las computadoras.

Una computadora opera fundamentalmente en pasos de tiempo discreto. Las computadorasson dispositivos regidos por el tiempo, en donde los pasos del tiempo los proporciona demanera periódica un reloj central de acuerdo a su frecuencia de operación. Cuandodecimos: "... tengo una computadora de 1GHz...", significa que la computadora requiere 1nanosegundo para realizar un tick. Una operación puede tomar varios ticks en realizarse. Lavelocidad de la computadora se expresa en unidades de millones de instrucciones porsegundo (MIPS). Nuestra computadora de 1GHz (la velocidad del reloj) puede tener unavelocidad computacional de 200 MIPS.

1) Memoria: La memoria de la computadora es un arreglo de circuitos electrónicos capacesde mantener la polaridad de sus elementos por el tiempo que se encuentre encendida lacomputadora. Usualmente se le conoce como RAM (Memoria de acceso aleatorio).

En la memoria se alojan los programas que se están ejecutando y generalmente los datosque deben utilizar esos programas. Dentro de los programas que debe ejecutar lacomputadora, el principal de ellos es el sistema operativo.

El sistema operativo es un programa de computadora que se encarga de administrar losrecursos del sistema de cómputo. Otros programas son los compiladores, traductores,

Descubre miles de cursos como éste en www.mailxmail.com 20

mailxmail - Cursos para compartir lo que sabes

Page 21: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

demonios (programas que se ejecutan sin que se entere el usuario y que constantementeestán revisando una tarea específica), etcétera.

2) CPU: La Unidad Central de Procesos (CPU), se encarga de calcular y distribuir las tareasque se deben ejecutar. Entre sus funciones está la de hacer solicitudes a la memoria paraobtener todos los datos necesarios para realizar su computación; también está la de hacergestiones a la interfaz de entrada y salida para permitir la lectura de los caracteres delteclado, los clicks del ratón, mostrar las ventanas en el monitor, etc.

Frecuentemente, en las computadoras de un solo CPU, la velocidad de proceso se ve frenadapor la capacidad de transmitir datos de un lado al otro, entre el CPU, la memoria y lainterfaz de E/S. Antiguamente, las computadoras podían transmitir datos en conjuntos de 8bits, ahora las computadoras pueden transmitir hasta 64 bits en cada tick del reloj (aunquea la fecha hay equipos de cómputo de 128 bits, pero son dedicados a consolas de juegos).

Descubre miles de cursos como éste en www.mailxmail.com 21

mailxmail - Cursos para compartir lo que sabes

Page 22: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

11. Computadora. Interfaz y dispositivos de entraday salida[http://www.mailxmail.com/...ifico-desarrollo/computadora-interfaz-dispositivos-entrada-salida]

3) Interfaz E/S:

La interfaz de entrada y salida es una placa de circuitos integrados que manipulan ycontrolan los dispositivos que se conectan con el CPU. Los fabricantes de losdsipositivos de entrada de datos o de salida de datos, deben ajustarse a loslineamientos del procesador central.

Figura. 17. interfaz de entrada/salida de una computadora. Contiene circuitosintegrados que controlan los dispositivos de entrada y salida y establece unacomunicación con la unidad central de proceso.

Existen estándares para la transmisión de datos, tanto de entrada como de salida. Esel medio por el cual se envían o se reciben señales desde un sistema hacia otros.Los datos viajan por un bus de datos. Si el bus de datos es de poca capacidad y elprocesador es de mucha capacidad, por ejemplo, si el bus de datos puede transmitirhasta 16 bits en un tick, y el procesador trabaja con 32 bits en cada tick, es claroque el procesador puede esperar hasta 2 ticks para trabajar; si el bus fuera de 64bits y el procesador de 32 bits, entonces también hay un tiempo de espera.

4) Dispositivos de E/S:

Los dispositivos de entrada y de salida son aquellos que se conectan a la unidad decomputación por medio de la interfaz de entrada/salida.

Hay dispositivos de entrada, como los teclados, los ratones, las tabletasdigitalizadoras, los micrófonos, etc.; y hay dispositivos de salida como losmonitores, las bocinas, y cualquier otro actuador.

Los dispositivos de E/S se conectan utilizando los puertos de la computadora.Antiguamente había dos puertos, el puerto serial y el puerto paralelo. Actualmenteestá en desuso el puerto paralelo y en su lugar hay otros puertos seriales de altavelocidad, el USB (Bus Serial Universal) que se utiliza para casi cualquier dispositivo yel FireWire que se prefiere para transmitir altas cantidades de datos o de

Descubre miles de cursos como éste en www.mailxmail.com 22

mailxmail - Cursos para compartir lo que sabes

Page 23: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

información, como los videos.

Descubre miles de cursos como éste en www.mailxmail.com 23

mailxmail - Cursos para compartir lo que sabes

Page 24: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

12. Sistemas de numeración. Binario a decimal[http://www.mailxmail.com/...denador-cientifico-desarrollo/sistemas-numeracion-binario-decimal]

E. Sistemas de numeración

Debido a la naturaleza eléctrica y electrónica de las computadoras, los dispositivos de loscuales se componen, se pueden presentar en uno de dos estados, encendidos o apagados.

Esto nos ha servido para modelar cada uno de esos estados con un 0 (apagado) o un 1(encendido). El conjunto de símbolos 1 y 0, los conoceremos como dígitos binarios, porqueson los dígitos que conforman el sistema de numeración binaria. El nombre más comúnes BIT que es una contracción de la palabra en inglés BInarydigiT.

1) Binario a decimal: La representación de los números en notación binaria, sigue lasmismas reglas que la representación de los números en notación decimal, la que utilizamoscotidianamente; y también es la misma que la representación de los números en cualquiersistema numérico de otra base. Los números se representan de manera posicional, con eldígito más significativo a la izquierda y el menos significativo a la derecha.

Ejemplo 1: El número decimal 7632 tiene el dígito más significativo 7, y el menossignificativo el 2. El número binario 10011 tiene el dígito más significativo en el extremoizquierdo y el menos significativo al extremo derecho.

Cada posición representa las veces que la base debe ser considerada para expresarcorrectamente el número. En el ejemplo anterior, el número decimal 7632 representa:

Los dígitos 7, 6, 3, 2, han sido ordenados de arriba hacia abajo en orden decreciente deacuerdo a su posición en el número 7632. De manera similar, el número binario (en base 2)del ejemplo 1, el número 10011 es representado por los dígitos de la siguiente tabla:

Esto nos sirve para poder convertir cualquier número en binario a su expresión numérica enbase decimal. Por ejemplo, el mismo número del ejemplo 1, el 10011 se expresa en decimalcomo el resultado de:

Así, 100112 es equivalente al número 1910. El número en subíndice a la derecha, indica labase que rige la expresión numérica. Esta misma idea la podemos aplicar a expresionesnuméricas de cualquier otra base. Por ejemplo, el número 2013:

Descubre miles de cursos como éste en www.mailxmail.com 24

mailxmail - Cursos para compartir lo que sabes

Page 25: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

de modo que las expresiones numéricas 100112, 2013 y 1910 son equivalentes, cada unaen su propio sistema numérico.

Ejercicios:

1) Encuentre las expresiones numéricas en sistema decimal equivalentes de lossiguientes números: a) 3368b) 3367c) 3369

2) ¿El número decimal 845 es equivalente a qué numero binario? a) 11010011012b) 11010111012c) 11010011002

Descubre miles de cursos como éste en www.mailxmail.com 25

mailxmail - Cursos para compartir lo que sabes

Page 26: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

13. Sistemas de numeración. Decimal a binario[http://www.mailxmail.com/...denador-cientifico-desarrollo/sistemas-numeracion-decimal-binario]

2) Decimal a binario:

Para convertir un número en el sistema numérico decimal a otro sistema numérico decualquier otra base hacemos divisiones, considerando los residuos para formar la expresiónnumérica del resultado.

Ejemplo 2: Calcular la expresión numérica en binario del número 35610 (decimal).

Para realizar esta tarea, tenemos que dividir:

De modo que el número binario buscado es 101100100.

Una vez terminadas las divisiones, el resultado se obtiene escribiendo los residuos deizquierda a derecha en orden decreciente respecto a su significancia, es decir, primero elmás significativo, hasta el bit menos significativo que se escribe en el extremo derecho.

Para convertir un número decimal a una expresión en otra base diferente que 2 se debeconsiderar dividir entre la base deseada hasta que la parte entera de la división sea 0, yescribir los residuos de izquierda a derecha en el orden de significancia.

Ejercicios:

1) Convierta los siguientes números en base 10 a base 2:

a) 11010b) 79010c) 1001110

Descubre miles de cursos como éste en www.mailxmail.com 26

mailxmail - Cursos para compartir lo que sabes

Page 27: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

14. Programación. Principios. Programación clásica (1/2)[http://www.mailxmail.com/...if ico-desarrollo/programacion-principios-programacion-clasica-1-2]

II. PRINCIPIOS DE PROGRAMACIÓN

ESTA sección se trata de revisar y estudiar los principios que rigen el arte de programarcomputadoras. Veremos los conceptos fundamentales de la programación,comprenderemos las direcciones de estudio en la programación y los principios para tenerbuenos hábitos en la programación.

A. Programación clásica

Como las computadoras no pueden pensar (al menos hasta ahora), necesitamos darle lasinstrucciones para que ellas hagan lo que queremos.

Un programa contiene un conjunto de instrucciones que la computadora puede utilizar parahacer alguna tarea. Debido a la naturaleza eléctrica de prendido y apagado, lascomputadoras solamente entienden el lenguaje de 1s y 0s. Este lenguaje se llama lenguajemáquina. Una instrucción típica en lenguaje máquina es 0000100000101111.

Como las computadoras utilizan millones de circuitos electrónicos, utilizan el 1 pararepresentar cuando tienen corriente y 0 para representar cuando no tienen corriente. Alprincipio, cuando se utilizaban las tarjetas perforadas, utilizaban el mismo principio. Unorificio se representaba con 1 y un no-orificio (no hay hueco) se representaba por un 0.

Los estados prendido y apagado de los circuitos electrónicos de la computadora, posibilitanel uso del álgebra booleana, que fu´e inventada por el matemático inglés George Boole. Lossistemas binarios operan de acuerdo con las reglas de la lógica booleana. Estas reglas seutilizan para hacer cálculos con los datos.

Como las personas no se sentían cómodas con el lenguaje máquina, inventaron el lenguajeensamblador en la década de 1950. El lenguaje ensamblador involucra la traducción demuchas combinaciones de números en lenguaje máquina a instrucciones escritas con letras.Una instrucción típica en lenguaje ensamblador se parece a Add A, B, que significa sumar elcontenido de la variable A, con el contenido de la variable B.

Cada tipo computadora tiene su propio tipo de lenguaje ensamblador. En la mayoría de loscasos, el tipo lo determina la marca de la computadora, aunque diferentes computadoras dela misma marca pueden tener diferentes lenguajes ensambladores. La cantidad decomandos que se utilizan en lenguaje ensamblador es la misma que en lenguaje máquina.

Las computadoras suelen tener un programa especial que se llama ensamblador, quetraduce un programa en lenguaje ensamblador a un lenguaje máquina, de modo que lacomputadora pueda entenderlo y ejecutarlo.

Tanto el lenguaje ensamblador como el lenguaje máquina son lenguajes de bajo nivel, yson dependientes del procesador. Ya que cada procesador tiene su propia arquitectura, unprograma en lenguaje ensamblador escrito para un procesador puede no funcionar en unacomputadora con un procesador diferente.

Descubre miles de cursos como éste en www.mailxmail.com 27

mailxmail - Cursos para compartir lo que sabes

Page 28: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

15. Programación. Principios. Programación clásica (2/2)[http://www.mailxmail.com/...if ico-desarrollo/programacion-principios-programacion-clasica-2-2]

Los lenguajes de alto nivel incluyen lenguajes como:

· Fortran. FORTRAN es una contracción de FORmula TRANslation. Se utiliza principalmenteen aplicaciones donde lo principal es el cálculo numérico en problemas científicos. Fue elprimer lenguaje de alto nivel y lo creó la compañía IBM en 1950.

· Pascal. Pascal fue creado en 1970 y se llamo así por el matemático Blaise Pascal. Se utilizómucho en las universidades y centros educativos por su simplicidad y excelente diseñoestructurado.

· COBOL. COBOL también es un acrónimo que significa COmmon Business OrientedLanguage. Se creó en 1960, y podía procesar cálculos simples de grandes cantidades dedatos. Los programas escritos en COBOL eran más largos que aquellos que se escribían enotros lenguajes, pero a la vez, eran más fáciles de seguir. COBOL fue un lenguaje popularpara las aplicaciones orientadas a los negocios que corrían en computadoras grandes comolos mainframes, aunque ahora ya no es tan común, aunque aún existe el compilador paraeste lenguaje.

· BASIC. También es un acrónimo, significa Beginner´s All/purpose Symbolic InstructionCode. Se desarrolló en 1964 y como su nombre lo sugiere, es un lenguaje fácil de aprenderpara los estudiantes y principiantes. Hasta hace algún tiempo, las computadoras teníanincluido un intérprete de BASIC en su software de fábrica.

· C . C se creó en 1972 como un lenguaje para hacer aplicaciones en el sistema operativoUNIX. A partir de C, se han desarrollado otros lenguajes como C++, C#, C-objetivo, inclusoJava, que son lenguajes actuales y ampliamente difundidos y utilizados.

Ejercicios:

1) Escribe una descripción corta de los siguientes lenguajes: LISP, PROLOG, ADA, OBERON,RUBY y SMALLTALK.

2) Elabora una tabla comparativa, que describa los nombres de las personas que crearon ellenguaje y las fechas de creación de todos los lenguajes que se mencionaron en el texto,incluyendo los del punto anterior.

3) Menciona, para cada lenguaje de los anteriores, qué tipo de aplicación es aconsejablehacer con cada lenguaje de computadora.

Los lenguajes de alto nivel se parecen más al lenguaje natural que los lenguajesensambladores, porque utilizan palabras como el lenguaje cotidiano (usualmente en inglés)como BEGIN, END o IF.

Los compiladores y los intérpretes se utilizan para convertir programas de alto nivel a bajonivel. Cada instrucción de alto nivel se traduce varias instrucciones de bajo nivel.

Los lenguajes de cuarta generación (4GLs) tienen comandos que se parecen mucho más alos lenguajes humanos. SQL (Structured Query Language) es un lenguaje de cuartageneración. La mayoría de los lenguajes de cuarta generación se utilizan para manipularbases de datos. Por ejemplo, un comando en SQL como el siguiente...

Descubre miles de cursos como éste en www.mailxmail.com 28

mailxmail - Cursos para compartir lo que sabes

Page 29: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

... se puede utilizar (junto con otros comandos) para obtener información de los empleadosen una base de datos.

Los lenguajes de cuarta generación son más fáciles de aprender y de manipular, pero sonmás difíciles de interpretar por la computadora. La computadora requiere de más recursospara traducir una instrucción en lenguaje de cuarta generación.

Cada lenguaje de programación tiene sus ventajas y desventajas. Por ejemplo, FORTRAN esmuy bueno para hacer cálculos numéricos, pero es muy malo para hacer formatos de textoen la pantalla; mientras que COBOL es muy bueno para dar formatos de texto en la pantalla,pero muy malo para hacer cómputo numérico.

Si queremos ser programadores profesionales, probablemente deberemos aprender varioslenguajes de programación, porque actualmente los entornos de programación permitenmezclar código de diferentes lenguajes.

Descubre miles de cursos como éste en www.mailxmail.com 29

mailxmail - Cursos para compartir lo que sabes

Page 30: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

16. Programación. Tendencias. Programación estructurada( 1 / 2 )[http://www.mailxmail.com/...-desarrollo/programacion-tendencias-programacion-estructurada-1-2]

B. Tendencias de la programación

En 1966, dos matemáticos publicaron un artículo donde se mostraba que era posible hacercualquier programa utilizando únicamente tres tipos de estructuras de control:

1) Secuencias2) Opcionales3) Repeticiones

El documento se tradujo del italiano (el idioma original del artículo) al inglés, y se publicó enla revista Communications of the ACM, donde redujeron a dos las reglas de formaciónnecesarias para crear cualquier algoritmo [3].............................................................Ejercicios: 1) ¿Cuáles son esas dos reglas de formación?............................................................

El artículo proporcionó una tendencia de programación que se conoce como programaciónestructurada.

1) Programación estructurada: En la programación estructurada, los programas grandesson difíciles de comprender si tienen un solo inicio y siguen aplicando operaciones trasoperaciones hasta un solo final, de modo que la programación estructurada ofrece laalternativa de hacer módulos de programas más pequeños, que en conjunto puedan darsolución al problema.

De modo que la programación estructurada incluye

· Un desarrollo TOP-DOWN · Un diseño Modular

El desarrollo TOP-DOWN establece dividir el problema en componentes de tamaño másmanejable, resultando en programas más precisos y confiables.

El diseño modular agrupa las tareas que desarrollan la misma función.

Por ejemplo. Un cálculo de interés general podría ocupar un módulo en un programa;cualquier otra parte del programa puede utilizar ese módulo, así que se puede llamar envarias ocasiones por otros módulos.

El diseño modular de un programa se complementa con el desarrollo top-down porque lossubpasos en el proceso del desarrollo en realidad es hacer más módulos en el programa(Figura 18).

Descubre miles de cursos como éste en www.mailxmail.com 30

mailxmail - Cursos para compartir lo que sabes

Page 31: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 18. Diseño modular con filosofía Top-Down para el desarrollo del Software.

Descubre miles de cursos como éste en www.mailxmail.com 31

mailxmail - Cursos para compartir lo que sabes

Page 32: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

17. Programación. Tendencias. Programación estructurada( 2 / 2 )[http://www.mailxmail.com/...-desarrollo/programacion-tendencias-programacion-estructurada-2-2]

Los lenguajes de tercera generación, como Pascal, C y BASIC, siguen la filosofía de laprogramación estructurada, porque son lenguajes procedurales que necesitan hacerinstrucciones paso por paso para llegar al resultado deseado.

Los lenguajes de cuarta generación se desarrollaron desde finales de la década de 1970.Cada una de sus instrucciones genera aproximadamente unas 50 instrucciones en lenguajemáquina. Los programas escritos utilizando esos lenguajes también se pueden corregirrápidamente. Esta clase de lenguajes (4GL) no son procedurales, porque el programadorsolicita un resultado sin proporcionar los pasos necesarios para obtenerlo.

Por ejemplo, esta solicitud de SQL despliega los Productos de la base de datos Inventario.

GET Productos FROM Inventario

Figura. 19. Sistema de Base de Datos

La mayoría de los lenguajes de cuarta generación se utilizan para acceder a las bases dedatos, quienes utilizan los siguientes componentes (figura 19):

· Sistema manejador de Bases de Datos. (DBMS) El manejador de la base de datos seasegura que se pueda leer de la base de datos y escribir en la base de datos de maneraadecuada y sin confusiones.· Lenguaje de consulta de la Bases de Datos. El lenguaje de consulta de la base de datospermite los usuarios especificar precisamente qué información desean de la base de datos.· Generador de pantallas. El generador de pantallas proporciona una interfaz gráfica querápidamente genera tanto las entradas del usuario como las salidas para el usuario.· Generador de reportes. El generador de reportes crea reportes personalizados ensegundos. Los reportes se deben mostrar haciendo énfasis en la información necesaria ysolicitada por el usuario.

Los lenguajes de cuarta generación son orientados al usuario final, en otras palabras, tienenuna interfaz con el usuario muy amigable, de modo que las personas con pocos o nulos

Descubre miles de cursos como éste en www.mailxmail.com 32

mailxmail - Cursos para compartir lo que sabes

Page 33: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

una interfaz con el usuario muy amigable, de modo que las personas con pocos o nulosconocimientos en lenguajes de programación pueda aprenderlos fácilmente. Como laprincipal aplicación de los lenguajes de cuarta generación es la interacción con las bases dedatos, son buenos para extraer datos y presentarlos en un formato específico; sin embargo,tienen compiladores que son muy grandes y lentos, comparados con los compiladores de loslenguajes de tercera generación.

Como ejemplos de los sistemas manejadores de bases de datos (DBMSs) que utilizanlenguajes de cuarta generación incluyen:

· Informix. Proporciona sistemas manejadores de bases de datos relacionales que corren endiversas plataformas UNix. Las bases de datos relacionales almacenan los datos en forma detablas relacionadas. Son muy poderosas, porque los datos se pueden ver de diversasmaneras, siempre atendiendo las necesidades específicas de cada clase de usuario.

· Oracle. Las bases de datos Oracle incluyeron el primer sistema manejador de bases dedatos que incorporaron el lenguaje SQL y que se utilizaron en una amplia gama deplataformas. El lenguaje SQL (Structured Query Language) es el lenguaje de programaciónestándar de la industria, y se utiliza para extraer información de las bases de datos que sonalojadas en el sistema. Oracle ofrece una variedad de herramientas de desarrollo deaplicaciones que incluyen aplicaciones para ser ejecutadas en redes de computadoras.

Descubre miles de cursos como éste en www.mailxmail.com 33

mailxmail - Cursos para compartir lo que sabes

Page 34: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

18. Programación orientada a objetos - OOP[http://www.mailxmail.com/...rdenador-cientifico-desarrollo/objetos-oop-programacion-orientada]

2) Programación orientada a objetos: La programación orientada a objetos (OOP) seconvirtió en la alternativa para la programación estructurada a finales de la década de 1980.La OOP crea abstracciones de los objetos del mundo real en la computadora.

Figura. 20. Esquema de un objeto. Tiene al interior las propiedades (atributos) y paraacceder a ellos se hace por medio de las operaciones (métodos).

Cada objeto tiene un conjunto de propiedades y operaciones - o métodos - asociados conél (figura 20. Por ejemplo, el objeto reloj puede tener las propiedades: horas, minutos,segundos y los métodos poneTiempo, tiempoActual. Las propiedades horas, minutos ysegundos se pueden manipular solo por medio de los métodos.

Los programas orientados a objetos son modulares. Los programas modulares son fácilesde corregir. La tendencia actual es la programación orientada a objetos, considerandoalgunas extensiones a esta filosofía de programación.

Como ejemplos de lenguajes orientados a objetos, incluyen:

· Smaltalk. Smaltalk fue el primer lenguaje de programación orientado a objetos, ofrecemuchas libertades a los programadores, de modo que los programadores deben tenermucho cuidado al manejar la memoria del sistema.

· Java. Fue creado por la compañía Sun Microsystems, Java es un lenguaje orientado aobjetos similar a C++ pero han mejorado el lenguaje con características que evitan erroresde programación comunes, como el manejo de la memoria, donde la responsabilidad recaeen un subsistema que se llama recolector de basura.

· C + + . C + + es un superconjunto del lenguaje C. Generalmente es considerado uno de losmejores lenguajes para hacer aplicaciones a gran escala.

· C#. Fue desarrollado por Microsoft. C# (que se pronuncia C-sharp) es un híbrido de C yC++ que fue desarrollado para competir con Java y con el objetivo de mejorar laproductividad en el desarrollo de aplicaciones WEB, manteniendo la flexibilidad y el poderde C y C++.

Los lenguajes de alto nivel tienen algunas ventajas sobre los lenguajes de bajo nivel [4]:

1) Son más legibles: Un buen lenguaje de alto nivel, permitirá que los programas seescriban de manera que recuerden descripciones tipo-idioma-común, muy parecidos a lospseudocódigos. Si se programa cuidadosamente, se puede generar una documentaciónautocontenida, que es una propiedad deseable cuando se considera que los programas se

Descubre miles de cursos como éste en www.mailxmail.com 34

mailxmail - Cursos para compartir lo que sabes

Page 35: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

documentan para que otras personas lean y comprendan lo que se ha escrito.

2) Son más portables: Actualmente, los lenguajes de programación de alto nivel se estánvolviendo más capaces de ser utilizados en arquitecturas de computadoras diferentes, conningún cambio; o bien al proporcionar el código fuente y ser recompilado sin modificaciones.

3) Tienen estructura y orientación de objetos: Este es un acuerdo general que empezócon la programación estructurada desde la década de 1960 y posteriormente con elmovimiento a la programación orientada a objetos en la década de 1990, de lo que resultóuna gran mejora en la calidad y confiabilidad del código. Los lenguajes de alto nivel sepueden diseñar para reforzar esos paradigmas.

4) Tienen mayor generalidad: La mayoría de los lenguajes de alto nivel permiten laescritura de una amplia variedad de programas, para permitir al programador mezclarcódigo de diversos lenguajes para que su aplicación sea mejor.

5) Brevedad: Los programas expresados en lenguajes de alto nivel usualmente sonconsiderablemente más cortos (en términos del número de líneas de código fuente) que loshechos en lenguajes de programación de bajo nivel.

6) Verificación de tipos: Siendo humano, un programador probablemente cometa muchoserrores en el desarrollo de un programa de computadora. Muchos lenguajes de alto nivel -o al menos sus implementaciones - pueden, y deben, verificar los errores tanto en tiempode compilación como en tiempo de ejecución.

Descubre miles de cursos como éste en www.mailxmail.com 35

mailxmail - Cursos para compartir lo que sabes

Page 36: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

19. Principios de una buena programación[http://www.mailxmail.com/...ica-ordenador-cientifico-desarrollo/principios-buena-programacion]

C. Principios de una buena programación

Los programas de computadoras son útiles cuando se usan, a pesar de lo trivial que puedasonar esta frase, involucra cuatro características importantes que deben tener los programaspara que sean buenos programas y se puedan utilizar. Un buen programa es robusto,eficiente, utilizable y mantenible.

· Robusto. Decimos que un programa es robusto cuando es tolerante a las fallas. Podemosprobar nuestro programa extensivamente para indicar las fallas que pudieran encontrar losusuarios. Sin embargo, debe haber un balance entre el costo de probar y la necesidad demanipular los errores. Generalmente no es posible probar un sistema para encontrar todaslas fallas y hacer un programa que reaccione a cada una de estas fallas.

· Eficiente. Los programas deben usar de manera correcta los recursos del sistema en elcual se están ejecutando. En un avión, por ejemplo, el tamaño y el peso de unacomputadora es limitado. De modo que el software utilizado en esos sistemas debe estarrestringido a la capacidad de memoria y a la velocidad del procesador utilizado. Losprogramas que desperdician memora y recursos del sistema, usualmente no sirven, porquecuando aumenta el volumen de datos, esos programas pueden ocasionar errores fatales. Unerror fatal es aquel que hace detener la normal ejecución de un programa, ocasionando enciertos casos que se deba reiniciar el sistema completo.

· Utilizable. Los programas utilizables son aquellos que el usuario final encuentra fáciles deoperar. La utilizabilidad depende de algunos factores, como las formas para introducir losdatos a la computadora, el diseño de los menús de opciones y la presentación de lainformación. Los mensajes informativos y los archivos de ayuda mejoran la utilizabilidad. Ladocumentación del usuario offline como los manuales impresos, deben ser fáciles de leer yde seguir en la operación del sistema; asimismo, la ayuda en-línea se debe distribuir ybuscar más fácilmente.

· Mantenible. Un programa mantenible involucra hacer cambios a un programa después dehaber sido implementado. Es posible que después de un tiempo, el usuario ya no estécompletamente satisfecho con el sistema, entonces se debe modificar. La facilidad con quese puedan hacer esos cambios es lo que hace a un sistema mantenible. Un programadordebe, entonces, estar familiarizado con la sintaxis del lenguaje de programación enque fue creado el sistema.

Una excelente recomendación que es muy simple de aplicar para que nuestros programasseas claros y fáciles de seguir, es utilizar identación en la escritura del código. Comoejemplo, notemos la diferencia entre estos dos segmentos de código.

Descubre miles de cursos como éste en www.mailxmail.com 36

mailxmail - Cursos para compartir lo que sabes

Page 37: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Cuando los programas tienen cientos o miles de líneas de código, la identación - o la faltade ella - afectarán significativamente la legibilidad del programa. También los comentariosincrementan la legibilidad de un programa. Todos los lenguajes de programación tienen unmodo de insertar texto que no se ejecuta como parte del programa, por ejemplo, C tratacualquier texto entre /* */ como un comentario.

Un esfuerzo que deberíamos practicar, es escribir variables con un significado que nos hagarecordar fácilmente el porqué existe tal variable. Los nombres para las variables,generalmente empiezan con una letra y pueden continuar con más letras o con números, y aveces también se permiten los guiones y muy pocos símbolos especiales. Estas reglas sonmuy generales y se permiten nombres como a23 para el nombre de una variable.Comparemos los siguientes dos fragmentos de código en Pascal y notemos la legibilidad encada uno de ellos.

Cualquier persona que lea este último fragmento de código, no sabría lo que significan lossímbolos m, n s y e. Pero los ejemplos del código con las variables con significado dan unamejor idea de lo que queremos expresar en el código. A pesar de la recomendación deelegir nombres con significado para las variables, se prefieren nombres cortos para lasvariables, veamos; el nombre de la variable salarioDeEmpleadosMensual es menos preferibleque salarioMensual.

Descubre miles de cursos como éste en www.mailxmail.com 37

mailxmail - Cursos para compartir lo que sabes

Page 38: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Descubre miles de cursos como éste en www.mailxmail.com 38

mailxmail - Cursos para compartir lo que sabes

Page 39: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

20. Software. Ciclo de vida[http://www.mailxmail.com/...o-informatica-ordenador-cientifico-desarrollo/software-ciclo-vida]

D. Fases del ciclo de vida del software

El software varía en complejidad dependiendo de lo que se requiere hacer. Lamayoría de los paquetes de software consisten de muchos módulos, cada módulo esresponsable de ciertas tareas específicas. Para simplificar el desarrollo del software,se sigue una serie de pasos que se llaman el ciclo de vida del software, y que sonseguidos durante el tiempo que un software existe (figura 21).

Figura. 21. Fases del desarrollo del software. Una vez que se concluye,prácticamente se inicia nuevamente al entender las modificaciones que debenhacerse.

1) Introducción al ciclo de vida del software: Regularmente hay cinco pasos en elciclo de vida del software:

a) Entender el problema. En la primera fase del ciclo de vida del software, seenlistan las tareas que el software debe desarrollar, los problemas a ser resueltos, yen esta fase se estudian sus causas y efectos.

La tarea específica que se requiere del programa se deriva del establecimiento delproblema, que es una descripción concisa del problema en cuestión. El softwaredebe proporcionar una solución utilizable a este problema.

b) Diseñar el programa. En la fase de diseño, el objetivo es conocer las relacionesentre los módulos del programa, y garantizar que se cumplen cabalmente losrequerimientos solicitados de una manera eficiente, lógica y completa.

Los diseñadores de software consideran los recursos de hardware y softwaredisponibles para poder alcanzar su objetivo. Si se llega a la conclusión de que no esposible utilizar algún hardware o software, se planea utilizar una estrategia diferente.

Primero se diseña la estructura general del programa. Entonces el problema sedivide en subproblemas en tareas más y más pequeñas hasta que tengan un tamañomanejable.

c) Codificar el programa. Durante la fase de codificación, el programa se escribe enun lenguaje de programación. Hay muchos lenguajes de programación, cada uno deellos es especialista en algún tipo de problemas. Por ejemplo, FORTRAN esespecialista en cálculos numéricos, mientras que LISP es especialista en problemas

Descubre miles de cursos como éste en www.mailxmail.com 39

mailxmail - Cursos para compartir lo que sabes

Page 40: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

especialista en cálculos numéricos, mientras que LISP es especialista en problemasde inteligencia artificial y procesamiento simbólico. El código del programa debedesarrollar la tarea solicitada, y debe ser legible de modo que otros programadoreslo puedan mantener. Los programas se escriben usualmente en módulos separados,cada módulo desarrolla alguna tarea específica y debe funcionarindependientemente y en relación con el resto del programa.

d) Probar el programa. Durante la fase de pruebas, el programa se ejecuta y serevisa. Las tareas deben ejecutarse sin errores en los resultados y también sinerrores fatales. Los defectos en los programas se llaman bugs.

Se examinan primero los módulos de manera individual, en formaindependientemente, luego, se prueba todo el programa para encontrar bugs quepuedan ocurrir en la interacción de los módulos. Cuando se encuentra un bug, seaísla la causa y se resuelve. Este proceso se llama depuración. El programador sedebe asegurar de al resolver un bug, no se crean otros más en alguna otra parte delprograma.

e) Mantener el programa. Durante la fase de mantenimiento, de determina cualquiererror y deficiencia en el programa, y se realizan cualquier acción para resolverla,mientras se preserva la integridad del programa. El uso de notas de diseño, códigobien documentado y variables entendibles, pueden ayudar al mantenimiento futurodel programa.

Descubre miles de cursos como éste en www.mailxmail.com 40

mailxmail - Cursos para compartir lo que sabes

Page 41: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

21. Software. Desarrollo[http://www.mailxmail.com/...o-informatica-ordenador-cientifico-desarrollo/software-desarrollo]

2) Roles en el desarrollo del software: Una persona por sí sola puede llevar odesarrollar los programas en cada etapa del desarrollo del software, perousualmente esto es una excepción, la mayoría de los programas son grandes ycomplejos.

Figura. 22. Roles de las personas que trabajan en el desarrollo del software.

Una compañía de software emplea, frecuentemente, diversos equipos, cada uno deellos es responsable de una fase diferente en el desarrollo del software (figura 22).

Un equipo de desarrollo de software, típicamente está compuesto por varios programadoresprogramadores, al menos un programador analista y al menos un analista desistemas.

Los programadores asistentes usualmente son programadores con poca experiencia.Estos no escriben nuevos programas, en lugar de esto, se dedican a desarrollartrabajos de mantenimiento acerca de otros programas.

Cuando los programadores han adquirido más experiencia, pueden hacer nuevosprogramas. Las especificaciones de esos programas ya deben estar analizadas yautorizadas.

Los programadores experimentados Senior programmer dan las especificaciones delprograma y escriben nuevos programas. Ellos no hacen tareas de mantenimiento,s´olo se dedican a generar nuevo código.

Un programador analista trabaja muy de cerca con los diseñadores del programa.Además de programar nuevo código, los programadores analistas empiezan aaprender las técnicas y los lineamientos del diseño de software.

Un analista de sistemas es un intermediario entre el cliente y los programadores.

Los clientes comunican sus necesidades a los analistas de sistemas (figura 23). Losanalistas traducen esos requerimientos en diseños de programas y se lo comunicana los programadores, quienes hacen de hecho, la programación.

Descubre miles de cursos como éste en www.mailxmail.com 41

mailxmail - Cursos para compartir lo que sabes

Page 42: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 23. En la fase de análisis de requerimientos, los clientes y los analistasdefinen el propósito y capacidades del software.

Descubre miles de cursos como éste en www.mailxmail.com 42

mailxmail - Cursos para compartir lo que sabes

Page 43: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

22. Programas. Desarrollo. Codificar un programa[http://www.mailxmail.com/...dor-cientifico-desarrollo/programas-desarrollo-codificar-programa]

III. DESARROLLO DE PROGRAMAS

AL final de esta sección, seremos capaces de describir cómo hace la computadorapara poder ejecutar los programas, y cómo debemos escribirlos de modo quecometamos menos errores y al mismo tiempo que nuestros programas sean máslegibles y entendibles.

A. Codificar un programa

Escribir un programa involucra una serie de procesos separados.

Ejercicio:

1 ) El proceso de escribir un programa involucra seis (6) pasos. Relaciona lascolumnas de los pasos en el orden adecuado.

Al escribir un programa, el programador debe completar satisfactoriamente cadauno de estos pasos:

1) Entender las especificaciones del programa. El programador debe entendercuáles son las entradas y cuáles son las salidas que se requieren del programa,además del proceso lógico de los datos.

2) Diseñar el programa. Los diseñadores de programas, utilizan herramientas dediseño, como el pseudocódigo o un diagrama de flujos estructurados. Estasherramientas detallan las tareas lógicas que el programa debe realizar. Elprogramador debe analizar rigurosamente el diseño, para asegurarse de que haentendido bien el resultado correcto esperado.

3) Codificar el programa. Un programador codifica el programa escribiendo en unlenguaje de programación en particular. El código se puede escribir primero enpapel - como una recomendación para los programadores principiantes - o sepuede escribir en la computadora utilizando un editor. El programador revisa lalógica del código y la sintaxis, para asegurarse de que todo está correcto. Esto lopueden hacer manualmente, en lo que se conoce como prueba de escritorio. Unaprueba de escritorio hace que se descubran algunos errores que se pueden corregirantes de que el código sea compilado.

Algunas veces, los programadores revisan el código de otros programadores. Estoes una buena práctica de programación y ocasiona que se revise el código al menosdos veces en busca de posibles errores.

Descubre miles de cursos como éste en www.mailxmail.com 43

mailxmail - Cursos para compartir lo que sabes

Page 44: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

4) Compilar el programa. Las computadoras pueden ejecutar programas en códigomáquina únicamente. El proceso de traducir un código hecho en un lenguaje de altonivel en código en lenguaje máquina se llama compilar, o interpretar el programa.Los programas que se encargan de compilar o de interpretar programas se llamancompiladores o intérpretes. Los compiladores se utilizan más frecuentemente quelos intérpretes. El código que tiene errores no se puede compilar. El compiladorgenera un mensaje que nos indica que existe un error en el código, y elprogramador debe arreglar ese error antes de tratar compilar el programa de nuevo.

5) Ejecutar el programa. Una vez que el programa no tiene errores puede serejecutado. Un programa que es interpretado, se ejecuta línea por línea hasta llegaral final del programa o hasta que se encuentre un error.

6) Depurar el programa. El programador revisa las salidas del programa paraasegurarse de que son correctas. Puede ocurrir, sin embargo, que aún cuando noexistan errores de sintaxis, si existan errores en la lógica del programa, lo quepodría ocasionar errores en la salida del programa, o errores que se encuentran almomento de estarse ejecutando el programa. Hay diferentes tipos de errores que sepueden cometer al escribir programas, desde los más simples que se comenten alescribir mal algunas palabras, hasta los más difíciles de encontrar, que son aquellosen que tiene que ver un mal diseño del programa o errores en tiempo de ejecución.

Descubre miles de cursos como éste en www.mailxmail.com 44

mailxmail - Cursos para compartir lo que sabes

Page 45: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

23. Desarrollo de programas. Editores[http://www.mailxmail.com/...ica-ordenador-cientifico-desarrollo/desarrollo-programas-editores]

B. Editores

Los editores son aplicaciones de software que permiten a los programadores escribirel texto de los programas en la computadora. A diferencia de los procesadores depalabras, los editores no permiten algunas características de formato, es decir, nopermiten justificar, centrar texto, ni tipos de letras ni otras características deformato de texto.

En general hay dos tipos de editores:

1) Editores de líneas. Esta clase de editores fueron los precursores de los editoresde pantalla completa. Permitían al programador editar una sola línea a la vez. Elprogramador debe especificar qué línea se debe editar.

Hay aún dos editores de líneas que son populares:

· v i Es una abreviación para visual. vi es un editor basado en UNIX.

· Edlin Es una contracción de Edit lines. Edlin se puede utilizar en una plataformade MS-DOS.

2) Editores de pantalla completa. Los editores de pantalla completa son másfáciles de usar que los editores de líneas, porque los programadores editancualquier línea en cualquier momento. Los editores de pantalla completa puedenproporcionar varias herramientas útiles para los programadores, por ejemplo:

· Menús de cortina. En los editores de pantalla completa pueden haber comandospara hacer alguna tarea específica, estos comandos suelen ordenarse y agruparseen menús que se despliegan hacia abajo (como una cortina), de modo que elprogramador no tiene que aprenderlos de memoria.

· Integración con compiladores e intérpretes. La integración de los programascompiladores e intérpretes con editores, ofrece muchas ventajas para losprogramadores. Esto significa que el código puede ser escrito, editado, compilado ointerpretado, y ejecutado desde el mismo programa. Esto difiere de los editores delíneas, donde un programa por separado desarrolla cada función.

· Texto coloreado. Algunos editores pueden mostrar palabras específicas en uncolor particular para distinguirlas del resto del código. Estas palabras se llamanpalabras reservadas, por ejemplo begin en Pascal. Así mismo, otro texto se puedecolorear, por ejemplo los números, las cadenas de caracteres y los comentarios,frecuentemente se identifican con otro color.

· Números de línea y de columna. Para los programadores es muy útil saber elnúmero de línea y de columna en cada momento de la edición, porque cuando elcódigo es revisado por el compilador, este devuelve una lista de errores (si loshubiera, y frecuentemente los hay) junto con el número de línea en que se ha

Descubre miles de cursos como éste en www.mailxmail.com 45

mailxmail - Cursos para compartir lo que sabes

Page 46: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

detectado.

· Texto autocompletado. Es una característica que permite al programadorempezar a escribir un comando, y el editor "se da cuenta" de qué comando sepretende escribir, entonces completa el comando y lo muestra marcado. Porejemplo, si el programador escribe be, el editor puede completarlo con begin. Si lapalabra no es el comando requerido, el programador sigue escribiendo sobre lazona marcada.

Ejercicio:

1 ) ¿Cuál de los siguientes formatos crees que debes utilizar para grabar el código deun programa, que se ha escrito en un procesador de palabras?

a) Word97b) RTF (Rich Text Format)c) Text only (ASCII)d) PDF (Portable Document File)

Descubre miles de cursos como éste en www.mailxmail.com 46

mailxmail - Cursos para compartir lo que sabes

Page 47: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

24. Compiladores e intérpretes de programas[http://www.mailxmail.com/...rdenador-cientifico-desarrollo/compiladores-interpretes-programas]

C. Compiladores e intérpretes

Un archivo fuente es el que contiene el texto del código del programa que ha sido escritopor el equipo de programadores. Las computadoras solamente pueden ejecutarinstrucciones que estén en código máquina, así que los programas en código fuente no sepueden ejecutar directamente en la computadora. Un compilador debe, en primer lugar,convertir el archivo fuente en un archivo intermedio que se llama archivo objeto o archivocódigo objeto (figura 24). El archivo objeto contiene una traducción del código delprograma en lenguaje máquina, pero aún no se considera un programa ejecutable.

Una división común para describir los compiladores, como menciona Torben AEgidiusMogensen en [5], es como se describe enseguida, aunque el orden puede cambiar, algunasfases se pueden combinar o dividir en otras fases o aún otras fases se pueden insertar, peroen general, los compiladores siguen estas tareas:

· Análisis léxico. Es la parte inicial de leer y analizar el código fuente. El texto es leído ydividido en tokens, cada uno de los cuales corresponde a un símbolo en el lenguaje deprogramación, por ejemplo, el nombre de una variable, una palabra reservada o un número.

· Análisis sintáctico. En esta fase se toma una lista de tokens producida por el análisisléxico y los acomoda en una estructura de árbol llamada árbol sintáctico que refleja laestructura del programa. Esta fase también se llama parsing.

· Verificación de tipos. En esta parte se analiza el árbol sintáctico para determinar si elprograma viola ciertos requerimientos de consistencia, es decir, si una variable se utilizapero no se declara, o si se usa en un contexto que no tiene sentido por el tipo de variable,tal como un string para utilizar un valor booleano como una función apuntador.

· Generación de código intermedio. El programa se traduce a un lenguaje simpleindependiente de la máquina.

· Ubicación de registros. Los nombres simbólicos de las variables utilizadas en el códigointermedio se traducen a números, cada uno de ellos corresponde a un registro en el códigomáquina objetivo (de la máquina que va a ejecutar finalmente el programa).

· Generación de código máquina. El lenguaje intermedio se traduce al lenguajeensamblador (una representación textual de código máquina) para una arquitectura demáquina específica.

· Ensamblado y Enlazado. El código en lenguaje ensamblador se traduce a unarepresentación binaria y se determina la dirección real de las variables, funciones, etc.

Descubre miles de cursos como éste en www.mailxmail.com 47

mailxmail - Cursos para compartir lo que sabes

Page 48: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Figura. 24. Historia de la compilación de un programa, desde el código fuente hasta elcódigo ejecutable.

Un programa linker (enlazador), combina todos los módulos en el archivo objeto paraformar un archivo ejecutable (figura 24). Un archivo ejecutable sí es un programa completoen sí mismo, es decir, no requiere hacer referencia al código fuente original. Esto significaque correrá más rápidamente, comparado con la ejecución del mismo programa cuando aúnno es ejecutable.

Un intérprete traduce un código fuente en lenguaje máquina también. El intérprete difieredel compilador en que ejecuta cada orden una vez que se traduce. Este proceso puede hacermás lenta la ejecución del programa, así que los intérpretes se utilizan menos que loscompiladores. Un intérprete es otra manera de implementar un lenguaje de programación.La interpretación comparte muchos aspectos con el compilador. Los análisis léxico,sintáctico y verificación de tipos son exactamente los mismos que en un compilador.

Pero en lugar de generar código del árbol sintáctico, el árbol sintáctico se procesadirectamente para evaluar expresiones y ejecutar sentencias, y así hasta terminar. Unintérprete puede necesitar evaluar la misma parte del árbol sintáctico varias veces (porejemplo cuando se hacen ciclos), por eso la interpretación puede ser más lenta que laejecución de un programa compilado. Pero escribir un intérprete es más fácil de mover auna máquina diferente, así que para aplicaciones donde la velocidad no importa, lo mejor esutilizar un intérprete.

Es muy útil sabe cómo se hace un intérprete o un compilador, porque esto permite a losprogramadores tener una idea de lo que hacen los programas de alto nivel, lo que a su vez,ayudará a los programadores para crear código más eficiente. Otras razones. Los erroresque devuelven los compiladores proporcionan una manera fácil de entender el códigofuente; además, se conoce la diferencia entre errores léxicos, sintácticos, errores de tipos, yasí.

Descubre miles de cursos como éste en www.mailxmail.com 48

mailxmail - Cursos para compartir lo que sabes

Page 49: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

25. Depuradores de programas. Errores de código ycomentarios[http://www.mailxmail.com/...ifico-desarrollo/depuradores-programas-errores-codigo-comentarios]

D. Depuradores, errores de código y comentarios

Depurar el código significa quitar los errores. Todos los errores deben ser eliminados antesde que se diga que se ha terminado de hacer un programa.

Los dos tipos principales de errores son sintácticos y lógicos.

· Errores de sintaxis. Los errores de sintaxis, o sintácticos, ocurren cuando elprogramador escribe código que no va de acuerdo a las reglas de escritura del lenguaje deprogramación. Son como los errores gramaticales en el lenguaje común. Hasta que uncódigo fuente no tenga errores de sintaxis, no se puede traducir en código máquina.

· Errores lógicos. Los errores lógicos ocurren a causa de un mal diseño del programa.Puede ocurrir que una línea de código observe todas las reglas sintácticas del lenguaje, peroel código tenga una lógica equivocada.

Los errores lógicos son menos obvios que los errores sintácticos, de modo que losprogramas pueden ser compilados o interpretados sin reportar este tipo de error. Loserrores se descubren usualmente cuando el programa está siendo ejecutado y se estudia lasalida.

Un debugger ejecuta un programa línea por línea para que el programador pueda examinarpaso a paso, la ejecución de su programa, con el fin de encontrar los errores lógicos (figura25).

Figura. 25. Un debugger auxilia al programador para encontrar errores lógicos en el códigofuente.

El código debe ser legible y entendible, para que pueda ser mantenido. Los comentarios sepueden escribir en el código para asegurarse que cumple estos requisitos.

Los comentarios se usan para proporcionar notas explicatorias para el programador acercade lo que hace alguna función en particular, o bien para especificar la utilidad de algunaparte del código, o especificar el tipo y función de las variables utilizadas.

Cada lenguaje de programación codifica los comentarios de un modo en particular, haybásicamente dos clases de comentarios:

Descubre miles de cursos como éste en www.mailxmail.com 49

mailxmail - Cursos para compartir lo que sabes

Page 50: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

· Los comentarios de una sola línea. Esta clase de comentarios requieren una marcaespecial para que el compilador o el intérprete sepa que lo que sigue después de la marca yhasta el final de la línea no debe tomarse en cuenta para efectos de compilación. En ellenguaje FORTRAN, los comentarios de una sola línea empiezan con una letra C, solamentesi se escribe en la primera columna del texto, en otras versiones la marca es un !. En C,podemos escribir un comentario de una sola línea con \\.

· Los comentarios de bloque. Permiten escribir más de una línea en forma de comentario,esto es útil cuando deseamos dar una breve explicación del uso de alguna parte del códigosin tener que comentar cada línea. En C, es posible crear un bloque de código empezandocon la marca \* y terminando el bloque con la marca *\

Descubre miles de cursos como éste en www.mailxmail.com 50

mailxmail - Cursos para compartir lo que sabes

Page 51: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

26. Algoritmo. Instrucciones precisas[http://www.mailxmail.com/...-ordenador-cientifico-desarrollo/algoritmo-instrucciones-precisas]

IV. INTRODUCCIÓN A LOS ALGORITMOS

UN algoritmo es una secuencia finita de pasos bien determinados que sirven pararesolver un problema [6]. Los algoritmos toman datos de entrada, los procesan deacuerdo al conjunto de instrucciones, y generan una salida. Se dice que la palabraalgoritmo proviene del nombre del matemático persa Muhammad ibn Músáal-Khwárizmí (figura 26), quien escribió un tratado llamado Sobre cálculos connumerales hindús.

Figura. 26. Muhammad ibn Músá al-Khwárizmí. 780 D.C. - 850 D.C. aprox.

A. Los algoritmos deben contener instrucciones precisas

En ocasiones se suele mostrar cómo funciona un algoritmo con la idea del procesopara crear un pastel, en términos generales si es correcto, pero en términosespecíficos no lo es porque generalmente, una receta involucra pasos que no sonbien determinados. Una receta para crear un pastel puede considerarse unalgoritmo porque es un conjunto de pasos (aunque no necesariamente son biendeterminados), donde hay algunos elementos de entrada, que son los ingredientes,un procedimiento que es la manera de hacerlo según la receta y un producto desalida, que es el pastel mismo.

El problema define la salida deseada, que a su vez, determina las entradas y lasinstrucciones. Por ejemplo, al decidir qué tipo de pastel queremos, debemosdeterminar qué ingredientes necesitamos y las instrucciones a seguir. Supongamosque decidimos escribir un algoritmo para hervir agua. La entrada es la cantidad deagua a cualquier temperatura por debajo del punto de ebullición y la salida es elagua hirviendo. Un algoritmo debe proporcionar la salida correcta para cualquiercondición de los datos de entrada.

Ejercicio: Ordene los siguientes pasos en orden de prioridad para resolver elproblema de hervir agua.

Descubre miles de cursos como éste en www.mailxmail.com 51

mailxmail - Cursos para compartir lo que sabes

Page 52: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Sin duda, podemos escribir los algoritmos en español. Para producir resultadosconsistentes, el lenguaje que usemos debe estar libre de ambigüedades. Si decimosalgo como: Verificar que la olla tenga suficiente agua, es una frase ambigua, porquepara diferentes personas puede significar cosas diferentes la frase suficiente agua.Es preferible decir algo como: Verificar que la olla tenga al menos un cuarto de sucapacidad de agua, porque se define qué es lo que significa suficiente. En estesiguiente ejemplo debemos incluir un paso para llenar la olla con agua bajocondiciones específicas.

-Verificar que la olla tenga al menos 1 cuarto de su capacidad de agua.-Si la olla tiene menos de 1 cuarto de su capacidad de agua,

Y agregamos las instrucciones para poner la olla en la estufa y para encender laestufa.

-Poner la olla en la hornilla de la estufa-Encender la hornilla de la estufa

Un algoritmo debe tener bien claro un punto final, de modo que cuando la entradasea procesada y la salida deseada se alcance, el proceso termine. Agregaremosentonces la instrucción final para terminar el algoritmo

-Cuando el agua este hirviendo, apagar la estufa.

Descubre miles de cursos como éste en www.mailxmail.com 52

mailxmail - Cursos para compartir lo que sabes

Page 53: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

27. Diseño Top-Down[http://www.mailxmail.com/...curso-informatica-ordenador-cientifico-desarrollo/diseno-top-down]

B. Diseño Top-Down

El diseño Top-Down fue promovido en la década de 1970 por el investigador de IBM HarlanMills y Nickaus Wirth. Mills desarrolló conceptos de programación estructurada parautilizarlos y probarlos en un proyecto de 1969 que tenía como objetivo automatizar algunosprocedimientos del periódico New York Times. El desarrollo de este proyecto hizo que sedispersara y se ampliara la idea de hacer los programas con esta filosofía de trabajo al restode los desarrolladores de IBM, así como al resto de la industria del software. Por su parte,Nicklaus Wirth, desarrolló entre otros lenguajes, el lenguaje de programación Pascal,escribió un artículo muy importante acerca del Desarrollo de programas por medio derefinamiento de pasos. Esta idea de diseñar programas permaneció como principal corrientede desarrollo hasta fines de la década de 1980, cuando fue desplazada por la programaciónorientada a objetos, sin embargo continúa siendo una muy importante ayuda para eldesarrollo de los métodos en los la programación orientada a objetos [7].

Figura. 27. Niclaus Wirth (izq.) y Harlan D. Mills (der.) fueron los primeros promotores deldiseño Top-Down en la década de 1970.

La solución a los problemas computacionales puede llegar a se muy complicada y compleja.Cuando los programas son de miles de líneas, o componerse de diversos archivos decódigo, es imposible mantener todos los detalles del programa en mente cuando sedesarrolla un algoritmo.

El diseño top-down es una herramienta que presenta en primer lugar una solución a unproblema general utilizando tres o cuatro pasos solamente. Cada uno de esos pasos en laprimera solución se dividen en otros subpasos. Este proceso se repite varias veces, en cadaiteración se produce una solución más detallada al problema original. Cuando los pasos yano se pueden subdividir, el algoritmo ha terminado. El diseño top-down también se conocecomo descomposición funcional o refinamiento de pasos.

Ejercicio: De la siguiente lista de actividades, ¿cuál crees que está orientada al diseñoTop-down?1) Empezar con los detalles2) Empezar con el problema en general3) Considerar el problema general y los detalles al mismo tiempo

El diseño top-down automáticamente produce módulos en un algoritmo. Recordemos quelos módulos son grupos de instrucciones que desarrollan funciones específicas.Supongamos que queremos escribir un algoritmo que imprima facturas, en primer lugarvamos a identificar esa tarea en la primera iteración den diseño top-down. El paso calcularel monto total de la factura lo podemos redefinir como.

Descubre miles de cursos como éste en www.mailxmail.com 53

mailxmail - Cursos para compartir lo que sabes

Page 54: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Lo que nos ayuda a definir los módulos de nuestro algoritmo en:

Módulo 1. Obtener detalles del clienteMódulo 2. Obtener detalles de todas las ´ordenes de ese clienteMódulo 3. Calcular el monto total de las facturas del clienteMódulo 4. Agregar el 5% de interés a las facturas de hace 1 mesMódulo 5. Agregar el 10% de interés a las facturas anteriores a 1 mesMódulo 6. Sumar el monto de las facturas con el total de los interesesMódulo 7. Imprimir el monto total

Cada módulo debe ser tratado en la misma manera que el problema general, el diseñotop-down, hace que el problema general se convierta en problemas más específicos y engeneral más fáciles de resolver.

Descubre miles de cursos como éste en www.mailxmail.com 54

mailxmail - Cursos para compartir lo que sabes

Page 55: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

28. Algoritmo. Pseudocódigo[http://www.mailxmail.com/...nformatica-ordenador-cientifico-desarrollo/algoritmo-pseudocodigo]

C. Pseudocódigo

Ejercicio: El pseudocódigo es útil cuando queremos escribir algoritmos de una maneradefinida y consistente. ¿Cuál de las siguientes aseveraciones crees que es verdadera para lospseudocódigos?

1) Pueden correr como un programa por sí mismos2) Se deben sujetar a estándares predefinidos3) No existe un estándar absoluto para los pseudocódigos

En realidad no existe un estándar para los pseudocódigos, pero podemos seguir lassiguientes recomendaciones.

· Utilizar español simple.· Escribir cada instrucción en una línea separada.· Utilizar identación donde sea apropiado.· Proporcionar solamente un punto de entrada y un punto de salida para un algoritmo.· Agrupar las instrucciones en módulos.

Podemos hacer que nuestros pseudocódigos sean claros y concisos utilizando palabrascomunes en español. La sentencia Encontrar la diferencia entre los números A y B, se puedeexpresar de manera más clara como Diferencia:= A - B.

Cuando tengamos múltiples instrucciones en una sola línea, ocasiona que nuestro algoritmosea más difícil de seguir.

Pero si escribimos una sentencia en cada línea, el código va a ser más legible.

Si la secuencia que llevan las instrucciones se desarrolla dentro de una estructura de controlcomo el estatuto SI-ENTONCES, debemos identarlo para tener mayor claridad.

Cuando la ejecución de la secuencia de instrucciones dentro del bloque de la estructura decontrol termina, la identación también termina, y vuelve a tener el nivel anterior.

En algunas ocasiones, un bloque de instrucciones se debe ejecutar varias veces endiferentes puntos en el algoritmo, en este caso, las instrucciones se deben agrupar en unmódulo con su propio nombre.

Si deseamos reutilizar el código que hemos escrito, para poder ejecutar las instrucciones

Descubre miles de cursos como éste en www.mailxmail.com 55

mailxmail - Cursos para compartir lo que sabes

Page 56: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

que están en ese segmento de código tantas veces como sea necesario, debemos poneresas instrucciones en un módulo por separado y llamarlo cuando se requiera.

El pseudocódigo no es un lenguaje de programación - no puede se ejecutado. Solamente esuna herramienta de diseño de programas que es muy útil para planear nuestro código.

Descubre miles de cursos como éste en www.mailxmail.com 56

mailxmail - Cursos para compartir lo que sabes

Page 57: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

29. Algoritmo. Trabajando con las entradas[http://www.mailxmail.com/...ica-ordenador-cientifico-desarrollo/algoritmo-trabajando-entradas]

D. Trabajando con las entradas

Para hacer las operaciones básicas en la computadora, es necesario conocer algunasconvenciones específicas del lenguaje para codificar programas.

Ejercicio: Las computadoras pueden recibir los datos de entrada de diferentesfuentes tales como un archivo o un módem. ¿Cuáles de las siguientes sentenciaspiensas que se deberían utilizar para codificar la entrada de datos?1 ) obtener2 ) enviar3 ) leer4 ) formatear

Las palabras obtener y leer son sentencias que indican la entrada de datos.

Podemos utilizar la sentencia obtener para adquirir un dato mediante el teclado,mientras que leer lo preferimos utilizar para leer datos de cualquier otra fuente,como un archivo almacenado en el disco duro.

De manera similar, las computadoras pueden devolver la información y desplegarlaen el monitor, o escribirla en un archivo o hacia cualquier otro dispositivo de salidade datos.

Para indicar que un dato se debe desplegar en la pantalla del monitor, podemosutilizar sentencias como poner, desplegar o salida, pero preferimos desplegar. Yutilizaremos la sentencia escribir para almacenar datos en un archivo que se va agrabar en el disco duro.

En las sentencias de los pseudocódigos, un sustantivo se utiliza para establecer undato de entrada o de salida.

Para asignar valores, podemos utilizar palabras como inicializar, guardar oalmacenar, pero vamos a utilizar SEA

Por ejemplo, el comando SEA total EN 10, que nos indica que debemos considerarque el identificador total debe tener el valor inicial de 10.

Podemos utilizar una variable para almacenar un dato de entrada. Para hacer esto,usualmente utilizamos una orden como obtener total, que asignará el valor que elusuario teclee en su teclado y lo debe asignar a la variable total.

Una vez procesado el dato, podemos conocer el resultado en la salida delpseudocódigo, con una orden como imprimir total, que mostrará el valor de salidaque ha sido almacenado en la variable total , y lo mandará a la impresora, al monitoro hacia algún dispositivo de salida para su impresión.

Una convención muy útil es encerrar texto entre comillas simples, lo que nos

Descubre miles de cursos como éste en www.mailxmail.com 57

mailxmail - Cursos para compartir lo que sabes

Page 58: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

indicará que la secuencia de símbolos que están entre comillas simples, se debeconsiderar como una palabra y no como una variable o palabra reservada. Porejemplo, con el código imprimir ´total´ debemos entender que la impresora debe imprimir la palabra total, y no algún valor asignado a alguna variable total.

Las operaciones aritméticas son muy importantes en las operaciones de lacomputadora. En pseudocódigo, podemos utilizar los símbolos convencionales paradescribir las operaciones aritméticas.

Descubre miles de cursos como éste en www.mailxmail.com 58

mailxmail - Cursos para compartir lo que sabes

Page 59: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

30. Igualdad y asignación de algoritmo[http://www.mailxmail.com/...ica-ordenador-cientifico-desarrollo/igualdad-asignacion-algoritmo]

1) Igualdad y asignación: Haremos una mención especial al símbolo =, porque enmuchos lenguajes de programación es importante hacer diferencia entre elsignificado del símbolo.

Empezaremos por poner un ejemplo para ver el problema que encierra estesímbolo. Supongamos que en el código del programa tenemos las siguientes líneas.

En la línea 2, el valor asignado a la variable a es 1, de modo que en adelante, sepuede sustituir la ocurrencia de la variable a por la constante 1, a menos que existaotra orden que señale lo contrario.

El problema se presenta de inmediato, porque en la línea 3 hay una pregunta, quesolicita el valor de a, pero como hemos utilizado el símbolo = para asignar valores avariables, en realidad, lo que debemos pensar es que en la línea 3 del pseudocódigo,estamos asignando el nuevo valor 5 a la variable a, lo que ocasionará errores lógicosen la ejecución del programa.

Es por esta razón que utilizaremos diferentes símbolos para describir las diferentessituaciones respecto a la igualdad.

Si se trata de una igualdad de tipo asignación de valores, utilizaremos :=, como envariable := nuevoValor.

Si se trata de una igualdad lógica, en la que se puede obtener un valor que seaverdadero o falso, entonces debemos escribirlo como =, como en variable =valorComparado. Así, el pseudocódigo anterior puede ser reescrito como:

Es importante aclarar que lo expuesto anteriormente acerca del pseudocódigo, son convencionalismos

Descubre miles de cursos como éste en www.mailxmail.com 59

mailxmail - Cursos para compartir lo que sabes

Page 60: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

convencionalismos que no se deben tomar como un estándar ni mucho menos,simplemente es una manera un poco más organizada de plasmar las ideas, con elfin de causar menos confusiones al desarrollar programas de computadora.

Descubre miles de cursos como éste en www.mailxmail.com 60

mailxmail - Cursos para compartir lo que sabes

Page 61: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

31. Algoritmo. Construcción. La orden de GOTO (1/2)[http://www.mailxmail.com/...ordenador-cientifico-desarrollo/algoritmo-construccion-orden-goto]

V. CONSTRUCCIÓN DE UN ALGORITMO

En esta sección aprenderemos a describir la orden GOTO, el teorema de la Estructura, ycómo escribir un algoritmo.

A. La orden GOTO

En el diseño de los lenguajes de programación, la orden GOTO ha sido quizá la que hacausado más discusiones.

Antes de que la programación estructurada fuera desarrollada a finales de la década de1960, los programadores utilizaban la orden GOTO para transferir el control de una partedel programa a otra, en lugar de que el control continúe en la siguiente línea de código.

A pesar de la llegada de la programación estructurada, en lenguajes como Pascal, seconservó la orden GOTO, posiblemente por motivos históricos, o para permitir que losprogramadores "de la vieja guardia" pudieran hacer la transición de su forma de programarde una manera más suave.

Para utilizar la orden GOTO, veamos el siguiente segmento de programa, en pseudocódigo.

Listing 1. Segmento de código utilizando la orden GOTO.

La figura 28 muestra de manera esquemática el flujo del control del programa. Vemos queen la línea 103 ocasiona que el control se transfiera a la línea 107, ocasionando un posibleerror lógico.

Figura. 28. Esquema del flujo de instrucciones utilizando GOTO, basado en el ejemplo dellistado 1

El problema con la orden GOTO, es que puede ocasionar que el programa transfiera elcontrol a direcciones más adelante y más hacia atrás sin ninguna restricción, y comofrecuentemente sucede, la lectura y entendimiento del programa se complica a medida queel código crece. Esta característica del flujo del control se conoce como código espagueti.

Descubre miles de cursos como éste en www.mailxmail.com 61

mailxmail - Cursos para compartir lo que sabes

Page 62: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Descubre miles de cursos como éste en www.mailxmail.com 62

mailxmail - Cursos para compartir lo que sabes

Page 63: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

32. Algoritmo. Construcción. La orden de GOTO (2/2)[http://www.mailxmail.com/...ordenador-cientifico-desarrollo/orden-goto-algoritmo-construccion]

Supongamos que queremos hacer un programa donde el usuario proporcione su edad, y elsistema imprima un cierto mensaje que debe ser leído sólo por las personas mayores de 18años, de modo que si el usuario ingresa su edad y es menor o igual a 18, entonces debeaparecer el mensaje de advertencia y terminar el programa; si el usuario ingresa una edadmayor de 18, entonces el programa imprime otro mensaje y termina el programa.

Utilizando la orden GOTO, podemos solucionar este problema del siguiente modo.

Listing 2. Ejemplo del uso de la orden GOTO para modelar la orden si-entonces.

Ahora, veamos el siguiente código. Se trata del mismo problema, pero desde un punto devista estructurado, sin la orden GOTO.

Figura. 29. Esquema del flujo de instrucciones utilizando GOTO, basado en el ejemplo dellistado 3. Los esquemas (a) y (b) describen el mismo flujo de órdenes, es claro que la forma(b) es más entendible que (a).

Listing 3. Ejemplo de la orden si-entonces-enOtroCaso desde un punto de vistaestructurado.

Descubre miles de cursos como éste en www.mailxmail.com 63

mailxmail - Cursos para compartir lo que sabes

Page 64: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Aunque el código 3 tiene más líneas que el código 2, es más legible y se entiende mejor. Lalógica y el resultado de ambos programas es el mismo (figura 29), pero en el punto de vistaestructurado es más fácil seguir la lógica del programa.

Descubre miles de cursos como éste en www.mailxmail.com 64

mailxmail - Cursos para compartir lo que sabes

Page 65: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

33. Teorema de la estructura. Construcción (1/2)[http://www.mailxmail.com/...a-ordenador-cientifico-desarrollo/teorema-estructura-construccion]

B. Introducción al Teorema de la Estructura

En 1966, los matemáticos Böhm y Jacopini publicaron un artículo donde semencionó lo que ahora conocemos como el Teorema de la Estructura [3].

El Teorema de la Estructura muestra cómo cualquier programa se puede escribirutilizando tres estructuras de control:

· Secuencias. Un programa de computadora ejecuta una lista de instrucciones unasola vez. Las instrucciones se ejecutan en la secuencia en la que aparecen, y elprograma no salta a ningún lado ni se repite ninguna de las instrucciones.

· Selección. La selección implica que es posible elegir entre algunas opciones, quedependen del valor de una condición especificada por el programador.

· Repetición. La repetición ejecuta por varias veces una sección de código mientrasque cierta condición permanece siendo verdadera.

Posteriormente, los mismos autores, mencionan que es posible utilizar solamentedos tipos de estructuras para hacer cualquier otro programa, y es que unacombinación de secuencias y selección, puede crear una repetición.

En muchos lenguajes de programación hay estructuras de selección, en particular laestructura SI-ENTONCES-ENOTROCASO, que corresponde a la estructuraif-then-else en el lenguaje Pascal, o IFELSE en lenguaje de NetLogo, o alguna similaren otros lenguajes.

También, en la mayoría de los lenguajes estructurados, el ámbito de las estructurasde control está restringido por símbolos o palabras clave, por ejemplo el uso dellaves en lenguajes como C ´{´ y ´}´, o palabras reservadas como Begin y END. En ellenguaje de pseudocódigo que estamos utilizando vamos a emplear varios pares depalabras, como ENTONCES-FINENTONCES, ENOTROCASO-FINENOTROCASO oEMPIEZA-TERMINA.

Ejercicio: En este ejemplo, la selección se hace en términos del valor que puedatener la variable edad. De acuerdo al siguiente código, ¿qué mensaje de textopiensas que se debe imprimir si el valor de la variable edad es igual a 18?

Descubre miles de cursos como éste en www.mailxmail.com 65

mailxmail - Cursos para compartir lo que sabes

Page 66: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

1) Se van a imprimir ambos mensajes2) Ninguno de los mensajes3) El primer mensaje4) El segundo mensaje

En una orden de opción con la estructura SI-ENTONCES-ENOTROCASO, cuando lacondición de decisión adquiere un valor falso, se ejecuta la segunda parte de lacondición, es decir, la parte ENOTROCASO.

Descubre miles de cursos como éste en www.mailxmail.com 66

mailxmail - Cursos para compartir lo que sabes

Page 67: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

34. Teorema de la estructura. Construcción (2/2)[http://www.mailxmail.com/...a-ordenador-cientifico-desarrollo/construccion-teorema-estructura]

1) Acerca de la estructura de repetición: Una repetición ejecuta un segmento decódigo por más de una ocasión, si se cumplen las condiciones requeridas. Podemoscrear una orden de repetición utilizando la sentencia Mientras... FINMIENTRAS. Laorden MIENTRAS se utiliza para empezar un bloque que debe ser repetido. El bloquetermina con la marca FINMIENTRAS. Veamos el siguiente ejemplo.

Listing 4. Ejemplo de la orden mientras, se ejecuta un segmento de código mientrasuna condición sea verdadera.

Figura. 30. Diagrama que muestra el flujo del control del programa con unaestructura IENTRAS...FINMIENTRAS.

El listado 4 muestra un ejemplo de una repetición que (entre otras cosas) imprime elnúmero de boleto que se ha vendido, pensando en que el programa puede serutilizado en cualquier clase de taquilla que venda boletos y tenga un tope de 100boletos para vender.

Es importante mencionar que para entrar a un ciclo como el del ejemplo del listado4, es necesario tener el control de cuándo se descumplirá la condición. En esteejemplo, se inicializa una variable tope-vendidos en 100, antes de entrar al ciclo. Siomitimos esta orden, dependiendo del lenguaje de implementación pueden sucederdos cosas:

1 ) El sistema inicializa automáticamente la variable en 0, de modo que el ciclo nuncava a terminar, pues siempre la variable b-vendido será igual o mayor que 0, peronunca menor que 0.

2 ) El sistema trata de interpretar el contenido actual de la memoria alojado en esavariable en ese momento. Esto puede ocasionar resultados inesperados,ocasionando errores lógicos.

También es importante que en alguna parte del segmento que será repetido,

Descubre miles de cursos como éste en www.mailxmail.com 67

mailxmail - Cursos para compartir lo que sabes

Page 68: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

actualicemos alguna variable, de modo que eventualmente la condición evaluada encada ciclo resulte en un valor falso.

En el caso del listado 4, la variable que se actualiza en cada ciclo se encuentra en lalínea 207.

Descubre miles de cursos como éste en www.mailxmail.com 68

mailxmail - Cursos para compartir lo que sabes

Page 69: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

35. Algoritmo. Construcción. Definir un problema[http://www.mailxmail.com/...dor-cientifico-desarrollo/algoritmo-construccion-definir-problema]

C. Cómo definir un problema

Antes de escribir el código de un programa para resolver un problema, debemosentender perfectamente el problema que se pretende resolver. Un problemanormalmente se presenta en forma de requerimientos o de órdenes.

Ejercicio: Marca los tres elementos de un algoritmo

1) [ ] Datos de entrada2) [ ] Preguntas3) [ ] Datos de salida4) [ ] Procesos5) [ ] Requerimientos

Las opciones 1,3 y 4 son correctas. Los algoritmos se componen de entrada dedatos, los cuales se procesan y se obtienen datos de salida. Los requerimientos seutilizan para diseñar el programa, y las preguntas son una manera de puntualizarlos requerimientos, o bien de especificar qué clase de datos de entrada se requieren.

Las órdenes se dan en forma verbal, como calcular, ordenar, encontrar, imprimir.Estas órdenes se utilizan para transformar los datos de entrada en datos de salida.

Para identificar los datos de entrada o de salida, utilizamos sustantivos, adjetivos yadverbios.

Una vez que hemos identificado todos los elementos de un problema, normalmentedescribirnos las entradas y las salidas utilizando una tabla de definiciones o tablaentrada-procesosalida. La tabla tiene tres columnas - Entrada, Proceso y Salida.

Podemos utilizar la tabla de definiciones para escribir un algoritmo - sus procesosson las órdenes en el algoritmo.

Y los elementos de entrada y salida se convierten en los argumentos de las órdenes.

En el listado 4 de la página 22, la línea 204, el verbo es obtener y el objeto es datos-de-cliente.datos-de-cliente.

Ejercicio: Deseamos hacer un programa para calcular la velocidad a la cual debemanejar un piloto de rally para cubrir cierta distancia dada en un tiempo requerido.Identifica los elementos de entrada del problema.

1) [ ] El sustantivo tiempo.2) [ ] El sustantivo velocidad.3) [ ] El sustantivo distancia.4) [ ] El verbo calcular.

Los sustantivos distancia y tiempo son los elementos de entrada del problema, el

Descubre miles de cursos como éste en www.mailxmail.com 69

mailxmail - Cursos para compartir lo que sabes

Page 70: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

sustantivo velocidad es el elemento de salida del problema, y el verbo calcular es elproceso del problema que calcula el valor de la velocidad en base a la distancia y altiempo solicitados.

Para cualquier elemento de entrada en el problema, debe haber una orden como obtenerobtener o leer, por ejemplo en leer distancia.

El elemento final de salida se debe presentar al usuario utilizando una orden queenvíe el dato al dispositivo de salida adecuado, puede ser entonces imprimir, desplegar o escribir, como en imprimir velocidad. 

Descubre miles de cursos como éste en www.mailxmail.com 70

mailxmail - Cursos para compartir lo que sabes

Page 71: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

36. Algoritmo. Construcción. Escribir algoritmos[http://www.mailxmail.com/...-cientifico-desarrollo/algoritmo-construccion-escribir-algoritmos]

D. Cómo escribir algoritmos

Una vez que ya hemos comprendido adecuadamente el problema, podemos escribirel algoritmo. Probablemente necesitaremos reescribir el algoritmo varias veces paramejorarlo. Los algoritmos tienen ciertas características. Cada algoritmo empieza conun nombre que describe la función que realiza. Usualmente empieza con un verbo ytermina con un sustantivo, como se muestra en el ejemplo.

ALGORITMO: calcular impuesto

De cada paso de procesamiento en la tabla de definiciones, resulta una o másinstrucciones de pseudocódigo. Los elementos en las columnas de entradas ysalidas son los argumentos de las instrucciones.

Ejercicio: Supongamos que queremos escribir un programa que convierta unadistancia en kilómetros a una distancia en millas. En cada kilómetro hay 0.625millas. Coloca cada opción en su lugar correcto en la tabla de definiciones.1 ) kilómetros2 ) millas

¡Claro! los kilómetros van en la columna de entrada y las millas van en la columnade salida.

Para transformar los kilómetros en millas necesitamos un proceso. El verbo convertirconvertir en el enunciado del problema indica el proceso que necesitamos. Así quetenemos que calcular el número de millas que es equivalente al número dekilómetros dado. Y necesitamos un proceso que muestre las millas calculadas.

Podemos utilizar nuestra tabla para escribir nuestro algoritmo en pseudocódigo.

Listing 5. ALGORITMO para convertir kilómetros en millas.

Descubre miles de cursos como éste en www.mailxmail.com 71

mailxmail - Cursos para compartir lo que sabes

Page 72: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Listing 5. ALGORITMO para convertir kilómetros en millas.

Cuando se ejecute el programa, lo que el usuario debe ver en pantalla, será algocomo lo siguiente.

Descubre miles de cursos como éste en www.mailxmail.com 72

mailxmail - Cursos para compartir lo que sabes

Page 73: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

37. Variables y constantes (1/2)[http://www.mailxmail.com/...-informatica-ordenador-cientifico-desarrollo/variables-constantes]

VI. VARIABLES, CONSTANTES Y TIPOS DE DATOS

A. Variables y constantes

Ejercicio: Los datos que residen en la memoria de la computadora pueden cambiar opermanecer con el mismo valor durante la ejecución del programa. ¿Cuál de lossiguientes términos se refieren a los datos que se establecen al inicio y permanecensin cambio durante la ejecución de todo el programa?

1 ) Variable2 ) Constante3 ) Operador 4 ) Procedimiento

El término variable describe a los datos que pueden cambiar de valor mientras elprograma está en ejecución, mientras que el término constante describe a los datoscuyo valor se establece al inicio del programa y permanecen sin cambio durantetoda la ejecución.

Aunque las variables pueden cambiar de valor mientras el programa está enejecución, hay algunas ocasiones en que el valor de inicio se establece por losprogramadores para permitir a las variables que se utilicen con un valor conocido.Esto se conoce como inicializar la variable.

B. Cómo nombrar las variables y las constantes

Las variables y las constantes se alojan en alguna dirección particular de la memoria.Aunque el valor de las variables puede modificarse, la dirección de la memoria queocupan, permanece siendo la misma.

Las direcciones de la memoria se pueden identificar con números enteros en basehexadecimal, como AD56 o F0FF. Sin embargo, para que los programadores puedanrecordar más fácilmente la dirección de memoria que aloja el valor deseado, se lespone un nombre.

Ejercicio: Los lenguajes de programación tienen reglas que establecen la manera encómo se deben nombrar las variables y las constantes. ¿Cuál de las siguientes reglascrees que se aplican al nombrar las variables y las constantes?

1 ) Los nombres de las variables y las constantes no deben tener el mismo nombreque alguna palabra reservada en un lenguaje de programación.2 ) Los nombres no deben empezar con un dígito.3 ) Los nombres no deben empezar con una letra. 4 ) No se deben utilizar ciertos caracteres en los nombres de las variables.5 ) Los nombres deben tener una longitud mínima de 8 bytes o caracteres.

Algunos lenguajes de programación no permiten el uso de ciertos caracteres en los

Descubre miles de cursos como éste en www.mailxmail.com 73

mailxmail - Cursos para compartir lo que sabes

Page 74: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

nombres de las variables y las constantes. Es posible que los nombres no empiecencon dígitos y no deben tener el mismo nombre que las palabras reservadas en ellenguaje de programación.

Ciertos lenguajes no permiten el uso de caracteres específicos, como BASIC porejemplo, no permite el uso de * (asterisco), + (signo mas) y () (paréntesis).

Otra restricción común, aunque no es general, es que los nombres de las variables yconstantes no deben empezar con un dígito; así que las variables 2enero o 12mesesposiblemente no sean aceptadas como nombres válidos, pero enero2 y meses12 silo serán.

Descubre miles de cursos como éste en www.mailxmail.com 74

mailxmail - Cursos para compartir lo que sabes

Page 75: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

38. Variables y constantes (2/2)[http://www.mailxmail.com/...-informatica-ordenador-cientifico-desarrollo/constantes-variables]

Las palabras reservadas que se utilizan en los lenguajes de programación no sedeben utilizar como nombres de variables y de constantes. Por ejemplo, FOR es unapalabra reservada en BASIC, y VAR es una palabra reservada en Pascal. Ninguna deestas palabras se debe utilizar como nombres de variables ni de constantes en susrespectivos lenguajes.

Generalmente, el nombre de las variables y de las constantes tiene un límitemáximo para la longitud, dependiendo del lenguaje y de la versión del lenguaje quese esté utilizando.En unas versiones de Pascal, el nombre de las variables no puede exceder los 32caracteres.

Ejercicio: Para entender el propósito de una variable en particular, es importantedarle un nombre apropiado y con significado. ¿Cuáles de las siguientesconvenciones para los nombres crees que son apropiadas?1 ) El nombre o constante debe ser transparente para describir suficientemente bienel dato que representa 2 ) El número de caracteres en cada constante debe de ser 5 o menos3 ) Cada nombre debe ser único dentro de la parte del programa que se utiliza4 ) Cada variable debe de empezar con el prefijo `vari´

El nombre de una variable o constante debe ser lo suficientemente claro paradescribir el dato que representa, y cada nombre debe ser único dentro de la seccióndel programa que se utilice. Una variable que se refiera al tamaño de la población decierta especie, podría llamarse tamPoblacion. Una variable llamada tp0 podríareferirse al mismo dato, pero es más difícil de recordar y de entender, debido a quees menos significativa.

Los nombres que se ocupen para alguna variable o constante, no se pueden repetir,en general, no puede haber un nombre en la misma parte del código que hagareferencia a dos lugares diferentes en la memoria, esto ocasiona lo que enprogramación se conoce como colisión de nombres.

Hay ocasiones en que los nombres de las variables si se pueden repetir, pero estosucede en lugares diferentes del código. Cuando nos referimos a lugares diferenteso el mismo lugar, significa el mismo ámbito de función o procedimiento o método.Veamos el siguiente ejemplo, en donde hay colisión de nombres.

Listing 6. Colisión de nombres 1

Descubre miles de cursos como éste en www.mailxmail.com 75

mailxmail - Cursos para compartir lo que sabes

Page 76: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

En este ejemplo (listado 6) en la línea 7 es evidente que habrá un problema, pues encada ocasión que se ejecute esta línea, el límite superior del ciclo se va a modificar yse generará un error de tipo lógico. Para corregir el error, seguramente elprogramador deberá modificar alguna de las y´s de la línea 8.

Listing 7. Colisión de nombres 2

Descubre miles de cursos como éste en www.mailxmail.com 76

mailxmail - Cursos para compartir lo que sabes

Page 77: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

39. Datos. Tipos de datos (1/2)[http://www.mailxmail.com/...rso-informatica-ordenador-cientifico-desarrollo/datos-tipos-datos]

C. Tipos de datos

Hay solamente cuatro diferentes tipos de datos que consideramos más simples oprimitivos. Otros tipos de datos son tipos que representan datos más complejos.Los tipos tienen que ver con la clase de dato, una variable puede alojar y determinarqué clase de operaciones se pueden desarrollar con el dato alojado en ella. En estetexto, vamos a nombrar los tipos de datos en negritas. Los tipos de datosfundamentales son:

· Caracter. Frecuentemente se les conoce como Char, porque generalmente loslenguajes de programación están en inglés. Este tipo de dato representa a loscaracteres simples, como 'm'. Un tipo de dato complejo que se deriva del tipocaracter, es aquel que reúne más de un caracter y forma palabras o frases, se llamatipo cadena o string. Ejemplo: la variable nombreEmploado de tipo string puedealojar el dato ´Juancho Perineo´.

· Entero. Los enteros están entre los tipos de datos más utilizados en los lenguajesde programación. Hay diferentes clases de números enteros y difieren por el tamañode ellos, incluyendo enteros cortos y enteros largos. Por ejemplo, en Java, losenteros cortos se alojan en 8 bits, mientras que los enteros de tipo largo, ocupanhasta 64 bits de longitud. Los números enteros son positivos y negativos, porejemplo -2 y 11390. Notemos que no tienen punto decimal.

· Real. Los números reales son números con parte decimal, por ejemplo -2.0,11390.0 y 12.45. Sin embrago, hay lenguajes de programación como NetLogo, queno hacen diferencia entre números enteros y reales cuando son exactos, como elcaso de 1 y 1.0.

· Booleano. Los valores booleanos son valores lógicos y pueden ser falso o verdaderoverdadero. En estos valores se indica el verdadero con el número 1 y el falso con el0. Algunos lenguajes de programación, como C, prefieren poner un 0 cuando esfalso y cualquier otra cosa cuando es verdadero. En el lenguaje de programaciónScheme, los valores lógicos son #\t y #\f y no tienen significado numérico.

El nombre que utilizan los lenguajes de programación puede ser diferente, aúncuando se trate del mismo conjunto de datos, por ejemplo, los números reales, enPascal se llaman real y en C de llaman float.

Ejercicio: En general, las variables que se utilizan en una pieza de código se debendeclarar al inicio de ese código, antes de que se utilicen en las expresiones. ¿Cuál delas siguientes informaciones crees que se debe proporcionar en las sentencias dedeclaración de variables?1 ) Su ámbito2 ) Su nombre3 ) Su tipo4 ) El número de veces que se debe utilizar5 ) El espacio en memoria que van a ocupar

Descubre miles de cursos como éste en www.mailxmail.com 77

mailxmail - Cursos para compartir lo que sabes

Page 78: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

Cuando se establecen las variables y las constantes, se debe proporcionar el nombrey el tipo de datos que van a contener. Cada lenguaje de programación utiliza unasintaxis diferente para estas declaraciones. Por ejemplo, en Pascal, se utiliza lapalabra reservada VAR para empezar el bloque de declaraciones de variables. Pascalutiliza el código

Para mostrar que la variable numeroEmpleado es de tipo Enteros. Y utiliza el código

Para indicar que la variable salarioEmpleado es de tipo Reales.

La palabra reservada VAR (que puede estar en mayúsculas o minúsculas), es unamarca que indica el inicio del bloque de declaración de variables, y no se requiereanteponer a la declaración de cada variable. En el siguiente ejemplo, las variablesnumPersonas y temperatura se declararon al inicio del programa.

Listing 8. Nombre del Programa

Descubre miles de cursos como éste en www.mailxmail.com 78

mailxmail - Cursos para compartir lo que sabes

Page 79: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

40. Datos. Tipos de datos (2/2)[http://www.mailxmail.com/...curso-informatica-ordenador-cientifico-desarrollo/datos-tipos]

En el lenguaje C, para declarar el tipo de una variable, se debe mencionar primero eltipo y después el identificador de la variable, como en int numPersonas;

Para acceder a los datos alojados en las variables, se puede hacer de 2 modosdiferentes en general: · Por su nombre. · Por su dirección

Al declarar variables, el compilador obtiene toda la información que necesita paratener siempre presente cuáles y de qué tipo son las variables que existen. En algunoslenguajes de programación como Fortran, se creaba una tabla de símbolos [8]. Porejemplo, cuando se declaraba INT I, J, K, se creaba una tabla como la siguiente:

De modo que el compilador tenía toda la información necesaria. Los compiladoresactuales ofrecen muchas otras capacidades, como declarar variables en tiempo deejecución.

Ejercicio: ¿Qué tipo de dato se utiliza para almacenar letras individuales?1 ) Entero2 ) Caracter3 ) Real4 ) Cadena5 ) Booleano

En un lenguaje de pseudocódigo, podemos decir que el tipo adecuado para almacenarletras individuales es el tipo Caracter, con lo que podemos almacenar letras como ´a´y ´Z´. La opción Entero es incorrecto, a pesar de que los caracteres tienen asociadoun número entero que los identifica, porque la cantidad de números enterosdedicados a los caracteres es menor que la cantidad de números enteros.

El tipo Real, también es incorrecto, pues el formato y el espacio dedicado paraalmacenar tales números es diferente en los de tipo Caracter. El tipo Booleanoalmacena falso y verdadero, así que también es una respuesta incorrecta. El tipoCadena, es un tipo de dato compuesto, que se crea a partir de muchos elementos detipo Caracter.

1) Convenciones en el lenguaje de pseudocódigo: En el lenguaje de pseudocódigoque estamos utilizando, adoptaremos una propuesta similar a la del lenguaje Pascalpara nombrar las variables y las constantes.

Utilizaremos las palabras especiales VARIABLES y CONSTANTES al inicio, paraestablecer el tipo y valor de las variables y constantes. Por ejemplo, el listado 7 se

Descubre miles de cursos como éste en www.mailxmail.com 79

mailxmail - Cursos para compartir lo que sabes

Page 80: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

debe reescribir como:

Listing 9. Colisión de nombres 2, con variables y constantes.

Descubre miles de cursos como éste en www.mailxmail.com 80

mailxmail - Cursos para compartir lo que sabes

Page 81: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

41. Expresiones y órdenes[http://www.mailxmail.com/...o-informatica-ordenador-cientifico-desarrollo/expresiones-ordenes]

VII. EXPRESIONES Y ÓRDENES

En esta sección estudiaremos y aprenderemos a describir las expresiones y órdenes en laprogramación, de modo que no exista confusión entre los operandos y operadores ni en lajerarquía de las operaciones.

A. Principios básicos

Un operador es un símbolo que representa una acción específica que se debe realizar en losdatos.

Ejercicio: Los operadores trabajan con los operandos. ¿Cuál crees que es la mejor definiciónde operando?

1 ) Es cualquier cosa que no es un operador.2 ) Es el valor que resulta después de que se ha desarrollado una acción.3 ) Son los valores con los que se efectúa una acción específica.4 ) Es la dirección de memoria en donde se alojan los datos para que el operador funcione.

Los valores con los que se efectúa una acción específica se conocen como operandos. Porejemplo, en la expresión 3 + 5, los operandos son 3 y 5, mientras que el operador es elsímbolo +.

Cada operador se representa con un símbolo en particular, aunque el símbolo puede serdiferente en diferentes lenguajes de programación. Por ejemplo, el símbolo utilizado para laoperación elevar a alguna potencia, en unos lenguajes se utiliza el ^ y en otros se utiliza **.

Los operadores aritméticos más frecuentes y que utilizaremos (ya hemos utilizado algunos)en nuestros algoritmos en pseudocódigo son:

AGRADECIMIENTOS

El autor quiere agradecer a la Universidad Juárez Autónoma de Tabasco por las facilidadesotorgadas en el uso de los recursos de infraestructura.

REFERENCIAS [1] SkillSoft-Learning-Object, Getting Started with Programming. ACM Course on line,http://acm.skillport.com/, Revisado en 2007.[2] John Kopplin, "An ilustrated history of computers." Recurso webhttp://www.computersciencelab.com/ComputerHistory/ History.htm, visitado el 15 deagosto de 2007. Creado en 2002.[3] C. Bohm and G. Jacopini, "Flow Diagrams, Turing Machines and Languages with only twoformation rules," communications of the ACM, vol. 9, pp. 366 - 371, May 1966.[4] P. D. Terry, Compilers and Compiler Generators: An introduction with C++. InternationalThompson (out of printer. Postcript edition at http://www.scifac.ru.ac.za/compilers), 1996.[5] T. AE. Mogensen, Basics of Compiler Design. DIKU University of Copenhagen, 2007 (First

Descubre miles de cursos como éste en www.mailxmail.com 81

mailxmail - Cursos para compartir lo que sabes

Page 82: Informática. Desarrollo científico del ordenador€¦ ·  · 2013-01-31Presentación del curso Ordenador, ciencia e informática son las claves de este curso. Conoce el desarrollo

publishing 2000).[6] Wikipedia, "Algorithm - wikipedia, the free encyclopedia," 2007. [Online; accessed13-September-2007].[7] Wikipedia, "Top-down and bottom-up design - wikipedia, the free encyclopedia," 2007.[Online; accessed 14-September-2007].[8] B. J. MacLennan, Principles of Programming Languages: Design, Evaluation,and Implementation. Oxford University Press, 1999.

NOTA: Con este capítulo hemos llegado al final del curso.

Visita más cursos como este en mailxmail:[http://www.mailxmail.com/cursos-informatica][http://www.mailxmail.com/cursos-hardware]

¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:[http://www.mailxmail.com/curso-informatica-ordenador-cientifico-desarrollo/opiniones]

Cursos similares

Cursos Valoración Alumnos Vídeo

Información y comunicación tecnológica enCubaCon las Tecnologías de Información y Comunicaciones (TIC), elperfeccionamiento de la Enseñanza Técnica y Profesional y la vinculaci... [25 /06/09]

209  

Guía Rápida SPSS para WindowsGuía para aprender el uso de herrmientas básicas del paquete estadístico SPSSpara Windows... [05 /05/05]

5.945  

Física. Estructura de un 'universo'imaginario (2/3)El movimiento ondulatorio puede ayudar a deducir las las medidas exactas de laslongitudes, distancias, velocidades, períodos de revolución, etc. ... [13 /08/09]

7 6  

Diseño y creación de bases de datosCon este curso de diseño y creación de bases de datos podrás desarrollarhabilidades en el diseño y creación de bases de datos, manej... [08 /02/10]

1.810  

Coleccionismo de minerales (quinta parte)Coleccionismo de minerales: cristales y piedras preciosas o gemas. En este cursocontinuaremos con el estudio de las gemas o piedras preciosas en particular.Ahora veremo... [12 /11/08]

276  

Descubre miles de cursos como éste en www.mailxmail.com 82

mailxmail - Cursos para compartir lo que sabes