0% encontró este documento útil (0 votos)
1K vistas11 páginas

Algoritmos Cotidianos

El documento describe brevemente la historia y aplicación de los lenguajes algorítmicos. Explica que los primeros lenguajes de programación fueron los lenguajes ensambladores que utilizaban códigos mnemónicos para representar las operaciones de la máquina. Más tarde aparecieron lenguajes de propósito general como FORTRAN, COBOL, BASIC y C/C++. Actualmente existen lenguajes visuales como Visual Fox y Visual Basic.

Cargado por

JosiHernández
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
0% encontró este documento útil (0 votos)
1K vistas11 páginas

Algoritmos Cotidianos

El documento describe brevemente la historia y aplicación de los lenguajes algorítmicos. Explica que los primeros lenguajes de programación fueron los lenguajes ensambladores que utilizaban códigos mnemónicos para representar las operaciones de la máquina. Más tarde aparecieron lenguajes de propósito general como FORTRAN, COBOL, BASIC y C/C++. Actualmente existen lenguajes visuales como Visual Fox y Visual Basic.

Cargado por

JosiHernández
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/ 11

ALGORITMOS COTIDIANOS

Se refiere a todos aquellos algoritmos que nos ayudan a resolver problemas


diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una
metodologa para resolverlos.
HISTORIA Y APLICACION DE LOS LENGUAJES ALGORITMICOS

Al igual que los idiomas sirven de vehculo de comunicacin entre los seres
humanos, existen lenguajes que realizan la comunicacin entre los seres humanos
y las computadoras. Estos lenguajes permiten expresar los programas o el
conjunto de instrucciones que el operador humano desea que la computadora
ejecute.

Los lenguajes de computadoras toman diferentes formas; los de las primeras


computadoras, como la ENIAC y la EDSAC, se componan en el lenguaje real de
las mquinas mismas. La dificultad de programar las mquinas de esta manera
limitaba drsticamente su utilidad y proporcionaba un fuerte incentivo para que se
desarrollaran lenguajes de programacin ms orientados hacia la expresin de
soluciones con la notacin de los problemas mismos.

Los primeros lenguajes de programacin se conocieron como Lenguajes


Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora
FERUT. En los lenguajes ensambladores se define un cdigo especial llamado
mnemnico para cada una de las operaciones de la mquina y se introduce una
notacin especial para especificar el dato con el cual debe realizarse la operacin.

A mediados de los aos 60s aparecieron los primeros lenguajes de propsito


general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA,
C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologas, tanto en
arquitectura de computadoras como en lenguajes de programacin, contina a
paso acelerado, cada vez con mayor velocidad, el panorama est cambiando de
una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones

individuales. Los lenguajes de programacin actuales son los conocidos


como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C .

Una definicin muy simple:


El tipo de un dato es el conjunto de valores que puede tomar
durante el programa. Si se le intenta dar un valor fuera del
conjunto se producir un error.
La asignacin de tipos a los datos tiene dos
objetivos principales:
Por un lado, detectar errores en las operaciones
Por el otro, determinar cmo ejecutar estas operaciones
De Pascal se dice que es un lenguaje fuertemente tipeado. Esto
quiere decir que todos los datos deben de tener un tipo
declarado explcitamente, y adems que existen ciertas
restricciones en las expresionesen cuanto a los tipos de datos
que en ellas intervienen.
Una ventaja de los lenguajes fuertemente tipeados es que se
gasta mucho menos esfuerzo en depurar (corregir) los
programas gracias a la gran cantidad de errores que detecta
el compilador.
Los tipos de datos, como casi todos los objetos de Pascal, se
pueden declarar. La declaracin de tipos ya se coment en el
tema correspondiente a la estructura de un programa.

Clasificaciones en los tipos de datos


En Pascal existen gran variedad y cantidad de tipos de datos.
Pero en este tutorial slo se trataran los bsicos para que
puedas ir construyendo tus primeros programas.
Existen muchas clasificaciones para los tipos de datos, y
dependiendo de la fuente que mires, te mostrarn una u otra. A
continuacn tienes una de las posibles clasificaciones.:

Dinmicos
Estticos
o El tipo cadena
o Estructurados
o Simples
Ordinales
No-ordinales

Tipos estticos
Casi todos los tipos de datos son estticos, la excepcin son
los punteros y no se tratarn debido a su complejidad.

Tipos dinmicos
Dentro de esta categora entra slamente el tipo puntero. Este
tipo te permite tener un mayor control sobre la gestin de
memoria en tus programas. Con ellos puedes manejar el tamao
de tus variables en tiempo de ejecucin, o sea, cuando el
programa se est ejecutando.

Tipos simples
Como su nombre indica son los tipos bsicos en Pascal. Son los
ms sencillos y los ms fciles de aprender. Por todo esto, sern
en los que nos centremos.
Los tipos simples ms bsicos
son: entero, lgico, carcter y real. Y la mayora de los lenguajes
de programacin los soportan, no como ocurre con los
estructurados que pueden variar de un lenguaje a otro.

Tipos estructurados
Mientras que una variable de un tipo simple slo referencia a un
elemento, los estructurados se refieren a colecciones de
elementos.
Las colecciones de elementos que aparecen al hablar de tipos
estructurados son muy variadas: tenemos
colecciones ordenadas que se representan mediante el
tipo array, colecciones sin orden mediante el tipo conjunto, e
incluso colecciones que contienen otros tipos, son los
llamados registros.

Tipos ordinales
Dentro de los tipos simples, los ordinales son los ms
abundantes. De un tipo se dice que es ordinal porque el
conjunto de valores que representa se puede contar, es decir,
podemos establecer una relacin uno a uno entre sus elementos
y el conjunto de los nmeros naturales.
Dentro de los tipos simples ordinales, los ms importantes son:
El tipo entero (integer)
El tipo lgico (boolean)
El tipo carcter (char)

Tipos no-ordinales
Simplificando, podramos reducir los tipos simples no-ordinales
al tipo real. Este tipo nos sirve para declarar variables que
pueden tomar valores dentro del conjunto de los nmeros
reales.

A diferencia de los tipos ordinales, los no-ordinales no se pueden


contar. No se puede establecer una relacin uno a uno entre
ellos y los nmero naturales. Dicho de otra forma, para que un
conjunto se considere ordinal se tiene que poder calcular la
posicin, el anterior elemento y el siguiente de un elemento
cualquiera del conjunto.Cul es el sucesor de
5.12? Ser 5.13, o 5.120, o 5.121, ...

Identificador.
Un identificador es un conjunto de caracteres alfanumricos de cualquier longitud que sirve
para identificar las entidades del programa (clases, funciones, variables, tipos compuestos)
Los identificadores pueden ser combinaciones de letras y nmeros. Cada lenguaje tiene sus
propias reglas que definen como pueden estar construidos. Cuando un identificador se asocia
a una entidad concreta, entonces es el nombre de dicha entidad, y en adelante la
representa en el programa. Nombrar las entidades hace posible referirse a las mismas, lo
cual es esencial para cualquier tipo de procesamiento simblico.

Almacenamiento Direccionamiento y Representacion en Memoria


Almacenamiento de datos
La nica estructura que ofrece la memoria es la organizacin de sus elementos
en bytes. Por tanto, para almacenar los datos que manipula un procesador es
imprescindible saber de antemano su tamao. El tamao de algunos datos
bsicos viene definido por la arquitectura del propio procesador. Por ejemplo, el
lenguaje mquina del Intel Pentium contiene instrucciones mquina para
operar enteros de 32 bits. Esto no quiere decir que el procesador no pueda
manejar enteros de otros tamaos, sino que el procesador manipula estos de
forma mucho ms rpida y eficiente. Nmeros de otros tamaos pueden ser
manipulados igualmente pero con un coste mayor en tiempo de ejecucin.
Almacenamiento de direcciones de memoria
Supongamos que la memoria utilizada tiene un tamao de 4 Gigabytes y por
tanto sus direcciones se representan con 32 bits. Las direcciones de memoria
son nmeros naturales en el rango [0, 232 - 1]. Pero este nmero natural es
susceptible de ser almacenado l mismo en memoria. Es decir, se puede
almacenar la representacin binaria de una direccin de memoria en la propia
memoria. Al tener un tamao de 32 bits o 4 bytes, se utilizan para ello cuatro
posiciones de memoria consecutivas.
4.4 Operadores, operandos y expresiones.

Operadores. Los operadores nos permiten manipular datos, sean variables,


constantes, otras expresiones, objetos, atributos
de objetos, entre otros, de manera que podamos (1) transformarlos, (2) usarlos
en decisiones para controlar el flujo de
ejecucin de un programa, (3) formar valores para asignarlos a otros datos. El
tipo de datos involucrado en una expresin se
relaciona muy de cerca con los operadores utilizados.
En nuestro curso veremos 7 tipos de operadores :
aritmticos.
relacionales
lgicos
asignacin
incremento
decremento
concatenacin

Prioridad de operadores, evaluacin de expresiones.


Prioridad de operadores. Los programas de computadora evalan expresiones
de tipo aritmticas, relacionales, lgicas, de
incremento, de decremento, de asignacin, entre otras, tomando en cuenta las
prioridades predefinidas por el lenguaje para
los diferentes operadores. Esto lo apuntamos, debido a que las expresiones
pueden involucrar a diferente tipo de operadores,
por ejemplo :
! x < 0 && y >= x * 12.0 5.5
Digamos que x tiene el valor de 10, y el valor de 200.4, entonces cul sera el
valor que retorna la expresin?. Para
calcularlo deberemos conocer la prioridad de ejecucin de los diferentes tipos
de operadores en el lenguaje de programacin

que en nuestro caso es el C#. La prioridad de ejecucin puede ser alterada por
el programador por medio del uso de los
parntesis.
4.4 Operaciones bsicas de entrada-salida
A diferencia de otros lenguajes, C no dispone de sentencias de
entrada/salida. En su lugar se utilizan funciones contenidas en la
librera estndar y que forman parte integrante del lenguaje.
Las funciones de entrada/salida son un conjunto de funciones,
incluidas con el compilador, que permiten a un programa recibir y
enviar datos al exterior. Para su utilizacin es necesario incluir, al
comienzo del programa, el archivo stdio.h en el que estn
definidos sus prototipos..

definicion de algoritmos:
es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar
unaactividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.dados un estado inicial
y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. los algoritmos son el
objeto de estudio de la algoritmia.
tiposde algoritmos:

algoritmo de ordenamiento

algoritmo de bsqueda

a) Descripcin Narrada
b) Pseudocdigo
c) Diagramas de Flujo
d) Diagramas N- S (Nassi-Schneiderman o de Chapin)
1 Descripcin Narrada

Este algoritmo es caracterizado porque sigue un proceso de ejecucin


comn y lgico, describiendo textualmente paso a paso cada una de las
actividades a realizar dentro de una actividad determinada.

2.Descripcin en Pseudocdigo
Pseudo = falso. El pseudo cdigo no es realmente un cdigo sino una
imitacin y una versin abreviada de instrucciones reales para las computadoras.
Es una tcnica para diseo de programas que permite definir las estructuras de
datos, las operaciones que se aplicarn a los datos y la lgica que tendr el
programa de computadora para solucionar un determinado problema. Utiliza un
pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y
los elementos de los lenguajes de programacin. Se concibi para superar las dos
principales desventajas de los flujogramas: lento de crear y difcil de modificar sin
un nuevo redibujo.
. Diagramas N-S
Son una herramienta que favorece la programacin estructurada y rene
caractersticas grficas propias de diagramas de flujo y lingsticas propias de
pseudocdigos. Constan de una serie de cajas contiguas que se leern siempre
de arriba-abajo y sus estructuras lgicas son las siguientes:

4. Diagramas de Flujo.
Son la representacin grfica de la solucin algortmica de un problema.
Para disearlos se utilizan determinados smbolos o figuras que representan una
accin dentro del procedimiento. Utilizan unos smbolos normalizados, con los
pasos del algoritmo escritos en el smbolo adecuado y los smbolos unidos con
flechas, denominadas lneas de flujo, que indican el orden en que los pasos deben
ser ejecutados.

Un algoritmo secuencial es aquel en el que se necesita que un paso anterior


haya concluido para continuar con otro. De esta forma, en este tipo de
algoritmos se requiere de datos de la etapa anterior, como una cadena o

secuenci

a de informacin.

Un algoritmo selectivo es aquel en el que se establecen condiciones para


poder realizar una accin especfica, en los lenguajes de programacin se
implementan las sentencias if o select case para llevar a cabo este tipo de
algoritmos.
Un algoritmo repetitivo o cclico es aquel en el que el programador
establece un rango de repeticin para una accin dada, o en el que se
determina que una accin se repita de forma cclica mientras se cumpla alguna
condicin. En los lenguajes de programacin se usan las
sentenciaswhile y for para llevar a cabo este tipo de algoritmos.

Afn de tener un cierto grado de equidad entre las herramientas de software a comparar en
este trabajo,es preciso indicar los dos principales criterios deseleccin:1.
Haberse construido con el propsito de ser un recurso didctico en la enseanzaaprendizaje dealgoritmos.2.
Emplear diagramas de flujo para la representacin de las soluciones algortmicas.

DFD
Esta herramienta de software surge en 1988 de un proyecto colombiano llamado
Editor e Intrprete de Algoritmos Representados en Diagramas de Flujo

RAPTOR
RAPTOR (acrnimo del ingls
Rapid Algorithmic Prototyping Tool for Ordered Reasoning
) surge en2004 como un proyecto de la Academia de la Fuerza
Area de Estados Unidos. En [6] se define como: un
ambiente de programacin con base en diagramas deflujo, diseado especficamente para
ayudar a losestudiantes a visualizar sus algoritmos y evitar el
bagaje sintctico.

PSeInt
PSeInt (abreviatura de Pseudo Intrprete) surge en2003 como un proyecto para la materia
deProgramacin I en la Facultad de Ingeniera yCiencias Hdricas de la Universidad

Nacional delLitoral. Se trata de un intrprete de


pseudocdigo basado en los contenidos de la ctedra deFundamentos de Programacin [5].

También podría gustarte