8/17/2019 Cb2016- Diapositivas de Clase
1/45
COMPUTACION BASICAIng. Arturo Díaz Pulido.
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
2/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
3/45
Informática y computadoraInformática (Ciencia de la computación)Conjunto de conocimientos científicos y técnicasque hacen posible el tratamiento automático
de la información por medio de Computadoras.El nombre INFORMÁTICA, viene de la unión de los nombresINFORmación y automática.La Informática es una Ciencia. Es la Ciencia que estudia el
Tratamiento Automático de la Información
.
ComputadoraMáquina electrónica, analógica o digital,dotada de una memoria de gran capacidady de métodos de tratamiento de la información,capaz de resolver problemas matemáticos y lógicosmediante la ejecución de programas informáticos
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
4/45
Hardware y software
Hardware (tangible - física)
Componentes que integran
la parte materialde una computadora
Software (intangible - lógica)
Programas, instruccionesy reglas informáticaspara ejecutar tareasen una computadora
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
5/45
Programación de computadorasProgramar
Indicar a la computadora qué es lo que tiene que
hacer. Es una técnica para desarrollar a través deuna computadora a medida.
Programa Representación de un algoritmo mediante un
lenguaje de programación concreto. Secuencia deinstrucciones de un lenguaje de programación queresuelven el problema planteado por un algoritmo
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
6/45
Computadoras Esquema general
Memoria
temporal
Almacenamiento
permanente
Dispositivos
de entrada
TecladoRatón
EscánerTáctil
…
Dispositivos
de salida
MonitorImpresoraAltavoz
…
Unidad Central de ProcesoCentral Processor Unit
C.P.U.
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
7/45
Computadoras
La arquitectura de Von Neumann
C.P.U. (Procesador)
Dispositivos de E/S
Memoria
A.L.U.Unidad Aritmético-Lógica
Unidad de Control
Una ALU de 2 bits (Wi
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
8/45
Computadoras
La memoria
Memoria
Busde
datos
01
02
03
04
05
06
07
08
. . .
Dirección
Cada celda en una dirección
Celdas de 8 / 16 / 32 / 64 bi
Información volátil
1 Bit = 0 / 1
1 Byte = 8 bits = 1 carácter
1 Kilobyte (KB) = 1024 Bytes
1 Megabyte (MB) = 1024 KB
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
210 = 1024 1000
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
9/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
10/45
Programación de computadoras Los procesadores trabajan con ceros y unos (bits)
Unidad de memoria básica: Byte (8 bits)
(2 dígitos hexadecimales: 01011011
0101 1011
5B)
Lenguaje máquina
Códigos hexadecimales que representan instrucciones,registros de la CPU, direcciones de memoria o datos
InstrucciónSignificado
A0 2F Acceder a la celda de memoria 2F 3E 01 Copiarlo el registro 1 de la ALU
A0 30 Acceder a la celda de memoria 30
3E 02 Copiarlo en el registro 2 de la ALU
1D Sumar
B3 31 Guardar el resultado en la celda de memoria 31
Lenguaje de ba
Dependiente de lProgramación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
11/45
Lenguaje ensambladorNemotécnicos para los códigos hexadecimales:
A0 READ 3E REG 1D ADD …
Mayor legibilidad:
READ 2F
REG 01
READ 30
REG 02
ADD
WRITE 11
Lenguaje de nivel medio
Código objeto
(lenguaje máquina)
Programa
ensamblador
Código fuente
(lenguaje ensamblador)
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
12/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
13/45
Lenguajes de programación de alto nivel Más cercanos a los lenguajes natural y matemático
resultado = dato1 + dato2;
Mayor legibilidad, mayor facilidad de codificación Estructuración de datos / abstracción procediment
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
14/45
Lenguajes de programación de alto nivel Traducción
Compiladores:Compilan y enlazanprogramas completos
Intérpretes:Compilan, enlazan
y ejecutan instruccióna instrucción
Compilador
EnlazadorCódigoobjeto de
biblioteca
Código fuente
#include
using namespace std;
int main()
{
cout
8/17/2019 Cb2016- Diapositivas de Clase
15/45
Los lenguajes de programación de alto nivel
Genealogía de lenguajes
BASIC1964
Logo1968
R1
Pytho1991
Eiffel
1986
Modula1975
Versiones / Están
Prolog1970
Haskell1987
J1C++
1983
Smalltalk1971
Scheme1975
PL/I1964
Simula1964
Ada
1979
C1971
Pascal1970
CPL1963
COBOL
1959
ALGOL1958
FORTRAN1954
Lisp1958
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
16/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
17/45
Un poco de historiaLa prehistoria
El ábaco
Siglo XIXMáquina analítica de Charles Babbage
Lady Ada Lovelace
es considerada
la primera
programadora
(Wikipedia)
Ing. Arturo Diaz Pulido.
http://upload.wikimedia.org/wikipedia/commons/a/ac/AnalyticalMachine_Babbage_London.jpghttp://upload.wikimedia.org/wikipedia/commons/a/ac/AnalyticalMachine_Babbage_London.jpghttp://upload.wikimedia.org/wikipedia/commons/a/ac/AnalyticalMachine_Babbage_London.jpghttp://upload.wikimedia.org/wikipedia/commons/a/ac/AnalyticalMachine_Babbage_London.jpghttp://upload.wikimedia.org/wikipedia/commons/a/ac/AnalyticalMachine_Babbage_London.jpg
8/17/2019 Cb2016- Diapositivas de Clase
18/45
Un poco de historiaSiglo XX
1936 Máquina de Turing
1946 ENIAC: Primera computadora digital
de propósito general
1947 El transistor
1953 IBM 650: Primera
computadora a gran escala
1966 ARPANET: Origen de Internet
1967 El disquete
1970 Sistema operativo UNIX
1972 Primer virus informático (Creeper )
Lenguaje de programación C
1974 Protocolo TCP. Primera red local
ENIAC (Wikipedia
Ing. Arturo Diaz Pulido.
http://upload.wikimedia.org/wikipedia/commons/4/4e/Eniac.jpghttp://upload.wikimedia.org/wikipedia/commons/4/4e/Eniac.jpg
8/17/2019 Cb2016- Diapositivas de Clase
19/45
Un poco de historia
1975 Se funda Microsoft
1976 Se funda Apple
1979 Juego Pacman
1981 IBM PCSistema operativo MS-DOS
1983 Lenguaje de programación C++
1984 CD-ROM
1985 Windows 1.0
1990 Lenguaje HTMLWorld Wide Web
1991 Sistema operativo Linux
Apple II (Wikip
IBM PC (WikipeLinux
Ing. Arturo Diaz Pulido.
http://upload.wikimedia.org/wikipedia/commons/b/b0/NewTux.svghttp://upload.wikimedia.org/wikipedia/commons/b/b0/NewTux.svghttp://upload.wikimedia.org/wikipedia/commons/6/69/IBM_PC_5150.jpghttp://upload.wikimedia.org/wikipedia/commons/2/24/Apple_IIe_original.jpg
8/17/2019 Cb2016- Diapositivas de Clase
20/45
Un poco de historia1992 Windows 3.1
1995 Lenguaje de programación JavaDVD
1998 Se funda Google1999 MSN Messenger
Siglo XXI
2001 Windows XPMac OS X
2002 Mozilla Firefox2007 iPhone
2008 Android ...
Ing. Arturo Diaz Pulido.
http://www.mozilla.com/en-US/firefox/http://www.google.es/imgres?imgurl=http://tecnologyc.com/wp-content/2009/11/actualizar-messenger.jpg&imgrefurl=http://tecnologyc.com/actualizar-messenger/&usg=__LqALk3Ye3Qv2ipQuAKBFmVb6TtI=&h=460&w=469&sz=36&hl=es&start=5&um=1&itbs=1&tbnid=gQm6pfMi7jgntM:&tbnh=126&tbnw=128&prev=/images?q=messenger&um=1&hl=es&sa=N&rls=com.microsoft:es&rlz=1I7GPEA_es&tbs=isch:1http://es.wikipedia.org/wiki/Archivo:Newgooglelogo.pnghttp://www.oracle.com/technology/community/sun-oracle-community-continuity.html
8/17/2019 Cb2016- Diapositivas de Clase
21/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
22/45
¿Qué es programar?
Decirle a un tonto muy rápido exactamente lo que tiene que hacer
Especificar la estructura y el comportamiento de un programa,así como probar que el programa realiza su tarea adecuadamente y con unrendimiento aceptable
Programa: Transforma entrada en salida
Algoritmo: Secuencia de pasos y operaciones que debe realizarel programa para resolver el problema
El programa implementa el algoritmo en un lenguaje concreto
SalidaPrograma
Programa informático
Entrada
Ing. Arturo Diaz Pulido.
L I i í d l S ft
8/17/2019 Cb2016- Diapositivas de Clase
23/45
La Ingeniería del Software La programación es sólo una etapa del proceso de desarrol
Modelo de desarrollo “en cascada”:
Mantenimiento
Prueba y depuración
Programación
Diseño
Análisis
Planificación Recursos necesarios, presupuesto, plan,
¿Qué?
¿Cómo?
Implementació
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
24/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
ó
8/17/2019 Cb2016- Diapositivas de Clase
25/45
El lenguaje de programación C++ Bjarne Stroustrup (1983)
#include using namespace std;
int main()
{
cout
8/17/2019 Cb2016- Diapositivas de Clase
26/45
8/17/2019 Cb2016- Diapositivas de Clase
27/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
28/45
Los lenguajes de programación Sintaxis y semántica de los lenguajes
Sintaxis
Reglas que determinan cómo se pueden construiry secuenciar los elementos del lenguaje
Semántica
Significado de cada elemento del lenguaje
¿Para qué sirve?
Ing. Arturo Diaz Pulido.
Sintaxis de los lenguajes de programación
8/17/2019 Cb2016- Diapositivas de Clase
29/45
Sintaxis de los lenguajes de programación
Especificación
Lenguajes (BNF)
Diagramas
::= ::= +|-| ::= | ::= 0|1|2|3|4|5|6|7|8|9 ::=
BNF
| significa ó +23
-159
1374
1-34
3.4
002
Ejemplo: Números enteros (sin decimales)
+
0 .. 9
-
Ing. Arturo Diaz Pulido.
Backus Naur Form (BNF)
8/17/2019 Cb2016- Diapositivas de Clase
30/45
Backus-Naur Form (BNF)
::=
8/17/2019 Cb2016- Diapositivas de Clase
31/45
Diagramas de sintaxis
+23
137 4
1- ?
+23
1374
1-34
+
0 .. 9
+
+
-
-
-
0 .. 9
0 .. 9
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
32/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
33/45
Un primer programa en C++
8/17/2019 Cb2016- Diapositivas de Clase
34/45
Un primer programa en C++ Análisis del programa
#include
using namespace std;
int main()
{
cout
8/17/2019 Cb2016- Diapositivas de Clase
35/45
Un primer programa en C++ Hola Mundo!
#include
Using namespace std;
void main() {cout
8/17/2019 Cb2016- Diapositivas de Clase
36/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
Herramientas de desarrollo
8/17/2019 Cb2016- Diapositivas de Clase
37/45
Herramientas de desarrollo
Editor
Bloc de notas, Wordpad, Word, Writer, Gedit, Kwrite, …(texto simple, sin formatos)
Editores específicos: coloreado sintáctico
Recomendación: Notepad++
Instalación y uso
SecciónHerramientas de desa
en el Campus Virtu
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
38/45
Compilación, enlace y ejecución
hola.cpp
(código fuente)
hola.obj
(código objeto)
Compilador
Código objeto de
la biblioteca iostream
hola.exe
(ejecutable)
Enlazador
Hola Mundo!
Cargador
Ing. Arturo Diaz Pulido.
Más herramientas de desarrollo
8/17/2019 Cb2016- Diapositivas de Clase
39/45
Más herramientas de desarrollo Compilador
Importante: C++ estándar
Recomendación: GNU G++ (MinGW en Windows)
Instalación y uso
Sección
Herramientas de desaen el Campus Virtu
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
40/45
Un primer programa en C++: ejecución
8/17/2019 Cb2016- Diapositivas de Clase
41/45
p p g j
¿Qué hace el programa? La ejecución del programa siempre empieza en main()
Se ejecutan las instrucciones en secuencia de principio a fin
_Hola Mundo!
Pantalla (cou
_
Muestra Hola Mundo!
en la pantalla y salta de línea
Devuelve 0 como código
de terminación del programa
Fin
return 0;
cout
8/17/2019 Cb2016- Diapositivas de Clase
42/45
Fundamentos de la programación
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
43/45
¿Que es un Lenguaje de Programación?
Está formado por un conjunto de símbolos y reglas sintácticas ysemánticas que definen su estructura y el significado de sus elementosy expresiones. Al proceso por el cual se escribe, se prueba, se depura,se compila (de ser necesario) y se mantiene el código fuente de unprograma informático se le llama programación.
Ing. Arturo Diaz Pulido.
C++:
8/17/2019 Cb2016- Diapositivas de Clase
44/45
C++: El lenguaje C
Lenguaje creado por Dennis M. Ritchie en 1972
Lenguaje de nivel medio:
Estructuras típicas de los lenguajes de alto nivel Construcciones para control a nivel de máquina
Lenguaje sencillo (pocas palabras reservadas)
Lenguaje estructurado (no estrictamente estructurado en bloques)
Compartimentalización de código (funciones) y datos (ámbitos)
Componente estructural básico: la función (subprograma)
Programación modular Distingue entre mayúsculas y minúsculas
Palabras reservadas (o clave): en minúsculas
Ing. Arturo Diaz Pulido.
8/17/2019 Cb2016- Diapositivas de Clase
45/45
PUBLICACION EN WEB
Ing. Arturo Diaz Pulido.
Recommended