Lenguajes de Programación

Lenguajes de Programación
1.Introducción
●
●
●
Los Lenguajes de
programación son aplicaciones
específicas diseñadas para crear otras aplicaciones o
programas. Son programas para crear programas.
Se basan en un sistema de instrucciones preestablecidas
que indican al ordenador lo que debe realizar.
Son códigos integrados compuestos por un vocabulario, con
una sintaxis y una semántica que permite elaborar
infinitas secuencias válidas de tareas e instrucciones

Los lenguaje de programación permiten crear programas
específicos que ofrezcan solución a programas particulares

Para llevar a cabo cualquier tarea, el ordenador necesita
tener información sobre la tarea y un método para ejecutarla

PROGRAMA: conjunto de instrucciones convenientemente
ordenadas que indican al ordenador qué procesos y tareas
debe seguir. Cada una de las instrucciones tiene un función
específica y está escrita en un lenguaje que el ordenador
entiende
Los lenguajes de programación:
Constituyen sistemas de
palabras-órdenes (lengua
o idioma), ya establecidos.
Comprensibles tanto por
el programador como por
la máquina,
Permiten desarrollar
programas
Clasificación de los lenguajes de
programación
a) Lenguajes de Alto-Bajo nivel
b) Lenguajes Interpretados o Compilados
c) Lenguajes clásicos, visuales y de Internet
d) Por el objetivo
Lenguajes interpretados o
compilados
●
●
●
Los LP deben traducirse (excepto el código máquina) para que sean
interpretables (o inteligibles) por el ordenador. Esta traducción puede
hacerse mediante:
Los Lenguajes interpretados, se encargan de realizar la traducción
instrucción a instrucción a la vez que se ejecuta el programa. Son más
lentos, pero mejores cuando el proceso de traducción/ejecución se realiza
en repetidas ocasiones, por lo que son más adecuados para principiantes.
Los Lenguajes compilados traducen el programa entero y luego lo montan
generando un programa ejecutable por si sólo. Una vez compilado el
programa, el compilador no tiene porque estar presente, pudiéndose
transportar el programa ejecutable a cualquier ordenador, sin necesidad de
manejar el compilador.
Lenguajes clásicos, visuales y
Internet

Los Lenguajes clásicos están basados en un lenguaje en el que se escribe el
código necesario para realizar las operaciones que se requieren (posteriormente
será traducido o compilado, generando un programa ejecutable).

Los Lenguajes visuales son más avanzados y están basados en objetos. Cada
entidad del programa (eventos, acciones..) es un objeto sobre el que se definen
operaciones. Estos permiten almacenar los objetos (con todo su código) en una
serie de librerías. Son lenguajes muy intuitivos que sustituyen las líneas de
código por directas representaciones gráficas.

Los Lenguajes de Internet son lenguajes específicos diseñados para la
creación de páginas Web y realizar su programación (motores de búsqueda,
seguridad, establecimiento de comunicaciones…). Son la última generación de
lenguajes. Existen distintos tipos dependiendo del grado de especialización.
Lenguajes por el objetivo
Los programas pueden clasificarse por el objetivo para el que fueron creados:

BASIC, PASCAL: aprendizaje de programación

C y C++: programación de sistemas

COBOL, RPG, Natural: gestión de empresas

FORTRAN: cálculo numérico

CLIPPER, ACESS, Dbase, Delphi, SQL: bases de datos

Visual BASIC, Visual C: programación en Windows

HTLM, JAVA, PERL: Internet (páginas Web)

Lingo: programas multimedia

Prolog, Lisp: Inteligencia Artificial
Actividad
Encuentra como mínimo 3 tipos de lenguajes de programación para
cada una de las clasificaciones de los lenguajes de programación:
a) Lenguajes de Alto-Bajo nivel
b) Lenguajes Interpretados o Compilados
c) Lenguajes clásicos, visuales y de Internet
Envía por correo
Metodología de la
programación:
aspectos básicos
La programación puede ser entendida como un PROCESO DE
SOLUCIÓN DE PROBLEMAS que tiene lugar en dos etapas:
●
●
Obtener la solución del problema. Comprende:
–
un análisis detallado de la situación
–
la búsqueda de tácticas que conduzcan a la solución
Codificar esta información en un lenguaje informático
concreto
El método general de programación
es:
1. PROBLEMA: actividad que no sabemos cómo llevar a cabo
2. INFORME ALGORITMICO: la actividad se analiza en
busca de la forma de resolución. El resultado se plasma en un
informe que contiene:
●
La descripción de la tarea y la enumeración de los
objetivos a conseguir
●
El procedimiento empleado
●
Los recursos y elementos necesarios
●
El algoritmo (la secuencia en la que hay que realizar
cada una de las operaciones)
3. PROGRAMA: el algoritmo, traducido a un lenguaje de
programación específico, se convierte en un programa que el
ordenador puede ejecutar
¿Qué es un algoritmo?
Un método para resolver un problema mediante una serie de
pasos precisos, definidos, finitos
 precisos: indicar el orden de presentación de cada paso
 definidos: si se siguen dos veces se obtiene igual resultado
 finitos: tiene un número determinado de pasos
Una receta de cocina
puede resultar similar
(en cuanto a concepto)
a un algoritmo o
programa
Actividad
Crea 3 Algoritmos con más de 10 pasos siguiendo
los criterios anteriores.
Envía por correo
Creación de un programa
Pasos comunes en la creación de un programa entendido como un
proceso de resolución de problemas:
1. Análisis del problema: definición del problema.
2. Diseño del algoritmo: proceso que convierte los resultados del análisis del
problema en un diseño modular con refinamientos sucesivos que permita
una posterior traducción a un lenguaje
Las herramientas más utilizadas para diseñar algoritmos son:
●
●
Diagramas de flujo: representación gráfica del algoritmo
Pseudocódigo: las instrucciones se escriben en palabra que facilita
tanto la escritura como la lectura de programas
Pseudocódigo
Actividad
●
Realiza ahora los diagramas de flujo de los 3 algoritmos
que has creado anteriormente.
Para crear el diagrama sírvete de la página web:
https://www.draw.io/
Creación de un programa
3.Codificación de un programa: traducción del algoritmo
en un lenguaje de programación.
4.Compilación y ejecución: traducirlo al lenguaje máquina.
Este proceso se realiza mediante el compilador y el
sistema operativo.
5.Verificación y depuración: ejecutar el programa con una
amplia variedad de datos de prueba para determinar si el
programa tiene errores. La depuración es el proceso de
encontrar los errores del programa y corregirlos
Creación de programas
a. Errores de sintaxis: uso incorrecto de las reglas del lenguaje de programación
b. Errores de ejecución: se producen por instrucciones que el ordenador puede comprender pero no ejecutar (por ejemplo,
dividir por cero)
c. Errores lógicos: se producen en la lógica del programa. La fuente de error suele ser el diseño del algoritmo
6. Documentación y mantenimiento: descripciones de los pasos a dar en el proceso de resolución un problema
●
●
Puede ser interna o externa. La documentación interna es la contenida en la línea de comandos (por ejemplo, líneas rem). La
documentación externa incluye el análisis, los diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones
para ejecutar el programa y analizar los resultados…
La documentación es muy importante cuando se desea corregir posibles errores futuros o cambiar el programa. Tales cambios
se denominan mantenimiento del programa. En la propia documentación dentro de los programa suelen utilizarse
comentarios. En la mayoria de los lenguajes de programación como C, C++, Java... Los comentarios suelen seguir a los
caracteres:
●
Después de // si son de una única fila
●
// Esto seria un comentario dentro de una fila
●
Dentro /* y */ si son de varias fila
●
/*Esto seria un comentario
●
dentro de varias filas */
Operadores
Son caracteres especiales que tienen un significado específico o determinado, estos indican al
compilador realizar operaciones matemáticas o lógicas.
Operadores Matemáticos
●
- menos unuario
●
- resta
●
+ suma
●
* producto
●
/ división
●
-- Decremento
●
++ Incremento
●
% módulo
●
= asignación
Operadores
Operadores de Relación
Estos se utilizan dentro de proposiciones del tipo while, if, for; es decir, en estructuras de control .
●
< : menor que
●
> : mayor que
●
<= : menor o igual que
●
>= : mayor o igual que
●
== : igual a
●
!= : distinto de (no igual a)
Operadores Lógicos
●
! : negación -------
not
●
&& : y lógico -------
and
●
|| : o lógico
-------- or
Como escribir un programa en un lenguaje de
programación como C
El Lenguaje C se escribe a partir de un programa principal y de funciones, el programa principal también
es una función (función principal), y se denomina main(), esta debe estar siempre presente y es la
primera en ser llamada.
●
Para hacer un programa en C, lo primero que se debe hacer es crear el programa fuente (con extensión
".c") de la siguiente manera:
●
#include <stdio.h>
#include <stdlib.h>
int main()
{
int c=0;
int b=0;
printf("Ingrese entero");
scanf("%d",&c);
b=c*c;
printf("el cuadrado es %d ", b);
system("PAUSE");
return 0;
}
Actividad
●
Busca 3 entornos de programación para programar en C.
Adjunta una pequeña descripción y capturas de pantalla.
Ejecuta el programa anterior en un entorno de
programación instalado en lliurex. Adjunta captura de
pantalla (Cambia algo el texto para diferenciarlo de tus
compañeros)
●
Cuando se escribe el programa se
recomienda usar el siguiente formato:
1. llamadas a bibliotecas
2. declaración de funciones (prototipos de
funciones)
3. declaración de variables globales
4. Main()
5.
{
6.
declaración de variables locales
7.
Sentencias
8. }
9. definición de funciones
/* esto es un comentario */
#include<stdio.h>
#include<stdlib.h>
float num;
float res, cubo(int x);
main()
{
printf("ingrese un
número ");
scanf("%f",&num);
res=cubo(num);
printf("%f al cubo es: %f",num,res);
system("PAUSE");
return 0;
}
float cubo(float x)
{return x*x*x;}
Estructura de un Programa en C
p
p
Por lo general las bibliotecas contienen funciones creadas por el programador o entregadas con el producto. Por
ejemplo las funciones de entrada y salida vienen especificadas en la biblioteca de entradas y salidas
estándar stdio.h (Standar Input Ouput Header).
# include <stdio.h>
p
Cada vez que se escribe una línea, esta debe llevar ";" al final, con lo cual el compilador entiende que
llega al final de una instrucción o proposición.
p
Antes de usar una variable dentro de un programa, es necesario indicarle al compilador que va a ser
usada, para ello se declara:
p
p
<tipo> <lista_de_variables>; Ejemplo: Int a;
Como ya es sabido, una asignación es almacenar en una variable el resultado de una operación o
proceso. En "C" una asignación se representa como:
p
<variable> = <expresión>;
p
Ejemplo:
p
a=5; /* a la variable a se le asigna el valor 5 (constante)*/
p
expo=max; /* a la variable expo se le asigna el contenido de la variable max*/
p
expofin=ult+4; /* a expofin se le asigna el contenido de la
variable ult sumada a la constante 4*/
Identificadores
p
Estos son simplemente los nombres que pueden
asumir variables o constantes dentro del programa.
p
Existen algunas restricciones para los identificadores:
- No deben ser iguales a nombres de palabras reservadas
o bibliotecas.
- Deben comenzar con una letra o el caracter ‘_’.
- No deben tener en medio el carácter espacio.
•
Cuando declaro una variable la elección del tipo de dato depende del propósito para el
cual voy a usar la variable.
Entrada / Salida Estándar
p
La biblioteca (o archivo de cabecera) llamada stdio.h contiene
todas las funciones de entrada y salida estándar, entre ellas las
funciones printf() y scanf(). La f significa que es entrada o
salida con formato.
printf()
p
Esta es la función de salida por pantalla, su formato es el
siguiente:
p
printf(cadena_de_control,lista_de_argumentos)
p
printf("a * b = %d \n", c );
p
Los caracteres barra invertida (backslash) y n juntos,
provocan un retorno de carro (return) en pantalla
Entrada / Salida Estándar
scanf()
p
p
p
Esta es la función para entrada estándar, se utiliza de
un modo parecido a la anterior.
scanf("%d",&numdato);
%d indica que se lee con formato entero. En el ejemplo
el caracter "&" se usa para indicar la dirección de
memoria, es decir, "lee a un valor con formato entero y
lo guarda en la dirección de memoria numdato".
constantes
En programación, una constante es un valor que no puede
ser alterado durante la ejecución de un programa.
Una constante corresponde a una longitud fija de un área
reservada en la memoria principal del ordenador, donde el
programa almacena valores fijos.
Por ejemplo:
El valor de pi = 3.1416
Por conveniencia, el nombre de las constantes suele
escribirse en mayúsculas en la mayoría de lenguajes.
Constantes en C
●
●
En C las constantes se declaran con la directiva #define,
esto significa que esa constante tendrá el mismo valor a lo
largo de todo el programa.
El identificador de una constante así definida será una
cadena de caracteres que deberá cumplir los mismos
requisitos que el de una variable (sin espacios en blanco,
no empezar por un dígito numérico, etc).
#define PI 3.1415926
El teorema del programa estructurado, de Böhm-Jacopini, demuestra que
todo programa puede escribirse utilizando únicamente las tres instrucciones
de control siguientes:
*
Secuencia
*
Instrucción condicional.
*
Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras o “patrones lógicos” se pueden escribir
todos los programas y aplicaciones posibles. Si bien los lenguajes de
programación tienen un mayor repertorio de estructuras de control, éstas
pueden ser construidas mediante las tres básicas.
El flujo de control de un
programa
La expresión flujo de control hace referencia al orden en el que se ejecutarán las
instrucciones de un programa, desde su comienzo hasta que finaliza. El flujo normal de
ejecución es el secuencial. Si no se especifica lo contrario, la ejecución de un programa
empezaría por la primera instrucción e iría procesando una a una en el orden en que
aparecen, hasta llegar a la última.
Algunos programas muy simples pueden escribirse sólo con este flujo unidireccional. No
obstante, la mayor eficacia y utilidad de cualquier lenguaje de programación se deriva
de la posibilidad de cambiar el orden de ejecución según la necesidad de elegir uno de
entre varios caminos en función de ciertas condiciones, o de ejecutar algo repetidas
veces, sin tener que escribir el código para cada vez.
El flujo de control de un
programa
También puede ocurrir que interese que un grupo de instrucciones se ejecute
repetidamente hasta que se le indique que se detenga. Por ejemplo, calcular el
promedio de notas para cada uno de los alumnos de un curso, o realizar algún cálculo
con cada uno de los elementos de un vector.
Para las dos situaciones planteadas existen dos soluciones: las sentencias de control
selectivas y las repetitivas. Éstas permiten que el flujo secuencial del programa sea
modificado. También cumplen con este objetivo las sentencias denominadas de
invocación o salto.
Las sentencias alternativas también son conocidas como sentencias selectivas porque
permiten seleccionar uno de entre varios caminos por donde seguirá la ejecución del
programa. En algunos casos esta selección viene determinada por la evaluación de una
expresión lógica.
Estructura de selección.
Sentencias anidadas.
p
La sentencia de control básica es if (<condicion>) then
<sentencia/s> else <sentencia/s>. En ella se evalúa
una expresión condicional y si se cumple, se ejecuta la
sentencia s; si no, se ejecuta la sentencia t. La segunda
parte de la condición, else <t>, es opcional.
if (dato2==0) then /* Se pregunta "es dato2 igual a cero" */
printf("\n LA DIVISION ES INDETERMINADA");
else
{
printf("\n LA DIVISION ES: %f", div); /*se ejecuta si dato <> 0*/
}
Estructura de selección.
Sentencias anidadas.
Ejemplo: Un sensor toma (lee) la temperatura ambiente y de acuerdo al rango en que se encuentre, debe emitir un mensaje. La escala es la siguiente:
Mayor que 100
“Temperatura muy alta – Mal funcionamiento”
Entre 91 y 100
“Rango normal”
Entre 51 y 90
“Bajo el rango normal”
Menor que 50
“Muy frío – Apague el equipo”
ALGORITMO Sensor
INICIO
LEER temperatura
SI temperatura > 100 ENTONCES
ESCRIBIR “Temperatura muy alta – Mal funcionamiento”
SINO
SI temperatura > 90 ENTONCES
ESCRIBIR “Rango normal”
SINO
SI temperatura > 50 ENTONCES
ESCRIBIR “Bajo el rango normal”
SINO
ESCRIBIR “Muy frío – Apague equipo”
FIN-SI
FIN-SI
FIN-SI
FIN
Ejercicio: Codifica en C
Estructuras de Control.
Bucles
En muchas ocasiones la forma más apropiada de expresar un algoritmo consiste en la
repetición de una misma instrucción de manera controlada, una cantidad finita de veces
determinada de antemano (al diseñar el programa) o en tiempo de ejecución (cada vez que se
corre el programa).
Por ejemplo, podría ser necesario diseñar un algoritmo similar al de los cajeros automáticos,
que solicite una clave al usuario y bloquee el acceso en caso de no ingresar la contraseña
correcta luego de tres intentos. O bien, si se desea procesar grupos de datos ingresados por
teclado o leídos desde un archivo, hasta que no se encuentren más datos.
Las estructuras algorítmicas que permiten realizar operaciones de este tipo se conocen con el nombre de
estructuras repetitivas o iterativas.
Definicion: Las estructuras que repiten una secuencia de
instrucciones un número determinado de veces se denominan
repetitivas o bucles; y se denomina iteración a la ejecución de
cada repetición.
Estructuras de repeticion.
Bucles
Ejemplo
Se desea
ejemplo,
ingresar
sucesivas
sumar una lista de números que ingresa desde teclado (por
edades de los alumnos de una clase). El algoritmo debería
el valor y sumarlo a una variable SUMA que contenga las
sumas parciales.
ALGORITMO suma
INICIO
Suma=0
LEER número
Suma = suma + número
LEER número
Suma = suma + número
….
FIN
Como podemos observar, si no utilizamos alguna instrucción de repetir, el algoritmo
deberá realizar tantas lecturas y sumas como alumnos se procesen: 10, 100, 1000,...
Es evidente que el método no es óptimo, pero el ejemplo sirve para identificar las instrucciones
que se repiten. En este caso, el bucle está formado por las instrucciones:
LEER número
suma = suma + número
y la cantidad de iteraciones estará relacionada con el número de alumnos que se procesen
durante la ejecución.
Entonces, las dos cuestiones importantes cuando se utilizan estructuras repetitivas son: ¿qué
contiene el bucle? y ¿cuántas veces se repite?
Las estructuras repetitivas se diferencian en la forma en que se produce la condición de fin del
bucle y deberá utilizarse aquella más apropiada al problema particular de que se trate.
A continuación, veremos las más usuales:
Bucles
●
●
●
for (para), permite hacer iteraciones controladas
determinando cuanto incrementar o disminuye un valor y
poniendo una condición de ruptura.
break se usa comúnmente con while, para indicar el
rompimiento del ciclo.
continue funciona de forma algo similar a break, solo que
en vez de terminar omite el código que sigue desde el
punto en que es llamado y pasa a evaluar la condición
directamente.
La estructura PARA (for)
Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99.
INICIO
ESCRIBIR 2
ESCRIBIR 4
[…]
ESCRIBIR 96
ESCRIBIR 98
FIN
Se dijo que la computadora es muy hábil para repetir tareas sencillas, como la del problema. Cuando se necesita que la
computadora repita una operación, con una pequeña variación cada vez, se deben identificar las condiciones para la
repetición, y expresar esta variación de una forma comprensible para la máquina.
#include <stdio.h>
int main()
{
int numero=1;
int salida=0;
//probar con bucle infinito y rompimiento break
while (numero!=salida)
{
printf ("\nAdivina cual es el numero para salirme entre [-10:10 ]:");
scanf ("%d",&numero);
if((numero>10)&&(numero<-10))
{
printf("Te saliste del rango!\n");
}
}
}
Ejemplo de bucle for
#include <stdio.h>
int main()
{
int i;
int tabla1,tabla2;
tabla1 = 2; /* Primero la tabla del dos */
tabla2 = 5; /* y a continuación la tabla del cinco*/
//analizar con i-- y hacer para que avance de a dos
for (i=1;i<11;i++)
{
printf ("\n %2dx%2d=%3d",tabla1,i,tabla1*i);
printf (" %2dx%2d=%3d",tabla2,i,tabla2*i);
}
printf("\n");
}
●
●
Hacer un programa en c que me pida un número y le
haga la sumatoria.
Osea, si el numero introducido es 5 deberà de darme el
resultado de sumar 1+2+3+4+5
Programación Visual:
Scratch
Scratch
●
Vamos a crear aplicaciones con Scratch con los ejercicios
colgados en la web.