100% encontró este documento útil (1 voto)
140 vistas

Conceptos Básicos Algoritmos y Lenguaje de Programación

El documento describe los conceptos fundamentales de los algoritmos, incluyendo sus partes (entrada, proceso y salida), tipos (ordenamiento, búsqueda, etc.), características (finitud, definitividad, etc.), representaciones (diagrama de flujo, pseudocódigo) y su relación con los programas y lenguajes de programación. También explica los diferentes tipos de lenguajes de programación como de bajo, alto y medio nivel.

Cargado por

Rosa Maria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
140 vistas

Conceptos Básicos Algoritmos y Lenguaje de Programación

El documento describe los conceptos fundamentales de los algoritmos, incluyendo sus partes (entrada, proceso y salida), tipos (ordenamiento, búsqueda, etc.), características (finitud, definitividad, etc.), representaciones (diagrama de flujo, pseudocódigo) y su relación con los programas y lenguajes de programación. También explica los diferentes tipos de lenguajes de programación como de bajo, alto y medio nivel.

Cargado por

Rosa Maria
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Algoritmo: Secuencia de instrucciones que representan un modelo de solución para determinado tipo

de problemas.

Etapas y Partes de un Algoritmo:


Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y salida.

Dónde:

ENTRADA

Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados
esperados.

PROCESO

Pasos necesarios para obtener la solución del problema o la situación planteada.

SALIDA

Resultados arrojados por el proceso como solución.

En el ejemplo del algoritmo de la sumatoria de los dos números, tenemos:


ENTRADA
Valores de las variables A y B.
PROCESO
Asignar a la variable Suma, el valor de A mas el valor de B.
SALIDA
Impresión del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.
Tipos de Algoritmo:
Se ha clasificado a los algoritmos de diversas formas, de acuerdo con algunos de sus atributos. Por
ejemplo:

A) Según el sistema de signos con el que describen los pasos a seguir, se reconocen:
 Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las instrucciones son
verbales. Sucede, por ejemplo, con recetas de cocina.

 Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos. Se puede hacer un


algoritmo, por ejemplo, para obtener la raíz cuadrada de un número.

B) Según su función, los algoritmos pueden ser:


 Algoritmos de ordenamiento: secuencian los elementos que ingresan a partir de un cierto orden,
en general, según un orden numérico o léxico.
 Algoritmos de búsqueda: al contrario de realizar operaciones o secuenciar elementos, se dedica
a encontrar dentro de una lista que ingresa, uno o varios elementos en particular que cumplan
con el conjunto de condiciones dadas.

 Algoritmos de encaminamiento: deciden de qué modo se deberá transmitir algo que llega, y
cómo seguirá un conjunto de pasos encadenados. Se dividen fundamentalmente entre
adaptativos y estáticos, los primeros con cierta capacidad de aprendizaje y ajuste a la
circunstancia, mientras que los segundos funcionan mecánicamente, siempre del mismo modo.

C) También los algoritmos han sido clasificados según la estrategia que se utiliza para llegar al resultado.
Veamos algunos ejemplos:
 Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la respuesta que darán.
Se agrupan en distintos subtipos, pero con esa premisa: o bien presentan soluciones aproximadas
del problema, o bien presentan soluciones que pueden ser correctas pero también erróneas.

 Algoritmo cotidiano: es el que se da en la vida común de las personas, no se aplica en sistemas


informáticos ni en nada ajeno al día a día. Muchas de las decisiones que se toman desde que
uno se despierta por la mañana pertenecen a este grupo.

 Algoritmo heurístico: abandona alguno de los objetivos como recurso para terminar llegando a
la solución. En general, son utilizados cuando no existe una solución mediante las vías
tradicionales.

 Algoritmo de escalada: se comienza con una solución insatisfactoria (que no cumple la entrada
y la salida), y se la va modificando aproximándose a lo que se busca. En algún momento,
estaremos cerca de (o llegaremos a) la solución correcta.

 Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige analizar cada paso
como único y elegir la solución óptima para ese paso.

 Algoritmo determinista: es completamente lineal (cada paso tiene un paso sucesor y un paso
predecesor) y por lo tanto predictivo, si se conocen sus entradas y su forma de proceder. El
algoritmo de Euclides, que permite averiguar el máximo común divisor entre dos números,
responde a este tipo. Se distinguen de los no deterministas, donde el algoritmo tiene un
comportamiento en forma de árbol.

Características de un algoritmo:
Un algoritmo, además de ser una secuencia de acciones lógicas que hay que realizar para completar
un proceso también requiere cumplir con las 5 condiciones siguientes:

1.- Finitud. Un algoritmo debe terminar en un número finito de pasos-

2.- Definitividad. Cada paso del algoritmo debe definirse de modo preciso; las acciones a realizar deben
de estar especificadas rigurosamente y sin ambigüedad para cada caso.
3.- Entrada. Un algoritmo tiene cero o más entradas. Esto es las cantidades de datos de inicio se generan
en el mismo algoritmo o se conocen previamente.

4.- Salida. Un algoritmo tiene una o más salidas. Es decir, hay datos o cantidades al término del
algoritmo que tiene una relación especifica con los datos o cantidades de entrada.

5.- Efectividad. El algoritmo debe de ser efectivo. Esto significa que todas las operaciones deben ser
suficientemente sencillas para poder en principio ser realizadas de modo exacto y en un tiempo finito
por un procesador.

Diagrama de Flujo:
Es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo
diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del
proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso.
Pseudocódigo:
Es comúnmente utilizado por los programadores para omitir secciones de código o para dar una
explicación del paradigma que tomó el mismo programador para hacer su códigos, esto quiere decir
que el pseudocódigo no es programable sino facilita la programación.

El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más


detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la
codificación del mismo.

Programa:
Un programa es un conjunto de instrucciones u órdenes basadas en un lenguaje de
programación que una computadora interpreta para resolver un problema o una función especifica.

Lenguaje de Programación:
Es una herramienta que nos permite comunicarnos e instruir a la computadora para que realice una
tarea específica. Cada lenguaje de programación posee una sintaxis y un léxico particular, es decir,
forma de escribirse que es diferente en cada uno por la forma que fue creado y por la forma que
trabaja su compilador para revisar, acomodar y reservar el mismo programa en memoria.
Un lenguaje de programación es un sistema notacional para describir computaciones de una
forma legible tanto para la maquina como para el ser humano. Es utilizado para controlar el
comportamiento físico y lógico de una máquina.

Tipos de Lenguajes de Programación:

Lenguajes de bajo nivel

Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con
este tipo de lenguajes no se pueden migrar o utilizar en otras máquinas.

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características
del mismo.

Dentro de este grupo se encuentran:

 El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su
funcionamiento. Consiste en la combinación de 0's y 1's para formar las ordenes entendibles por
el hardware de la máquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente
enormes donde encontrar un fallo es casi imposible.
 El lenguaje ensamblador es un derivado del lenguaje máquina y está formado por abreviaturas
de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los
programas traductores para poder pasar los programas escritos en lenguaje ensamblador a
lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes
eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este
lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, añadiendo
la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.
 Lenguajes de alto nivel

Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.

Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en
todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño
durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten
a las necesidades reales de un programa.

Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un


programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo
de problema.

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la
maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que entiendan el
código fuente como las características de la máquina.

Lenguajes de Medio nivel

Se trata de un término no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se
encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya
que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas
características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.

Existen muchos lenguajes de programación de entre los que se destacan los siguientes:

1. C ▶
2. C++ ▶
3. Basic
4. Ada ▶
5. Java ▶
6. Pascal ▶
7. Python □
8. Fortran
9. Smalltalk

Lenguaje C++
Es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y le agrega la
capacidad de abstraer tipos como en Smalltalk.
C++ es un lenguaje de programación diseñado a mediados de los años 80, más exactamente en el año
de 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de
programación C con mecanismos que permitieran la manipulación de objetos. El C++ es un lenguaje
híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos
paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a
objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
Estructura de un programa C++ // Comentarios de 1 sola línea
// Zona de ficheros de cabecera de las librerías
Comentarios
Directivas del preprocesador #include <....... . h> // h de Head
Declaración de variables globales y funciones #include <....... . h>
int main( ) // Función principal main
{
Declaraciones locales de la función principal
// Zona de prototipos de funciones
Instrucciones de la función principal
} int Potencia (int x,y)
Otras funciones:
funcion1(.....) // Zona de variables globales
{ int valor;
Declaraciones locales de la función 1
Instrucciones de la función 1 float media_total;
}
funcion2(.....)
{
void main (void) // Prog. ppal. típico de Turbo C
Declaraciones locales de la función 2 {
Instrucciones de la función 2 // llave de inicio del programa
} // codigo del programa
..... .......
.......
.......
// fin del programa
}

// Desarrollo del código de las funciones


anteriores

/* Comentarios de un párrafo completo


comprendidos entre /*.....*/,
sirven para aclarar qué el programa o una parte
del programa */
Estructura de un programa C++

Comentarios /* Comentarios de un párrafo completo


Directivas del preprocesador comprendidos entre /*.....*/,
Declaración de variables globales y funciones sirven para aclarar qué el programa o una parte
int main( ) // Función principal main
del programa */
{
Declaraciones locales de la función principal
// Comentarios de 1 sola línea
Instrucciones de la función principal // Zona de ficheros de cabecera de las librerías
}
Otras funciones: #include <....... . h> // h de Head
funcion1(.....) #include <....... . h>
{
Declaraciones locales de la función 1 // Zona de prototipos de funciones
Instrucciones de la función 1
}
int Potencia (int x,y)
funcion2(.....)
{
Declaraciones locales de la función 2 // Zona de variables globales
Instrucciones de la función 2 int valor;
}
..... float media_total;

void main (void) // Prog. ppal. típico de Turbo C


{
// llave de inicio del programa
// codigo del programa
.......
.......
.......
// fin del programa
}

// Desarrollo del código de las funciones


anteriores

También podría gustarte