introduccion - Docencia FCA-UNAM

Download Report

Transcript introduccion - Docencia FCA-UNAM

UNIVERSIDAD LATINA
INFORMATICA VII (Programación e implementación de
sistemas)
INTRODUCCIÓN
QUE ES PROGRAMACIÓN
La programación informática es el proceso de
diseñar, codificar, depurar y mantener el código
fuente de programas computacionales. El código
fuente es escrito en un lenguaje de
programación.
CUAL ES EL PROPOSITO DE LA PROGRAMACION
El propósito fundamental es la creación de
programas, software y/o sistemas de
información para la toma de decisiones.
Es la creación de programas que tengan un
comportamiento deseado.
CUALES SON LOS REQUISITOS PARA LA
PROGRAMACIÓN.
El proceso de escribir código requiere:
•
•
•
•
•
conocimientos en varias áreas distintas,
además del dominio del lenguaje a utilizar,
algoritmos especializados,
lógica formal y
la utilización de un compilador adecuado.
Programar no involucra necesariamente otras tareas tales como el
análisis y diseño de la aplicación (pero sí el diseño del código),
aunque sí suelen estar fusionadas en el desarrollo de pequeñas
aplicaciones.
PROGRAMA.
Es un conjunto de instrucciones
organizadas de acuerdo al
lenguaje (generalmente de alto
nivel) con que se vaya a operar y
nos permite, a través de estas,
realizar funciones o tareas
especificas de cómputo
DEFINICIÓN DE PROGRAMAS DE SISTEMA.
Son aplicaciones de utilidad que se suministran con
el Sistema Operativo pero no forman parte de él.
Ofrecen un entorno útil para el desarrollo y
ejecución de programas, siendo algunas de las
tareas que realizan:
•Manipulación y modificación de archivos.(editores)
•Información del estado del sistema.(monitores)
•Soporte a lenguajes de
programación.(compiladores)
•Comunicaciones.(redes)
QUE ES UN LENGUAJE DE PROGRAMACION.
Un lenguaje de programación es un idioma artificial
diseñado para expresar procesos que pueden ser
llevadas a cabo por máquinas como las computadoras.
Está formado por un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones.
Al proceso por el cual se escribe, se prueba, se depura,
se compila y se mantiene el código fuente de un
programa informático se le llama programación.
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN.
Los programas para ser entendidos por la
computadora se codifican en lenguaje binario
(ceros y unos), esta codificación se conoce como
lenguaje maquina.
De acuerdo a su nivel de abstracción entre mas
lejano es un lenguaje a la computadora, se le
domina de alto nivel, de lo contrario es de bajo
nivel.
Lenguaje de máquina.
Es el lenguaje de mas bajo nivel que consiste en
la combinación de 0s y 1s para formar las
ordenes entendibles por el hardware.
Son mucho mas rápidos que un lenguaje de alto
nivel y tienen como desventaja que generan
enormes códigos fuente donde encontrar un
error es casi imposible además de tener un
conocimiento profundo de la arquitectura del
equipo que se utilice.
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (sistemas numéricos)
Donde base r puede se : binario, octal, decimal o
hexadecimal de los mas utilizados en computación.
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 1:
Hacer la siguiente conversión de binario a
decimal.
Convertir (11011)2, a base 10 (decimal)
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 1.
Convertir (11011)2, a base 10 (decimal)
De base r a base 10 se multiplica
Desarrollo:
(11011)2 = 1*24 + 1*23 + 0*22 + 1*21 + 1*20
=16 + 8 + 0 + 2 + 1
= (27)10
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 2:
Convertir (B2A)16 a base 10 (decimal).
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 2:
Convertir (B2A)16 a base 10 (decimal).
Expresando el número en notación polinomial
usando base 10 para cada cantidad tenemos:
(B2A)16 = (11*162 + 2*161 + 10*160)10
= (11*256 + 2*16 + 10 )10
= (2858)10
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 2:
Convertir (B2A)16 a base 10 (decimal).
Expresando el número en notación polinomial
usando base 10 para cada cantidad tenemos:
(B2A)16 = (11*162 + 2*161 + 10*160)10
= (11*256 + 2*16 + 10 )10
= (2858)10
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Ejemplo 3:
Convertir (25)10 a base 2, 8 y 16.
De base 10 a base r se divide
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
CARACTERISTICAS DEL LENGUAJE DE
PROGRAMACIÓN. (Ejercicios)
Lenguaje C
El lenguaje C es un lenguaje de programación creado en 1972 por
Dennis M. Ritchie en los Laboratorios Bell. Es un lenguaje orientado
a la implementación de Sistemas Operativos, como Unix y Linux. C
es un excelente lenguaje que permite manipular las estructuras de
datos en los niveles de memoria principal del computador y es el
lenguaje de programación más adecuado para crear software de
sistemas, aunque también se utiliza para crear aplicaciones. C es
un lenguaje fuertemente tipificado de medio nivel pero con muchas
características de bajo nivel. Dispone de las estructuras típicas de
los lenguajes de alto nivel pero, a su vez, dispone de construcciones
del lenguaje que permiten un control a muy bajo nivel. Los
compiladores suelen ofrecer extensiones al lenguaje que posibilitan
mezclar código en ensamblador con código C o acceder directamente
a memoria o dispositivos periféricos.
Lenguaje C++
El nombre C++ fue propuesto por Rick Mascitti en el año 1983,
cuando el lenguaje fue utilizado por primera vez fuera de un
laboratorio científico. Antes se había usado el nombre "C con clases".
En C++, la expresión "C++" significa "incremento de C" y se refiere a
que C++ es una extensión del lenguaje C. El propósito de su creación
fue el extender al exitoso lenguaje de programación C con
mecanismos que permitan la manipulación de objetos. En ese sentido,
desde el punto de vista de los lenguajes orientados a objetos, el C++
es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica,
que se sumó a los otros dos paradigmas que ya estaban admitidos
(programación estructurada y la programación orientada a objetos).
Por esto se suele decir que el C++ es un lenguaje de programación
multiparadigma. Una particularidad del C++ es la posibilidad de
redefinir los operadores, y de poder crear nuevos tipos que se
comporten como tipos fundamentales.
Practica 1:
Desarrolla un sistema conversor que:
Mostrará tres opciones: 1 .- Convertir un
numero decimal a binario; 2.- Convertir un
numero Binario a Decimal; 3.- Salir del
Sistema.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
unsigned long n;
char op;
char menu()
{
char c;
printf("\n");
printf("1 - Decimal -> Binario\n");
printf("2 - Binario -> Decimal\n");
printf("S - Salir\n");
printf("\nSeleccione opcion: ");
c = getche();
return c;
}
unsigned long conversor(unsigned long n1,int
base1,int base2)
{
unsigned long alg,mult=1,n2=0;
while (n1 > 0)
{
alg = n1 % base1;
n1 /= base1;
n2 += (alg*mult);
mult *= base2;
}
return n2;
}
}
for(;;)
{
op = menu();
switch(op)
{
case '1':
printf("\nConversor Decimal -> Binario\n");
printf("Introduza un numero Decimal: ");
scanf("%lu",&n);
printf("Numero Binario correspondente: ");
printf("%lu",conversor(n,2,10));
break;
case '2':
printf("\nConversor Binario -> Decimal\n");
printf("Introduza un numero Binario: ");
scanf("%lu",&n);
printf("Numero Decimal correspondente: ");
printf("%lu",conversor(n,10,2));
break;
case 'S':
case 's':
exit(0);
break;
default:
printf("\nOpcion invalida!\n");
}//switch
getch();
}//for
Lenguaje ensamblador
Es un derivado del lenguaje de máquina donde en
lugar de usar ceros y unos esta formado por
abreviaturas de letras y números llamadas
mnemotécnicos.
Para usar un lenguaje ensamblador se requiere
un lenguaje traductor, es decir un lenguaje que
permita pasar los programas escritos en
lenguaje ensamblador a lenguaje de máquina.
Los lenguajes ensambladores generan códigos
fuente muy pequeños que los generados en
código de máquina y su desventaja es que la
programación es difícil y tediosa, repetitiva y
propensa de errores
Lenguaje ensamblador
Lenguaje de alto nivel
Surge a partir de la aparición de las
macroinstrucciones que son instrucciones
escritas en un lenguaje diferente al
lenguaje maquina pero entendidas por
esta.
El lenguaje de alto nivel es un lenguaje
muy similar al lenguaje humano, que usa
palabras o comandos del lenguaje natural
como el ingles.
Lenguaje C Sharp
El lenguaje C Sharp o C# (pronunciado sharp en inglés) es un
lenguaje de programación orientado a objetos desarrollado y
estandarizado por Microsoft como parte de su plataforma .NET,
que después fue aprobado como un estándar por la ECMA (ECMA334) e ISO (ISO/IEC 23270). Su sintaxis básica deriva de C/C++
y utiliza el modelo de objetos de la plataforma .NET, similar al de
Java, aunque incluye mejoras derivadas de otros lenguajes.
Practica 2.Desarrolla una clase en Visual C# que: Simule un cajero automático
con las funciones básicas de depósito, retiro y saldo como se
muestra en el ejemplo. El sistema debe validar un password y
mandará un mensaje de error si se retira mas de lo disponible en
caja.
QUE SON LOS INTERPRETES
Es un programa que realiza la traducción y ejecución de forma
simultánea. Es decir un intérprete lee el código fuente y lo va
ejecutando al mismo tiempo.
Traduce un programa de alto nivel a lenguaje de máquina de manera
distinta a un compilador: el interprete no traduce un programa
fuente en un solo paso sino que va traduciendo y ejecutando
instrucción por instrucción, hasta que traduce y ejecuta una
instrucción pasa a la siguiente.
QUE SON LOS COMPILADORES
Un compilador es un programa que traduce un programa fuente
escrito en lenguaje fuente y da como resultado un programa objeto
que ya puede procesar la computadora.
LENGUAJE COMPILADO
El lenguaje C/C++ se conoce como un lenguaje compilado.
Existen dos tipos de lenguaje: interpretados y compilados. Los
interpretados son aquellos que necesitan del código fuente para
funcionar (P.ej: PHP y Python). Los compilados convierten el código
fuente en un archivo objeto y éste en un programa. Este es el caso
del lenguaje C/C++ y C Sharp.
QUE ES UN COMPILADOR
Un compilador es un programa que permite traducir el código fuente
de un programa en lenguaje de alto nivel (C, C++ O C Sharp), a
otro lenguaje de nivel inferior (típicamente lenguaje de máquina),
generando un programa equivalente que la máquina será capaz de
interpretar o (.EXE). Sin embargo también puede ser un código
intermedio (bytecode), o simplemente texto. Este proceso de
traducción se conoce como compilación.
CARACTERÍSTICAS DE UN COMPILADOR
Generalmente un compilador se divide en dos partes:
* Front End: parte que analiza el código fuente, comprueba su
validez, genera el árbol de derivación y rellena los valores de la
tabla de símbolos. Parte que suele ser independiente de la
plataforma o sistema operativo para el que funcionará.
* Back End: parte en donde se genera el código máquina exclusivo
para una plataforma a partir de lo analizado en el front end.
Por lo general el resultado del back end no puede ser ejecutado
directamente, se necesita pasar por un proceso de enlazado
(linker).
Existen varios tipos de compiladores: Compiladores cruzados,
Compiladores optimizadores, Compiladores de una sola pasada,
Compiladores de varias pasadas, Compiladores JIT (Just In Time).
QUE SON LOS SISTEMAS OPERATIVOS
• Son los programas instalados en el software o en el firmware
que hacen utilizable el hardware, ponen la capacidad de cómputo
del hardware al servicio del usuario y administran
cuidadosamente el hardware para lograr un buen rendimiento.
• Es el programa o conjunto de programas que efectúan la gestión
de los procesos básicos de un sistema informático, y permite la
normal ejecución del resto de las operaciones.
QUE ES EL FIRMWARE
Es un bloque de instrucciones de máquina para propósitos
específicos, grabado en una memoria de tipo de solo lectura (ROM),
y establece la lógica de más bajo nivel que controla los circuitos
electrónicos de un dispositivo de cualquier tipo
Imagen de la
arquitectura de la
computadora compuesta
por una serie de capas
de abstracción:
hardware, firmware,
ensamblador, kernel,
sistema operativo y
aplicaciones
AUTOMATIZAR.
El principio básico de automatizar es que el hombre no intervenga
en un proceso sistemático real, y si lo hace deberá ser lo menos
posible, a medida de que esto se lleve a cabo, el proceso o
actividad logrará su automatización, cabe señalar que el proceso de
automatizar depende de ciertas actividades metódicas previamente
programadas ordenadamente y que pueden ser repetitivas mediante
ciclos.
CONSTRUCCIÓN DE LA AUTOMATIZACIÓN.
Es el conjunto de métodos que sirven para realizar tareas
repetitivas en una computadora.
Algunos métodos para la automatización de tareas son la
programación simple, los macros, los intérpretes y las bombas
lógicas (códigos ocultos). También hay algunos programas
específicos que automatizan tareas. Incluso los virus informáticos
utilizados de forma benéfica podrían considerarse otro método para
la automatización de tareas.