programacion y metodos numericos resumen unidad 1 y 2
Post on 12-Apr-2017
19 Views
Preview:
TRANSCRIPT
TECNOLOGICO NACIONAL DE MEXICO INSTITUTO TECNOLOGICO DE ACAPULCO
PROGRAMACION Y METODOS NUMERICOS
RESUMEN UNIDAD 1 Y 2
Introducción a la programación
Programación estructurada
Ing. David Jesús Hernández Rodríguez
Marzo 2017.
INTRODUCCION
Actualmente, la programación es inminente y necesaria en cualquier ámbito y especialidad
profesional. Pues de ello depende realizar rutinas específicas y personalizadas en el desarrollo de
investigaciones, proyectos o eventos, para el cálculo o determinación de tareas y problemas.
El proceso en la carrera de Ing. Bioquímica, es que por medio de un programa elaborado
personalmente en un Lenguaje de Programación, se desarrollen rutinas e instrucciones, a través de los
comandos básicos culminados en aplicaciones más complejas, mediante el desarrollo de funciones que
faciliten la solución de problemas.
Ante el desarrollo de aplicaciones, es necesario conocer el funcionamiento de un equipo de
cómputo, ya que de ello depende que sepamos los recursos con que contamos, como trabajan y
podamos elaborar nuestras sentencias con el mayor entendimiento posible y sin ningún problema.
Este resumen, trata de introducir al entendimiento del Ordenador, llamado de esta forma a un
equipo de cómputo, explicando cada una de sus partes y funcionamiento, que la integran y hacen
posible la solución de cualquier problema.
HISTORIA
La primera máquina de calcular mecánica, un precursor del ordenador digital, fue inventada en
1642 por el matemático francés Blaise Pascal. Aquel dispositivo utilizaba una serie de ruedas de diez
dientes en las que cada uno de los dientes representaba un dígito del 0 al 9. Las ruedas estaban
conectadas de tal manera que podían sumarse números haciéndolas avanzar el número de dientes
correcto. En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta
máquina e inventó una que también podía multiplicar.
El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas
placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la
década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetas
perforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la
información estadística destinada al censo de población de 1890 de Estados Unidos mediante la
utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos.
La máquina analítica
También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los
principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina
diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores
consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del
poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La
tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de
sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno.
Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para
guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer
permanente el registro.
Primeros ordenadores
Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros
modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se
evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser
resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas
informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de los
torpedos en los submarinos y para el manejo a distancia de las bombas en la aviación.
Ordenadores electrónicos
Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que
trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador
digital totalmente electrónico: el Colossus. Hacia diciembre de 1943 el Colossus, que incorporaba
1.500 válvulas o tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing
para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este
proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica en
el Iowa State College (EEUU). Este prototipo y las investigaciones posteriores se realizaron en el
anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e integrador numérico
digital electrónico (ENIAC) en 1945. El ENIAC, que según mostró la evidencia se basaba en gran
medida en el „ordenador‟ Atanasoff-Berry (ABC, acrónimo de Electronic Numerical Integrator and
Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde.
El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de
multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado
manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba
basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones
se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de
velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemas sin necesidad
de volver a conectarse al ordenador.
A finales de la década de 1950 el uso del transistor en los ordenadores marcó el advenimiento
de elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con válvulas.
Como los transistores utilizan mucha menos energía y tienen una vida útil más prolongada, a su
desarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron llamadas ordenadores o
computadoras de segunda generación. Los componentes se hicieron más pequeños, así como los
espacios entre ellos, por lo que la fabricación del sistema resultaba más barata.
Circuitos integrados
A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación
de varios transistores en un único sustrato de silicio en el que los cables de interconexión iban soldados.
El circuito integrado permitió una posterior reducción del precio, el tamaño y los porcentajes de error.
El microprocesador se convirtió en una realidad a mediados de la década de 1970, con la introducción
del circuito de integración a gran escala (LSI, acrónimo de Large Scale Integrated) y, más tarde, con el
circuito de integración a mayor escala (VLSI, acrónimo de Very Large Scale Integrated), con varios
miles de transistores interconectados soldados sobre un único sustrato de silicio.
¿QUÉ ES UNA COMPUTADORA?
Una computadora es un sistema digital con tecnología microelectrónica capaz de procesar datos
a partir de un grupo de instrucciones denominado programa. La estructura básica de una computadora
incluye microprocesador (CPU), memoria y dispositivos de entrada/salida (E/S), junto a los buses que
permiten la comunicación entre ellos. La característica principal que la distingue de otros dispositivos
similares, como una calculadora no programable, es que puede realizar tareas muy diversas cargando
distintos programas en la memoria para que los ejecute el procesador.
Tipos de computadora
Se clasifican de acuerdo al principio de operación de Analógicas y Digitales.
Computadora Analógica:
1.- Aprovechando el hecho de que diferentes fenómenos físicos se describen por relaciones
matemáticas similares (v.g. Exponenciales, Logarítmicas, etc.) pueden entregar la solución muy
rápidamente. Pero tienen el inconveniente que al cambiar el problema a resolver, hay que re alambrar la
circuitería (cambiar el Hardware).
Computadora Digital:
1.- Están basadas en dispositivos biestables, que sólo pueden tomar uno de dos valores posibles:
„1‟ ó „0‟. Tienen como ventaja, el poder ejecutar diferentes programas para diferentes problemas, sin
tener que la necesidad de modificar físicamente la máquina.
COMPONENTES FISICOS (HARDWARE)
Se le conoce a todo lo que forma físicamente a un computador,
todo lo que podemos tocar e inclusive conectar de forma externa.
En un sistema informático u ordenador se introducen datos,
ahora bien para que este puede entenderlos los datos deben ser
traducidos al lenguaje eléctrico, ya que es el único que el ordenador
conoce. No debemos olvidar que el ordenador es una máquina eléctrica, actúa de una forma o de otra
en función de si hay o no hay corriente en determinados sitios.
La arquitectura de Von Neumann describe una computadora con cuatro (4) secciones
principales: la unidad aritmético lógica, la unidad de control, la memoria primaria, principal o central, y
los dispositivos de entrada y salida (E/S). Estas partes están interconectadas por canales de conductores
denominados buses.
Unidad central de procesamiento
El microprocesador del ordenador está formado por millones de
interruptores que son accionados eléctricamente cuando les llega corriente eléctrica
y están sin accionar cuando no les llega corriente. Estos interruptores están todos
integrados en un microchip.
Los dos estados posibles de estos interruptores integrados en el micro para nosotros serán “0”
y “1”, que corresponden a los estados de un interruptor “abierto” y “cerrado”.
Cada uno de estos dígitos o estados se denomina bit: unida más pequeña de representación de
información en un ordenador, que se corresponde con un dígito binario, un 0 o un 1.
Es decir la información más pequeña que podemos representar en un ordenador es un 0 o un
1, es decir un bit.
Si tenemos 8 interruptores y accionamos el primero, el cuarto y el octavo (fíjate en el código del
a letra A anterior), le estamos diciendo al ordenador que saque en pantalla la letra A. Esto pasa cuando
apretamos la letra A en el teclado del ordenador. ¡Ya nos hemos comunicado con nuestro ordenador!
Almacenamiento y Velocidad
Un byte ya sabemos que es un carácter o un número. 1Kb (kilobyte) son 1024 caracteres o
números. Ojo no son 1.000, son 1.024.
Un documento que ocupa 1Kb estará formado por 1024 números, letras, símbolos o espacios
en blanco
El Byte es la unidad de almacenamiento o capacidad utilizada en informática. Cuantos más
bytes podamos meter en un almacén mayor capacidad tendrá ese almacén.
El byte es una unidad muy pequeña, por eso se utilizan sus múltiplos como el Kb, Mb
(megabyte), Gb (gigabyte), etc.
La velocidad de un ordenador depende de varios factores. El más importante es la frecuencia
y después el número de bits interno. También es importante la capacidad de la memoria RAM.
Cada microprocesador puede trabajar simultáneamente con un número determinado de bits a
la vez, es decir, un dato importante que debemos conocer es el número de bits internos del
microprocesador
Cuanto mayor sea el número de bits internos del micro con los que pueda trabajar a la vez,
menos tardará en procesar los datos.
El ciclo de la máquina o frecuencia es la serie de operaciones requerida para procesar una
instrucción. Dentro de los ordenadores hay un reloj que va marcando el ritmo de trabajo. Es el número
que acompaña al microprocesador en la propaganda e indica la velocidad en Megahertzios (millón de
instrucciones por segundo) Cuanta más alta es la frecuencia, mayor es la velocidad del ordenador.
Un ordenador que tiene un ciclo o frecuencia de 2Mhz significa que es capaz de realizar 2
millones de instrucciones en cada segundo.
La unidad central de procesamiento (CPU, por sus siglas del inglés: Central Processing Unit)
consta de manera básica de los siguientes tres elementos:
La unidad aritmético lógica (ALU, por sus siglas del inglés: Arithmetic-Logic Unit) es
el dispositivo diseñado y construido para llevar a cabo las operaciones elementales como las
operaciones aritméticas (suma, resta, ...), operaciones lógicas (Y, O, NO), y operaciones de
comparación o relacionales. En esta unidad es en donde se hace todo el trabajo computacional.
La unidad de control (UC) sigue la dirección de las posiciones en memoria que
contienen la instrucción que el computador va a realizar en ese momento; recupera la información
poniéndola en la ALU para la operación que debe desarrollar. Transfiere luego el resultado a
ubicaciones apropiadas en la memoria. Una vez que ocurre lo anterior, la unidad de control va a la
siguiente instrucción (normalmente situada en la siguiente posición, a menos que la instrucción sea una
instrucción de salto, informando al ordenador de que la próxima instrucción estará ubicada en otra
posición de la memoria).
Los registros: de datos, de memoria, registros constantes, de coma flotante, de propósito
general, de propósito específico.
Los procesadores pueden constar de además de las anteriormente citadas, de otras unidades
adicionales como la unidad de coma flotante.
Memoria ROM
Su nombre viene del inglés Read Only Memory que significa Memoria de Solo Lectura ya que
la información que contiene puede ser leída pero no modificada.
En ella se encuentra toda la información que el sistema necesita para poder funcionar
correctamente ya que los fabricantes guardan allí las instrucciones de arranque y el funcionamiento
coordinado del ordenador.
Al encender nuestro ordenador automáticamente comienza a funcionar la memoria ROM. Por
supuesto, aunque se apague, esta memoria no se borra. Esta configuración se guarda y se mantiene sin
borrar cuando se apaga la PC gracias a una pila que hay en la placa principal. No se usa, actualmente se
usa la Bios.
LA BIOS (Basic Input Operative System)
Es una memoria ROM, pero con la facultad de configurarse según las características
particulares de cada máquina (hay datos que se pueden modificar no todos). Es un programa instalado
en un chip de la placa base, que se encarga del arranque y la configuración del ordenador. Sustituye a la
ROM.
Memoria RAM
La memoria principal (MP), conocida como memoria de acceso aleatorio (RAM, por sus siglas
del inglés: Random-Access Memory), es donde el ordenador guarda los datos de los programas que se
están ejecutando en ese momento y de donde coge las órdenes el micro.
A la hora de elegir una RAM tendremos en cuenta dos datos, la capacidad de almacenamiento
(32Mb, 64Mb, 128Mb, 256Mb, 512MB, 1GB, 3GB…) y también la velocidad de transferencia de datos
entre la RAM y el micro (en MHz millones de veces que manda un bloque de información (ancho de
banda del bus de la placa por segundo).
El almacenamiento es considerado temporal por que los datos y programas permanecen en
ella mientras que el ordenador este encendido, es una secuencia de celdas de almacenamiento
numeradas, donde cada una es un bit o unidad de información. La instrucción es la información
necesaria para realizar lo que se desea con el computador. Las «celdas» contienen datos que se
necesitan para llevar a cabo las instrucciones, con el computador. Al apagarse los datos que hay en ella
se pierden.
La RAM se puede ampliar con módulos de memoria (solo si escasea, ya que sino no servirá
para nada), pero si ponemos dos RAM con diferentes velocidades de transmisión las 2 trabajarán a la
velocidad de la más baja.
Periféricos de entrada
Es un dispositivo utilizado para proporcionar datos y señales de control a la unidad central de
procesamiento de una computadora.
A pesar de que el término “periférico” implica a menudo el concepto de “adicional pero no
esencial”, muchos periféricos son elementos fundamentales para un sistema informático. Sin embargo,
al ser las fuentes primordiales de entrada, se pueden considerar como extensiones del sistema.
Un dispositivo de entrada es cualquier dispositivo del equipamiento del hardware de
computadora, utilizado para proporcionar datos y señales de control a un sistema de procesamiento de
información. Los periféricos de entrada y salida componen la interfaz del hardware.
Ejemplos:
Ratón o mouse
Lápiz óptico
Touchpad
Trackball
Palanca de mando o joystick
Controlador de videojuego
Gamepad
Paddle (para videojuego)
Volante (videojuegos)
Wii Remote
Micrófono
MIDI (Musical Instrument Digital Interface, interfaz digital de instrumentos musicales)
Cámaras digitales
Escáner 3D
Lector de código de barras
Sensor de huella digital
Telémetro o telémetro láser
Webcam
Imágenes médicas:
Ecógrafo
Mamógrafo
Resonador magnético
Tomógrafo o tomógrafo por emisión de positrones
Periféricos de salida
Los periféricos de salida reciben la información procesada por la CPU y la reproducen, de modo
que sea perceptible por el usuario.
Visuales
Monitor de computadora
Impresora
Led
Visualizador
Proyector de vídeo
Auditivos
Altavoz
Auriculares
Tarjeta de sonido
Táctiles
Impresora braille
Impresora 3D
Impresora de impacto
o Impresora matricial
o Impresora de margarita
o Impresora de línea
Impresora de sublimación
Impresora de inyección
Impresora térmica
Impresora láser
Periféricos de Entrada/Salida (Mixtos)
Un periférico de E/S es el que se utiliza para ingresar (E) datos a la computadora, y luego de ser
procesados por la unidad central de procesamiento (CPU), genera la salida (S) de información.
Su función es leer o grabar, permanente o virtualmente, todo aquello que se haga con la
computadora, para que pueda ser utilizado por los usuarios u otros sistemas.
Ejemplos:
Pantalla táctil
Multitáctil
Casco virtual
Impresora multifunción
Las lectograbadoras de discos ópticos
„lectoras‟ de tarjetas de memoria
Discos duros portátiles o externos
Memorias USB o memorias flash
Módem, tarjeta de red
Concentrador
Conmutador (dispositivo de red)
Enrutador
Comunicación inalámbrica
Bluetooth.
Todos los dispositivos externos, tanto que se conocen como entrada, salida y Mixtos, se
comunican con un ordenador conectándose a través de PUERTOS.
Los Puertos
Un puerto es por donde se recibe o envía información al ordenador desde el exterior. Por
ejemplo el ratón es un periférico, no pertenece propiamente al ordenador, por eso la información que se
envía desde el ratón al ordenador debe pasar por un puerto (conexión), que será el puerto donde se
conecta el ratón con el ordenador.
El puerto más usado actualmente para conectar casi todos los periféricos es el puerto USB. De
todas formas vamos a ver los tipos de puertos que nos podemos encontrar en un ordenador mediante la
siguiente imagen:
APLICACIONES (SOFTWARE)
Se le conoce al conjunto de programas, instrucciones, datos e información,
que controlan la operación de un sistema computacional. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos
los recursos que el computador tiene, de manera que pueda resolver
gran cantidad de problemas. El software le da vida al computador.
¿QUÉ ES UN PROGRAMA? Un programa es una serie de órdenes o instrucciones que están basadas en un lenguaje de
programación que pueden ser interpretados por un ordenador para la realización de alguna función o la
resolución de algún problema.
Tipos de SOFTWARE.
El SOFTWARE, se puede clasificar de múltiples maneras de las cuales depende su aplicación,
entre la clasificación general podemos mencionar los siguientes.
Software de sistemas
Sirve para controlar e interactuar con el sistema operativo, proporcionando control sobre
el hardware administrando los recursos y dando soporte a otros programas; Ejemplos: Unidad central
de proceso, dispositivos de comunicaciones y dispositivos periféricos, el software del sistema
administra y controla al acceso del hardware.
El software de sistema por antonomasia es Microsoft Windows, que entre todas sus versiones
acumula cerca de un 90% de la cuota de mercado. Pero existe una diversidad de las cuales podemos
mencionar LINUX. MAC OS X. software de redes como lo son: IOS, XE, XR y NX-OS, NETWARE.
Software para aplicaciones
Son los programas diseñados para o por los usuarios para facilitar la realización de tareas
específicas en la computadora, como pueden ser las aplicaciones ofimáticas (procesador de texto, hoja
de cálculo, programa de presentación, sistema de gestión de base de datos...), u otros tipos de software
especializados como software médico, software educativo, editores de música, programas de
contabilidad, etc.
Lenguajes de programación
Es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por
máquinas como las computadoras.
LENGUAJES DE PROGRAMACION
¿QUE SON LOS LENGUAJES DE PROGRAMACION? Es un sistema estructurado y diseñado para describir el conjunto de
acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un
lenguaje de programación es un modo práctico para que los seres humanos
puedan dar instrucciones a un equipo.
Se usan para expresar algoritmos detallados de solución a un problema.
Se conforma por un conjunto de símbolos y reglas sintácticas que definen su estructura y el
significado de sus elementos y expresiones.
HISTORIA
Como se menciona al inicio del documento, cuando el primer ordenador electrónico aparece por
primera vez, en 1945, junto con él aparece el primer lenguaje de programación, EL LENGUAJE
MAQUINA, el cual es el lenguaje binario, conocido así por trabajar únicamente con los dígitos 1 y 0.
La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones.
PRIMERA GENERACIÓN
Los primeros ordenadores se programaban directamente en código de máquina (basado en
sistema binario), que puede representarse mediante secuencias de ceros y unos.
SEGUNDA GENERACIÓN
Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor
para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se
conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra
inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las
letras y palabras son más fáciles de recordar y entender que los números.
La necesidad de recordar secuencias de programación para las acciones usuales llevó a
denominarlas con nombres fáciles de memorizar y
asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc
Los lenguajes-simbólicos, asimismo propios de la máquina, simplifican la escritura de las
instrucciones y las hacen más legibles.
TERCERA GENERACIÓN
Se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol. Los lenguajes de alto
nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al
lenguaje humano o al de las Matemáticas.
El primer programador de computadora que se haya conocido fue una mujer: Ada Lovelace,
hija de Anabella Milbanke Byron y Lord Byron. Anabella inició en las matemáticas a Ada quien,
después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica.
Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que
Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El
nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.
CUARTA GENERACIÓN
Se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas
combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando,
lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a
objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características
son:
- Acceso a base de datos.
- Capacidades Gráficas.
- Generación de código automáticamente.
- Puede programarse visualmente
Son los lenguajes capaces de generar código por si solos, son los llamados RAD, con lo cuales
se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también se encuentran los
lenguajes orientados a objetos, haciendo posible la reutilización d partes del código para otros
programas. Ej. Visual, Natural Adabes, NetBeans.
QUINTA GENERACIÓN
Fue un ambicioso proyecto hecho por Japón a finales de la década de 1970. Su objetivo era el
desarrollo de una nueva clase de computadoras que utilizarían técnicas y tecnologías de inteligencia
artificial tanto en el plano del hardware como del software, usando el lenguaje PROLOG al nivel
del lenguaje de máquina y serían capaces de resolver problemas complejos, como la traducción
automática de una lengua natural a otra (del japonés al inglés, por ejemplo). Como unidad de medida
del rendimiento y prestaciones de estas computadoras se empleaba la cantidad de LIPS (Logical
Inferences Per Second) capaz de realizar durante la ejecución de las distintas tareas programadas. Para
su desarrollo se emplearon diferentes tipos de arquitecturas VLSI (Very Large Scale Integration).
El proyecto duró once años, pero no obtuvo los resultados esperados: las computadoras actuales
siguieron así, ya que hay muchos casos en los que, o bien es imposible llevar a cabo
una paralelización del mismo, o una vez llevado a cabo ésta, no se aprecia mejora alguna, o en el peor
de los casos, se produce una pérdida de rendimiento. Hay que tener claro que para realizar un programa
paralelo debemos, para empezar, identificar dentro del mismo partes que puedan ser ejecutadas por
separado en distintos procesadores.
CLASIFICACION DE LOS LENGUAJES DE
PROGRAMACION
TIPOS LENGUAJES DE PROGRAMACIÓN
Bajo nivel (Lenguaje máquina)
Intermedios (Lenguaje ensamblador)
Alto nivel (Lenguajes evolucionados)
Los Lenguajes de Programación de Bajo Nivel:
Son aquellos utilizados fundamentalmente para controlar el hardware del ordenador y dependen
totalmente de la máquina y no se pueden utilizar en otras máquinas.
Están orientados exclusivamente para la máquina. Estos lenguajes son los que ordenan a la
maquina operaciones fundamentales para que pueda funcionar.
Este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento.
Consiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de
la máquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente
enormes donde encontrar un fallo es casi imposible.
Intermedios (Lenguaje ensamblador)
Es un derivado del lenguaje máquina y está formado por abreviaturas de letras y números
llamadas nemotécnicas. Este modelo presenta la mayoría de los inconvenientes del lenguaje máquina:
Cada modelo de computadora tiene un lenguaje ensamblador propio diferente de los demás, por
lo cual un programa sólo puede utilizarse en la máquina para la cual se programó.
Tanto el lenguaje máquina como lenguaje ensamblador tienen la ventaja de mínima ocupación
de memoria.
Los Lenguajes de Programación de Alto Nivel:
Estos lenguajes son más parecidos al lenguaje natural humano y no dependen de la máquina y
sirven fundamentalmente para crear programas informáticos que solucionan diferentes problemas. Son
los más usados por los programadores y por todo del mundo que realiza programas informáticos.
Lograr independencia, en utilizar un mismo programa en diferentes equipos.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una
forma más sencilla, eliminado muchas posibilidades de cometer errores que se daban en el lenguaje
máquina. Ya que se utilizan palabras en inglés.
Incluir rutinas de uso frecuente como son las entrada/salida, de tal manera que se puedan
utilizar siempre que se requieran sin necesidad de programarlas cada vez.
LENGUAJES DE PROGRAMACIÓN MÁS USADOS
ACTUALMENTE
JAVA
JAVASCRIPT
C# PHP
PYTHON
JAVA
Es uno de los lenguajes más populares del mundo para crear aplicaciones web o aplicaciones de
escritorio. Con java y su framework más utilizado, el spring framework, puedes crear aplicación web
escalable para una gran cantidad de usuarios.
HTML
Este lenguaje es con el que se crean las páginas web, por ejemplo, que básicamente es un
conjunto de etiquetas que sirven para definir el texto y otros elementos que puedes ver en las páginas
web.
JAVASCRIPT
Está presente en todos los sitios webs. Desde el cliente hasta el servidor y permite dotar a tu
sitio web de efectos que encandilaran y enamoraran a tus visitantes de una manera fácil usando su
biblioteca más extendida, estamos hablando de jquery.
SQL
Este lenguaje esta creado para realizar consultas a bases de datos principalmente.
C#
Es el lenguaje más extendido para el desarrollo de aplicaciones y servicios de microsoft.
Además también para los desarrolladores de videojuegos es imprescindible este lenguaje ya que la
plataforma unity usa c# como uno de sus principales lenguajes.
PHP
PHP junto con bases de datos como mysql, son herramientas muy útiles para desarrollar una
plataforma web de manera rápida. Debemos también recordar que la tecnología para gestionar este y
miles de blogs (wordpress) está basada en php. frameworks populares de php son symfony, cakephp y
ahora también el muy famoso laravel.
PYTHON
• Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a
objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje
interpretado, usa tipado dinámico y es multiplataforma.
• Es administrado por la Python Software Foundation. Posee una licencia de código abierto,
denominada Python Software Foundation License, que es compatible con la Licencia pública
general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.
EDITOR DE CÓDIGO
Un editor de código fuente es un editor de texto diseñado específicamente para editar el código
fuente de programas informáticos. Puede ser una aplicación individual o estar incluido en un entorno de
desarrollo integrado.
Los editores de código fuente tienen características diseñadas exclusivamente para simplificar y
acelerar la escritura de código fuente, como resaltado de sintaxis, autocompletar y pareo de llaves.
Traductores de un Lenguaje de Programación
Los traductores son programas que traducen los programas en código fuente, escritos en
lenguajes de alto nivel, a programas escritos en lenguaje máquina. Los traductores pueden ser de dos
tipos: compiladores e intérpretes.
Que es un Compilador?
Un compilador es un programa informático que traduce el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior generando un programa equivalente que la
maquina será capaz de interpretar. Usualmente el segundo es lenguaje máquina, pero también puede ser
simplemente texto. Este proceso de traducción se conoce como compilación.
De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano
a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una
computadora.
Que es un intérprete?
Intérprete Los intérpretes no producen un lenguaje objetivo como en los compiladores. Un
intérprete lee el código como está escrito e inmediatamente lo convierte en acciones; es decir, lo
ejecuta en ese instante. Existen lenguajes que utilizan un intérprete (como por ejemplo JAVA y
BASIC) que traduce en el instante mismo de lectura el código en lenguaje máquina para que pueda ser
ejecutado.
PROGRAMACIÓN ESTRUCTURADA A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a
programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su mejor
comprensión, no sólo proveyendo ventajas durante la fase de desarrollo, sino también posibilitando una
más sencilla modificación posterior.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo
programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
Secuencia.
Instrucción condicional.
Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones
posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control,
estas pueden ser construidas mediante las tres básicas citadas.
Ventajas de la programación estructurada comparada con el modelo anterior.
Los programas son más fáciles de entender, pueden ser leídos de forma secuencial y no
hay necesidad de hacer engorrosos seguimientos en saltos de líneas (GOTO) dentro de los bloques de
código para intentar entender la lógica.
La estructura de los programas es clara, puesto que las instrucciones están más ligadas o
relacionadas entre sí.
Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o
errores del programa (debugging) se facilita debido a su estructura más sencilla y comprensible, por lo
que los errores se pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento. Análogamente a la depuración, durante la
fase de mantenimiento, modificar o extender los programas resulta más fácil.
Los programas son más sencillos y más rápidos de confeccionar.
Se incrementa el rendimiento de los programadores.
Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque
es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes
utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada —pero
la mayoría de los nuevos lenguajes de programación procedimentales desde entonces han incluido
características para fomentar la programación estructurada y a veces deliberadamente omiten
características, en un esfuerzo para hacer más difícil la programación no estructurada.
¿QUÉ ES PROGRAMACIÓN MODULAR? Uno de los métodos más conocidos para resolver un problema es dividirlo en problemas más
pequeños, llamados sub problemas. De esta manera, en lugar de resolver una tarea compleja y tediosa,
resolvemos otras más sencillas y a partir de ellas llegamos a la solución.
OPERADORES Los operadores son datos conectores en una expresión y ecuación. Los operadores dicen a la
computadora cómo procesar los datos. También informan a la computadora sobre el tipo de
procesamiento que necesita ejecutar.
OPERADORES ARITMÉTICOS
Permiten la realización de operaciones matemáticas con los valores (variables y constantes).
Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son
enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.
OPERADORES RELACIONALES
Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si
y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas).
OPERADORES LÓGICOS
Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores
pueden ser resultado de una expresión relacional.
Prioridad de operadores.
Los operadores se muestran en orden decreciente de prioridad de arriba a abajo. Los operadores
del mismo grupo tienen la misma prioridad (precedencia) y se ejecutan de izquierda a derecha
A la hora de escribir fórmulas podemos usar varios operadores aritméticos. Es muy importante
tener en cuenta el uso de los paréntesis, pues en informática las operaciones siguen una jerarquía
(prioridad) que no tiene por qué coincidir con nuestra lógica.
Veamos los siguientes ejemplos:
DATOS/TIPOS DE DATOS Un dato dentro de un programa se caracteriza por llevar asociado un identificador, un tipo y un
valor. Es toda aquella información que se puede tratar en un programa informático.
Los tipos de datos nos permiten representar los diferentes datos que son necesarios a la hora de
implementar un programa.
Por ejemplo, si escribimos un programa sencillo que sume, reste, multiplique y divida (una
calculadora básica) será necesario emplear tipos de datos numéricos que pueden ser: enteros o
flotantes.
• Tipo entero: representa números enteros con o sin signo, que estarán compuestos por los dígitos
del 0 al 9, pudiendo ser precedidos por los signos + o -.
• Tipo flotante: Se emplean para representar números reales (con decimales).
• Tipo carácter: Este tipo de datos se emplea para representar un carácter perteneciente a un
determinado código utilizado por el ordenado
• Tipo lógico: Se representan con el tipo boolean. Los datos de este tipo sólo pueden contener dos
valores: true (verdadero) o false (falso).
• Tipo Date/time: Representa fecha y hora, por lo general cargadas y manejadas por el sistema.
INFORMACIÓN
Son todos aquellos datos organizados y convenientemente procesados que nos permiten extraer
el conocimiento que facilita la toma de decisiones, permitiendo el seguimiento de los objetivos
propuestos mediante una actuación apropiada.
Cualidades de la información:
Para que una información sea útil es necesario que le permita al responsable de la toma de
decisiones formarse con suficiente antelación una idea clara y completa de la situación, en forma tal
que sus decisiones tengan el fundamento objetivo óptimo posible.
Estas serán, las cualidades de una buena información:
•Precisión: la información debe ser precisa. La precisión se mide en nivel de detalle y
desmenuzamiento. Decir “se han vendido 39 artículos” es mucho más preciso que decir se han vendido
“varias docenas de artículos”. La precisión a exigir depende naturalmente de cada aplicación concreta.
Tan inapropiado es un defecto como un exceso de precisión.
•Exactitud: La información debe ser exacta. La exactitud se mide en términos de porcentaje de
error. Es una medida de alejamiento de la realidad. Naturalmente no podrá obtenerse la exactitud
suficiente partiendo de datos de partida incorrectos o erróneos, si bien podrán subsanarse algunos
pequeños errores o aplicar filtros a datos inválidos.
•Oportunidad: La información tiene que ser oportuna. Debe estar disponible para el usuario en
el momento que se debe resolver un problema. El usuario debe poder actuar antes de que la realidad
haya sufrido un cambio que invalide la acción.
•Integridad: La información debe ser completa. Aun cuando la integridad al 100% es un sueño
inalcanzable en la mayoría de las aplicaciones, conviene en todo caso que la información sea tan
completa como pueda llegar a disponer.
•Significatividad: La información debe ser clara y relevante. Es importante no forzar la
comprensión del destinatario. Cualquier ayuda gráfica, visual, auditiva, o de cualquier tipo que pueda
añadir facilidad y rapidez a la recepción de la información debe ser considerada.
VARIABLES
¿Qué es una variable?
En programación, una variable es un espacio de memoria reservado para almacenar un valor
que corresponde a un tipo de datos soportado por el lenguaje de programación.
A las variables, frecuentemente se le asignan nombres largos para hacerlos relativamente
descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos,
formados por uno o dos caracteres para hacer breve en su transcripción y manipulación.
Por ejemplo, tenemos la frase "hola, cómo estás? me llamo Alejandro"
TIPOS DE VARIABLES
Los tipos de variables se clasifican en:
• Variables primitivas: almacenan datos numéricos, valores lógicos o caracteres.
• Numéricas: Se utilizan para almacenar valores numéricos enteros (integer) o decimales (float ).
En este caso, el valor se asigna indicando directamente el número entero o decimal.
Los números decimales utilizan el carácter . (punto) en vez de , (coma) para separar la parte
entera y la parte decimal:
var iva = 16; // variable tipo entero
var total = 234.65; // variable tipo decimal
• Cadenas de texto: Se utilizan para almacenar caracteres, palabras y/o frases de texto. Para
asignar el valor a la variable, se encierra el valor entre comillas dobles o simples, para delimitar su
comienzo y su final:
var mensaje = "Bienvenido a nuestro sitio web";
var nombreProducto = 'Producto ABC';
var letraSeleccionada = 'c';
• Variables referenciadas: asociadas a objetos o instancias de una clase. Por ejemplo, para
almacenar cadenas de caracteres.
CONSTANTE En programación, una constante es un valor que no puede ser alterado/modificado durante la
ejecución de un programa, únicamente puede ser leído.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del
ordenador, donde el programa almacena valores fijos.
Un objeto constante es aquel que no cambia su contenido y permanece inalterado en el tiempo.
En informática se usa sobre todo en lenguajes de programación para datos que no van a variar su
contenido durante la ejecución del programa, en contraposición con las llamadas variables, que si
pueden tomar varios valores.
Una vez una constante toma un valor, este permanecerá fijo.
Por ejemplo:
El valor de PI = 3.1416
Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de
lenguajes.
Operando:
Referente a la parte de la instrucción de lenguaje máquina de la computadora que designa la dirección
de los datos con los que se debe operar.
Expresión:
Una expresión es una secuencia de operadores y operandos que describe un cálculo.
Normalmente una expresión se evalúa en tiempo de ejecución.
SENTENCIAS (PROGRAMACIÓN). Son las unidades ejecutable más pequeña de un programa, en otras palabras una línea de código
escrita es una sentencia. Especifican y controlan el flujo y orden de ejecución del programa. Una
sentencia consta de palabras clave o reservadas como (cout, cin, for, while, if ... else,etc.), expresiones,
declaraciones, o llamadas a funciones. Si no existen sentencias específicas de selección o salto, el
programa se ejecuta de forma secuencial en el mismo orden en que se ha escrito el código fuente (es el
que podríamos considerar orden "natural" de ejecución).
Una expresión es una secuencia de operadores; operandos; elementos de puntuación y palabras
clave, que especifican una computación. Tiene sentido computacional en sí misma y equivale a una
frase en el lenguaje normal. Entre sus características distintivas están las de poder producir un resultado
y posibles efectos laterales. Ejemplo:
extern x; // No produce un valor
y = 22; // Produce un valor
z = i++; // Valor + efectos laterales
Cualquier expresión finalizada en un punto y coma ; forma una sentencia:
< expresión >;
Las sentencias se ejecutan evaluando la expresión. Todos los efectos colaterales de la
evaluación son tenidos en cuenta antes de ejecutar la próxima sentencia. La mayoría de sentencias son
asignaciones o llamadas a funciones. Un caso especial es la sentencia nula; consiste en un punto y
coma (;) aislado. Una sentencia nula no hace nada, pero puede ser necesaria en situaciones en que la
sintaxis del lenguaje espere una sentencia pero nuestro programa no necesita hacer nada.
Clasificación de las sentencias
Sentencias simples
Las sentencias simples se dividen en:
• Sentencia de salto incondicional (goto)
• Sentencia de llamada a procedimiento
• Sentencias de asignación
Sentencias estructuradas
• Estructura selectiva o de selección
• Estructura Iterativa
• Anidamiento
Sentencias de etiqueta
Existen tres clases de sentencias etiquetadas: las etiquetas directas, las sentencias case y las
default, estas últimas se utilizan en conjunción con las sentencias switch.
Sentencias de expresión
Podríamos decir que son las que no pertenecen a ninguno de los otros grupos y que, en la
práctica, son las más abundantes. Generalmente son asignaciones o invocaciones de funciones.
Ejemplo:
pint = &x;
foo(c);
Sentencias compuestas
Las sentencias compuestas, también denominadas bloques se utilizan en aquellas situaciones en
que la sintaxis espera una sentencia pero se necesita usar varias. Ejemplo:
if (first) ++x;
else {
--x; z = a;
}
En caso de cumplirse la condición hay que incrementar x, lo que puede hacerse en una sola
sentencia, pero si la condición resulta falsa, se precisan dos computaciones. Para que se comporten
como una sola frente a else, se recurre a englobarlas en un bloque entre llaves { ... }. Las sentencias
dentro del bloque se comportan como una sola y constituyen un ámbito léxico. Los identificadores
definidos en su interior eclipsan a los exteriores y las variables automáticas creadas en él son destruidas
al salir del ámbito.
Sentencias de selección
Las sentencias de selección o de control de flujo, pueden decidir entre varios cursos de acción
distintos en función de ciertos valores. Existen dos tipos de estas sentencias de selección: if...else y
switch. Ejemplo:
switch ( foo() ) {
case 0: case 1:
if (first) break;
else ++x;
case 2:
...
default:
break;
}
Sentencias de iteración
Las sentencias de iteración permiten repetir un conjunto de sentencias ejecutando un bucle.
En C++ existen tres formas de iteraciones: los bucles while, do…while y for. Ejemplo:
while (first) {
...
for (int x = 1; x < y; ++x) {
...
do { // begin second
...
...
} while (second); // end second
...
} // end for
...
} // end first
Sentencias de salto
Las sentencias de salto permiten transferir el control del programa de forma incondicional.
Existen cuatro de estas sentencias: break, continue, y return. Ejemplo:
while (foo) {
start:
if (some) break;
...
if (first) goto start;
...
if (second) continue;
...
if (! any) return;
...
}
Sentencias de declaración
Este tipo de sentencias introducen uno o más identificadores en un bloque. Ejemplo:
void foo (int x, y z) {
float f = 3.14;
char c;
int x;
...
}
Bloques de intento
Estas sentencias deben estar seguidas de una sentencia catch y tienen la forma:
try {
...
}
Sentencias de preproceso
Constituyen un tipo muy especial, tanto en su sintaxis como en su comportamiento. No
representan una computación en tiempo de ejecución (runtime), sino de compilación, ya que su efecto
es realizar modificaciones sobre el código fuente. Su sintaxis también es especial; no requieren el punto
y coma de terminación y comienzan siempre con el símbolo #.
Sentencias ensamblador
C++ dispone de la opción de poder escribir directamente instrucciones en lenguaje ensamblador
junto con el resto del código fuente. Para esto dispone de una palabra clave específica: asm. La palabra
asm indica que la cadena literal que sigue será incluida en el código objeto en la posición indicada. La
sintaxis empleada depende del compilador. En el caso de C++ Builder, es la siguiente: asm <opcode>
<operandos> <; o NL> Ejemplo
asm pop dx;
asm push ebx;
asm call @@std@%basic_ostream$c19std@%char_traits$c%%@put$qc;
asm add esp,8;
asm push ebx;
Se permite que varias instrucciones ensamblador puedan ser agrupadas en un solo bloque
precedido por el indicador asm. Ejemplo:
asm {
mov ax, 0x0e07;
xor bx, bx;
int 0x10;
}
La sintaxis empleada por el compilador C++ GNU para Windows utilizado por Dev-C++ no
utiliza la sintaxis de Intel, sino la de AT&T. Ejemplo:
int AdrIO; // variable global
static char ValIO; // variable global
void foo() {
__asm("mov _AdrIO, %dx") ; // cargar un registro de 16 bits
__asm("mov _ValIO, %al") ; // cargar un registro de 8 bits
__asm("mov %ax,%dx") ; // mover contenido registro AX a DX
}
METODOLOGÍA PARA LA SOLUCIÓN DE UN
PROBLEMA.
¿Qué es un problema?
Es una situación concreta sobre la cual se quiere implementar una solución.
¿Qué es un método?
Es la serie de procesos de forma ordenada para llegar a la solución de un problema.
METODOLOGÍA: Ciencia que estudia los diferentes tipos de métodos para solucionar
problemas.
La solución de un problema por computadora, consta de siete pasos, dispuesto de tal forma que
cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario.
1.-Definición del problema.
2.-Análisis de la solución.
3.-Diseño de la solución.
4.-Codificación.
5.-Prueba y depuración.
6.-Documentación
Externa: Conocida como Manual Técnico (Autor, Diagrama de flujo, Nombre.)
Interna: Son comentarios o mensajes que se agregan al código del programa, explican las
funciones que realizan ciertos procesos, cálculos o fórmulas.
Manual de usuario: Es una guía que indica el usuario como navegar en el programa
7.-Mantenimiento.
REPRESENTACIÓN DE LOS ALGORITMOS Los algoritmos pueden ser representados utilizando diversas técnicas o métodos.
DIAGRAMA DE FLUJO: Es una representación gráfica de un proceso. Cada paso del proceso es representado por un
símbolo diferente que contiene una breve descripción de la etapa de proceso.
PSEUDOCÓDIGO Falso lenguaje es comúnmente utilizado por los programadores para omitir secciones de código
o para dar una explicación del paradigma que tomó el mismo programador para hacer sus código.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la
forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se
utilizará para la codificación del mismo.
top related