domingo, 28 de septiembre de 2014

Arreglos

ARREGLOS
  
Pensar en la solución del siguiente problema: Se tienen los sueldos de un grupo de 70 empleados de una empresa y necesitamos saber cuántos de estos empleados tienen un sueldo superior al promedio del grupo. 

DEFINICIÓN 

Un arreglo es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. También se lo llama ARRAY Conviene imaginar un arreglo como una secuencia contigua de celdas (espacios de memoria), o casillas, en cada una de las cuales se puede guardar un elemento de la colección. Con frecuencia podemos encontrar problemas cuya solución es muy difícil de implementar si utilizamos tipos simples de datos. Por otra parte, podemos encontrar una buena solución al problema utilizando tipos estructurados de datos. 

CARACTERÍSTICAS

Es una colección finita, homogénea y ordenada de elementos.  
Finita: Todo arreglo tiene un límite, es decir, se deberá determinar cuál será el número máximo de elementos que formarán parte del arreglo. 
Homogénea: todos los elementos de un arreglo son del mismo tipo (todos enteros, todos reales etc) pero nunca una combinación de distintos tipos. 
Ordenada: se puede determinar cual es el primer elemento, el segundo… el n-ésimo elemento.

COMPONENTES


  • CELDAS O CASILLAS: Se utilizan para guardar un dato. 
  • DIMENSION O TAMAÑO: Es el número total de casillas que conforman el arreglo. 
  • DATO: Es la porción de información que se guarda en cada celda. 
  • INDICE o DIRECCIÓN: Es el número asociado a cada una de las casillas del arreglo, que lo identifica de manera única.

CLASIFICACIÓN



 
PENSAR :

¿Cuál es la diferencia entre una variable y un arreglo?

lunes, 8 de septiembre de 2014

Algoritmos y diagramas de flujo



UNIDAD N°1



ALGORITMOS Y DIAGRAMAS DE FLUJO



Operaciones básicas de una computadora
Muchas personas piensan que una computadora puede realizar tareas o trabajos de complejidad superior a la inteligencia humana. La realidad es que una computadora no tiene ninguna inteligencia.  Es una máquina creada por el hombre y, por tanto, no podrá realizar una tarea que no haya sido previamente determinada por él.
Una pc, solo es capaz de realizar tres operaciones básicas:
·         Sumar, restar, multiplicar y dividir dos valores numéricos.
·         Comparar dos valores (numéricos o alfanuméricos).
·         Almacenar o recuperar información.
Con estas pocas operaciones utilizadas y combinadas de forma adecuada, mediante lo que llamaremos programa, se pueden llegar a realizar tareas increíblemente complejas que aporten la solución a un determinado problema, ya sea de gestión, técnico o de cualquier tipo.

Fases de diseño del programa
Las fases correspondientes a la creación de un programa son básicamente las siguientes, teniendo en cuenta que algunos autores destacan algunas más:
·         Análisis
·         Programación
·         Codificación
·         Prueba
·         Ajuste
·         Mantenimiento

FASE DE ANÁLISIS:
Consiste en el examen y descripción detallada de los siguientes aspectos relativos al programa:
·         Equipo a utilizar: Características de hardware y software.
·         Personal informático.
·         Datos de entrada: Son los datos que se ingresarán en el programa (usuario, método, otros)
·         Datos de salida: Son los resultados que se esperan obtener
·         Procesos: Nos permite llegar a la solución del problema u obtener los resultados.  Es la relación entre los datos de entrada y los de salida.
El resultado de esta fase se denomina especificación del problema, formada por un conjunto de documentos elaborados.
Esta etapa se basa en recolectar y analizar información que nos permita obtener 3 componentes básicos:
·         Datos de entrada: Son los datos que se ingresarán en el programa (usuario, método, otros).
·         Datos de salida: Son los resultados que se esperan obtener.
·         Proceso: Nos permite llegar a la solución del problema u obtener los resultados.  Es la relación que existe entre los datos de entrada y los de salida.
FASE DE PROGRAMACIÓN
Consiste en el diseño de la solución al problema planteado en forma de algoritmo.  El resultado de esta fase es un algoritmo del conjunto de acciones que deberán ser realizadas por la computadora para resolver el problema.
FASE DE CODIFICACIÓN
En esta fase se transcribe el algoritmo resultante de la fase anterior a un lenguaje de programación.
FASE DE PUESTA A PUNTO DEL PROGRAMA
Se realizan diferentes pruebas, se corrigen errores y se instala el programa en la pc.
Existen otras fases como: Prueba, ajuste, documentación y mantenimiento que serán materia de estudio más adelante.




ALGORITMOS
DEFINICIONES
Se define como la serie de pasos organizados que describe el proceso que se debe seguir para dar solución a un problema específico.
Es un conjunto de acciones que deberán ser realizadas por la computadora para resolver el problema. 
Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Para realizar un programa es conveniente el diseño o definición previa del algoritmo.

CARACTERÍSTICAS DE LOS ALGORITMOS
Los algoritmos deben contar con las siguientes características:
·         Preciso. Definirse de manera rigurosa, sin dar lugar a ambigüedades.
·         Definido. Si se sigue un algoritmo dos veces, se obtendrá el mismo resultado.
·         Finito. Debe terminar en algún momento.
·         Puede tener cero o más elementos de entrada.
·         Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.
·         Se concluye que un algoritmo debe ser suficiente para resolver el problema.
Entre dos algoritmos que lleven a un mismo objetivo, siempre será preferible el más corto (se deberá analizar la optimización de tiempos y / o recursos).



ALGORITMOS CUALITATIVOS Y CUANTITATIVOS
Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Las instrucciones para armar un aeromodelo, para desarrollar una actividad física o encontrar un tesoro, son ejemplos de algoritmos cualitativos.
Como ejemplos, podemos mencionar el diseño de los algoritmos correspondientes para realizar las siguientes actividades: 
·         Tomar mate
·         Utilizar una guía telefónica
·         Cocinar siguiendo una receta
·         Cambiar una llanta de automóvil
·         Buscar una palabra en el diccionario 
Los algoritmos cuantitativos involucran cálculos numéricos.
Ejemplos:
·         Solución de un factorial
·         Solución de una ecuación de segundo grado
·         Encontrar el mínimo común multiplicador.

TÉCNICAS DE REPRESENTACIÓN
Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son:
·         Pseudocódigo
·         Diagramas de flujo 
·         Diagramas Nassi-Shneiderman 
·         Lenguaje natural (español, inglés, etc.)
·         Fórmulas matemáticas
En esta asignatura estudiaremos las dos primeras.

PSEUDOCÓDIGO
Es la técnica que permite expresar la solución de un problema mediante un algoritmo escrito en palabras normales de un idioma (por ejemplo, el español), utilizando palabras imperativas. No hay un léxico obligado para el pseudocódigo, pero con el uso frecuente se han establecido algunos estándares. 
Debe posibilitar la descripción de:
·         Instrucciones de entrada/salida
·         Instrucciones de proceso
·         Sentencias de control de flujo de ejecución
·         Acciones compuestas.
Algunas de sus instrucciones básicas son las siguientes:
Tipo de instrucción
Pseudocódigo
Comienzo de proceso
Inicio
Fin de proceso
Fin
Entrada (Lectura)
Leer
Salida (Escritura)
Escribir o Imprimir
Asignación
<- o =


Ejemplo:
Inicio
            Leer nombre, horas, valor_horas
            Salario_bruto = horas * valor_horas
            deduccion= Salario_bruto * 6%
            salario neto= salario_bruto – deduccion
            Imprimir nombre, salario_neto
Fin

DIAGRAMA DE FLUJO
Es la representación gráfica del flujo de datos e informaciones que maneja un programa.
Debe reflejar:
·         El comienzo programa
·         Las operaciones
·         La secuencia en que se realizan
·         El final del programa

REGLAS A SEGUIR
Para diseñar un diagrama de flujo, se deberán seguir las siguientes reglas:
·         El comienzo del programa figurará en la parte superior.
·         Los símbolos de comienzo y fin deberán aparecer una única vez.
·         El flujo de las operaciones será, siempre que sea posible, de arriba hacia bajo y de izquierda a derecha.
·         Se debe guardar una cierta simetría en la representación de bifurcaciones y bucles, así como en el conjunto total del diagrama.
·         Se evitarás siempre los cruces de línea utilizando conectores.
·         El uso de comentarios estará restringido al mínimo imprescindible.
·         Se utilizarán conectores en aquellos casos en los cuales se deba separar una parte de otra del programa.

SIMBOLOGÍA
Operación
Símbolo utilizado
Inicio - Fin
Operación en general
Operación de entrada – salida
Líneas de flujo
Decisión
….




Inicio
Ejemplo:
Leer primer_nro, segundo_nro
suma= primer_nro +  segundo_nro
Escribir suma
Fin
 

PSeInt
PSeInt es un software que se constituye en una herramienta educativa utilizada principalmente por estudiantes para aprender los fundamentos de la programación y el desarrollo de la lógica.
Se lo puede bajar de: http://pseint.sourceforge.net





Bibliografía:
·                     Metodología de la programación.  Eduardo Alcalde y Miguel Garcia. Editorial McGraw-Hill
·                     Programación y algoritmos.  Maximiliano Bonanata.  Editorial MP
·                     LÓGICA DE PROGRAMACIÓN.  Efraín M. Oviedo Regino.  http://books.google.com.ar/books?id=Z_n5lbyJfrQC&pg=PA37&hl=es&source=gbs_toc_r&cad=4#v=onepage&q&f=false
·         Fases de un programa. http://ing.unne.edu.ar/pub/informatica/Alg_diag.pdf
·         Tutorial pseudocódigo. http://progup.files.wordpress.com/2010/03/tutorial-pseudocodigo11.pdf
·                      
·