SlideShare una empresa de Scribd logo
1 de 31
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 compiladoresCJAO
 
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 CPUromo91
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskJohann Chambilla
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Compiladores e intérpretes
Compiladores e intérpretesCompiladores e intérpretes
Compiladores e intérpretesfrezko23
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prevjtk1
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 

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ónTensor
 
Practica 1
Practica 1Practica 1
Practica 1Tensor
 
Complementos
ComplementosComplementos
ComplementosTensor
 
Simulación ok
Simulación okSimulación ok
Simulación okTensor
 
Pseudocodigo
PseudocodigoPseudocodigo
PseudocodigoTensor
 
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ónDesarrolloWeb.com
 

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 softwarefabio crtez
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
Urso de pascal por nacho cabanes
Urso de pascal por nacho cabanesUrso de pascal por nacho cabanes
Urso de pascal por nacho cabanesErick653
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
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 generalidadesJulio 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ónMarina 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 lecturaacdurcor
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Programación
ProgramaciónProgramación
Programaciónkunr
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje Cdegarden
 
1. que es programacion
1. que es programacion1. que es programacion
1. que es programacionFausto Orozco
 
1. Que es programacion
1. Que es programacion1. Que es programacion
1. Que es programacionFausto Orozco
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la ProgramaciónAlessandro Viera
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezRafael 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
 
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
 
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
LibertadTensor
 
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ónTensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colasTensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016Tensor
 
Game maker
Game makerGame maker
Game makerTensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivosTensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenTensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametrosTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricattiTensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioTensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadasTensor
 
Ondas em
Ondas emOndas em
Ondas emTensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticasTensor
 

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

cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

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