SlideShare una empresa de Scribd logo
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Luis Hernández Yáñez
Facultad de Informática
Universidad Complutense
Fundamentos de la programación
1
Luis
Hernández
Yáñez
Informática, computadoras y programación 3
Lenguaje máquina y ensamblador 12
Lenguajes de programación de alto nivel 15
Un poco de historia 19
Programación e Ingeniería del Software 24
El lenguaje de programación C++ 27
Sintaxis de los lenguajes de programación 30
Un primer programa en C++ 35
Herramientas de desarrollo 39
C++: Un mejor C 45
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Página 3
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Informática (Ciencia de la computación)
Conjunto de conocimientos científicos y técnicas
que hacen posible el tratamiento automático
de la información por medio de ordenadores
Computadora
Máquina electrónica, analógica o digital,
dotada de una memoria de gran capacidad
y de métodos de tratamiento de la información,
capaz de resolver problemas matemáticos y lógicos
mediante la ejecución de programas informáticos
Página 4
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
En todas partes y con muchas formas
Página 5
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Hardware
Componentes que integran
la parte material
de una computadora
Software
Programas, instrucciones
y reglas informáticas
para ejecutar tareas
en una computadora
Página 6
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Programar
Indicar a la computadora qué es lo que tiene que hacer
Programa
 Secuencia de instrucciones
 Instrucciones que entiende la computadora
 Y que persiguen un objetivo: ¡resolver un problema!
Página 7
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Trabajo en equipo
Múltiples roles...
 Gestores
 Analistas
 Diseñadores
 Programadores
 Probadores
 Administradores de
sistemas
...
Página 8
Fundamentos de la programación: Computadoras y programación
Parque Jurásico
Luis
Hernández
Yáñez
Esquema general
Página 9
Fundamentos de la programación: Computadoras y programación
Memoria
temporal
Almacenamiento
permanente
Dispositivos
de entrada
Teclado
Ratón
Escáner
Táctil
…
Dispositivos
de salida
Monitor
Impresora
Altavoz
…
Unidad Central de Proceso
Central Processor Unit
C.P.U.
Luis
Hernández
Yáñez
La arquitectura de Von Neumann
Página 10
Fundamentos de la programación: Computadoras y programación
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 (Wikipedia)
Luis
Hernández
Yáñez
La memoria
Página 11
Fundamentos de la programación: Computadoras y programación
Memoria
Bus
de
datos
01
02
03
04
05
06
07
08
. . .
Dirección
Cada celda en una dirección
Celdas de 8 / 16 / 32 / 64 bits
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
Luis
Hernández
Yáñez
Página 12
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
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ón Significado
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
Página 13
Fundamentos de la programación: Computadoras y programación
Lenguaje de bajo nivel
Dependiente de la máquina
Programación difícil
Luis
Hernández
Yáñez
Nemotécnicos para los códigos hexadecimales:
A0  READ 3E  REG 1D  ADD …
Mayor legibilidad:
READ 2F
REG 01
READ 30
REG 02
ADD
WRITE 31
Lenguaje de nivel medio
Página 14
Fundamentos de la programación: Computadoras y programación
Código objeto
(lenguaje máquina)
Programa
ensamblador
Código fuente
(lenguaje ensamblador)
Luis
Hernández
Yáñez
Página 15
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
 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 procedimental
Página 16
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Traducción
Compiladores:
Compilan y enlazan
programas completos
Intérpretes:
Compilan, enlazan
y ejecutan instrucción
a instrucción
Página 17
Fundamentos de la programación: Computadoras y programación
Compilador
Enlazador
Código
objeto de
biblioteca
Código fuente
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
return 0;
}
Código objeto 0100010100111010011100…
Programa
ejecutable
Para una arquitectura concreta
y un sistema operativo
Luis
Hernández
Yáñez
Genealogía de lenguajes
Página 18
Fundamentos de la programación: Computadoras y programación
BASIC
1964
Logo
1968
Ruby
1993
Python
1991
Eiffel
1986
Modula
1975
Fuente:
http://www.levenez.com/lang/
Versiones / Estándares
Prolog
1970
Haskell
1987
C#
2000
Java
1995
C++
1983
Smalltalk
1971
Scheme
1975
PL/I
1964
Simula
1964
Ada
1979
C
1971
Pascal
1970
CPL
1963
COBOL
1959
ALGOL
1958
FORTRAN
1954
Lisp
1958
Luis
Hernández
Yáñez
Página 19
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
La prehistoria
El ábaco
Siglo XIX
Máquina analítica de Charles Babbage
Página 20
Fundamentos de la programación: Computadoras y programación
Lady Ada Lovelace
es considerada
la primera
programadora
(Wikipedia)
Luis
Hernández
Yáñez
Siglo 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
Página 21
Fundamentos de la programación: Computadoras y programación
ENIAC (Wikipedia)
Luis
Hernández
Yáñez
1975 Se funda Microsoft
1976 Se funda Apple
1979 Juego Pacman
1981 IBM PC
Sistema operativo MS-DOS
1983 Lenguaje de programación C++
1984 CD-ROM
1985 Windows 1.0
1990 Lenguaje HTML
World Wide Web
1991 Sistema operativo Linux
Página 22
Fundamentos de la programación: Computadoras y programación
Apple II (Wikipedia)
IBM PC (Wikipedia)
Linux
Luis
Hernández
Yáñez
1992 Windows 3.1
1995 Lenguaje de programación Java
DVD
1998 Se funda Google
1999 MSN Messenger
Siglo XXI
2001 Windows XP
Mac OS X
2002 Mozilla Firefox
2007 iPhone
2008 Android ...
Página 23
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Página 24
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
¿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 un rendimiento aceptable
Programa: Transforma entrada en salida
Algoritmo: Secuencia de pasos y operaciones que debe realizar
el programa para resolver el problema
El programa implementa el algoritmo en un lenguaje concreto
Salida
Programa
Página 25
Fundamentos de la programación: Computadoras y programación
Entrada
Luis
Hernández
Yáñez
La programación es sólo una etapa del proceso de desarrollo
Modelo de desarrollo “en cascada”:
Página 26
Fundamentos de la programación: Computadoras y programación
Mantenimiento
Prueba y depuración
Programación
Diseño
Análisis
Planificación Recursos necesarios, presupuesto, plan, …
¿Qué?
¿Cómo?
Implementación
Luis
Hernández
Yáñez
Página 27
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Bjarne Stroustrup (1983)
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// Muestra Hola Mundo!
return 0;
}
Página 28
Fundamentos de la programación: Computadoras y programación
Hola Mundo!
Luis
Hernández
Yáñez
Instrucciones
Datos: literales, variables, tipos
Subprogramas (funciones)
Comentarios
Directivas
...
Fundamentos de la programación: Computadoras y programación Página 29
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// Muestra Hola Mundo!
return 0;
}
Directiva
Subprograma
Comentario
Instrucción
Instrucción
Dato
Dato
Luis
Hernández
Yáñez
Página 30
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Sintaxis y semántica de los lenguajes
Sintaxis
— Reglas que determinan cómo se pueden construir
y secuenciar los elementos del lenguaje
Semántica
— Significado de cada elemento del lenguaje
¿Para qué sirve?
Fundamentos de la programación: Computadoras y programación Página 31
Luis
Hernández
Yáñez
Especificación
 Lenguajes (BNF)
 Diagramas
Fundamentos de la programación: Computadoras y programación Página 32
<numero entero> ::= <signo opcional><secuencia de dígitos>
<signo opcional> ::= +|-|<nada>
<secuencia de dígitos> ::= <dígito>|<dígito><secuencia de dígitos>
<dígito> ::= 0|1|2|3|4|5|6|7|8|9
<nada> ::=
BNF
| significa ó +23 
-159 
1374 
1-34 
3.4 
002 
Ejemplo: Números enteros (sin decimales)
+
0 .. 9
-
Luis
Hernández
Yáñez
Fundamentos de la programación: Computadoras y programación Página 33
<numero entero> ::= <signo opcional><secuencia de dígitos>
<signo opcional> ::= +|-|<nada>
<secuencia de dígitos> ::= <dígito>|<dígito><secuencia de dígitos>
<dígito> ::= 0|1|2|3|4|5|6|7|8|9
<nada> ::=
+23
<numero entero> ::= <signo opcional><secuencia de dígitos>
::= +<secuencia de dígitos> ::= +<dígito><secuencia de dígitos>
::= +2<secuencia de dígitos> ::= +2<dígito> ::= +23
1374
<numero entero> ::= <signo opcional><secuencia de dígitos>
::= <secuencia de dígitos> ::= <dígito><secuencia de dígitos>
::= 1<secuencia de dígitos> ::= 1<dígito><secuencia de dígitos>
::= 13<secuencia de dígitos> ::= 13<dígito><secuencia de dígitos>
::= 137<secuencia de dígitos> ::= 137<dígito> ::= 1374
1-34
<numero entero> ::= <signo opcional><secuencia de dígitos>
::= <secuencia de dígitos> ::= <dígito><secuencia de dígitos>
::= 1<secuencia de dígitos> ::= ERROR (- no es <dígito>)



Luis
Hernández
Yáñez
Fundamentos de la programación: Computadoras y programación Página 34
+23 
137 
4
1- 
?
+23
1374
1-34
+
0 .. 9
+
+
-
-
-
0 .. 9
0 .. 9
Luis
Hernández
Yáñez
Página 35
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Hola Mundo!
Un programa que muestra un saludo en la pantalla:
#include <iostream>
using namespace std;
int main()
// main() es donde empieza la ejecución
{
cout << "Hola Mundo!" << endl; // Muestra Hola Mundo!
return 0;
}
Página 36
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Análisis del programa
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
return 0;
}
Página 37
Las instrucciones terminan en ;
Fundamentos de la programación: Computadoras y programación
Directiva
Instrucción
Declaración
Instrucción
Instrucción
Biblioteca
Espacio de nombres
Palabras reservadas
Tipo
Datos literales
Cuerpo de la función
Cabecera de la función
Bloque
de
código
Cadena de caracteres Constante
Operador
Operador
Variable
Número
Coloreado sintáctico
Luis
Hernández
Yáñez
Hola Mundo!
Casi todo es infraestructura
Sólo
cout << "Hola Mundo!" << endl
hace algo palpable
La infraestructura (notación, bibliotecas y otro soporte)
hace nuestro código simple, completo, confiable y eficiente
¡El estilo importa!
Página 38
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Página 39
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Editor
 Bloc de notas, Wordpad, Word, Writer, Gedit, Kwrite, …
(texto simple, sin formatos)
 Editores específicos: coloreado sintáctico
 Recomendación: Notepad++
Página 40
Instalación y uso:
Sección
Herramientas de desarrollo
en el Campus Virtual
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Página 41
Fundamentos de la programación: Computadoras y programació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
Luis
Hernández
Yáñez
Compilador
 Importante: C++ estándar
 Recomendación: GNU G++ (MinGW en Windows)
Página 42
Instalación y uso:
Sección
Herramientas de desarrollo
en el Campus Virtual
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Entornos de desarrollo
 Para editar, compilar y probar el código del programa
 Recomendaciones:
— Windows: MS Visual Studio / C++ Express o Eclipse
— Linux: Netbeans o Eclipse
Página 43
Instalación y uso:
Sección
Herramientas de desarrollo
en el Campus Virtual
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
¿Qué hace el programa?
 La ejecución del programa siempre empieza en main()
 Se ejecutan las instrucciones en secuencia de principio a fin
Página 44
_
Hola Mundo!
Pantalla (cout)
_
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 << "Hola Mundo!" << endl;
Inicio
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Página 45
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
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 (noestrictamente 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
Página 46
Fundamentos de la programación: Computadoras y programación
Luis
Hernández
Yáñez
Licencia CC (Creative Commons)
Este tipo de licencias ofrecen algunos derechos a terceras personas
bajo ciertas condiciones.
Este documento tiene establecidas las siguientes:
Pulsa en la imagen de arriba a la derecha para saber más.
Fundamentos de la programación: Computadoras y programación Página 47
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.

Más contenido relacionado

Similar a FP01 (1).pptx

Representación de datos Hardware y Software
Representación de datosHardware y SoftwareRepresentación de datosHardware y Software
Representación de datos Hardware y SoftwareCarlos Medina Raymundo
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informáticaJeckson Loza
 
Conceptos basicos de programacion
Conceptos basicos de programacionConceptos basicos de programacion
Conceptos basicos de programacionBarbara brice?
 
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAIsaias Castro
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andesbarrios
 
INTRODUCCIÓN A LA COMPUTACIÓN
INTRODUCCIÓN A LA COMPUTACIÓNINTRODUCCIÓN A LA COMPUTACIÓN
INTRODUCCIÓN A LA COMPUTACIÓNOctavio Arias
 
Clase 6 introduccion_a_la_programacion
Clase 6 introduccion_a_la_programacionClase 6 introduccion_a_la_programacion
Clase 6 introduccion_a_la_programacionDr.Ing. Uriel
 
Conceptos fundamentales de la informática
Conceptos fundamentales de la informática Conceptos fundamentales de la informática
Conceptos fundamentales de la informática Agostina Rivera
 
Arquitectura de los ordenadores
Arquitectura de los ordenadores Arquitectura de los ordenadores
Arquitectura de los ordenadores cjimpin
 
Arquitectura de los ordenadores
Arquitectura de los ordenadores Arquitectura de los ordenadores
Arquitectura de los ordenadores mbauter
 
Introducion a la informatica
Introducion a la informaticaIntroducion a la informatica
Introducion a la informaticaleoja3485
 
Funadamentos de computacion
Funadamentos de computacionFunadamentos de computacion
Funadamentos de computacionEduardo Uvidia
 

Similar a FP01 (1).pptx (20)

Representación de datos Hardware y Software
Representación de datosHardware y SoftwareRepresentación de datosHardware y Software
Representación de datos Hardware y Software
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
 
Tema1
Tema1Tema1
Tema1
 
Tema1.ppt
Tema1.pptTema1.ppt
Tema1.ppt
 
Conceptos basicos de programacion
Conceptos basicos de programacionConceptos basicos de programacion
Conceptos basicos de programacion
 
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andes
 
Computacion
ComputacionComputacion
Computacion
 
INTRODUCCIÓN A LA COMPUTACIÓN
INTRODUCCIÓN A LA COMPUTACIÓNINTRODUCCIÓN A LA COMPUTACIÓN
INTRODUCCIÓN A LA COMPUTACIÓN
 
Tema1
Tema1Tema1
Tema1
 
Clase 6 introduccion_a_la_programacion
Clase 6 introduccion_a_la_programacionClase 6 introduccion_a_la_programacion
Clase 6 introduccion_a_la_programacion
 
Informática básica 2011
Informática básica 2011Informática básica 2011
Informática básica 2011
 
Conceptos fundamentales de la informática
Conceptos fundamentales de la informática Conceptos fundamentales de la informática
Conceptos fundamentales de la informática
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Arquitectura de los ordenadores
Arquitectura de los ordenadores Arquitectura de los ordenadores
Arquitectura de los ordenadores
 
Arquitectura de los ordenadores
Arquitectura de los ordenadores Arquitectura de los ordenadores
Arquitectura de los ordenadores
 
Introducción a la Informática
Introducción a la InformáticaIntroducción a la Informática
Introducción a la Informática
 
Introducion a la informatica
Introducion a la informaticaIntroducion a la informatica
Introducion a la informatica
 
Funadamentos de computacion
Funadamentos de computacionFunadamentos de computacion
Funadamentos de computacion
 

Más de DanielHidalgo92

circuitoscombinaciones-ejercicio.ppt
circuitoscombinaciones-ejercicio.pptcircuitoscombinaciones-ejercicio.ppt
circuitoscombinaciones-ejercicio.pptDanielHidalgo92
 
DISEñO-DE-PAGINAS-CON-HTML.pdf
DISEñO-DE-PAGINAS-CON-HTML.pdfDISEñO-DE-PAGINAS-CON-HTML.pdf
DISEñO-DE-PAGINAS-CON-HTML.pdfDanielHidalgo92
 
Diseño de Paginas WEB (1).ppt
Diseño de Paginas WEB (1).pptDiseño de Paginas WEB (1).ppt
Diseño de Paginas WEB (1).pptDanielHidalgo92
 
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdf
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdfProgramación Orientada Objetos. Estructuras de control if, If else, switch.pdf
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdfDanielHidalgo92
 
adaptadoresdered-100330143121-phpapp02.pdf
adaptadoresdered-100330143121-phpapp02.pdfadaptadoresdered-100330143121-phpapp02.pdf
adaptadoresdered-100330143121-phpapp02.pdfDanielHidalgo92
 
estructurascondicionales-180528201514.pptx
estructurascondicionales-180528201514.pptxestructurascondicionales-180528201514.pptx
estructurascondicionales-180528201514.pptxDanielHidalgo92
 
modems-e-interfaces.pptx
modems-e-interfaces.pptxmodems-e-interfaces.pptx
modems-e-interfaces.pptxDanielHidalgo92
 
informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxDanielHidalgo92
 

Más de DanielHidalgo92 (16)

desarrollo_ide (1).ppt
desarrollo_ide (1).pptdesarrollo_ide (1).ppt
desarrollo_ide (1).ppt
 
2028.pptx
2028.pptx2028.pptx
2028.pptx
 
circuitoscombinaciones-ejercicio.ppt
circuitoscombinaciones-ejercicio.pptcircuitoscombinaciones-ejercicio.ppt
circuitoscombinaciones-ejercicio.ppt
 
Matricez.pptx
Matricez.pptxMatricez.pptx
Matricez.pptx
 
DISEñO-DE-PAGINAS-CON-HTML.pdf
DISEñO-DE-PAGINAS-CON-HTML.pdfDISEñO-DE-PAGINAS-CON-HTML.pdf
DISEñO-DE-PAGINAS-CON-HTML.pdf
 
Diseño de Paginas WEB (1).ppt
Diseño de Paginas WEB (1).pptDiseño de Paginas WEB (1).ppt
Diseño de Paginas WEB (1).ppt
 
Teoria_del_Color.pptx
Teoria_del_Color.pptxTeoria_del_Color.pptx
Teoria_del_Color.pptx
 
desarrollo_ide.ppt
desarrollo_ide.pptdesarrollo_ide.ppt
desarrollo_ide.ppt
 
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdf
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdfProgramación Orientada Objetos. Estructuras de control if, If else, switch.pdf
Programación Orientada Objetos. Estructuras de control if, If else, switch.pdf
 
adaptadoresdered-100330143121-phpapp02.pdf
adaptadoresdered-100330143121-phpapp02.pdfadaptadoresdered-100330143121-phpapp02.pdf
adaptadoresdered-100330143121-phpapp02.pdf
 
Switch_Presentation.ppt
Switch_Presentation.pptSwitch_Presentation.ppt
Switch_Presentation.ppt
 
intro_web.ppt
intro_web.pptintro_web.ppt
intro_web.ppt
 
estructurascondicionales-180528201514.pptx
estructurascondicionales-180528201514.pptxestructurascondicionales-180528201514.pptx
estructurascondicionales-180528201514.pptx
 
modems-e-interfaces.pptx
modems-e-interfaces.pptxmodems-e-interfaces.pptx
modems-e-interfaces.pptx
 
informatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptxinformatica_iv_-_unidad_2._algoritmos.pptx
informatica_iv_-_unidad_2._algoritmos.pptx
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 

Último

ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVAS
ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVASETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVAS
ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVASJohnAyerbe1
 
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptxMarcoAndresAguileraP1
 
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADO
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADOCRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADO
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADOsandyrod868
 
Mapa Mental de la Republica Bolivariana de Venezuela
Mapa Mental de la Republica Bolivariana de VenezuelaMapa Mental de la Republica Bolivariana de Venezuela
Mapa Mental de la Republica Bolivariana de Venezuelajosecuevas155469
 
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptx
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptxLESIONES POR HECHOS DE TRANSITO TERRESTRE.pptx
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptxLICCARLOSJESSCEBALLO
 
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docx
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docxINFORME FINAL DERECHO ADMINISTRATIVO-2024.docx
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docxOSWALDOALBERTOTELLOA
 
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docx
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docxDERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docx
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docxOSWALDOALBERTOTELLOA
 
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdf
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdfAprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdf
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdfkingejhoelnahui
 
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdf
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdfMANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdf
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdfPedroVera82
 
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...GiovanninaAndreaOjed
 
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...XiomaraPereyra
 
Informe de Amnistía Internacional sobre ejecuciones y penas de muerte
Informe de Amnistía Internacional sobre ejecuciones y penas de muerteInforme de Amnistía Internacional sobre ejecuciones y penas de muerte
Informe de Amnistía Internacional sobre ejecuciones y penas de muerte20minutos
 
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdf
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdfLey N° 6006 - Código Tributario Provincial 2024 actualizado.pdf
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdfmatiasramirezghio
 
Causas del Rezago Educativo en México.pptx
Causas del Rezago Educativo en México.pptxCausas del Rezago Educativo en México.pptx
Causas del Rezago Educativo en México.pptxyesicamoreel
 

Último (14)

ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVAS
ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVASETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVAS
ETAPAS DEL PROCESO PENAL COMÚN DIAPOSITIVAS
 
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx
4_ppt_derecho_comercial_i_sujetos_de_derecho_comercial.pptx
 
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADO
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADOCRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADO
CRIMINOLOGÍA, INVESTIGACION,TIPOS,CRIMEN ORGANIZADO
 
Mapa Mental de la Republica Bolivariana de Venezuela
Mapa Mental de la Republica Bolivariana de VenezuelaMapa Mental de la Republica Bolivariana de Venezuela
Mapa Mental de la Republica Bolivariana de Venezuela
 
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptx
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptxLESIONES POR HECHOS DE TRANSITO TERRESTRE.pptx
LESIONES POR HECHOS DE TRANSITO TERRESTRE.pptx
 
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docx
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docxINFORME FINAL DERECHO ADMINISTRATIVO-2024.docx
INFORME FINAL DERECHO ADMINISTRATIVO-2024.docx
 
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docx
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docxDERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docx
DERECHO ADMINISTRATIVO-INFORME-II-AVANCE.docx
 
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdf
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdfAprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdf
Aprendizaje Social - Albert Bandura (1)_compressed (2)_compressed.pdf
 
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdf
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdfMANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdf
MANUAL DEL DEFENSOR JURÍDICO DEL VOTO.pdf
 
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...
PPT-LEY-KARIN.pdf MODIFICACION CÓDIGO TRABAJO ACOSO SEXUAL LABORAL Y VIOLENCI...
 
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...
MODELO ESCRITO JUDICIAL PARA OFRECER MEDIOS DE PRUEBA EXTEMPORÁNEOS - AUTOR J...
 
Informe de Amnistía Internacional sobre ejecuciones y penas de muerte
Informe de Amnistía Internacional sobre ejecuciones y penas de muerteInforme de Amnistía Internacional sobre ejecuciones y penas de muerte
Informe de Amnistía Internacional sobre ejecuciones y penas de muerte
 
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdf
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdfLey N° 6006 - Código Tributario Provincial 2024 actualizado.pdf
Ley N° 6006 - Código Tributario Provincial 2024 actualizado.pdf
 
Causas del Rezago Educativo en México.pptx
Causas del Rezago Educativo en México.pptxCausas del Rezago Educativo en México.pptx
Causas del Rezago Educativo en México.pptx
 

FP01 (1).pptx

  • 1. Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad Complutense Fundamentos de la programación 1
  • 2. Luis Hernández Yáñez Informática, computadoras y programación 3 Lenguaje máquina y ensamblador 12 Lenguajes de programación de alto nivel 15 Un poco de historia 19 Programación e Ingeniería del Software 24 El lenguaje de programación C++ 27 Sintaxis de los lenguajes de programación 30 Un primer programa en C++ 35 Herramientas de desarrollo 39 C++: Un mejor C 45 Fundamentos de la programación: Computadoras y programación
  • 3. Luis Hernández Yáñez Página 3 Fundamentos de la programación: Computadoras y programación
  • 4. Luis Hernández Yáñez Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores Computadora Máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas matemáticos y lógicos mediante la ejecución de programas informáticos Página 4 Fundamentos de la programación: Computadoras y programación
  • 5. Luis Hernández Yáñez En todas partes y con muchas formas Página 5 Fundamentos de la programación: Computadoras y programación
  • 6. Luis Hernández Yáñez Hardware Componentes que integran la parte material de una computadora Software Programas, instrucciones y reglas informáticas para ejecutar tareas en una computadora Página 6 Fundamentos de la programación: Computadoras y programación
  • 7. Luis Hernández Yáñez Programar Indicar a la computadora qué es lo que tiene que hacer Programa  Secuencia de instrucciones  Instrucciones que entiende la computadora  Y que persiguen un objetivo: ¡resolver un problema! Página 7 Fundamentos de la programación: Computadoras y programación
  • 8. Luis Hernández Yáñez Trabajo en equipo Múltiples roles...  Gestores  Analistas  Diseñadores  Programadores  Probadores  Administradores de sistemas ... Página 8 Fundamentos de la programación: Computadoras y programación Parque Jurásico
  • 9. Luis Hernández Yáñez Esquema general Página 9 Fundamentos de la programación: Computadoras y programación Memoria temporal Almacenamiento permanente Dispositivos de entrada Teclado Ratón Escáner Táctil … Dispositivos de salida Monitor Impresora Altavoz … Unidad Central de Proceso Central Processor Unit C.P.U.
  • 10. Luis Hernández Yáñez La arquitectura de Von Neumann Página 10 Fundamentos de la programación: Computadoras y programación 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 (Wikipedia)
  • 11. Luis Hernández Yáñez La memoria Página 11 Fundamentos de la programación: Computadoras y programación Memoria Bus de datos 01 02 03 04 05 06 07 08 . . . Dirección Cada celda en una dirección Celdas de 8 / 16 / 32 / 64 bits 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
  • 12. Luis Hernández Yáñez Página 12 Fundamentos de la programación: Computadoras y programación
  • 13. Luis Hernández Yáñez 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ón Significado 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 Página 13 Fundamentos de la programación: Computadoras y programación Lenguaje de bajo nivel Dependiente de la máquina Programación difícil
  • 14. Luis Hernández Yáñez Nemotécnicos para los códigos hexadecimales: A0  READ 3E  REG 1D  ADD … Mayor legibilidad: READ 2F REG 01 READ 30 REG 02 ADD WRITE 31 Lenguaje de nivel medio Página 14 Fundamentos de la programación: Computadoras y programación Código objeto (lenguaje máquina) Programa ensamblador Código fuente (lenguaje ensamblador)
  • 15. Luis Hernández Yáñez Página 15 Fundamentos de la programación: Computadoras y programación
  • 16. Luis Hernández Yáñez  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 procedimental Página 16 Fundamentos de la programación: Computadoras y programación
  • 17. Luis Hernández Yáñez Traducción Compiladores: Compilan y enlazan programas completos Intérpretes: Compilan, enlazan y ejecutan instrucción a instrucción Página 17 Fundamentos de la programación: Computadoras y programación Compilador Enlazador Código objeto de biblioteca Código fuente #include <iostream> using namespace std; int main() { cout << "Hola Mundo!" << endl; return 0; } Código objeto 0100010100111010011100… Programa ejecutable Para una arquitectura concreta y un sistema operativo
  • 18. Luis Hernández Yáñez Genealogía de lenguajes Página 18 Fundamentos de la programación: Computadoras y programación BASIC 1964 Logo 1968 Ruby 1993 Python 1991 Eiffel 1986 Modula 1975 Fuente: http://www.levenez.com/lang/ Versiones / Estándares Prolog 1970 Haskell 1987 C# 2000 Java 1995 C++ 1983 Smalltalk 1971 Scheme 1975 PL/I 1964 Simula 1964 Ada 1979 C 1971 Pascal 1970 CPL 1963 COBOL 1959 ALGOL 1958 FORTRAN 1954 Lisp 1958
  • 19. Luis Hernández Yáñez Página 19 Fundamentos de la programación: Computadoras y programación
  • 20. Luis Hernández Yáñez La prehistoria El ábaco Siglo XIX Máquina analítica de Charles Babbage Página 20 Fundamentos de la programación: Computadoras y programación Lady Ada Lovelace es considerada la primera programadora (Wikipedia)
  • 21. Luis Hernández Yáñez Siglo 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 Página 21 Fundamentos de la programación: Computadoras y programación ENIAC (Wikipedia)
  • 22. Luis Hernández Yáñez 1975 Se funda Microsoft 1976 Se funda Apple 1979 Juego Pacman 1981 IBM PC Sistema operativo MS-DOS 1983 Lenguaje de programación C++ 1984 CD-ROM 1985 Windows 1.0 1990 Lenguaje HTML World Wide Web 1991 Sistema operativo Linux Página 22 Fundamentos de la programación: Computadoras y programación Apple II (Wikipedia) IBM PC (Wikipedia) Linux
  • 23. Luis Hernández Yáñez 1992 Windows 3.1 1995 Lenguaje de programación Java DVD 1998 Se funda Google 1999 MSN Messenger Siglo XXI 2001 Windows XP Mac OS X 2002 Mozilla Firefox 2007 iPhone 2008 Android ... Página 23 Fundamentos de la programación: Computadoras y programación
  • 24. Luis Hernández Yáñez Página 24 Fundamentos de la programación: Computadoras y programación
  • 25. Luis Hernández Yáñez ¿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 un rendimiento aceptable Programa: Transforma entrada en salida Algoritmo: Secuencia de pasos y operaciones que debe realizar el programa para resolver el problema El programa implementa el algoritmo en un lenguaje concreto Salida Programa Página 25 Fundamentos de la programación: Computadoras y programación Entrada
  • 26. Luis Hernández Yáñez La programación es sólo una etapa del proceso de desarrollo Modelo de desarrollo “en cascada”: Página 26 Fundamentos de la programación: Computadoras y programación Mantenimiento Prueba y depuración Programación Diseño Análisis Planificación Recursos necesarios, presupuesto, plan, … ¿Qué? ¿Cómo? Implementación
  • 27. Luis Hernández Yáñez Página 27 Fundamentos de la programación: Computadoras y programación
  • 28. Luis Hernández Yáñez Bjarne Stroustrup (1983) #include <iostream> using namespace std; int main() { cout << "Hola Mundo!" << endl; // Muestra Hola Mundo! return 0; } Página 28 Fundamentos de la programación: Computadoras y programación Hola Mundo!
  • 29. Luis Hernández Yáñez Instrucciones Datos: literales, variables, tipos Subprogramas (funciones) Comentarios Directivas ... Fundamentos de la programación: Computadoras y programación Página 29 #include <iostream> using namespace std; int main() { cout << "Hola Mundo!" << endl; // Muestra Hola Mundo! return 0; } Directiva Subprograma Comentario Instrucción Instrucción Dato Dato
  • 30. Luis Hernández Yáñez Página 30 Fundamentos de la programación: Computadoras y programación
  • 31. Luis Hernández Yáñez Sintaxis y semántica de los lenguajes Sintaxis — Reglas que determinan cómo se pueden construir y secuenciar los elementos del lenguaje Semántica — Significado de cada elemento del lenguaje ¿Para qué sirve? Fundamentos de la programación: Computadoras y programación Página 31
  • 32. Luis Hernández Yáñez Especificación  Lenguajes (BNF)  Diagramas Fundamentos de la programación: Computadoras y programación Página 32 <numero entero> ::= <signo opcional><secuencia de dígitos> <signo opcional> ::= +|-|<nada> <secuencia de dígitos> ::= <dígito>|<dígito><secuencia de dígitos> <dígito> ::= 0|1|2|3|4|5|6|7|8|9 <nada> ::= BNF | significa ó +23  -159  1374  1-34  3.4  002  Ejemplo: Números enteros (sin decimales) + 0 .. 9 -
  • 33. Luis Hernández Yáñez Fundamentos de la programación: Computadoras y programación Página 33 <numero entero> ::= <signo opcional><secuencia de dígitos> <signo opcional> ::= +|-|<nada> <secuencia de dígitos> ::= <dígito>|<dígito><secuencia de dígitos> <dígito> ::= 0|1|2|3|4|5|6|7|8|9 <nada> ::= +23 <numero entero> ::= <signo opcional><secuencia de dígitos> ::= +<secuencia de dígitos> ::= +<dígito><secuencia de dígitos> ::= +2<secuencia de dígitos> ::= +2<dígito> ::= +23 1374 <numero entero> ::= <signo opcional><secuencia de dígitos> ::= <secuencia de dígitos> ::= <dígito><secuencia de dígitos> ::= 1<secuencia de dígitos> ::= 1<dígito><secuencia de dígitos> ::= 13<secuencia de dígitos> ::= 13<dígito><secuencia de dígitos> ::= 137<secuencia de dígitos> ::= 137<dígito> ::= 1374 1-34 <numero entero> ::= <signo opcional><secuencia de dígitos> ::= <secuencia de dígitos> ::= <dígito><secuencia de dígitos> ::= 1<secuencia de dígitos> ::= ERROR (- no es <dígito>)   
  • 34. Luis Hernández Yáñez Fundamentos de la programación: Computadoras y programación Página 34 +23  137  4 1-  ? +23 1374 1-34 + 0 .. 9 + + - - - 0 .. 9 0 .. 9
  • 35. Luis Hernández Yáñez Página 35 Fundamentos de la programación: Computadoras y programación
  • 36. Luis Hernández Yáñez Hola Mundo! Un programa que muestra un saludo en la pantalla: #include <iostream> using namespace std; int main() // main() es donde empieza la ejecución { cout << "Hola Mundo!" << endl; // Muestra Hola Mundo! return 0; } Página 36 Fundamentos de la programación: Computadoras y programación
  • 37. Luis Hernández Yáñez Análisis del programa #include <iostream> using namespace std; int main() { cout << "Hola Mundo!" << endl; return 0; } Página 37 Las instrucciones terminan en ; Fundamentos de la programación: Computadoras y programación Directiva Instrucción Declaración Instrucción Instrucción Biblioteca Espacio de nombres Palabras reservadas Tipo Datos literales Cuerpo de la función Cabecera de la función Bloque de código Cadena de caracteres Constante Operador Operador Variable Número Coloreado sintáctico
  • 38. Luis Hernández Yáñez Hola Mundo! Casi todo es infraestructura Sólo cout << "Hola Mundo!" << endl hace algo palpable La infraestructura (notación, bibliotecas y otro soporte) hace nuestro código simple, completo, confiable y eficiente ¡El estilo importa! Página 38 Fundamentos de la programación: Computadoras y programación
  • 39. Luis Hernández Yáñez Página 39 Fundamentos de la programación: Computadoras y programación
  • 40. Luis Hernández Yáñez Editor  Bloc de notas, Wordpad, Word, Writer, Gedit, Kwrite, … (texto simple, sin formatos)  Editores específicos: coloreado sintáctico  Recomendación: Notepad++ Página 40 Instalación y uso: Sección Herramientas de desarrollo en el Campus Virtual Fundamentos de la programación: Computadoras y programación
  • 41. Luis Hernández Yáñez Página 41 Fundamentos de la programación: Computadoras y programació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
  • 42. Luis Hernández Yáñez Compilador  Importante: C++ estándar  Recomendación: GNU G++ (MinGW en Windows) Página 42 Instalación y uso: Sección Herramientas de desarrollo en el Campus Virtual Fundamentos de la programación: Computadoras y programación
  • 43. Luis Hernández Yáñez Entornos de desarrollo  Para editar, compilar y probar el código del programa  Recomendaciones: — Windows: MS Visual Studio / C++ Express o Eclipse — Linux: Netbeans o Eclipse Página 43 Instalación y uso: Sección Herramientas de desarrollo en el Campus Virtual Fundamentos de la programación: Computadoras y programación
  • 44. Luis Hernández Yáñez ¿Qué hace el programa?  La ejecución del programa siempre empieza en main()  Se ejecutan las instrucciones en secuencia de principio a fin Página 44 _ Hola Mundo! Pantalla (cout) _ 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 << "Hola Mundo!" << endl; Inicio Fundamentos de la programación: Computadoras y programación
  • 45. Luis Hernández Yáñez Página 45 Fundamentos de la programación: Computadoras y programación
  • 46. Luis Hernández Yáñez 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 (noestrictamente 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 Página 46 Fundamentos de la programación: Computadoras y programación
  • 47. Luis Hernández Yáñez Licencia CC (Creative Commons) Este tipo de licencias ofrecen algunos derechos a terceras personas bajo ciertas condiciones. Este documento tiene establecidas las siguientes: Pulsa en la imagen de arriba a la derecha para saber más. Fundamentos de la programación: Computadoras y programación Página 47 Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría. No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales. Compartir igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.

Notas del editor

  1. Preguntar qué creen ellos que es la Informática o una computadora.
  2. ¿Qué es el hardware? ¿Qué es el software?
  3. ¿Qué es programar?
  4. Imagen distorsionada (¿o no?)
  5. La máquina analítica no se llegó a terminar tras numerosas versiones entre 1816 y 1872. Utilizaría tarjetas perforadas. Ada Lovelace describió la forma de programar la máquina analítica. Hija de Lord Byron.
  6. Turing (1912): Enigma, I.A. (test de Turing), morfogénesis. ENIAC: 167 m2, 27 Tm, 6.000 interruptores IBM 360: terminales remotos ARPANET: DoD
  7. UNIX: Ken Thompson y Dennis Ritchie Pascal: Niklaus Wirth Creeper: autoreplicante (experimental) C: Dennis Ritchie MS: Bill Gates y Paul Allen (hoy Steve Ballmer) Apple: Steve Jobs y Steve Wozniak
  8. Java: SUN Microsystems Google: Larry Page