52
1 UNIVERSIDAD NACIONAL DE INGENIERIA UNI – Norte Lic. José Manuel Alvarado INTRODUCCIÓN A LA PROGRAMACIÓN Objetivo General. Emplear las diferentes técnicas de programación para dar solución a diversos problemas a través del análisis de los mismos, diseño y verificación manual de algoritmos. Resolver problemas de conversión a los diferentes sistemas de numeración. Manipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado a objetos. Específicos: Examinar diferentes problemas para aprender a identificar qué tipo de información se necesita producir. Diseñar algoritmos y verificar manualmente los mismos. Introducción a la Programación

josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

1

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

INTRODUCCIÓN A LA PROGRAMACIÓN

Objetivo General.

Emplear las diferentes técnicas de programación para dar solución a diversos problemas a través del análisis de los mismos, diseño y verificación manual de algoritmos.

Resolver problemas de conversión a los diferentes sistemas de numeración.

Manipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado a objetos.

Específicos:

Examinar diferentes problemas para aprender a identificar qué tipo de información se necesita producir.

Diseñar algoritmos y verificar manualmente los mismos.

Conocer los diferentes tipos de datos dentro de la algoritmización.

Definir los diferentes sistemas de numeración.

Operar con los diferentes sistemas de numeración.

Comprender las técnicas de programación estructurada.

Emplear las técnicas de programación estructurada en la solución de problemas.

Introducción a la Programación

Page 2: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

2

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Comprender las estructuras de datos Arrays.

Aplicar las estructura de datos Arrays en la solución de problemas.

Comprender que es la programación modular y su funcionamiento.

Emplear la programación modular para dar solución a problemas.

Comprender el comportamiento de las diferentes técnicas de Búsqueda y Ordenación.

Emplear las técnicas de Búsqueda y Ordenación en la solución de problemas.

Conocer la implementación de objetos, atributos y responsabilidades, evaluados en: clases, variables y métodos de un leguaje de programación orientado a objetos.

Introducción a la Programación

Page 3: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

3

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

UNIDAD I: Sistemas Numéricos (6 Hrs Clase)

1. Binarios (suma, resta, conversión)

2. Octal (suma, resta, conversión)

3. Hexadecimal (suma, resta, conversión)

4. Código ASCII.

UNIDAD II: Reseña Histórica (2 Hrs Clase)

1. Concepto de programa

2. Lenguaje de maquina

Características

Ventajas

Inconvenientes

3. Lenguajes a bajo nivel

Ventajas

Inconvenientes

4. Traductores

Interpretes

Compiladores

UNIDAD III: Elementos de Programación (22 Hrs Clase)

1. Sintaxis y Semántica

2. Tipos de datos

Tipos de datos primitivos

Introducción a la Programación

Page 4: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

4

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Variables

Constantes

Representación interna de los datos

Conversión de tipo

3. Instrucciones

Instrucción de asignación

Instrucción de E/S

4. Operadores

Operadores aritméticos

Operadores de incrementos y decremento

Operadores relacionales

Operadores lógicos

Operadores de asignación

5. Funciones internas

6. Operaciones con cadenas

7. Estructura de control

Secuencia

Selección

Interacción

UNIDAD IV: Introducción a la POO (50 Hrs Clase)

1. Introducción

2. Clases y objetos

Conceptos

Introducción a la Programación

Page 5: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

5

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Diferencias

Representación grafica (UML)

3. Estructura interna de una clase

Atributos

Métodos

4. Estructura interna de un objeto

5. Instancia de una clase

6. Diseño practico de clases

7. Métodos de las clases

8. Programación estructurada incluida en Métodos

Estructuras secuenciales

Estructuras selectivas

Estructuras repetitivas

Estructuras de decisión anidadas

Estructuras de repetición anidadas

Búsqueda, ordenación y mezcla

9. Declaración de clases usando un lenguaje de POO

Miembros privados

Miembros públicos

Miembros protegidos

Miembros de datos

Miembros funciones y/o procedimientos

UNIDAD I: SISTEMAS NUMÉRICOS

Introducción a la Programación

Page 6: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

6

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Los números se pueden representar en distintos sistemas de numeración que se

diferencian entre sí por su base.

Así el sistema de numeración decimal es de base 10, el binario de base 2, el octal de base

8 y el hexadecimal de base 16. El diseño de todo sistema digital responde a operaciones

con números discretos y por ello necesita utilizar los sistemas de numeración y sus

códigos. En los sistemas digitales se emplea el sistema binario debido a su sencillez.

Cualquier número de cualquier base se puede representar mediante la siguiente ecuación

polinómica:

...... 11

00

23

121

bababababaN nnn

Siendo b la base del sistema de numeración. Se cumplirá que b>1; a i es un número

perteneciente al sistema que cumple la siguiente condición: 0 ≤ ai <b.

DECIMAL

Su origen lo encontramos en la India y fue introducido en España por los árabes. Su base

es 10. Emplea 10 caracteres o dígitos diferentes para indicar una determinada cantidad: 0,

1, 2, 3, 4, 5, 6, 7, 8, 9. El valor de cada símbolo depende de su posición dentro de la

cantidad a la que pertenece. Veámoslo con un ejemplo:

01210 106103101136

2101210 10210410610310142,136

BINARIOS (SUMA RESTA, RESTA CONVERSIÓN)

Introducción a la Programación

Page 7: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

7

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Es el sistema digital por excelencia, aunque no el único, debido a su sencillez. Su base es 2

Emplea 2 caracteres: 0 y 1. Estos valores reciben el nombre de bits (dígitos binarios). Así,

podemos decir que la cantidad 10011 está formada por 5 bits. Veamos con un ejemplo

como se representa este número teniendo en cuenta que el resultado de la expresión

polinómica dará su equivalente en el sistema decimal:

1001234

2 1910110110010010110011

Suma

La tabla de adición siguiente nos muestra las 4 reglas básicas para sumar dígitos binarios:

0 + 0 = 0 Suma = 0 Acarreo = 0

0 + 1 = 1 Suma = 1 Acarreo = 0

1 + 0 = 1 Suma = 1 Acarreo = 0

1 + 1 = 10 Suma = 0 Acarreo = 1

Puede verse que las primeras 3 reglas dan lugar a un resultado de un solo bit, y la cuarta

regla, la suma de dos unos, da lugar a 10 (2 en binario). Cuando se suman números en

binarios, teniendo en cuenta la última regla se obtiene en la columna dada la suma de 0 y

un acarreo de 1 que pasa a la siguiente columna de la izquierda, como se muestra:

Introducción a la Programación

Page 8: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

8

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Resta

La tabla de siguiente nos muestra las 4 reglas básicas para restar dígitos binarios:

0 - 0 = 0

1 - 1 = 0

1 - 0 = 1

10 - 1 = 1 0 – 1 con acarreo negativo (préstamo) de 1

Cuando se restan números, algunas veces se genera un acarreo negativo que pasa a la

siguiente columna de la izquierda. En binario esto sucede cuando se intenta restar 1 de 0.

En este caso se pide prestado un 1 de la siguiente columna de la izquierda, y en la

columna que se está restando se genera un 10. Veamos esto con un ejemplo:

Supongamos que queremos realizar la resta 5 – 3 = 2 en binario. Esto es 101 – 011

Conversión

Si la conversión es de binario a decimal, aplicaremos la siguiente regla: se toma la cantidad

binaria y se suman las potencias de 2 correspondientes a las posiciones de todos sus

dígitos cuyo valor sea 1. Veamos dos ejemplos:

1011012 = 1.25+0.24+1.23+1.22+0.21+1.20 = 4510

101012= 1.24+0.23+1.22+0.21+1.20 = 2110

Si la conversión es de decimal a binario, aplicaremos la siguiente regla: se toma la cantidad

decimal dada y se divide sucesivamente entre 2. Los restos obtenidos en cada división (0,

1), forman la cantidad binaria pedida, leída desde el último cociente al primer resto.

Decimal Base Cociente Resto 4510 = 1011012

45 2 22 122 2 11 011 2 5 1

Introducción a la Programación

Page 9: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

9

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

5 2 2 12 2 1 0

Cuando tengamos un número con decimales seguiremos el siguiente procedimiento:

multiplicaremos por 2 la parte decimal y se toma como dígito binario su parte entera. El

proceso se repite con la fracción decimal resultante del paso anterior, hasta obtener una

fracción decimal nula, o bien hasta obtener el número de cifras binarias que se desee.

Ejemplo: 45,645

101101, 101001012

Fracción decimal Multiplicado por: Resultado Dígito binario

0,645 2 1,290 1

0,290 2 0,580 0

0,580 2 1,160 1

0.160 2 0,320 0

0,320 2 0.64 0

0.64 2 1.28 1

0.28 2 0.56 0

0.56 2 1.12 1

OCTAL (SUMA RESTA, RESTA CONVERSIÓN)

Posee ocho símbolos: 0, 1, 2, 3, 4, 5, 6, 7. Su base es 8.

Este sistema tiene una peculiaridad que lo hace muy interesante y es que la conversión al

sistema binario resulta muy sencilla ya que, 8 = 23. Así, para convertir un número de base

8 a binario se sustituye cada cifra por su equivalente binario.

Introducción a la Programación

Page 10: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

10

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Suma

Las operaciones aritméticas de este sistema se resuelven en idéntica forma a los sistemas

vistos, sin rebasar la base, es decir, cada vez que se conformen grupos de ocho se salta al

siguiente nivel significativo. A continuación se presentan ejemplos de cada caso.

257318

+ 321478

60100

Resta

321478

-257318

42168

Conversión

Este sistema tiene una base de ocho símbolos. La facilidad que existe en convertir entre el

sistema binario y el octal, permite expresar los números binarios en un formato más

compacto, ya que cada dígito octal equivale a 3 dígitos binarios.

Base: 8 Símbolos: 0, 1, 2, 3, 4, 5, 6, 7

Los 8 primeros números octales se escriben:

Octal Decimal Binario

0 0 000

1 1 001

2 2 010

3 3 011

4 4 100

5 5 101

Introducción a la Programación

Page 11: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

11

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

6 6 110

7 7 111

Binario a Octal

Para convertir un número expresado en base 8 a base 2, simplemente sustituimos cada

una de las cifras que lo forman por sus tres cifras binarias equivalentes.

Ejemplo: Convertir a Binario el número 375,428

Con lo que tenemos que 375,428 = 011111101,1000102

Octal a Binaria

Si la conversión es de binario a octal se realiza a la inversa, comenzando desde la coma

decimal hacia la izquierda para la parte entera, rellenando con 0’s a la izquierda si fuera

necesario; y desde la coma decimal hacia la derecha para la parte fraccionaria, rellenando

con 0’s a la derecha si fuera necesario. Ejemplo: Convertir 11111101,1000102 a octal

Con lo que tenemos que 11111101,1000102 = 375,428

Octal a Decimal

Se realiza del mismo modo que de binario a decimal, teniendo en cuenta que la base

ahora es B=8.

Ejemplo: 345,58 = 3·82 + 4·81 + 5·80 + 5·8-1 = 192 + 32 + 5 + 0,625 = 229,62510

Decimal a Octal

Introducción a la Programación

Page 12: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

12

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Convertir el numero 1036,3510

HEXADECIMAL (SUMA RESTA, RESTA CONVERSIÓN)

Introducción a la Programación

El resultado final es la unión de ambos

valores: 1036,3510 = 2014,26314…8.

Page 13: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

13

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Está compuesto por 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Su base es 16. Es

uno de los sistemas más utilizados en electrónica, ya que además de simplificar la

escritura de los números binarios, todos los números del sistema se pueden expresar en

cuatro bits binarios al ser 16 = 24. La conversión de un número hexadecimal a uno binario

es muy sencilla al igual que en el sistema octal.

Las operaciones aritméticas son las mismas de cualquier otro sistema. A continuación se

relacionan ejemplos de sumas, restas:

Suma

(7AB,CD)16+(AA,33)16 7AB,CD16

AA,3316 8 5 6,0016

Resta

(ABCDE)16-(1234 A)16 ABCDE

1234A

99994

Conversión

La conversión entre binario y hexadecimal es igual al de la conversión octal y binario, pero

teniendo en cuenta los caracteres hexadecimales, ya que se tienen que agrupar de 4 en 4.

La conversión de binario a hexadecimal se realiza según el ejemplo siguiente:

Hexadecimal a Binario

Introducción a la Programación

Page 14: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

14

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

La conversión de hexadecimal a binario simplemente sustituiremos cada carácter por su

equivalente en binario, por ejemplo: 69DE16= 0110 1001 1101 11102

Sistema binario Sistema Hexadecimal

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ejemplo: 1011111,1100012

Agrupando obtenemos el siguiente

resultado:

0101 1111, 1100 01002

Sustituyendo según la tabla logramos la

conversión esperada:

5F, C416

Decimal a Hexadecimal

Introducción a la Programación

Page 15: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

15

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

(284161)10 base Cociente Residuo

284161 ÷ 16 = 17760 1

17760 ÷ 16 = 1110 0

1110 ÷ 16 = 69 6

69 ÷ 16 = 4 5

4

(284161)10 = (45601)16

Hexadecimal a Decimal

La conversión se realiza siguiendo el mismo procedimiento que en las conversiones

binario-decimal, pero considerando la base B=16. En este caso, además, deberemos

sustituir los valores A, B, C, D, E, F por su equivalencia en el sistema decimal.

Ejemplo: Hállese el equivalente decimal del valor hexadecimal 39,B816.

39,B816 = 3·161 + 9·160 + B·16-1 + 8·16-2 =

= 3·161 + 9·160 + 11·16-1 + 8·16-2 =

= 48 + 9 + 0.6875 + 0.03125 =

= 57,71875

Hexadecimal a Octal (y viceversa)

Para convertir de entre estos sistemas numéricos lo que se debe hacer es convertir

cualquiera de estos a su equivalente en sistema decimal o binario y luego convertir al otro.

CÓDIGO ASCII

Introducción a la Programación

Page 16: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

16

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

ASCII (American Standard Code for Information Interchange).

El código ASCII básico utiliza 7 bits y permite representar 128 caracteres (letras

mayúsculas y minúsculas del alfabeto inglés, símbolos de puntuación, dígitos 0 a 9 y

ciertos controles de información tales como retorno de carro, salto de línea, tabulaciones,

etc.). Este código es el más utilizado en computadoras, aunque el ASCII ampliado con 8

bits permite llegar a 28 (256) caracteres distintos, entre ellos ya símbolos y caracteres

especiales de otros idiomas como el español.

Introducción a la Programación

Page 17: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

17

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

UNIDAD II: RESEÑA HISTÓRICA

CONCEPTO DE PROGRAMA

Un programa informático es un conjunto de instrucciones que una vez ejecutadas

realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no

pueden funcionar. Al conjunto general de programas, se le denomina software, que más

genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora

digital.

DEFINICIÓN DE LENGUAJE

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas

que definen su estructura y el significado de sus elementos y expresiones, y es utilizado

para controlar el comportamiento físico y lógico de una máquina.

LENGUAJE DE MAQUINA

Características

Los ordenadores sólo entienden un lenguaje específico para cada máquina, que se

denomina CÓDIGO MÁQUINA o Lenguaje Máquina. Este lenguaje utiliza un código binario

(símbolos “0" y “1").

Las órdenes que se dan a un ordenador han de ir codificadas en instrucciones, y estas

forman los programas. Las instrucciones tienen dos partes diferenciadas: código de

operación y código(s) de operando(s):

CODOP CODOPERANDO(S)

En la primera, se codifica la operación que realiza la instrucción. Este código de operación

siempre es único para cada instrucción. En la segunda se indica(n) la(s) dirección(es) de

Introducción a la Programación

Page 18: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

18

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

memoria en la que se encuentra el operando, hasta un máximo de tres, sobre el/(los) que

se aplicará la operación.

Puesto que cada tipo de ordenador tiene su código máquina específico, para programar

en este lenguaje el programador debe conocer la arquitectura física de la computadora

con cierto detalle (registros de la CPU, palabras de memora,...). La estructura del lenguaje

máquina está totalmente adaptada a los circuitos de la computadora y muy alejada del

lenguaje que empleamos normalmente para expresar y analizar los problemas que hoy día

son resolubles con la computadora. Por ejemplo, para hacer cálculos aritméticos

disponemos de un “lenguaje” matemático fácil de comprender y claro, que no se parece

en nada al código máquina necesario para hacer dichos cálculos.

Ventajas

Un programa escrito en lenguaje máquina es directamente interpretable por el

procesador central. Una vez introducido el programa en la memoria principal de la

computadora, no se necesitan transformaciones previas para ser ejecutado (como

más adelante veremos que sí ocurre con los programas escritos en lenguajes de

alto nivel).

Los programas escritos en lenguaje máquina se ejecutan muy eficientemente (con

rapidez), debido a que el usuario lo redacta específicamente para los circuitos que

lo han de interpretar y ejecutar, y a que desde el código máquina se puede utilizar

la totalidad de los recursos de la máquina.

Inconvenientes

Las instrucciones son cadenas de ceros y unos, aunque estas cadenas se pueden

introducir en la computadora mediante un código intermedio (octal o

hexadecimal).

Introducción a la Programación

Page 19: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

19

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Los datos se utilizan por medio de las direcciones de memoria donde se

encuentran. En las instrucciones no aparecen nombres de variables (i, j aux...), sino

que el programador debe asignar las direcciones de memoria para las variables y

constantes del programa. Para realizar esta asignación se debe tener en cuenta la

zona de memoria que ocupa el programa, para que no se solape con la zona en la

que se almacenan las variables.

El repertorio de instrucciones suele ser muy reducido y las instrucciones realizan

operaciones muy simples.

En lenguaje máquina, hay varios tipos de instrucciones:

De transferencia de información.

De tratamiento o aritmético-lógicas y de desplazamiento

De transferencias de control: bifurcaciones, saltos, llamadas a procedimientos y

retornos de procedimientos.

Muchas computadoras, por ejemplo, no disponen de instrucciones específicas de

multiplicar y dividir; en su lugar, el programador debe ingeniárselas para

descomponer cada una de las operaciones que desee realizar en términos de las

instrucciones elementales del repertorio máquina.

Por ejemplo, para multiplicar, se deberá codificar un algoritmo que realice la

multiplicación por medio de sumas, comparaciones, desplazamientos, etcétera.

El lenguaje máquina depende y está ligado íntimamente a la CPU del computador.

Si dos computadoras tienen CPU’s diferentes, tendrán distintos lenguajes máquina.

En particular, dos microcomputadoras con el mismo microprocesador e iguales

circuitos de control, tienen igual lenguaje máquina. La dependencia del lenguaje

máquina de la configuración de la CPU hace que los programas redactados en este

lenguaje de programación sean poco transferibles o transportables de una

computadora a otra.

Introducción a la Programación

Page 20: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

20

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

En un programa en código máquina, no pueden incluirse comentarios que faciliten

la legibilidad del mismo. Además, debido a su representación totalmente

numérica, es muy difícil de reconocer o interpretar por el usuario.

LENGUAJES A BAJO NIVEL

Los lenguajes de máquina están escritos en códigos (código máquina) directamente

inteligibles por la máquina (computadora), siendo sus instrucciones cadenas binarias (0 y

1).

“Lenguaje de máquina” hace referencia al lenguaje específico de una computadora,

mientras que “código máquina” hace referencia al modo en que se escriben los diferentes

lenguajes de máquina.

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al

funcionamiento de una computadora. Los lenguajes de más bajo nivel son los lenguajes de

máquinas. A éste nivel le sigue el lenguaje ensamblador, ya que al programar en

ensamblador se trabajan con los registros de memoria de la computadora de forma

directa.

Ventajas

La programación en un lenguaje de bajo nivel tiene como ventajas una mayor adaptación

al equipo, además de la posibilidad de obtener la máxima velocidad con el mínimo uso de

memoria.

Inconvenientes

Sin embargo tiene importantes inconvenientes, como la imposibilidad de escribir código

independiente de la máquina y la mayor dificultad en la programación y en la

comprensión de los programas.

Introducción a la Programación

Page 21: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

21

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

TRADUCTORES

Para facilitar el trabajo de programación y hacer los programas más legibles, resolviendo

las limitaciones que presentan los lenguajes máquina, se han desarrollado lenguajes de

programación que permiten utilizar una simbología y terminología próximas a las

tradicionalmente utilizadas en la descripción de problemas. Estos lenguajes se denominan

genéricamente lenguajes simbólicos.

Como la computadora únicamente puede interpretar y ejecutar código máquina, existen

programas traductores, que traducen o trasladan programas desde el lenguaje simbólico

al lenguaje máquina.

INTERPRETES

Un intérprete hace que un programa fuente escrito en un lenguaje vaya, sentencia a

sentencia, traduciéndose a código objeto y sea ejecutado directamente por la

computadora. El intérprete capta una sentencia fuente y la traduce, expandiéndola en una

o varias instrucciones máquina, que ejecuta inmediatamente, no creándose, por tanto, un

fichero o programa objeto almacenable en memoria masiva para posteriores ejecuciones.

En la práctica el usuario crea un fichero con el programa fuente. Esto suele realizarse con

un editor específico del propio intérprete del lenguaje. Según se van almacenando las

instrucciones simbólicas, se analizan y se producen los mensajes de error

correspondientes: así el usuario puede proceder inmediatamente a su corrección. Una vez

creado el fichero fuente el usuario puede dar la orden de ejecución (“RUN”) y el intérprete

lo ejecuta línea a línea. Siempre la traducción antecede inmediatamente a la ejecución, de

forma que:

Las optimizaciones sólo se realizan dentro del contexto de cada sentencia, no

contemplándose el programa o sus estructuras en conjunto.

Introducción a la Programación

Page 22: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

22

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Si una sentencia forma parte de un bucle, se traduce tantas veces como tenga que

ejecutarse el bucle, y no una sola vez como ocurriría en un compilador.

Cada vez que utilicemos un programa tenemos que volver a traducirlo, ya que en la

traducción no se genera un fichero objeto que poder guardar en memoria masiva

(y utilizarlo en cada ejecución). Con un compilador, aunque la traducción es más

lenta, esta sólo debe realizarse una vez (ya depurado el programa): cuando

deseemos ejecutar un programa ejecutamos el fichero objeto, que se tradujo

previamente.

COMPILADORES

Un compilador traduce un programa fuente, escrito en un lenguaje de alto nivel, a un

programa objeto, escrito en lenguaje ensamblador o máquina. El programa fuente suele

estar contenido en un fichero, y el programa objeto pasa a ocupar otro fichero. El fichero

objeto puede almacenarse en memoria masiva para ser procesado posteriormente.

La traducción por un compilador (la compilación) consta de dos etapas fundamentales,

que a veces no están claramente diferenciadas a lo largo del proceso: la etapa de análisis

del programa fuente y la etapa de síntesis del programa objeto; es decir, qué pretende

realizar el programa fuente, y cómo realizarlo en el programa objeto. A su vez, cada una

de estas etapas conlleva la realización de varias fases, y en cada una de las cuales se

recorre o analiza completamente el programa fuente.

Introducción a la Programación

Page 23: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

23

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Análisis lexicográfico.

Consiste en descomponer el programa

fuente en sus elementos constituyentes,

es decir, sus símbolos, que son caracteres

o secuencias de caracteres con

significado especial. En cierto sentido,

identifica las palabras del lenguaje. De

esta forma, el analizador léxico (también

denominado escáner) aísla los símbolos,

identifica su tipo y almacena en las tablas

de símbolos la información del símbolo

que pueda ser necesaria durante el

proceso de traducción.

Análisis sintáctico.

La sintaxis de los lenguajes de programación se especifica mediante un conjunto de reglas

(la gramática del lenguaje). Esta fase deberá comprobar si un programa es sintácticamente

correcto, es decir, si sus estructuras (expresiones, sentencias o asignaciones) están

construidas de acuerdo con las reglas del lenguaje.

Análisis semántico.

La semántica de un lenguaje de programación define el significado dado a las distintas

construcciones sintácticas. En los lenguajes de programación, el significado está ligado a la

estructura sintáctica de las sentencias.

En el proceso de traducción, el significado de las sentencias se obtiene de la identificación

sintáctica de las construcciones sintácticas y de la información almacenada en la tabla de

símbolos.

Introducción a la Programación

Page 24: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

24

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Generación de Código Intermedio.

Si no se han producido errores en algunas de las etapas anteriores, este módulo realiza la

traducción a un código interno propio del compilador, denominado Código Intermedio, a

fin de permitir la transportabilidad del lenguaje a otros ordenadores.

Optimizaciones.

En la fase de optimización se mejora el código intermedio generado anteriormente,

analizando el programa de forma global. Un ejemplo de optimización sería encontrar en el

código la inicialización de una constante dentro de un bucle, con lo que esta inicialización

se produciría tantas veces como se repitiese el bucle. El optimizador sacaría esta

inicialización de la constante fuera del bucle para que sólo se realizase una vez.

Generación de Código Objeto.

En esta etapa se genera el código objeto final. En algunos casos, este código es

directamente ejecutable, y en otros necesita algunos pasos previos a la ejecución

(ensamblado, encuadernación y carga).

UNIDAD III: ELEMENTOS DE PROGRAMACIÓN

SINTAXIS Y SEMÁNTICA

Cada lenguaje de programación define reglas que permiten componer el texto de un

programa como una secuencia de símbolos. El conjunto de estas reglas se denomina

gramática, o más usualmente, la sintaxis del lenguaje. Sintaxis significa con orden. Cada

regla establece una clase definida de objetos o categorías sintácticas; como ejemplos

pueden darse algunas partes típicas de un programa: acciones, declaraciones,

condiciones, expresiones, etc.

Introducción a la Programación

Page 25: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

25

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Asociado a cada palabra (símbolo) y a cada frase (categoría sintáctica) debe existir un

significado. Que se traduce en valores de los objetos (constantes y variables) de acuerdo a

sus tipos; o en nombres de objetos o grupos de acciones; o en la especificación de las

operaciones que deben efectuarse sobre esos objetos. Todas las reglas que aportan esta

información se denominan: Semántica del lenguaje.

TIPOS DE DATOS

Datos primitivos

Llamamos tipos primitivos de un lenguaje cuando hablamos de tipos de datos ya definidos

en el lenguaje y de los que se puede partir para la construcción de expresiones o tipos de

compuestos.

Variables

Las variables son objetos que poseen un valor que puede ir cambiando o ser modificado a

lo largo de la ejecución del programa.

Constantes

Las constantes son valores declarados en un programa para su utilización posterior y

poseen un valor que no varía durante el proceso de ejecución.

Introducción a la Programación

Page 26: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

26

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

INSTRUCCIONES

Instrucción de asignación

Las instrucciones de asignación realizan operaciones de asignación, que consisten en

tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento

de la izquierda

Instrucción de E/S

ReadKey() , Read(), ReadLine(),Write(), WriteLine().

OPERADORES

Operadores aritméticos

Operador “^”

Eleva un número a la potencia indicada por otro ejemplo expr = 4^2

Operador “*”

Multiplica dos números. Ejemplo 5* 6

Operador “/”

Divide dos números y devuelve un resultado de punto flotante. Ejemplo 16/5

Operador “\”

Divide dos números y devuelve un resultado de número entero. Ejemplo 16\5

Operador “Mod”

Divide dos números y devuelve sólo el resto. 15 Mod 3

Introducción a la Programación

Page 27: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

27

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Operador “+” (unario y binario)

Suma dos números o devuelve el valor positivo de una expresión numérica.

También se puede utilizar para concatenar dos expresiones de cadena.

expression1 + expression2

- or -

+ expression1

Operador “-” (unario y binario)

Devuelve la diferencia entre dos expresiones numéricas o el valor negativo de una

expresión numérica.

expression1 – expression2

- or -

– expression1

OPERADORES DE INCREMENTOS Y DECREMENTO

Operadores relacionales

Operador True si False si

< (Menor que) expression1 < expression2 expression1 >= expression2

<= (Menor o igual que) expression1 <= expression2 expression1 > expression2

> (Mayor que) expression1 > expression2 expression1 <= expression2

>= (Mayor o igual que) expression1 >= expression2 expression1 < expression2

= (Igual a) expression1 = expression2 expression1 <> expression2

<> (Distinto de) expression1 <> expression2 expression1 = expression2

Introducción a la Programación

Page 28: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

28

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Is (Operador, Visual Basic)

IsNot (Operador)

Like (Operador)

Estos operadores comparan dos expresiones para determinar si son iguales, y si no lo son,

para determinar cuáles son sus diferencias.

result = object1 [Is | IsNot] object2result = string Like pattern

Operadores lógicos

And: result = expression1 And expression2

Not: result = Not expression

Or: result = expression1 Or expression2

Xor: result = expression1 Xor expression2

Si expression1 es: Y expression2 es El valor de result es

True True False

True False True

False True True

False False False

Introducción a la Programación

Page 29: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

29

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

AndAlso: result = expression1 AndAlso expression2

Si expression1 es: Y expression2 es El valor de result es:

True True True

True False False

False (no se evalúa) False

OrElse: result = expression1 OrElse expression2

Si expression1 es: Y expression2 es El valor de result es

True (no se evalúa) True

False True True

False False False

Operadores de asignación

Operador” =”

Dim testInt As IntegerDim testString As StringDim testButton As System.Windows.Forms.ButtonDim testObject As ObjecttestInt = 42testString = "This is an example of a string literal."testButton = New System.Windows.Forms.Button()testObject = testInttestObject = testStringtestObject = testButton

Introducción a la Programación

Page 30: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

30

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Operador “^=”

Eleva el valor de una variable o una propiedad a la potencia de una expresión y asigna el

resultado de nuevo a la variable o la propiedad.

Operador “*=”

Multiplica el valor de una variable o una propiedad por el valor de una expresión y asigna

el resultado a la variable o la propiedad.

Operador “/=”

Divide el valor de una variable o una propiedad por el valor de una expresión y asigna el

resultado de punto flotante a la variable o la propiedad.

Operador “\=”

Divide el valor de una variable o una propiedad por el valor de una expresión y asigna el

resultado entero a la variable o la propiedad.

Operador “+=”

Suma el valor de una expresión numérica al valor de una propiedad o variable numérica y

asigna el resultado a la variable o a la propiedad. También se puede utilizar para

concatenar una expresión String con una propiedad o variable String y asignar el resultado

a la variable o a la propiedad.

Operador “-=”

Sustrae el valor de una expresión del valor de una variable o propiedad y asigna el

resultado a la variable o propiedad.

Introducción a la Programación

Page 31: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

31

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Operador “<<=”

Realiza un desplazamiento aritmético a la izquierda sobre el valor de una variable o una

propiedad y asigna el nuevo valor a la variable o la propiedad.

Dim var As Integer = 10Dim shift As Integer = 3var <<= shift ' The value of var is now 80.

Operador “>>=”

Realiza un desplazamiento aritmético a la derecha sobre el valor de una variable o una

propiedad y asigna el nuevo valor a la variable o la propiedad.

Dim var As Integer = 10Dim shift As Integer = 2var >>= shift ' The value is now 2 (one bit was lost off the right

end).

Operador “&=”

Concatena una expresión String a una variable o propiedad String y asigna el resultado a

la variable o propiedad.

Dim var1 As String = "Hello "Dim var2 As String = "World!"var1 &= var2 ' The value of var1 is now "Hello World!".

OPERACIONES CON CADENAS

Chr(): Dim associatedChar As Char' Returns "A".associatedChar = Chr(65)' Returns "a".associatedChar = Chr(97)' Returns ">".

Introducción a la Programación

Page 32: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

32

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

GetChar(): Dim TestString As String = "ABCDE"Dim TestChar As Char' Returns "D"TestChar = GetChar(TestString, 4)

InStr(): ' String to search in.Dim SearchString As String = "XXpXXpXXPXXP"' Search for "P".Dim SearchChar As String = "P"Dim TestPos As Integer' A textual comparison starting at position 4. Returns 6.TestPos = InStr(4, SearchString, SearchChar, CompareMethod.Text)

LCase(): ' String to convert.Dim UpperCase As String = "Hello World 1234"' Returns "hello world 1234".Dim LowerCase As String = LCase(UpperCase)

UCase(): ' String to convert.Dim LowerCase As String = "Hello World 1234"' Returns "HELLO WORLD 1234".Dim UpperCase As String = UCase(LowerCase)

Mid(): ' Creates text string.Dim TestString As String = "Mid Function Demo"' Returns "Mid".Dim FirstWord As String = Mid(TestString, 1, 3)' Returns "Demo".Dim LastWord As String = Mid(TestString, 14, 4)' Returns "Function Demo".Dim MidWords As String = Mid(TestString, 5)

StrComp(): ' Defines variables.Dim TestStr1 As String = "ABCD"Dim TestStr2 As String = "abcd"Dim TestComp As Integer' The two strings sort equally. Returns 0.TestComp = StrComp(TestStr1, TestStr2, CompareMethod.Text)' TestStr1 sorts after TestStr2. Returns -1.TestComp = StrComp(TestStr1, TestStr2, CompareMethod.Binary)' TestStr2 sorts before TestStr1. Returns 1.TestComp = StrComp(TestStr2, TestStr1)

Introducción a la Programación

Page 33: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

33

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

ESTRUCTURA DE CONTROL

Secuencia

Si se deja libre, un programa avanza por sus instrucciones de principio a fin. Algunos

programas muy simples pueden escribirse sólo con este flujo unidireccional. No obstante,

la mayor eficacia y utilidad de cualquier lenguaje de programación se deriva de la

posibilidad de cambiar el orden de ejecución con instrucciones de control y bucles.

Selección

Visual Basic permite probar condiciones y realizar diferentes operaciones en función de

los resultados de la prueba. Puede comprobar si una condición es verdadera o falsa, los

distintos valores de una expresión o las diferentes excepciones que se generan al ejecutar

una serie de instrucciones.

En el siguiente ejemplo se muestra una estructura de decisión que prueba si el valor de

una condición es true y emprende distintas acciones en función del resultado.

Construcción If...Then...Else

Las construcciones If...Then...Else le permiten probar una o más condiciones y ejecutar

una o más instrucciones en función de cada condición. Puede probar las condiciones y

tomar medidas de las maneras siguientes:

Introducción a la Programación

Page 34: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

34

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Ejecutar una o más instrucciones si una condición es True.

Ejecutar una o más instrucciones si una condición es False.

Ejecutar algunas instrucciones si una condición es True y otras si es False.

Probar una condición adicional si una condición anterior es False.

La estructura de control que proporciona todas estas posibilidades es Instrucción

If...Then...Else (Visual Basic). Puede utilizar una versión de una línea si tiene simplemente

una comprobación y una instrucción para ejecutar. Si tiene un conjunto más complejo de

condiciones y acciones, puede utilizar la versión de varias líneas.

Construcción Select...Case

La construcción Select...Case le permite evaluar una expresión una vez y ejecutar distintos

conjuntos de instrucciones basados en valores posibles diferentes.

Construcción Try...Catch...Finally

Las construcciones Try...Catch...Finally le permiten ejecutar un conjunto de instrucciones

en un entorno que conserva el control si cualquiera de las instrucciones provoca una

excepción. Puede tomar distintas medidas para excepciones diferentes. Puede especificar

opcionalmente un bloque de código, es decir, que se ejecuta antes de salir de toda la

construcción Try...Catch...Finally, independientemente de lo que suceda.

Interacción

Las estructuras de bucles de Visual Basic permiten ejecutar una o más líneas de código de

forma repetitiva. Puede repetir las instrucciones de una estructura de bucles hasta que

una condición sea True, una condición sea False, un número de veces especificado o una

vez para cada objeto de una colección.

Introducción a la Programación

Page 35: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

35

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

En el siguiente ejemplo se muestra una estructura de bucle que ejecuta un conjunto de

instrucciones hasta que una condición se convierta en verdadera.

Bucles While

La construcción While...End While ejecuta un conjunto de instrucciones mientras la

condición especificada en la instrucción While sea True.

Bucles Do

La construcción Do...Loop le permite probar una condición al comienzo o al final de una

estructura de bucle. También puede especificar si repite el bucle mientras la condición

sigue siendo True o hasta que se convierta en True.

Bucles For

La construcción For...Next ejecuta el bucle un número fijo de veces. Utiliza una variable de

control de bucle, también denominada contador para realizar el seguimiento de las

repeticiones. Especifica los valores de inicio y fin de este contador, y puede especificar

opcionalmente la cantidad en la que se incrementa de una repetición a la siguiente.

Introducción a la Programación

Page 36: josemao.files.wordpress.com  · Web viewUNIDAD IV: Introducción a la POO (50 Hrs Clase) Introducción. Clases y objetos. Conceptos. Diferencias. Representación grafica (UML) Estructura

36

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Bucles For Each

La construcción For Each...Next ejecuta un conjunto de instrucciones una vez para cada

elemento de una colección. Especifica la variable de control de bucle pero no tiene que

determinar los valores de inicio y fin para ella.

Introducción a la Programación