Unidad 1: Algoritmo y Programas
- Introducción a la estructura del computador. Componentes de hardware: CPU, Memoria, dispositivos de E/S, etc. Componentes de Software: Sistemas operativos. Lenguaje de máquina. Lenguajes de programación, compiladores e interpretadores.
- Concepto de Algoritmos y Programas.
- Lenguaje algorítmico y de programación.
- Partes de un algoritmo.
- Características y elementos para construir un algoritmo.
- Formas de representar un algoritmo: Lenguaje Natural, pseudocódigo y diagrama de flujo.
- Traza de un algoritmo (corrida en frío).
- Libro Joyanes de la página 4 a la página 24.
- Algoritmo Barber y Farris desde la página 1 a la pagina 8
- Libro de Algoritmo página 43 a la página 46
Introducción a la estructura del computador.
EL COMPUTADOR
El computador es una máquina que está diseñada para desarrollar múltiples
tareas que ahora hacen partes de nuestra vida cotidiana, como elaborar trabajos escritos, hablar con personas de otros
países, hacer aplicaciones, jugar y navegar por Internet.
Un computador se compone del software que refiere al conjunto de programas,
instrucciones y reglas informáticas, y el hardware que es el conjunto de los
componentes físicos que componen el equipo.
ELEMENTOS
DEL HARDWARE
Se refiere a todas las partes tangibles de un sistema
informático; sus componentes son: eléctricos, electrónicos, electromecánicos y
mecánicos.
Son cables, gabinetes o cajas, periféricos de todo
tipo y cualquier otro elemento físico involucrado; contrariamente, el soporte
lógico es intangible y es llamado software.
El término es propio del idioma inglés (literalmente
traducido: partes duras), su traducción al español no tiene un significado
acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real Academia
Española lo define como «Conjunto de los componentes que integran la parte
material de una computadora».
El término se aplica del mismo modo a un robot, un
teléfono móvil, una cámara fotográfica o un reproductor multimedia poseen
hardware .
PARTES DEL HARDWARE
LA MOTHERBOARD (Tarjeta Madre)
La placa base, placa madre, tarjeta madre o board (en inglés motherboard,
mainboard) es una tarjeta de circuito impreso a la que se conectan las demás
partes de la computadora. Tiene instalados una serie de integrados, entre los
que se encuentra el Chipset que sirve como centro de conexión entre el
procesador, la memoria RAM, los buses de expansión y otros dispositivos.
Va instalada dentro de un gabinete que por lo general esta hecho de lámina
y tiene un panel para conectar dispositivos externos y muchos conectores
internos y zócalos para instalar componentes dentro del gabinete.
La placa base además incluye un software llamado BIOS, que le permite
realizar las funcionalidades básicas como: pruebas de los dispositivos, vídeo y
manejo del teclado, reconocimiento de dispositivos y carga del sistema
operativo.
EL MICROPROCESADOR
El procesador (CPU, por Central Processing Unit o Unidad Central de
Procesamiento). Permite el procesamiento de información numérica, es decir,
información ingresada en formato binario, así como la ejecución de
instrucciones almacenadas en la memoria.
El procesador es un circuito electrónico que funciona a la velocidad de un
reloj interno, gracias a un cristal de cuarzo que, sometido a una corriente
eléctrica, envía pulsos, denominados "picos". La velocidad de reloj
(también denominada ciclo), corresponde al número de pulsos por segundo,
expresados en Hertz (Hz). De este modo, un ordenador de 200 MHz posee un reloj
que envía 200.000.000 pulsos por segundo. Por lo general, la frecuencia de reloj
es un múltiplo de la frecuencia del sistema.
MEMORIA RAM
La memoria principal o RAM (Random AccessMemory, Memoria de Acceso
Aleatorio) es donde se guardan los datos que está utilizando el computador en
el momento presente. El almacenamiento es temporal por que los datos y
programas permanecen en ella mientras que la computadora este encendida o no
sea reiniciada.
Se le llama RAM por que es posible acceder a cualquier ubicación de ella
aleatoria y rápidamente.
Físicamente, están constituidas por un conjunto de chips o módulos de chips
normalmente conectados a la tarjeta madre. Los chips de memoria son rectángulos
negros que suelen ir soldados en grupos a unas plaquitas con "pines"
o contactos:
La diferencia entre la RAM y otros tipos de memoriade almacenamiento, como
los disquetes o los discos duros, es que la RAM es mucho más rápida, y
desaparece la información al apagar el computador, no como los Disquetes o
discos duros en donde la información permanece almacenada.
DISCO DURO
Un disco duro (del inglés hard disk (HD)) es un disco magnético en el que
se puede almacenar información. El disco duro es la parte del computador que
contiene la información electrónica y donde se almacenan todos los programas
(software). Es uno de los componentes del hardware más importantes dentro de tu
PC.
El término duro se utiliza para diferenciarlo del disco flexible o disquete
(floppy en inglés), memorias , pendrive. Los discos duros pueden almacenar
muchos más datos y son más rápidos que los disquetes.
LA FUENTE ALIMENTACION
La fuente de alimentación, es el componente electrónico encargado de
transformar la corriente de la red eléctrica con una tensión de 200V ó 125V, a
una corriente con una tensión de 5 a 12 voltios (que es la necesaria para
nuestra PC y sus componentes).
Como los componentes de la PC funcionan con corriente
contínua, lógicamente la corriente alterna no nos sirve, ya que los mismos no
funcionarán.
SERVIDOR:
Computadora principal de la red que administra los recursos, procesos y
programas de la red, además de que controla el flujo de información y los
servicios de seguridad. Presta servicios a los clientes o estaciones de
trabajos. Debe ser una computadora con gran capacidad de almacenamiento y
velocidad.
CLIENTE:
Es una computadora que se conecta con el servidor para solicitar sus
servicios y tener acceso a la red.
Procesador.
Un procesador es un chip o un tipo de complemento electrónico.
Batería.
Es la que se usa básicamente para mantener el reloj interno de la
computadora actualizado es decir, mantener la fecha y la hora correcta y
actualizada.
Bus de Datos.
Es un conjunto de conexiones físicas que transfieren información de un
lugar a otro.
Bios.
Es la que se encarga de reconocer todos los dispositivos de la computadora
parar cargar el sistema operativo
MEDIOS DE TRANSMISIÓN:
Canal que permite transmitir la información entre equipos y pueden ser
alambritos (cables) o inalámbricos (señales), satélites, señales ópticas,
ondas, etc.
TARJETA DE RED:
Placa de circuitos que se encarga de la conexión de una computadora a una
red. También se llama tarjeta de interfaz de red o tarjeta adaptadora.
MODEM:
Dispositivo que permite traducir señales analógicas digitales.
ROUTER:
Dispositivo que elige el camino por el cual viajaran los paquetes de
información.
SWITCH:
Dispositivo que enlaza los datos entre dos segmentos de red, enviando la
información únicamente a la dirección predestinada.
HUB:
Dispositivo que enlaza dos segmentos de red enviando la información a todos
los puertos disponibles.
SOFTWARE.
Se conoce como software al equipamiento lógico o soporte lógico de un
sistema informático, que comprende el conjunto de los componentes lógicos necesarios
que hacen posible la realización de tareas específicas, en contraposición a los
componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones
informáticas; tales como el procesador de texto, que permite al usuario
realizar todas las tareas concernientes a la edición de textos; el llamado
software de sistema, tal como el sistema operativo, que básicamente permite al
resto de los programas funcionar adecuadamente, facilitando también la interacción
entre los componentes físicos y el resto de las aplicaciones, y proporcionando
una interfaz con el usuario.
CLASIFICACIÓN DEL SOFTWARE
Software de Sistema
Este grupo comprende el sistema operativo, controladores de dispositivos,
utilitarios de sistema y toda aquella herramienta que sirva para el
control específico de las características de la computadora.
Software de Aplicación
Se le llama software de aplicación a todos aquellos programas
utilizados por los usuarios para la concreción de una tarea, tenemos diseño
gráfico, de contabilidad, seguros, bancarios y muchos más.
SISTEMA OPERATIVO Y CUÁLES SON LOS MÁS
USADOS
El Sistema operativo es el software más importante de un computador. Para
que funcionen los otros programas, cada PC debe tener un sistema operativo. Los
sistemas operativos realizan tareas básicas, tales como reconocimiento de la
conexión del teclado, enviar la información a la pantalla, no perder de vista
archivos y directorios en el disco, y controlar los dispositivos periféricos tales
como impresoras, escáner, y otros.
En sistemas grandes, el sistema operativo tiene incluso mayor
responsabilidad asegurando que los programas y usuarios que están funcionando
al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable
de la seguridad, asegurándose de que los usuarios no autorizados no tengan
acceso al sistema.
Clasificación de los Sistemas Operativos
Se clasifican de la siguiente forma:
·
Multiusuario: Permite que dos o más usuarios utilicen
sus programas al mismo tiempo. Algunos sistemas operativos permiten a
centenares o millares de usuarios al mismo tiempo.
·
Multiprocesador: soporta el abrir un mismo programa en
más de un computador.
·
Multitarea: Permite que varios programas se ejecuten
al mismo tiempo.
·
Multitramo: Permite que diversas partes de un solo
programa funcionen al mismo tiempo.
·
Tiempo Real: Responde a las entradas inmediatamente.
¿Cómo funciona un Sistema Operativo?
Los sistemas operativos proporcionan una plataforma de software encima de
la cual otros programas, llamados aplicaciones, puedan funcionar. Las
aplicaciones se programan para que funcionen encima de un sistema operativo
particular, por tanto, la elección del sistema operativo determina en gran
medida las aplicaciones que puedes utilizar.
¿Cómo se utiliza un Sistema Operativo?
Un usuario normalmente interactúa con el sistema operativo a través de un
sistema de
comandos.
Dispositivo de entrada
Son aquellos que sirven para introducir
datos al computador. Los datos se leen de los dispositivos de entrada y se
almacenan en la memoria central o interna.
·
Ratón: La función principal del ratón es transmitir
los movimientos de nuestra mano sobre una superficie plana hacia el ordenador.
En el momento de activar el ratón, se asocia su posición con la del cursor en
la pantalla. Si desplazamos sobre una superficie el ratón, el cursor seguirá
dichos movimientos.
·
Teclado: Es el dispositivo más común de entrada de
datos. Se lo utiliza para introducir comandos, textos y números. Estrictamente
hablando, es un dispositivo de entrada y de salida, ya que los LEDS también
pueden ser controlados por la máquina.
·
Escáner: Por digitalizar se entiende la operación
de transformar algo analógico (algo físico, real, de precisión infinita) en
algo digital (un conjunto finito y de precisión determinada de unidades lógicas
denominadas bits).
·
Webcam: Es una cámara que esta simplemente
conectada a la red.
·
Dispositivos de salida:
Son los que permiten mostrar los resultados (salida) del proceso de datos.
El dispositivo de salida típico es la pantalla y la impresora (imprimen
resultados en papel).
·
Monitor o Pantalla:
Es el dispositivo en el que se muestran las imágenes generadas por el computador.
El monitor se conecta al adaptador de vídeo mediante un cable. Evidentemente,
es la pantalla en la que se ve la información suministrada por el computador.
·
Impresoras:
La impresora es el periférico que el
computador utiliza para presentar información impresa en papel. Las primeras
impresoras nacieron muchos años antes que el PC e incluso antes que los
monitores.
·
Cornetas, Altavoces, Audífonos o Bocinas:
Dispositivos por los cuales se emiten sonidos procedentes de la tarjeta de
sonido. Algunos de estos dispositivos son de mesas, similares a la de cualquier
aparato de sonidos y otras son portátiles (audífonos). Existen modelos muy
variados.
HARDWARE Y SOFTWARE
es la parte que puedes ver del computador, es decir todos los componentes
de su estructura física: La pantalla, el teclado, la torre y el ratón hacen
parte del hardware de tu equipo.
Software
Es uno de los programas informáticos que
hacen posible la realización de tareas específicas dentro de un computador:
Ejemplo Writer, Calc, Impress, los navegadores web, juegos, el sistema operativo,
entre otros.
Internet es la gran biblioteca virtual mundial, donde cualquier persona en
cualquier parte del mundo puede acceder a este gigantesco archivo digital donde
parte del conocimiento, el ocio y el mundo laboral convergen en un mismo
espacio.
Internet representa el máximo exponente de la globalización.
Programa
fuente.
Es
un programa que puede traducirse en forma automática en lenguaje de
máquina. Está escrito en un lenguaje concebido para facilitar la
expresión de una clase de problemas o de procedimientos por parte de
seres humanos; utiliza un compilador, ensamblador o traductor para
realizar la mecánica de la traducción del programa fuente en un
programa objeto en lenguaje de máquina.
Programa
objeto.
Es
un programa fuente que ha sido traducido a lenguaje de máquina. El
programa fuente se convierte, entonces, en un conjunto de
instrucciones de lenguaje de máquina para la solución de un
problema, obtenido como el resultado final de un proceso de
compilación.
Ensamblador.
El
ensamblador traduce las instrucciones simbólicas de un lenguaje de
programación a las instrucciones necesarias de máquina para que
sean ejecutadas. En los lenguajes ensambladores se define un código
especial (llamado nemónico) para cada una de las operaciones de la
máquina y se introduce una notación especial para especificar el
dato con el cual debe realizarse la operación. El ensamblador
origina una instrucción en lenguaje de máquina por cada instrucción
del lenguaje a trad ucir. En general es utilizado con los lenguajes
de bajo nivel.
Compilador.
Son
traductores más complejos. Traduce los programas que realiza el
usuario al lenguaje de máquina necesario para que sean ejecutados.
Además de hacer dicha traducción, el compilador chequea que el
programa fuente esté correcto en cuanto a sintaxis e instrucciones
propias de cada lenguaje. Los compiladores para la mayor parte de los
lenguajes de programación los proporciona el fabricante.
El
compilador genera una o más instrucciones en el lenguaje de máquina
por cada instrucción del lenguaje de programación. Se utiliza en
los lenguajes de alto nivel. La traducción, en general, se realiza
en dos pasos: primero las instrucciones en lenguaje de alto nivel se
traducen a una secuencia de instrucciones en el lenguaje de bajo
nivel y a continuación se efectúa la traducción al lenguaje de
máquina. El compilador asigna las posiciones de memoria por cada
variable que encuentra conforme lee y traduce las instrucciones.
Interpretador.
Es
un programa de computador que traduce cada instrucción o sentencia
del lenguaje original a una secuencia de instrucciones de máquina,
antes de traducir la siguiente sentencia en lenguaje original.
Lenguaje
de computadora.
Conjunto
definido de caracteres que sirven para formar símbolos, palabras,
instrucciones, etcétera, así como las reglas para combinar estos
caracteres, dando como resultado comunicaciones significativas, por
ejemplo FORTRAN, PASCAL, PROLOG, C, C++, JAVA.
Lenguaje
de máquina.
Es
el conjunto final que todas las computadoras deben utilizar (lenguaje
binario). Todos los demás lenguajes de programación deben
compilarse o traducirse, a la larga, a un código binario antes de
introducirse en el procesador. El lenguaje binario es el lenguaje de
máquina.
Lenguaje
de bajo nivel.
Los
lenguajes de bajo nivel son el primer paso de la sofisticación de
los lenguajes de computadora. Permiten una comunicación más fácil
con la computadora. Las instrucciones escritas en lenguaje de bajo
nivel deben ser traducidas por medio de una traductora a lenguaje de
máquina. La traducción que se hace es uno a uno, es decir, una
instrucción en lenguaje de bajo nivel se transforma en una
instrucción de lenguaje de máquina.
Lenguaje
de alto nivel.
Es
el lenguaje simbólico más fácil de entender y de programar: en él
se prepara un programa para ser procesado por computadora. Este
lenguaje es traducido a lenguaje objeto mediante un ensamblador o
compilador. A diferencia de los anteriores éste es más flexible,
fácil de aprender y más apropiado para corregir los errores de
programación.
Una
instrucción de lenguaje de alto nivel es traducida a lenguaje de
máquina en una o varias instrucciones. En la medida en que se
simplifica el trabajo del programador, crece el trabajo del
traductor.
Dirección
de memoria.
Cada
computador tiene una cantidad determinada de almacenamiento interno
denominada memoria principal, además del almacenamiento externo
consistente en cintas, disquetes y discos magnéticos. Las dos formas
de almacenamiento difieren en sus características y propósitos. Los
programas que están en ejecución, así como los datos necesarios
para ello, deben residir en la memoria principal. La memoria
principal de la computadora se divide en unidades pequeñas e iguales
denominadas palabras que tienen una única dirección. Cada palabra
es capaz de almacenar una unidad de información; por ejemplo, los
resultados numéricos de la computadora. El tamaño de la palabra es
un parámetro de diseño de la computadora y determina, digamos, el
número más grande y más pequeño que puede ser almacenado.
Las
direcciones de memoria identifican cada palabra individualmente, de
tal manera que la
información
contenida en ella pueda leerse, o almacenar nueva información.
Bit.
Es
la abreviatura de binary digit. Es una unidad de información que
equivale a una decisión binaria, o la designación de uno de dos
valores o estados posibles igualmente probables. Se suele expresar
como ‘l’ o ‘0’. Representa una unidad minúscula de memoria
que puede tener dos estados encendido, o apagado, donde el estado
encendido se representa mediante uno y el apagado mediante cero.
Byte.
Es
un conjunto de BITS consecutivos que se tratan como una sola entidad,
por lo general son 8 BITS. También se le conoce como el número de
BITS necesarios para representar un carácter en la memoria de la
computadora.
Palabra.
Son
unidades de almacenamiento a las que se les asigna una dirección de
memoria. Son tratadas por los circuitos de la computadora como una
entidad, por la unidad de control como una instrucción y por la
unidad aritmética como una cantidad. Este grupo de BITS es el más
grande tratado a través del procesador central como una sola unidad.
El tamaño de la palabra depende de la arquitectura de la
computadora; se pueden tener palabras de uno, dos, cuatro, ocho o más
BYTES.
Campo.
Es
un grupo de caracteres que se pueden tratar como una unidad de
información simple. Las instrucciones de los lenguajes están
constituidas por varios campos. Dependiendo de la computadora, del
lenguaje de programación utilizado y de la forma como el campo sea
definido, a un campo se le asignará una o más palabras.
Registro.
Es
un conjunto de campos que se refieren a una misma actividad que se
desea procesar; por ejemplo, toda la información sobre un artículo
de inventario, la información que contiene una lista de clase sobre
un estudiante (código, nombres, programa, etc.).
Archivo.
Es
un dispositivo de software utilizado para almacenar información en
forma masiva, relacionada con una determinada entidad, persona o
cosas. Ejemplo: suponga que la compañía A tiene 100 clientes y que
se mantiene la siguiente información acerca de cada uno de ellos:
nombre, dirección, balance de crédito, descuento permitido. La
información individual de cada cliente se denomina registro y un
conjunto de registros formará un archivo, es decir, un archivo de
datos de los registros de los clientes. Los archivos pueden tenerse
en varias formas y en diferentes medios de almacenamiento.
Base
de datos.
Es
un conjunto de archivos relacionados de una manera especial, que
continuamente se está actualizando.
Representación
de datos
La
información binaria en computadoras digitales está almacenada en
memoria, en registros procesadores. Los registros pueden
contener datos o información de control. La información es un bit o
grupo de bits, utilizado para especificar la secuencia de comandos de
señales necesarias para manipular los datos de otros registros. Los
datos son números u otra información codificada en binario operados
para lograr los resultados computacionales requeridos. Aquí se
presentarán los más comunes tipos de datos encontrados en
computadores digitales y se mostrará cómo los diferentes tipos de
datos son representados en forma codificada en binario en los
registros de computadores.
Los
tipos de datos.
Los
tipos de datos encontrados en los registros de computadoras
digitales se pueden clasificar en alguna de las siguientes
categorías:
a)
números, utilizados en cálculos aritméticos;
b)
letras del alfabeto, utilizadas en procesamiento de datos,
c)
otros símbolos, utilizados para propósitos específicos.
Todos
los tipos de datos, excepto números binarios, se representan en
registros de computadores en forma codificada en binario.
Tipos
de campos.
Para
que una computadora pueda hacer cálculos debe tener almacenados en
la memoria principal los valores con los cuales ha de trabajar; por
lo tanto, se necesita un espacio interno para guardar esos valores en
forma temporal.
Esos
espacios internos de la memoria son grupos de bits biestables
denominados campos; a éstos se les asigna una única dirección de
memoria y su capacidad o valor máximo que se puede almacenar en
ellos dependerá del tamaño del grupo. Los campos pueden ser de dos
clases:
Campos
variables: son todos aquellos campos que permiten que el contenido
almacenado en el espacio de memoria asignado, pueda ser alterado en
el transcurso de la ejecución del programa; o sea, en un momento
tiene un valor y más adelante puede tener otro distinto, pero nunca
más de un valor al mismo tiempo. Esta clase de campos, que en lo
sucesivo se denominarán simplemente variables, se identifican por un
nombre con el cual actúan durante todo el transcurso del proceso,
por lo tanto, deben ser únicos. El nombre dado a la variable debe
iniciar con una letra seguida, si se quiere, de letras o dígitos. Es
el programador quien da nombre a sus variables teniendo en cuenta la
regla anterior.
Ejemplos
de nombres de variables:
- a
- b1
- c1az
- nombre
- salariohora
Clases
de información
Los
principales tipos de información, entre otros, que se manejan en una
computadora son:
Información
numérica: es toda aquella información con o sin decimales (entera o
real) con la cual se pueden hacer cálculos aritméticos o
matemáticos. Esta información puede estar representada como una
constante o una variable. Por ejemplo:
• Como
constantes:
- 20
- 30,6
- 2000
• Como
variables cuyo contenido siempre será numérico:
- NUMERO PAGO CANTIDAD
- 20.666 110.5 4556
Información
como caracteres:
Muchos
procesos o programas no sólo requieren de la manipulación de
valores numéricos, sino también de letras y símbolos especiales
con los cuales, lógicamente, no se pueden efectuar operaciones de
cálculo matemático. Por ejemplo: los nombres de personas.
Esta
información también puede representarse como constante o como
variable.
Por
ejemplo:
• Como
constante:
- “A” Las comillas indican que se trata del carácter A y no de la variable A.
- “JUAN PABLO”
- “ALBERTO”
- “1” Muy diferente al número 1, su forma de almacenamiento es distinta.
- “*B4”
- “+* _”
Información
lógica:
Este
tipo de información sólo tiene dos posibles valores: falso o
verdadero. Al igual que el tipo de información anterior, éste
tampoco puede ser utilizado para efectuar cálculos matemáticos. Se
utilizarán las notaciones:
.V.
para representar el valor verdadero,
.F.
para representar el valor falso.
Aspectos
importantes a tener en cuenta
- Los nombres de variables deben ser únicos: no pueden representar dos cosas al mismo tiempo.
- Una variable sólo puede almacenar un único valor.
- Una variable no puede almacenar tipos de información distintos. Sólo un tipo: numérica, carácter o lógica.
- Los números son diferentes como tales y como caracteres (1 diferente de “1”).
- Es aconsejable que los nombres dados a las variables se asemejen a lo que representan.
- Es necesario diferenciar el nombre de la variable y el contenido que ésta tiene en un momento determinado.
- A todos los campos se les asigna una única dirección de memoria, que le permite a la computadora llevar información al campo desde un medio externo, sacar información desde memoria y representarla en un medio de salida.
- Las direcciones de memoria son asignadas después de la compilación; en esta fase se asignan
- los valores de los campos constantes. A las variables, aunque tienen asignadas sus direcciones de memoria, se les da valor en la etapa de ejecución; antes de ésta los campos variables tienen un valor indeterminado (basura).
Definición de algoritmo:
Barber y Ferris() lo definen como “El conjunto finito de pasos y acciones
que especifican de forma clara y concisa (sin ambigüedades) la secuencia de
operaciones a realizar para procesar adecuadamente unos datos con un
determinado objetivo”.
La definición de la Real Academia: “Conjunto ordenado y finito de
operaciones que permiten resolver un problema”.
Lopez (2009) lo define como : “los Algoritmos son una herramienta que
permite describir claramente un conjunto finito de instrucciones, ordenadas
secuencialmente y libres de ambigüedad, que debe llevar a cabo un computador
para lograr un resultado previsible.”.
Lo define como “una secuencia precisa de operaciones (pasos) que resuelven
un problema en un tiempo finito”.
También existen otras definiciones que dice “es un método para resolver un
problema mediante una secuencia de pasos bien definidos, ordenados y finitos.”
Balderrama (s/f) recoge la definición de varios autores:
·
“Un Algoritmo es una secuencia de operaciones detalladas y no ambiguas, que
al ejecutarse paso a paso, conducen a la solución de un problema”. En otras
palabras es un conjunto de reglas para resolver una cierta clase de problema.
·
“Algoritmo es un conjunto de instrucciones que especifican la secuencia de
operaciones a realizar, en orden, para resolver un sistema específico o clase
de problema”.
·
“Un Algoritmo es la aplicación de pasos lógicos, secuenciales y
metódicamente aplicados para dar solución a un problema en cuestión.” En otras
palabras un algoritmo es una fórmula para resolver problemas.
·
“En otras palabras un algoritmo es una formula para la solución de un
problema.”
·
“Todo problema se puede describir por medio de un algoritmo “
Pasos a realizar para desarrollar
un algoritmo
·
Problema
·
Análisis del Problema
·
Formulación del procedimiento para resolverlo.
·
Descripción del Procedimiento
·
Ejecución del procedimiento
·
Solución
Características De Los Algoritmos.
Los algoritmos son
independientes del lenguaje de programación que los ejecuta.
Las propiedades de un algoritmo son las siguientes:
a) El algoritmo debe ser preciso e indicar el orden de realización de cada
paso.
b) El algoritmo debe ser definido, si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
c) El algoritmo debe ser finito, si se sigue un algoritmo se debe terminar
en algún momento; o sea debe tener un número finito de pasos.
d) Debe ser eficiente y rápido.
El estilo y calidad de los algoritmos van
fuertemente unidos, ante la pregunta “¿Cuáles son las características de un
buen algoritmo?” la respuesta identifica los factores de calidad de los
algoritmos.
• Corrección: el algoritmo debe funcionar.
• Eficiencia : el algoritmo no debe desaprovechar recursos.
• Claridad : el algoritmo debe estar bien documentado.
Representación de algoritmos.
Diagramas de flujo: son representaciones gráficas de secuencias de paso a
realizar, sus líneas de flujo indican el orden de ejecución.
Pseudocódigos: describen un algoritmo de forma similar a un lenguaje de
programación, muy parecido al lenguaje natural.
2.4 Clasificación De Los
Algoritmos
Se puede clasificar tomando en cuenta dos aspectos.
• Secuenciales
• Condicionales
• Repetitivos
Estructura secuencial:
Es aquella donde un conjunto de instrucciones se ejecutan una tras otra de
arriba hacia abajo.
Ejemplo:
Calcular un número en pulgadas dado el registro por teclado de su
equivalente en centímetros.
Inicio
1.- 'Imprimir el número en centímetros'
2.- Leer valor
3.- Calcular equivalente = valor / 2.54
4.- 'Imprimir el valor en pulgadas es = ' , equivalente
Fin
En esta parte de la clase se
explicaron las partes de un algoritmo, junto con diversos ejemplos para tratar
de identificarlas ya en el código Javascript.
· Entrada de datos
· Procesamiento de los datos
· Salida de los resultados
Traza de un algoritmo (corrida en frío).
- La traza de un algoritmo indica la secuencia (instrucciones) de su ejecución, así como, el valor de las variables del algoritmo (o programa) después de cada acción (instrucción).
- Simula en papel la ejecución de un programa en un computador.
- Visualiza la evolución temporal de las variables en un algoritmo.
- Permite comprobar que el resultado de un algoritmo se corresponde con la salida deseada.
Definimos una variable, la función de la variable dentro del algoritmo y sus valores iniciales y finales.
Ejemplo: Cálculo de la longitud de una circunferencia.
Algoritmo: Cálculo
variable1: pi: 3,14159
variables r,resultado
Escribir (" Introduzca el radio de la circunferencia")
Leer r
Resultado = 2 pi * r
escribir (" Su longitud es ", Resultado)
fin algoritmo.
Características de un algoritmo
Estas son las
características que debe tener un algoritmo. Algunas de ellas ya las hemos
mencionado. Te darás cuenta que la mayoría son de sentido común.
Estar bien detallado:
No nos olvidemos que a los ordenadores hay que darles todos los pasos, uno a uno, sin olvidar u obviar ninguno de ellos, porque por si solos no son capaces de entender nada.
No nos olvidemos que a los ordenadores hay que darles todos los pasos, uno a uno, sin olvidar u obviar ninguno de ellos, porque por si solos no son capaces de entender nada.
Estar bien ordenado:
Lógicamente, un algoritmo tiene unos pasos a ser realizados en una secuencia. Pensemos en el algoritmo de beber agua. ¿Qué os parece si después de sacar el vaso del armario de la cocina me lo llevo directamente a la boca para beber?
Lógicamente, un algoritmo tiene unos pasos a ser realizados en una secuencia. Pensemos en el algoritmo de beber agua. ¿Qué os parece si después de sacar el vaso del armario de la cocina me lo llevo directamente a la boca para beber?
Tener un principio y un fin:
Tenemos que empezar por algún lugar y terminar en un número finito de pasos, si no, no es un algoritmo. Si nunca acaba nuestro proceso soy incapaz de llegar al final y por tanto no obtengo el resultado deseado, con lo que no se cumple la definición de algoritmo.
Tenemos que empezar por algún lugar y terminar en un número finito de pasos, si no, no es un algoritmo. Si nunca acaba nuestro proceso soy incapaz de llegar al final y por tanto no obtengo el resultado deseado, con lo que no se cumple la definición de algoritmo.
Ser fiable:
Este punto incluye muchas cosas, como que el algoritmo resuelva los problemas sin errores y también que una misma entrada de datos produzca una misma salida. Si estamos haciendo el algoritmo del área de un cuadrado y para un cuadrado de 2 metros una vez calculamos el área como 2 metros cuadrados y otras veces como 4 metros cuadrados, habrá algo que hemos hecho mal.
Este punto incluye muchas cosas, como que el algoritmo resuelva los problemas sin errores y también que una misma entrada de datos produzca una misma salida. Si estamos haciendo el algoritmo del área de un cuadrado y para un cuadrado de 2 metros una vez calculamos el área como 2 metros cuadrados y otras veces como 4 metros cuadrados, habrá algo que hemos hecho mal.
Existen tres instrucciones algorítmicas básicas que son las
siguientes
. Entrada
Consiste en obtener un dato de un dispositivo de
entrada, como el teclado, y almacenarlo en una variable. En general, la acción
de ingresar un dato a una variable se expresa en el pseudocódigo
mediante la palabra LEER, de la siguiente forma:
LEER variable
Por ejemplo, la instrucción:
LEER estatura
Solicita el ingreso de un valor, desde algún dispositivo de entrada (como
el teclado), para la variable estatura.
. Salida
Consiste en mostrar el valor de una variable en un dispositivo de salida,
como la pantalla.
En general, la acción de mostrar el valor de una variable se
expresa en el pseudocódigo mediante la palabra IMPRIMIR de la
siguiente forma:
IMPRIMIR variable
Por ejemplo, la instrucción:
IMPRIMIR importeCompra
Muestra, en algún dispositivo de salida (como la pantalla), el valor de
la variable importeCompra.
. Asignación
Consiste en asignar a una variable el valor de
una expresión. La expresión puede ser una simple variable, un simple
literal o una combinación de variables, literales y operadores. La asignación
se expresa en el pseudocódigo de la siguiente forma:
variable = expresión
Donde variable y el valor de expresión deben tener el
mismo tipo de dato.
Cuando se asigna un valor ENTERO a una variable REAL,
entonces el valor ENTERO se convertirá en REAL antes de
almacenarse. Así, al asignar el valor ENTERO 25 a una variable REAL,
se almacenará 25.0.
Una expresión aritmética es una combinación de variables, literales y
operadores aritméticos.
. Operadores Aritméticos
En la tabla que sigue se muestran los operadores
aritméticos que vamos a utilizar.
Tabla
1.1 Operadores aritméticos
Operador
|
Significado
|
Ejemplo
|
+
|
Suma
|
a+b
|
-
|
Resta
|
a-b
|
*
|
Multiplicación
|
a*b
|
/
|
División
|
a/b
|
%
|
Residuo
|
a%b
|
Los operadores aritméticos pueden utilizarse con tipos enteros y reales.
Si en una operación con dos operandos, ambos operandos son enteros, el
resultado es un entero; si alguno de ellos es real, el resultado es real. Así,
15/4 es 3 y no 3.75; en cambio, 15.0/4 es 3.75.
. Reglas de jerarquía de los operadores aritméticos
Cuando una expresión aritmética tiene más de un operador aritmético, el
orden de aplicación de los operadores sigue un orden preciso determinado por
las reglas de jerarquía de los operadores aritméticos, que se muestran en
la siguiente tabla:
Tabla 1.2 Reglas de
jerarquía de los operadores aritméticos
Operador
|
Orden de evaluación
|
()
|
Se evalúan en primer lugar
|
*, /, %
|
Se evalúan en segundo lugar
|
+, -
|
Se evalúan en tercer lugar
|
Si existen paréntesis anidados, se evalúa primero la expresión en el par
más interno. Si varios operadores o paréntesis tienen la misma jerarquía, la
evaluación será de izquierda a derecha.
Tabla
1.3 Operadores relacionales
Operador
|
Significado
|
Ejemplo
|
>
|
mayor que
|
a > b
|
>=
|
mayor o igual que
|
a >= b
|
<
|
menor que
|
a < b
|
<=
|
menor o igual que
|
a <= b
|
==
|
igual a
|
a == b
|
!=
|
diferente de
|
a != b
|
Traza de un algoritmo (corrida en frío).
¿Qué es la traza (de un algoritmo)?
|
La traza de un algoritmo (o programa)
indica la secuencia de acciones (instrucciones)
de su ejecución, así como, el valor de las variables del
algoritmo (o programa) después de cada acción (instrucción).
Algoritmos no computacionales a)Algoritmo para comenzar a trabajar en el computador Inicio
Conectar
el cable del regulador en el enchufe.
Prender el
regulador. Oprimir el botón de encendido del computador.
Oprimir el
botón de encendido del monitor.
Esperar
que inicie el sistema operativo.
Comenzar a
trabajar en el computador
Fin
b)Algoritmo para cambiar un caucho espichado Inicio
Aflojar
los tornillos del caucho espichado con la llave inglesa.
Ubicar el
gato mecánico en el sitio respectivo.
Levantar
el gato hasta que la rueda pinchada pueda girar libremente.
Quitar los
tornillos y el caucho espichado.
Poner el
caucho de repuesto y los tornillos.
Bajar el
gato.
Sacar el
gato de su sitio.
Apretar
los tornillos con la llave inglesa.
Fin
c)Algoritmo para realizar una llamada telefónica Inicio
Descolgar
el auricular
Esperar el
tono
Marcar el
número
Esperar
que contesten
Hablar
Colgar el
auricular
Fin
Algoritmos Computacionales d)Algoritmo para convertir horas a minutos Inicio
Leer horas
minutos←horas*60
Escribir
minutos
Fin
e)Algoritmo para determinar el promedio de 4 calificaciones Inicio
Leer
nota1,nota2,nota3,nota4
promedio=(nota1+nota2+nota3+nota4)/4
Escribir
promedio
Fin
f)Algoritmo para calcular el área de un cuadrado Inicio
Leer lado
area=lado
* lado
Escribir
área
Fin
|