LOS LENGUAJES DE PROGRAMACIÓN
Un lenguaje de programación es un
lenguaje formal que proporciona una serie de instrucciones que permiten a un
programador escribir secuencias de órdenes y algoritmos a modo de controlar el
comportamiento físico y lógico de una computadora con el objetivo de que
produzca diversas clases de datos
Existen 3 niveles de lenguajes de programación
Lenguaje máquina, es el
lenguaje que entienden las computadoras, está compuesto por estados de
encendido y apagado representados por ceros y unos (0 1). Hay que aclarar que
la computadora no entiende ceros y unos, ella entiende estados de encendido y
apagado, somos nosotros los humanos que para objetivos de comprensión los
representamos como ceros y unos.
Lenguaje ensamblador o Bajo
nivel, está compuesto por abreviaturas similares al inglés esta es la base
del lenguaje ensamblador.
Lenguajes de alto nivel,
permiten escribir instrucciones en el lenguaje que entendemos los humanos, por
lo general en inglés.
Ya que las computadoras solo
entienden lenguaje máquina, es necesario un traductor, llamado compilador, el
cual se encarga de establecer una comunicación entre el programador y la
computadora.
Tipos de errores a la hora de programar:
De
sintaxis: también llamados errores de dedo, es cuando nos equivocamos al
escribir.
De lógica:
son difíciles de detectar ya que la computadora no los reconoce.
De
ejecución: se generan cuando se ingresan / calculan datos que están fuera
de rango del tipo de dato.
Herramientas de programación
Diagramas de flujo:
representación gráfica de un algoritmo.
Pseudocódigo: manera de
describir el algoritmo con palabras estandarizadas para indicar cada uno de los
procesos y comportamiento del programa a desarrollar.
Clases de Programación
Existen varias clases de
programación, dependiendo de los métodos utilizados y las técnicas empleadas. Los
tipos o técnicas de programación son bastante variados, aunque puede que muchos
de los lectores sólo conozcan una metodología para realizar programas. En la
mayoría de los casos, las técnicas se centran en programación modular y
programación estructurada, pero existen otros tipos de programación. Los
explicaremos a continuación.
Programación estructurada (PE): Está compuesta por
un conjunto de técnicas que han ido evolucionando aumentando considerablemente
la productividad del programa reduciendo el tiempo de depuración y
mantenimiento del mismo. Utiliza un número limitado de estructuras de control,
reduciendo así considerablemente los errores.
Esta técnica incorpora:
Diseño descendente (top-down):
el problema se descompone en etapas o estructuras jerárquicas.
Recursos abstractos
(simplicidad): consiste en descompones las acciones complejas en otras más
simples capaces de ser resueltas con mayor facilidad.
Estructuras básicas:
existen tres tipos de estructuras básicas:
Estructuras secuénciales:
cada acción sigue a otra acción secuencialmente. La salida de una acción es la
entrada de otra.
Estructuras selectivas: en
estas estructuras se evalúan las condiciones y en función del resultado de las
mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
Estructuras repetitivas:
son secuencias de instrucciones que se repiten un número determinado de veces.
Las principales ventajas de la
programación estructurada son:
·
Los programas son más fáciles de entender
·
Se reduce la complejidad de las pruebas
·
Aumenta la productividad del programador
·
Los programas queden mejor documentados
internamente.
Un programa está estructurado si
posee un único punto de entrada y sólo uno de salida, existen de "1 a
n" caminos desde el principio hasta el fin del programa y, por último, que
todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.
Programación modular: Consta de varias secciones
dividas de forma que interactúan a través de llamadas a procedimientos, que
integran el programa en su totalidad. En ella, el programa principal coordina
las llamadas a los módulos secundarios y pasa los datos necesarios en forma de
parámetros. A su vez cada módulo puede contener sus propios datos y llamar a
otros módulos o funciones.
Programación orientada a objetos (POO): Se trata
de una técnica que aumenta considerablemente la velocidad de desarrollo de los
programas gracias a la reutilización de los objetos.
El elemento principal de la
programación orientada a objetos es “el objeto”. Es un conjunto complejo
de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos
bien estructurados y pueden ser visibles o no dependiendo del programador y las
acciones del programa en ese momento.
El polimorfismo y la herencia son
unas de sus principales características y por ello dedicaremos más adelante un
artículo exclusivamente a tratar estos dos términos.
Programación concurrente: Este tipo de
programación se utiliza cuando tenemos que realizar varias acciones a la vez. Se
suele utilizar para controlar los accesos de usuarios y programas a un recurso
de forma simultánea. Se trata de una programación más lenta y laboriosa,
obteniendo unos resultados lentos en las acciones.
Programación funcional: Se caracteriza
principalmente por permitir declarar y llamar a funciones dentro de otras
funciones.
Programación lógica: Se
suele utilizar en la inteligencia artificial y pequeños programas infantiles.
Se trata de una programación basada en el cálculo de predicados (una teoría
matemática que permite lograr que un ordenador basándose en hecho y reglas
lógicas, pueda dar soluciones inteligentes).
Buenas prácticas de programación
Si bien es cierto que las buenas prácticas
de la programación no son indispensables para que un programa funcione, es
necesario hacer uso de ellas para evitar errores en el futuro.
Documentación: consiste en ir comentando ciertas
líneas de código con el objetivo de entender fácilmente su funcionamiento, esto
hace más fácil su mantenimiento, esto nos puede ser útil si después de cierto
tiempo nosotros queremos trabajar en él, con esto podremos recordar la función
de cada pedazo de código.
Inicialización de variables y contadores: una variable reserva cierto
espacio en memoria para almacenar algún dato, si nosotros no inicializamos las
variables, cuando ésta reserve ese espacio es posible que queden “desperdicios”
de memoria de algún dato o programa que usó ese espacio anteriormente.
Podríamos explicarlo de la siguiente forma, cuando vamos al cine, hay una
butaca asignada para cada persona, esto sería el equivalente a el espacio en
memoria que reservó la variable, antes que ingresemos a la sala, los
trabajadores se aseguran que todo esté limpio y en orden (esto sería la
inicialización de la variable) para que cuando nosotros nos sentemos, estén
aptas para nosotros; si esto no sucediera, posiblemente haya basura en las
butacas (desperdicios de memoria).
Endentado o sangría: Por lo general, se usa un nivel de endentado por cada
bloque de código (sentencias condicionales y bucles son consideradas como
bloques de código embebido dentro de otro), ésta corresponde a una sangría que
comúnmente tiene el valor de una tabulación (tecla Tal) o bien tres o cuatro
espacios. Es importante que el tamaño de la sangría sea regular (consistentes)
y no varíen a lo largo del código, es decir, si el primer bloque ocupa como
endentado una tabulación, el resto de bloques deben ser endentados con una
tabulación adicional por cada nivel, con eso se facilita la lectura en
cualquier editor de código.
Uniformidad: Se
consistente al momento de utilizar un estándar para nombres largos, puedes usar
el estándar usado en C ("nombre_largo"), o bien el utilizado en Java,
llamado
CamelCase("nombre","VariableNombreLargo","Clase","ClaseNombreLargo").
Diagramas de Flujo
Emplean rectángulos, óvalos,
diamantes y otras numerosas figuras para definir el tipo de paso, junto con
flechas conectoras que establecen el flujo y la secuencia.
Símbolos de diagramas de flujo
A continuación, te enseñaremos
algunos de los símbolos de diagramas de flujo más comunes. Para obtener una
lista más exhaustiva, accede a nuestra completa página de símbolos de diagramas
de flujo.
Símbolo de Inicio / Final Marca
el punto inicial o final del sistema. Por lo general, contiene la palabra
"Inicio" o "Fin".

Símbolo de Acción o Proceso
Un rectángulo solo puede
representar un solo paso dentro de un proceso ("agregar dos tazas de
harina"), o un subproceso completo ("hacer pan") dentro de un
proceso más grande.

Símbolo del Documento Impreso
Un documento o informe impreso.

Símbolo de Multidocumento
Representa multidocumento en el
proceso.

Símbolo de Decisión o
Ramificación
Un punto de decisión o ramificación.
Las líneas que representan diferentes decisiones surgen de diferentes puntos
del diamante.

Símbolo de Entrada / Salida
Representa el material o la
información que entra o sale del sistema, como una orden del cliente (entrada)
o un producto (salida).

Símbolo de Entrada Manual
Representa un paso en el que se
pide al usuario que introduzca la información manualmente.

Símbolo de Preparación
Representa un ajuste a otro paso
en el proceso.

Símbolo del Conector
Indica que el flujo continúa
donde se ha colocado un símbolo idéntico (que contiene la misma letra).

O Símbolo
Indica que el flujo del proceso
continúa en más de dos ramas.

Símbolo de Unión de Invocación
Indica un punto en el diagrama de
flujo en el que múltiples ramificaciones convergen de nuevo en un solo proceso.

Símbolo de Fusión
Indica un paso en el que dos o
más sub-listas o subprocesos se convierten en uno.

Símbolo de Intercalar
Indica un paso que ordena
información en un formato estándar.

Símbolo de Ordenar
Indica un paso que organiza una
lista de elementos en una secuencia o establece según algunos criterios
predeterminados.

Símbolo de Proceso Predefinido
Indica una secuencia de acciones
que realizan una tarea específica incrustada dentro de un proceso más grande.
Esta secuencia de acciones podría describirse con más detalle en un diagrama de
flujo separado.

Símbolo del Operación Manual
Indica una secuencia de comandos
que continuarán repitiéndose hasta que se detenga manualmente.

Símbolo de Límite de Bucle
Indica el punto en el que debe
detenerse un bucle.

Símbolo de Retardo
Indica un retraso en el proceso.

Almacenamiento de Datos o
Símbolo de Datos Almacenados
Indica un paso donde se almacenan
los datos.

Símbolo de la Base de Datos
Indica una lista de información
con una estructura estándar que permite buscar y ordenar.

Símbolo de Almacenamiento
Interno
Indica que la información se
almacenó en la memoria durante un programa, utilizado en diagramas de flujo de
diseño de software.

Símbolo de Visualización
Indica un paso que muestra
información.

Conector Fuera de Página
Indica que el proceso continúa
fuera de la página.

Pseudocódigo

Estructura de un
programa en C++
La doble barra se utiliza para
indicar que esa línea no forma parte de una instrucción para el programa, sino
para comentar o documentar nuestro código
// primero llamamos las librerias que necesitaremos
#Include <stdio.h>
#include <stdlib.h>
//ahora llamamos la función main.
//es necesario usar esta función en C++ para que nuestro programa
compile.
Main(){
//aquí
empezaremos por declarar las variables e inicializarlas
Int num=0;
Printf(“Escriba
un valor entero”); //imprimimos este mensaje en pantalla
Scanf(“%d”,&num); //capturamos el dato ingresado
If((num%2)==0) // utilizamos el condicional para
determinar si es par o impar.
Printf(“el
número %d es par”);
Else
Printf(“el
número %d es impar”);
System(“pause”); // pausamos la ejecución del
programa en este punto.
}
Nota: si queremos obtener el
resultado de la división usamos “ / ”, en este caso lo que necesitábamos
obtener era el residuo de la división, por lo tanto usamos “ % ”.
Ejemplo #2 Usando tipo de datos char
#include<stdio.h>
main(){
char a;
scanf("%c",
&a); //primer scanf
printf("%c\n",a);
getchar();
/*puting getc(stdin) also worked*/
scanf("%c",
&a); //segundo scanf
printf("%c\n",a);
}
Ejemplo #3
// comparar caracteres
#include<stdio.h>
#include<stdlib.h>
main(){
char opc;
printf("escriba
s si desea continuar y n si desea salir: \n");
scanf("%c",&opc);
if((opc==115)||(opc==83))//
representa a la letra s o S en ascii
printf("usted
seleccionó Continuar:\n");
else
printf("usted
seleccionó salir:\n");
system("pause");
}
Ejemplo #4
//condicional simple
#include <stdio.h>
main(){
int a, b, mayor;
printf("Escriba
un numero: \n");
scanf("%d",
&a);
printf("Escriba
otro: \n");
scanf("%d",
&b);
mayor=(a>b) ?
a:b;
printf("El
numero mayor es: \n %d", mayor);
}
Ejemplo #5
// if anidados
#include<stdio.h>
main(){
int num;
printf("Escriba
un numero: \n");
scanf("%d",
&num);
if (num<0)
printf("El
número es negativo. \n");
else
if
(num==0)
printf("El
número es cero. \n");
else
printf("El
número es positivo. \n");
}
Guía de
estudio
1. ¿Qué es un lenguaje de programación?
2. Enumere y explique los niveles de lenguaje de programación
3. ¿cuáles son los 3 tipos de errores a la hora de programar?
4. ¿qué es error de sintaxis?
5. ¿qué es error de lógica, y por qué son difíciles de detectar?
6. ¿qué es error de ejecución?
7. ¿para qué sirve el diagrama de flujo?
8. ¿para qué sirve el Pseudocódigo?
9. ¿qué técnicas incorpora la programación estructurada?
10. ¿de qué se trata la programación orientada a objetos?
11. ¿en qué consiste la documentación?
12. ¿Por qué es importante la inicialización de variables y
contadores?
13. ¿Para qué sirve el indentado o sangría?
No hay comentarios:
Publicar un comentario