Professional Documents
Culture Documents
Fundamentos de la programacin
Informtica y computadora
Informtica
(Ciencia de la computacin)
Hardware y software
Hardware (tangible - fsica)
Componentes que integran
la parte material
de una computadora
Programacin de computadoras
Programar
Indicar a la computadora qu es lo que tiene que
hacer. Es una tcnica para desarrollar a travs de
una computadora a medida.
Programa
Representacin
de un algoritmo mediante un
lenguaje de programacin concreto. Secuencia de
instrucciones de un lenguaje de programacin que
resuelven el problema planteado por un algoritmo.
Computadoras
Esquema general
Memoria
temporal
Unidad Central de Proceso
Central Processor Unit
Dispositivos
de entrada
Teclado
Ratn
Escner
Tctil
C.P.U.
Almacenamiento
permanente
Dispositivos
de salida
Monitor
Impresora
Altavoz
Computadoras
C.P.U. (Procesador)
A.L.U.
Unidad Aritmtico-Lgica
Unidad de Control
Memoria
Computadoras
La memoria
Memoria
01
Celdas de 8 / 16 / 32 / 64 bits
02
Informacin voltil
03
04
Bus
de
datos
05
06
07
08
...
1 Bit = 0 / 1
1 Byte = 8 bits = 1 carcter
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
Direccin
210 = 1024 1000
Ing. Arturo Diaz Pulido.
Fundamentos de la programacin
Programacin de computadoras
Lenguaje mquina
Cdigos hexadecimales que representan instrucciones,
registros de la CPU, direcciones de memoria o datos
InstruccinSignificado
A0
3E
A0
3E
1D
B3
Ing. Arturo Diaz Pulido.
2F
01
30
02
31
Lenguaje ensamblador
Nemotcnicos para los cdigos hexadecimales:
A0 READ
3E REG
1D ADD
Mayor legibilidad:
READ 2F
REG 01
READ 30
REG 02
ADD
WRITE 11
Cdigo fuente
(lenguaje ensamblador)
Programa
ensamblador
Cdigo objeto
(lenguaje mquina)
Ing. Arturo Diaz Pulido.
Fundamentos de la programacin
Estructuracin
Traduccin
Cdigo fuente
Compiladores:
Compilan y enlazan
programas completos
Intrpretes:
Compilan, enlazan
y ejecutan instruccin
a instruccin
int main()
{
cout << "Hola Mundo!" << endl;
return 0;
}
Compilador
Cdigo objeto
Enlazador
Programa
ejecutable
Ing. Arturo Diaz Pulido.
#include <iostream>
using namespace std;
0100010100111010011100
Cdigo
objeto de
biblioteca
Para una arquitectura concreta
y un sistema operativo
Genealoga de lenguajes
Versiones / Estndares
Prolog
COBOL
1959
PL/I
1970
1964
1995
1983
FORTRAN
1954
Java
C++
C#
CPL
2000
1971
1963
Python
ALGOL
1958
BASIC
Pascal
Modula
1970
1975
1964
Simula
1964
1991
Ada
Eiffel
1979
1986
Smalltalk
Ruby
1971
1993
Haskell
Lisp
Scheme
1958
1975
Logo
Ing. Arturo Diaz Pulido.
1968
1987
Fundamentos de la programacin
Un poco de historia
La prehistoria
El baco
Siglo XIX
(Wikipedia)
Un poco de historia
Siglo XX
1936
Mquina de Turing
1946
1947
El transistor
1953
1967
El disquete
1970
1972
Lenguaje de programacin C
Ing. Arturo Diaz Pulido.
1974
ENIAC (Wikipedia)
Un poco de historia
1975
Se funda Microsoft
1976
Se funda Apple
1979
Juego Pacman
1981
IBM PC
Sistema operativo MS-DOS
1983
1984
CD-ROM
1985
Windows 1.0
1990
Lenguaje HTML
World Wide Web
1991
Apple II (Wikipedia)
Linux
IBM PC (Wikipedia)
Un poco de historia
1992
Windows 3.1
1995
1998
Se funda Google
1999
MSN Messenger
Siglo XXI
2001
Windows XP
Mac OS X
2002
Mozilla Firefox
2007
iPhone
2008
Android ...
Fundamentos de la programacin
Programa informtico
Qu es programar?
Decirle a un tonto muy rpido 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 un
rendimiento aceptable
Programa: Transforma entrada en salida
Entrada
Programa
Salida
Anlisis
Diseo
Cmo?
Programacin
Implementacin
Prueba y depuracin
Mantenimiento
Ing. Arturo Diaz Pulido.
Fundamentos de la programacin
#include <iostream>
Subprogramas (funciones)
Comentarios
Directivas
...
#include <iostream>
using namespace std;
Directiva
int main()
Dato
{
Instruccin
cout << "Hola Mundo!" << endl;
// Muestra Hola Mundo!
Subprograma
Comentario
return 0;
Instruccin
}
Ing. Arturo Diaz Pulido.
Dato
Fundamentos de la programacin
Semntica
Significado
(BNF)
Diagramas
Ejemplo: Nmeros enteros (sin decimales)
BNF
<numero entero> ::= <signo opcional><secuencia de dgitos>
<signo opcional> ::= +|-|<nada>
<secuencia de dgitos> ::= <dgito>|<dgito><secuencia de dgitos>
<dgito> ::= 0|1|2|3|4|5|6|7|8|9
+23
| significa
<nada> ::=
-159
0 .. 9
Ing. Arturo Diaz Pulido.
1374
1-34
3.4
002
+23
<numero entero> ::= <signo opcional><secuencia de dgitos>
::= +<secuencia de dgitos> ::= +<dgito><secuencia de
dgitos>
::= +2<secuencia de dgitos> ::= +2<dgito> ::= +23
1374
<numero entero> ::= <signo opcional><secuencia de dgitos>
::= <secuencia de dgitos> ::= <dgito><secuencia de dgitos>
::= 1<secuencia de dgitos> ::= 1<dgito><secuencia de dgitos>
::= 13<secuencia de dgitos> ::= 13<dgito><secuencia de dgitos>
::= 137<secuencia de dgitos> ::= 137<dgito> ::= 1374
1-34
<numero entero> ::= <signo opcional><secuencia de dgitos>
::= <secuencia de dgitos> ::= <dgito><secuencia de dgitos>
::= 1<secuencia de dgitos> ::= ERROR (- no es <dgito>)
Diagramas de sintaxis
+23
+
0 .. 9
+23
0 .. 9
137 4
1374
+
-
1-34
+
0 .. 9
1-
Fundamentos de la programacin
Hola Mundo!
Un programa que muestra un saludo en la pantalla:
#include <iostream>
using namespace std;
int main()
// main() es donde empieza la ejecucin
Espacio de nombres
#include <iostream>
Tipo
Bloque de cdigo
Declaracin
Palabras reservadas
Cabecera de la funcin
int main()
{
Variable
Cadena de caracteres
Constante
Instruccin
Operador
Operador
Datos literales
return 0;
Instruccin
Nmero
Cuerpo de la funcin
Hola Mundo!
#include<iostream>
Using namespace std;
void main() {
cout << "Hola Mundo!" << endl;
}
Fundamentos de la programacin
Herramientas de desarrollo
Editor
Recomendacin: Notepad++
Instalacin y uso:
Seccin
Herramientas de desarrollo
en el Campus Virtual
Compilador
Cdigo objeto de
la biblioteca iostream
hola.obj
(cdigo objeto)
Enlazador
Hola Mundo!
Cargador
hola.exe
(ejecutable)
Ms herramientas de desarrollo
Compilador
Instalacin y uso:
Seccin
Herramientas de desarrollo
en el Campus Virtual
Ms herramientas de desarrollo
Entornos de desarrollo
Recomendaciones:
Qu hace el programa?
Inicio
Fin
Ing. Arturo Diaz Pulido.
Pantalla (cout)
_ Hola Mundo!
_
Fundamentos de la programacin
C++:
El lenguaje C
Programacin modular
PUBLICACION EN WEB