Sei sulla pagina 1di 6

ALGORITMOS Y ESTRUCTURA DE DATOS

Prof: O. Rosales P.

PRIMERA SEMANA: Conceptos Básicos usados en programación.

Sistema. Un sistema es un conjunto de componentes que interactúan entre sí para lograr un


objetivo común.
Sistema Computacional o Sistema de Información. Es un conjunto de componentes, por el
cual los datos de una persona o departamento de una organización fluyen hacia otros.
Bit:(dígito binario ) un dígito simple de un numero binario (1 ó 0) en el computador.
Byte: Grupo de bits adyacentes operados como una unidad,( grupos de 8 bits ).
Compilador: programa de computadora que produce un programa en lenguaje de maquina, de
un programa fuente que generalmente esta escrito por el programador en un lenguaje de alto
nivel.
Interprete: dispositivo o programa que recibe una por una las sentencias de un programa fuente,
la analiza y la convierte en lenguaje de maquina si no hay errores en ella. también se puede
producir el listado de las instrucciones del programa.
Variable: en programación es una estructura que contiene datos y recibe un nombre único dado
por el programador, mantiene los datos asignados a ella hasta que un nuevo valor se le asigne o
hasta que el programa termine.
Constante: valor o conjunto de caracteres que permanecen invariables durante la ejecución del
programa.
Acumulador: campo o variable que sirve para llevar una suma o cuenta de diferentes valores.
Dato: el termino que usamos para describir las señales con las cuales trabaja la computadora es
dato; aunque las palabras dato e información muchas veces son usada indistintamente, si existe
una diferencia importante entre ellas. en un sentido estricto, los datos son las señales
individuales en bruto y sin ningún significado que manipulan las computadoras para producir
información.
Hardware: es la parte tangible del computador.
Software: conjunto de programas, documentos, procesamientos y rutinas asociadas con la
operación de un sistema de computadoras, es decir, la parte intangible de computador.
Informacion: es lo que se obtiene del procesamiento de datos, es el resultado final.
Programa. es el conjunto de instrucciones escritas de algún lenguaje de programación y que
ejecutadas secuencialmente resuelven un problema especifico.
Programa fuente: instrucción escrita por el programador en un lenguaje de programación para
plantear al computador el proceso que debe ejecutar.
Programa objeto: instrucciones en lenguaje maquina producida por el computador.
Lenguaje de Programación. Es cualquier lenguaje artificial que puede utilizarse para definir una
secuencia de instrucciones para su procesamiento por un ordenador o computadora.
Los lenguajes de programación pueden ser de 3 tipos:
-Programas escritos en Lenguaje maquina. (0 y 1)
-Programas escritos en Lenguaje ensamblador. (uso de abreviaturas similares al ingles)
-Programas escritos en Lenguajes de alto nivel. (enunciados muy similares a los que se utilizan
en ingles para comunicarse).
Para que la computadora entienda lo que se le indica que haga, se utilizan traductores, los cuales
convierten las instrucciones en cadenas de ceros y unos (lenguaje maquina), dichos traductores
se llaman compiladores o interpretes.
Código maquina: para que se pueda ejecutar un programa, debe estar en lenguaje de maquina
de la computadora que lo esta ejecutando.
Programa ensamblador: es un programa de computador preparado por un programador que
toma las instrucciones que no estén en lenguaje de maquina y las convierte en una forma que
puede ser usada por el computador.
Instruccion o sentencia: conjunto de caracteres que se utilizan para dirigir un sistema de
procesamiento de datos en la ejecución de una operación .
Modulo objeto: es la salida directa de un ensamblador ó un compilador.
Programa ejecutable: los archivos de programa a menudo se denominan programas
ejecutables, puesto que, al teclear su nombre ó al hacer clic sobre el icono que le corresponda en
un entorno gráfico, logra que la computadora cargue y corra, o ejecute las instrucciones del
archivo.
Programador: un individuo que diseña la lógica y escribe las líneas de código de un programa
de computadora.
Programador de aplicaciones: individuo que escribe programas de aplicación en una
organización usuaria. la mayoría de los programadores son programadores de aplicación.
Programador de sistemas: en el departamento de procesamiento de datos de una gran
organización, técnico experto en parte o en la totalidad de software de sistema de computadora,
tal como el sistema operativo, el programa de control de red y el sistema de administración de
base de datos. los programadores de sistemas son responsables del rendimiento eficiente de los
sistemas de computación.
Perifericos: cualquier dispositivo de hardware conectado a una computadora.
Computadora. Es un dispositivo electrónico-mecánico capaz de ejecutar cálculos y tomar
decisiones lógicas a velocidades de millones y a veces miles de millones de instrucciones por
segundo. Toda computadora, tiene los siguientes elementos:
-Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos (información)
en la computadora para su proceso. Los más usados son el teclado, ratón y scanner.
-Dispositivos de Salida: Regresan los datos procesados que sirven de información al usuario.
Los más comunes son el monitor y la impresora.
-La Unidad Central de Procesamiento (CPU). Aunque generalmente al gabinete se le
denomina CPU, el CPU es el microprocesador de la computadora y es el encargado de hacer
todos los cálculos y operaciones. El CPU a su vez se divide en las siguientes partes:
*Unidad de Control: Coordina las actividades de la computadora y determina que operaciones
se deben realizar y en que orden; así mismo controla todo el proceso de la computadora.
*Unidad Aritmético - Lógica: Realiza operaciones aritméticas y lógicas, tales como suma,
resta, multiplicación, división y comparaciones.
-La Memoria. Es una parte de la computadora en donde se almacenan los datos a procesar y
la información resultante. Esta puede ser de dos tipos:
*Memoria Primaria: Es el espacio en que se almacenan los datos a procesar o calcular en
este momento.
*Memoria Secundaria: Es el espacio en el que se almacena la información resultante para su
futura consulta o manejo. Por ejemplo: disquetes, discos duros, unidades de almacenamiento
magnético (CD)
*Buffers: Memoria intermedia, una porción reservada de la memoria, que se utiliza para
almacenar datos mientras son procesados.
-Dispositivos de Salida: Regresan los datos procesados que sirven de información al usuario.
Los más comunes son el monitor y la impresora.
-La Unidad Central de Procesamiento (CPU). Aunque generalmente al gabinete se le
denomina CPU, el CPU es el microprocesador de la computadora y es el encargado de hacer
todos los cálculos y operaciones. El CPU a su vez se divide en las siguientes partes:
*Unidad de Control: Coordina las actividades de la computadora y determina que operaciones
se deben realizar y en que orden; así mismo controla todo el proceso de la computadora.
*Unidad Aritmético - Lógica: Realiza operaciones aritméticas y lógicas, tales como suma,
resta, multiplicación, división y comparaciones.
Rutina: es el conjunto de instrucciones dentro del mismo programa, que se puede llamar a
ejecución desde diferentes partes del mismo programa.
Interfaz: una conexión e interaccion entre hardware, software y usuario, es decir como la
plataforma o medio de comunicación entre usuario o programa.
Usuario: cualquier individuo que iteractúa con la computadora a nivel de aplicación. los
programadores, operadores y otro personal técnico no son considerados usuarios cuando
trabajan con la computadora a nivel profesional.
Emulador: es un dispositivo que se construye para trabajar como otro.
ALGORITMOS Y ESTRUCTURA DE DATOS
Prof: O. Rosales P.

SEGUNDA SEMANA: Conceptos de algoritmo. Diseño de algoritmos

ALGORITMO
Un algoritmo es un método para resolver un problema . Este término proviene de
Mohammed al-Khowarizmi, matemático persa del siglo IX . Lla palabra algorismus
derivó posteriormente en algoritmo. Euclides, el gran matemático griego (del siglo IV
a.c.) que inventó un método para encontrar el máximo común divisor de dos números,
se considera otro gran padre de la algoritmia (ciencia que trata de los algoritmos). El
profesor Niklaus Wirth -inventor de Pascal, Modula-2 y Oberon- tituló uno de sus más
famosos libros, Algoritmos + Estructuras de datos = Programas, significándonos que
sólo se puede llegar a realizar un buen programa con el diseño de un algoritmo y una
correcta estructura de datos. La resolución de un problema exige el diseño de un
algoritmo que resuelva el problema propuesto.

Los pasos para la resolución de un problema son:


I . Diseño del algoritmo que describe la secuencia ordenada de pasos –sin
ambigüedades- que
conducen a la solución de un problema dado. (Andisis del problema y desarrollo del
algoritmo.)
2. Expresar el algoritmo como un programa en un lenguaje de programación
adecuado. (Fase de codificación.)
3. Ejecución y validación del programa por la computadora.
Las características fundamentales de los algoritmos son:
• Preciso.- Debe indicar el orden de la realización de cada paso.
• Definido.- Si se sigue el algoritmo dos veces con los mismos datos, se
debe obtener el mismo resultado (determinismo).
• Finito.- Debe terminar en algún momento.
Además todo algoritmo se compone de tres partes:
• Entrada de datos.
• Procesamiento
• Salida de resultados (información).

Para llegar a la realización de un programa es necesario el diseño previo de un


algoritmo, de modo
que sin algoritmo no puede existir un programa. Los algoritmos son independientes
tanto del lenguaje de programación en que se expresan como de la computadora que
los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente
de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo
será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta
de un plato de cocina se puede expresar en español, inglés o francés, pero cualquiera
que sea el lenguaje, los pasos para la elaboración del plato se realizarán sin importar
el idioma del cocinero.
En la ciencia de la computación y en la programación, los algoritmos son más
importantes que los
lenguajes de programación o las computadoras. Un lenguaje de programación es tan
sólo un medio para expresar un algoritmo y una computadora es sólo un procesador
para ejecutarlo. Tanto el lenguaje de programación como la computadora son los
medios para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el
proceso correspondiente.
El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos
profundos de la técnica de la programación. En esencia, la solución de un problema se
puede expresar mediante un algoritmo.
Por tanto, un algoritmo es el conjunto de operaciones y procedimientos que deben
seguirse para resolver un problema. El lenguaje algorítmico es aquel por medio del
cual se realiza un análisis previo del problema a resolver y encontrar un método que
permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que
deben efectuarse, se le denomina algoritmo.

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS MEDIANTE COMPUTADORAS

La resolución de problemas con computadoras se puede dividir en tres fases:


1. Análisis del problema
2. Diseño del algoritmo
3. Resolución del algoritmo en la computadora
Análisis del problema
El problema debe estar bien definido para llegar a una solución satisfactoria. Para
poder definir con precisión el problema se requiere que las especificaciones de
entrada y salida sean descritas con detalle (Fig. 2.1). Para ello se deben responder las
siguientes preguntas:
• ¿Qué información debe proporcionar la resolución del problema?
• ¿Qué datos se necesitan para resolver el problema?
Diseño del Algoritmo
Una computadora no tiene capacidad de solucionar problemas por sí sola, sino cuando
se le proporcionan los pasos que debe realizar. A estos pasos se les conoce como el
algoritmo.
El diseño del algoritmo se subdivide en tres etapas
1. Diseño descendente
2. Refinamiento del algoritmo
3. Herramientas de programación
Los problemas complejos se pueden resolver más eficazmente con la computadora
cuando se rompen en subproblemas que sean más fáciles de solucionar que el
original. Una metodología aprobada para este proceso se denomina diseño
descendente (top-down design) y sus ventajas más importantes son:
• El problema se comprende más fácilmente al dividirse en partes más
simples llamadas módulos.
• Las modificaciones en los módulos son más fáciles.
• La comprobación del problema se puede verificar fácilmente.
Una vez dividido el problema, se procede a realizar una descripción más detallada con
pasos específicos. A este proceso se le conoce como refinamiento del algoritmo
(stepwise refinement).
Tras los pasos anteriores (diseño descendente y refinamiento por pasos) es preciso
presentar el algoritmo mediante una herramienta de programación: diagrama de flujo o
pseudocódigo,

Resolución del algoritmo en la computadora


Una vez que el algoritmo está diseñado y representado gráficamente mediante una
herramienta de programación (diagramas de flujo o pseudocódigo) se debe pasar a la
fase de resolución práctica del problema en la computadora.
Esta fase se descompone en tres etapas
1. Codificación del algoritmo en un programa
2. Ejecución del programa
3. Comprobación del programa
ALGORITMOS Y ESTRUCTURA DE DATOS
Prof: O. Rosales P.

TERCERA SEMANA: Representación de algoritmos. Pseudocódigo. Diagramas


de flujo. Escritura de algoritmos en pseudocódigo y diagramas de flujos

El pseudocódigo es una herramienta de programación en la que las instrucciones se


escriben en palabras similares al inglés o español, que facilitan tanto la escritura como
la lectura de programas. En esencia, el pseudocódigo se puede definir como un
lenguaje de especijicaciones de algoritmos.
El pseudocódigo es un lenguaje de pseudoprogramación utilizado para escribir
algoritmos computacionales. Como lenguaje de pseudoprogramación, el
pseudocódigo es una imitación de uno o más lenguajes de programación. De esta
manera podemos encontrar pseudocódigos orientados a lenguajes de programación
como Pascal, Java, C, C++, etc. El objetivo del pseudocódigo es permitir que el
programador se centre en los aspectos lógicos de la solución, evitando las reglas de
sintáxis de los lenguajes de programación. No siendo el pseudocódigo un lenguaje
formal, los pseudocódigos varían de un programador a otro, es decir, no hay un
pseudocódigo estándar.

Un diagrama de flujo íJowchart) es una representación gráfica de un algoritmo. Un


diagrama de flujo es una de las técnicas de representación de algoritmos más usada
que utiliza los símbolos estándar y que tiene los pasos del algoritmo escritos en dichos
símbolos unidos por flechas, denominadas líneas de flujo que indican la secuencia.
Los símbolos utilizados han sido normalizados por el Instituto Norteamericano de
Normalización (ANSI), y los más frecuentemente empleados son:

INICIO/FIN También es un conector

Flecha: Indica la dirección o flujo a seguir

PROCESO: Cualquier operación o expresión

DECISION: Se utiliza para plantear una pregunta y con


la respuesta se optará por avanzar por solo uno de los
caminos posibles

Escritura de algoritmos en pseudocódigo y diagramas de flujos


EJERCICIOS PRACTICOS N°1 (SE CONSIDERARA COMO NOTA PRACTICA)
Elaborar un algoritmo en seudo código y diagrama de flujo para cada uno de los
siguientes Problemas:
1. Que halle el perímetro y área de:
a) un cuadrado cuyo lado mide L cm
b) una circunferencia de radio R cm

2. En una playa de estacionamiento cobran S/. 2.5 por hora o fracción. Determine
cuanto debe pagar un cliente por el estacionamiento de su vehículo, conociendo el
tiempo de estacionamiento en horas y minutos

3. El sueldo neto de un vendedor se calcula como la suma de un sueldo básico de


S/.550 más el 15% del monto total vendido. Determine el sueldo neto de un vendedor
sabiendo que hizo tres ventas en el mes,

4. Una institución benéfica europea ha recibido tres donaciones en soles, dolares y


marcos. La donación será repartida en tres rubros: 50% para la implementación de un
centro de salud, 40% para un comedor de niños y el resto para gastos administrativos.
Determine el monto en euros que le corresponde a cada rubro. Considere que: 1 dólar
= 2.72 soles, 1 dólar = 2.08 marcos, 1 dólar = 0.67 euros.

Potrebbero piacerti anche