SlideShare una empresa de Scribd logo
Conceptos básicos sobre
programación
Sesión 01
Conceptos básicos sobre programación
• Un programa es un conjunto de órdenes para un ordenador.
• Estas órdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de
comprender.
• El problema es que los lenguajes que realmente entienden los ordenadores resultan
difíciles para nosotros, porque son muy distintos de los que nosotros empleamos
habitualmente para hablar. Escribir programas en el lenguaje que utiliza internamente
el ordenador (llamado “lenguaje máquina” o “código máquina”) es un trabajo duro,
tanto a la hora de crear el programa como (especialmente) en el momento de
corregir algún fallo o mejorar lo que se hizo.
Conceptos básicos sobre programación
• Por eso, en la práctica se emplean lenguajes más parecidos al lenguaje humano,
llamados “lenguajes de alto nivel”. Normalmente, estos son muy parecidos al
idioma inglés, aunque siguen unas reglas mucho más estrictas.
Lenguajes de alto nivel y de bajo
nivel
• Vamos a ver en primer lugar algún ejemplo de lenguaje de alto nivel, para
después comparar con lenguajes de bajo nivel, que son los más cercanos al
ordenador.
• Uno de los lenguajes de alto nivel más sencillos es el lenguaje BASIC. En este
lenguaje, escribir el texto Hola en pantalla, sería tan sencillo como usar la orden
Lenguajes de alto nivel y de bajo
nivel
• Otros lenguajes, como Pascal, nos obligan a ser algo más estrictos, pero a cambio
hacen más fácil descubrir errores:
Lenguajes de alto nivel y de bajo
nivel
• El equivalente en lenguaje C resulta algo más difícil de leer, por motivos que
iremos comentando un poco más adelante:
Lenguajes de alto nivel y de bajo
nivel
• Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes
humanos. Eso hace que sean más difíciles de aprender y también que los fallos
sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al
máximo la velocidad (si sabemos cómo), e incluso llegar a un nivel de control del
ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo,
escribir Hola en lenguaje ensamblador de un ordenador equipado con el sistema
operativo MsDos y con un procesador de la familia Intel x86 sería algo como
Lenguajes de alto nivel y de bajo
nivel
Lenguajes de alto nivel y de bajo
nivel
• Resulta bastante más difícil de seguir. Pero eso todavía no es lo que el ordenador
entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador
realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo,
las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar)
se convertirían a lo siguiente:
Lenguajes de alto nivel y de bajo
nivel
•Nota: los colores de los ejemplos anteriores
son una ayuda que nos dan algunos entornos
de programación, para que nos sea más fácil
descubrir errores.
Ensambladores, compiladores e
intérpretes
• Está claro entonces que las órdenes que nosotros hemos escrito (lo que se
conoce como “programa fuente”) deben convertirse a lo que el ordenador
comprende (obteniendo el “programa ejecutable”).
• Si elegimos un lenguaje de bajo nivel, como el ensamblador (en inglés Assembly,
abreviado como Asm), la traducción es sencilla, y de hacer esa traducción se
encargan unas herramientas llamadas ensambladores (en inglés Assembler).
Ensambladores, compiladores e
intérpretes
• Cuando el lenguaje que hemos empleado es de alto nivel,
la traducción es más complicada, y a veces implicará
también recopilar varias fuentes distintos o incluir
posibilidades que se encuentran en bibliotecas que no
hemos preparado nosotros. Las herramientas encargadas
de todo esto son los compiladores.
Ensambladores, compiladores e
intérpretes
• El programa ejecutable obtenido con el compilador o el ensamblador se podría hacer
funcionar en otro ordenador similar al que habíamos utilizado para crearlo, sin necesidad
de que ese otro ordenador tenga instalado el compilador o el ensamblador.
• Por ejemplo, en el caso de Windows (y de MsDos), y del programa que nos saluda en
lenguaje Pascal, tendríamos un fichero fuente llamado SALUDO.PAS. Este fichero no
serviría de nada en un ordenador que no tuviera un compilador de Pascal. En cambio,
después de compilarlo obtendríamos un fichero SALUDO.EXE, capaz de funcionar en
cualquier otro ordenador que tuviera el mismo sistema operativo, aunque no tenga un
compilador de Pascal instalado.
Ensambladores, compiladores e
intérpretes
• El programa ejecutable obtenido con el compilador o el ensamblador se podría hacer
funcionar en otro ordenador similar al que habíamos utilizado para crearlo, sin necesidad
de que ese otro ordenador tenga instalado el compilador o el ensamblador.
• Por ejemplo, en el caso de Windows (y de MsDos), y del programa que nos saluda en
lenguaje Pascal, tendríamos un fichero fuente llamado SALUDO.PAS. Este fichero no
serviría de nada en un ordenador que no tuviera un compilador de Pascal. En cambio,
después de compilarlo obtendríamos un fichero SALUDO.EXE, capaz de funcionar en
cualquier otro ordenador que tuviera el mismo sistema operativo, aunque no tenga un
compilador de Pascal instalado.
Ensambladores, compiladores e
intérpretes
• Un intérprete es una herramienta parecida a un compilador, con la
diferencia de que en los intérpretes no se crea ningún “programa
ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos
distribuir nuestro programa a alguien, deberemos entregarle el programa
fuente y también el intérprete que es capaz de entenderlo, o no le servirá
de nada. Cuando ponemos el programa en funcionamiento, el intérprete
de encarga de convertir el programa en lenguaje de alto nivel a código
máquina, orden por orden, justo en el momento en que hay que procesar
cada una de las órdenes.
Ensambladores, compiladores e
intérpretes
• Un intérprete es una herramienta parecida a un compilador, con la
diferencia de que en los intérpretes no se crea ningún “programa
ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos
distribuir nuestro programa a alguien, deberemos entregarle el programa
fuente y también el intérprete que es capaz de entenderlo, o no le servirá
de nada. Cuando ponemos el programa en funcionamiento, el intérprete
de encarga de convertir el programa en lenguaje de alto nivel a código
máquina, orden por orden, justo en el momento en que hay que procesar
cada una de las órdenes.
Ensambladores, compiladores e
intérpretes
• Para algunos lenguajes, es frecuente encontrar
compiladores pero no suele existir intérpretes.
• Es el caso del lenguaje C, de Pascal y de C++, por ejemplo.
En cambio, para otros lenguajes, lo habitual es trabajar
con intérpretes y no con compiladores, como ocurre con
Python, Ruby y PHP.
Ensambladores, compiladores e
intérpretes
• Además, hoy en día existe algo que parece intermedio entre un
compilador y un intérprete:
• Existen lenguajes que no se compilan para obtener un ejecutable
para un ordenador concreto, sino un ejecutable “genérico”, que es
capaz de funcionar en distintos tipos de ordenadores, a condición
de que en ese ordenador exista una “máquina virtual” capaz de
entender esos ejecutables genéricos
Ensambladores, compiladores e
intérpretes
• Esta es la idea que se aplica en Java: los fuentes son ficheros
de texto, con extensión “.java”, que se compilan a ficheros
“.class”. Estos ficheros “.class” se podrían llevar a cualquier
ordenador que tenga instalada una “máquina virtual Java” (las
hay para la mayoría de sistemas operativos). Esta misma idea
se sigue en el lenguaje C#, que se apoya en una máquina
virtual llamada “Dot Net Framework” (algo así como
“armazón punto net”).
Pseudocódigo
• A pesar de que los lenguajes de alto nivel se acercan al
lenguaje natural, que nosotros empleamos, es habitual no usar
ningún lenguaje de programación concreto cuando queremos
plantear los pasos necesarios para resolver un problema, sino
emplear un lenguaje de programación ficticio, no tan estricto,
muchas veces escrito incluso en español. Este lenguaje recibe
el nombre de pseudocódigo
Pseudocódigo
• Esa secuencia de pasos para resolver un problema es lo
que se conoce como algoritmo (realmente hay alguna
condición más, por ejemplo, debe ser un número finito de
pasos). Por tanto, un programa de ordenador es un
algoritmo expresado en un lenguaje de programación
Pseudocódigo
• Por ejemplo, un algoritmo que controlase los pagos que
se realizan en una tienda con tarjeta de crédito, escrito en
pseudocódigo, podría ser:
Pseudocódigo
Ejercicios propuestos 1
•Localizar en Internet el intérprete de Basic
llamado Bywater Basic, en su versión para el
sistema operativo que se esté utilizando y
probar el primer programa de ejemplo que
se ha visto .
Ejercicios propuestos
Ejercicios propuestos 2
•Localizar en Internet el compilador de Pascal
llamado Free Pascal, en su versión para el
sistema operativo que se esté utilizando,
instalarlo y probar el segundo programa de
ejemplo que se ha visto en el apartado.
Ejercicios propuestos 2
Ejercicios propuestos 2
Ejercicios propuestos 3
• Localizar un compilador de C para el sistema
operativo que se esté utilizando (si es Linux o
alguna otra versión de Unix, es fácil que se
encuentre ya instalado) y probar el tercer
programa de ejemplo que se ha visto en el
apartado
Ejercicios propuestos 3
Ejercicios propuestos 3

Más contenido relacionado

La actualidad más candente

Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
CJAO
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Jorge Rodriguez
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPU
romo91
 
Compiladores
CompiladoresCompiladores
Compiladores
mrbelarmino
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
Johann Chambilla
 
Bootstrapping
BootstrappingBootstrapping
Bootstrapping
DIEGO BAROJA
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
Roy Maiguasca Nievez
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
iagardea
 
Compiladores
CompiladoresCompiladores
Compiladores
fabianch78
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
Gustavo Davila
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
LISBETH ALEXANDRA VASQUEZ CIEZA
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
Tensor
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
Leandro Baldomero Callupe Santiago
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
LuiS YmAY
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
Instituto Tecnológico de Tuxtla Gutiérrez
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
RAFAEL HONORES VERA
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
frezko23
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
jtk1
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
Eustakiu Padilla
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
Instituto Tecnológico de Tuxtla Gutiérrez
 

La actualidad más candente (20)

Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPU
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 
Bootstrapping
BootstrappingBootstrapping
Bootstrapping
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretes
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 

Destacado

Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de Programación
Tensor
 
Practica 1
Practica 1Practica 1
Practica 1
Tensor
 
Complementos
ComplementosComplementos
Complementos
Tensor
 
Simulación ok
Simulación okSimulación ok
Simulación ok
Tensor
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
Tensor
 
Variables y tipos de datos - fundamentos de la programación
Variables y tipos de datos -  fundamentos de la programaciónVariables y tipos de datos -  fundamentos de la programación
Variables y tipos de datos - fundamentos de la programación
DesarrolloWeb.com
 
Argumentos. premisas y conclusiones
Argumentos. premisas y conclusionesArgumentos. premisas y conclusiones
Argumentos. premisas y conclusiones
Emmanuel Hernández Muñoz
 

Destacado (7)

Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de Programación
 
Practica 1
Practica 1Practica 1
Practica 1
 
Complementos
ComplementosComplementos
Complementos
 
Simulación ok
Simulación okSimulación ok
Simulación ok
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Variables y tipos de datos - fundamentos de la programación
Variables y tipos de datos -  fundamentos de la programaciónVariables y tipos de datos -  fundamentos de la programación
Variables y tipos de datos - fundamentos de la programación
 
Argumentos. premisas y conclusiones
Argumentos. premisas y conclusionesArgumentos. premisas y conclusiones
Argumentos. premisas y conclusiones
 

Similar a Clase 01

Trabajo de software
Trabajo de softwareTrabajo de software
Trabajo de software
fabio crtez
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
947369
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
947369
 
Trabajo De Software
Trabajo De SoftwareTrabajo De Software
Trabajo De Software
fabio augusto cortez
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Urso de pascal por nacho cabanes
Urso de pascal por nacho cabanesUrso de pascal por nacho cabanes
Urso de pascal por nacho cabanes
Erick653
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
947369
 
Programacion
ProgramacionProgramacion
Programacion
martinalvarado96
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT
jose chavez
 
Capítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidadesCapítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidades
Julio Ayala Rolón
 
1.introduccion a la programación
1.introduccion a la programación1.introduccion a la programación
1.introduccion a la programación
Marina Vintimilla
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lectura
acdurcor
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
Daniela Brignolo
 
Programación
ProgramaciónProgramación
Programación
kunr
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
leidychavarria
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje C
degarden
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacion
Fausto Orozco
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
Fausto Orozco
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
Alessandro Viera
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandez
Rafael Hernandez
 

Similar a Clase 01 (20)

Trabajo de software
Trabajo de softwareTrabajo de software
Trabajo de software
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Trabajo De Software
Trabajo De SoftwareTrabajo De Software
Trabajo De Software
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Urso de pascal por nacho cabanes
Urso de pascal por nacho cabanesUrso de pascal por nacho cabanes
Urso de pascal por nacho cabanes
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Programacion
ProgramacionProgramacion
Programacion
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT
 
Capítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidadesCapítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidades
 
1.introduccion a la programación
1.introduccion a la programación1.introduccion a la programación
1.introduccion a la programación
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lectura
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Programación
ProgramaciónProgramación
Programación
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje C
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacion
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacion
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandez
 

Más de Tensor

Libertad
LibertadLibertad
Libertad
Tensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
Tensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
Tensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
Tensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
Tensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
Tensor
 
Game maker
Game makerGame maker
Game maker
Tensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
Tensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
Tensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
Tensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
Tensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
Tensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
Tensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
Tensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
Tensor
 
Ondas em
Ondas emOndas em
Ondas em
Tensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
Tensor
 

Más de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Último

Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
romina395894
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
Ruth Noemí Soto Villegas
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Alejandrino Halire Ccahuana
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
ruthmatiel1
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
shirherrer
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Ani Ann
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Ani Ann
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
arianet3011
 
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdfPOESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
karlavasquez49
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Vida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.pptVida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.ppt
LinoLatella
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
MiNeyi1
 

Último (20)

Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
Lecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docxLecciones 11 Esc. Sabática. El conflicto inminente docx
Lecciones 11 Esc. Sabática. El conflicto inminente docx
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
 
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdfPOESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
POESÍA POR EL DIA DEL PADREEEEEEEEEE.pdf
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Vida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.pptVida, obra y pensamiento de Kant I24.ppt
Vida, obra y pensamiento de Kant I24.ppt
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
 

Clase 01

  • 2. Conceptos básicos sobre programación • Un programa es un conjunto de órdenes para un ordenador. • Estas órdenes se le deben dar en un cierto lenguaje, que el ordenador sea capaz de comprender. • El problema es que los lenguajes que realmente entienden los ordenadores resultan difíciles para nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar. Escribir programas en el lenguaje que utiliza internamente el ordenador (llamado “lenguaje máquina” o “código máquina”) es un trabajo duro, tanto a la hora de crear el programa como (especialmente) en el momento de corregir algún fallo o mejorar lo que se hizo.
  • 3. Conceptos básicos sobre programación • Por eso, en la práctica se emplean lenguajes más parecidos al lenguaje humano, llamados “lenguajes de alto nivel”. Normalmente, estos son muy parecidos al idioma inglés, aunque siguen unas reglas mucho más estrictas.
  • 4. Lenguajes de alto nivel y de bajo nivel • Vamos a ver en primer lugar algún ejemplo de lenguaje de alto nivel, para después comparar con lenguajes de bajo nivel, que son los más cercanos al ordenador. • Uno de los lenguajes de alto nivel más sencillos es el lenguaje BASIC. En este lenguaje, escribir el texto Hola en pantalla, sería tan sencillo como usar la orden
  • 5. Lenguajes de alto nivel y de bajo nivel • Otros lenguajes, como Pascal, nos obligan a ser algo más estrictos, pero a cambio hacen más fácil descubrir errores:
  • 6. Lenguajes de alto nivel y de bajo nivel • El equivalente en lenguaje C resulta algo más difícil de leer, por motivos que iremos comentando un poco más adelante:
  • 7. Lenguajes de alto nivel y de bajo nivel • Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes humanos. Eso hace que sean más difíciles de aprender y también que los fallos sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al máximo la velocidad (si sabemos cómo), e incluso llegar a un nivel de control del ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo, escribir Hola en lenguaje ensamblador de un ordenador equipado con el sistema operativo MsDos y con un procesador de la familia Intel x86 sería algo como
  • 8. Lenguajes de alto nivel y de bajo nivel
  • 9. Lenguajes de alto nivel y de bajo nivel • Resulta bastante más difícil de seguir. Pero eso todavía no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes “mov ds, ax” y “mov ah, 9” (en cuyo significado no vamos a entrar) se convertirían a lo siguiente:
  • 10. Lenguajes de alto nivel y de bajo nivel •Nota: los colores de los ejemplos anteriores son una ayuda que nos dan algunos entornos de programación, para que nos sea más fácil descubrir errores.
  • 11. Ensambladores, compiladores e intérpretes • Está claro entonces que las órdenes que nosotros hemos escrito (lo que se conoce como “programa fuente”) deben convertirse a lo que el ordenador comprende (obteniendo el “programa ejecutable”). • Si elegimos un lenguaje de bajo nivel, como el ensamblador (en inglés Assembly, abreviado como Asm), la traducción es sencilla, y de hacer esa traducción se encargan unas herramientas llamadas ensambladores (en inglés Assembler).
  • 12. Ensambladores, compiladores e intérpretes • Cuando el lenguaje que hemos empleado es de alto nivel, la traducción es más complicada, y a veces implicará también recopilar varias fuentes distintos o incluir posibilidades que se encuentran en bibliotecas que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los compiladores.
  • 13. Ensambladores, compiladores e intérpretes • El programa ejecutable obtenido con el compilador o el ensamblador se podría hacer funcionar en otro ordenador similar al que habíamos utilizado para crearlo, sin necesidad de que ese otro ordenador tenga instalado el compilador o el ensamblador. • Por ejemplo, en el caso de Windows (y de MsDos), y del programa que nos saluda en lenguaje Pascal, tendríamos un fichero fuente llamado SALUDO.PAS. Este fichero no serviría de nada en un ordenador que no tuviera un compilador de Pascal. En cambio, después de compilarlo obtendríamos un fichero SALUDO.EXE, capaz de funcionar en cualquier otro ordenador que tuviera el mismo sistema operativo, aunque no tenga un compilador de Pascal instalado.
  • 14. Ensambladores, compiladores e intérpretes • El programa ejecutable obtenido con el compilador o el ensamblador se podría hacer funcionar en otro ordenador similar al que habíamos utilizado para crearlo, sin necesidad de que ese otro ordenador tenga instalado el compilador o el ensamblador. • Por ejemplo, en el caso de Windows (y de MsDos), y del programa que nos saluda en lenguaje Pascal, tendríamos un fichero fuente llamado SALUDO.PAS. Este fichero no serviría de nada en un ordenador que no tuviera un compilador de Pascal. En cambio, después de compilarlo obtendríamos un fichero SALUDO.EXE, capaz de funcionar en cualquier otro ordenador que tuviera el mismo sistema operativo, aunque no tenga un compilador de Pascal instalado.
  • 15. Ensambladores, compiladores e intérpretes • Un intérprete es una herramienta parecida a un compilador, con la diferencia de que en los intérpretes no se crea ningún “programa ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y también el intérprete que es capaz de entenderlo, o no le servirá de nada. Cuando ponemos el programa en funcionamiento, el intérprete de encarga de convertir el programa en lenguaje de alto nivel a código máquina, orden por orden, justo en el momento en que hay que procesar cada una de las órdenes.
  • 16. Ensambladores, compiladores e intérpretes • Un intérprete es una herramienta parecida a un compilador, con la diferencia de que en los intérpretes no se crea ningún “programa ejecutable” capaz de funcionar “por sí solo”, de modo que si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y también el intérprete que es capaz de entenderlo, o no le servirá de nada. Cuando ponemos el programa en funcionamiento, el intérprete de encarga de convertir el programa en lenguaje de alto nivel a código máquina, orden por orden, justo en el momento en que hay que procesar cada una de las órdenes.
  • 17. Ensambladores, compiladores e intérpretes • Para algunos lenguajes, es frecuente encontrar compiladores pero no suele existir intérpretes. • Es el caso del lenguaje C, de Pascal y de C++, por ejemplo. En cambio, para otros lenguajes, lo habitual es trabajar con intérpretes y no con compiladores, como ocurre con Python, Ruby y PHP.
  • 18. Ensambladores, compiladores e intérpretes • Además, hoy en día existe algo que parece intermedio entre un compilador y un intérprete: • Existen lenguajes que no se compilan para obtener un ejecutable para un ordenador concreto, sino un ejecutable “genérico”, que es capaz de funcionar en distintos tipos de ordenadores, a condición de que en ese ordenador exista una “máquina virtual” capaz de entender esos ejecutables genéricos
  • 19. Ensambladores, compiladores e intérpretes • Esta es la idea que se aplica en Java: los fuentes son ficheros de texto, con extensión “.java”, que se compilan a ficheros “.class”. Estos ficheros “.class” se podrían llevar a cualquier ordenador que tenga instalada una “máquina virtual Java” (las hay para la mayoría de sistemas operativos). Esta misma idea se sigue en el lenguaje C#, que se apoya en una máquina virtual llamada “Dot Net Framework” (algo así como “armazón punto net”).
  • 20. Pseudocódigo • A pesar de que los lenguajes de alto nivel se acercan al lenguaje natural, que nosotros empleamos, es habitual no usar ningún lenguaje de programación concreto cuando queremos plantear los pasos necesarios para resolver un problema, sino emplear un lenguaje de programación ficticio, no tan estricto, muchas veces escrito incluso en español. Este lenguaje recibe el nombre de pseudocódigo
  • 21. Pseudocódigo • Esa secuencia de pasos para resolver un problema es lo que se conoce como algoritmo (realmente hay alguna condición más, por ejemplo, debe ser un número finito de pasos). Por tanto, un programa de ordenador es un algoritmo expresado en un lenguaje de programación
  • 22. Pseudocódigo • Por ejemplo, un algoritmo que controlase los pagos que se realizan en una tienda con tarjeta de crédito, escrito en pseudocódigo, podría ser:
  • 24. Ejercicios propuestos 1 •Localizar en Internet el intérprete de Basic llamado Bywater Basic, en su versión para el sistema operativo que se esté utilizando y probar el primer programa de ejemplo que se ha visto .
  • 26. Ejercicios propuestos 2 •Localizar en Internet el compilador de Pascal llamado Free Pascal, en su versión para el sistema operativo que se esté utilizando, instalarlo y probar el segundo programa de ejemplo que se ha visto en el apartado.
  • 29. Ejercicios propuestos 3 • Localizar un compilador de C para el sistema operativo que se esté utilizando (si es Linux o alguna otra versión de Unix, es fácil que se encuentre ya instalado) y probar el tercer programa de ejemplo que se ha visto en el apartado