viernes, 28 de septiembre de 2012

Metodologia para la solucion de problemas por medio de computador


Definicion del problema

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

Analisis del problema

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
 
*Los datos de entrada.
 
*Cual es la información que se desea producir (salida)
 
*Los métodos y fórmulas que se necesitan para procesar los datos.
 
Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.  

Diseño del algortimo

Las características de un buen algoritmo son:

*Debe tener un punto particular de inicio.

*Debe ser definido, no debe permitir dobles interpretaciones.

*Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.

*Debe ser finito en tamaño y tiempo de ejecución.

Codificacion 

La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

Prueba y depuracion

Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración.
 
La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por ello se debe considerar con el mismo interés y entusiasmo.
 
Resulta conveniente observar los siguientes principios al realizar una depuración, ya que de este trabajo depende el éxito de nuestra solución.  

Documentacion

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas.
 
A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).

             La documentacion se divide en tres partes:

1. Documentación Interna
2. Documentación Externa
3. Manual del Usuario

  • Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.
  • Documentación Externa: Se define en un documento escrito los siguientes puntos:
            Descripción del Problema
            Nombre del Autor
            Algoritmo (diagrama de flujo o pseudocodigo)
            Diccionario de Datos
            Código Fuente (programa)
  • Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado. 
Mantenimiento
Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.
Entidades primitivas para el desarrollo de algoritmos
I. Tipos de datos
II. Expresiones
III. Operadores y operandos
IV. Identificadores como localidades de memoria    

    Objetivo educacional

El Aprendiz, técnico en sistemas:

Conocerá las reglas para cambiar formulas matemáticas a expresiones validas para la computadora, además de diferenciar constantes e identificadores y tipos de datos simples.

Tipos de datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

Tipos de datos
                        
                               Simples                                Estructurados

                              Numericos                                Arreglos
                               Logicos                                  Registros
                            Alfanumericos                             Archivos
                                                                          Amputadores

Tipos de datos simples

  • Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.
  • Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos).
  • Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.
              Ejemplo:
       “Servicio Nacional de Aprendizaje SENA”

Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo:
 
          a+(b + 3)/c
 
Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:
 
1. Aritméticas
2. Relaciónales
3. Lógicas

Operadores y operandos

  • Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores.  
          Tipos de operadores:
        
       *Aritmeticos
       *Relacionales
       *Logicos

  • Operadores Aritméticos: Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. 

Operadores aritmeticos

+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
Ejemplos:
Expresión Resultado
7 / 2 3.5
12 mod 7 5
4 + 2 * 5 14
 
 

Prioridad de los operadores aritmeticos

  • Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero.
  • Dentro de una misma expresión los operadores se evalúan en el siguiente orden.
1.- ^ Exponenciación.
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.
  • Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.
Ejemplos: 
4 + 2 * 5 = 14                        
23 * 2 / 5 = 9.2 
46 / 5 = 9.2 
3 + 5 * (10 - (2 + 4)) = 23 
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23 
3.5 + 5.09 - 140 / 40 = 5.09 
3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09 
2.1 * (1.5 + 3.0 * 4.1) = 28.98 
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

 Operadores relacionales

  • Se utilizan para establecer una relación entre dos valores. 
  • Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).  

  • Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)
  • Tienen el mismo nivel de prioridad en su evaluación.
  • Los operadores relaciónales tiene menor prioridad que los aritméticos.

                Operadores relacionales

> Mayor que
< Menor que
> = Mayor o igual que
< = Menor o igual que
< > Diferente
= Igual
Ejemplos:
Si a = 10 b = 20 c = 30
a + b > c Falso
a - b < c Verdadero
a - b = c Falso
a * b < > c Verdadero

Operadores logicos

  • Estos operadores se utilizan para establecer relaciones entre valores lógicos.
  • Estos valores pueden ser resultado de una expresión relacional.
               Operadores Logicos

                   And    Y
                   Or    O
                   Not    Negación

Operador And 
Operando1 Operador Operando2 Resultado 
       T            AND          T             T 
       T                            F              F
       F                            T              F 
       F                            F              F

Operador Or 
Operando1 Operador Operando2 Resultado 
       T           OR             T             T 
       T                             F             T 
       F                             T             T 
       F                             F              F

Operador Not 
Operando Resultado 
     T               F 
     F               T     

                                   Ejemplos:
                             (a < b) and (b < c)
                           (10<20) and (20<30)
                                 T     and     T 
 
                                          T

Prioridad de los Operadores Lógicos
*Not
*And
*Or

Prioridad de los Operadores en General
1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or

Indicadores

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite accesar a su contenido.

Ejemplo: 
Nombre
Num_hrs
Calif2

Reglas para formar un identidificador

  • Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en blanco.
  • Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter.
  • La longitud de identificadores puede ser de hasta 8 caracteres.

Constantes y variables

  • Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.
Ejemplo:
Pi = 3.1416
  • Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.
Ejemplo:
Área = pi * radio ^ 2
Las variables son: el radio, el área y la constate es pi

Clasificacion de las variables

Variables
                        
                           Por su contenido                         Por su uso

                              Numericos                               De trabajo
                               Logicos                                 Contadores
                            Alfanumericos                          Acumuladores

Por su Contenido 
  • Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo:
                       iva=0.15 pi=3.1416 costo=2500
  • Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos.
  • Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y caracteres especiales). Ejemplo:
                  letra=’a’ apellido=’lopez’ direccion=’Av. Libertad #190’

Por su uso
  • Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo:
                        suma= a+b/c
  • Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno.
  • Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.


Cuestionario

1. Elabore un mapa conceptual donde se expliquen las fases para la solución de un problema por medio de la computadora. (se recomienda el uso de una hoja de cuadernillo)
 
2. Explique la diferencia entre la fase de codificación y la fase de depuración 

3. Elabore un mapa conceptual donde se expliquen las entidades primitivas para el desarrollo de algoritmos: (se recomienda el uso de una hoja de cuadernillo)
I. Tipos de datos
II. Expresiones
III. Operadores y operandos
IV. Identificadores como localidades de memoria
 
4. Escriba las tablas de los operadores lógicos y efectúe varios ejemplos donde se utilicen en combinación con otros operadores.
 
5. Explique las reglas para formar un identificador, y escriba varios ejemplos de creación de constantes y variables.
 
6. Explique la diferencia entre un contador y un acumulador
 
7. Muestre la solución del cuestionario a su docente para la revisión, corrección y valoración del mismo.  

8. En su portafolio de evidencias carpeta AZ, presentar el desarrollo de esta guía.


Desarrollo 

2.
1.calcular VALCOMPRA.
2.decidir si VALCOMPRA es mayor que 5000
si verdadero, calcular DESCTO
si falso, hacer DSCTO = 0
3. calcular VALCOMPRA despues de descuento
4. Calcular IVA
5.Calcular NETO

3.
a. Algunos compañeros multiplicaron el valor unitario.

b. Que primero observaran si los porcentajes son mayores o menor que el Pt.

c. multiplicaria el valor final.

d. no sabiamos si el Pt era mayor o menor que los porcentajes.

4. Recordemos que en el proceso de resolver un problema por medio de un algoritmo se siguen unas fases o etapas las cuales se resumen en el siguiente diagrama:

a. Para el algoritmo que diseñaste en el punto 2, ¿Cuáles pasos de tu algoritmo se relacionan con la fase de entrada? Justifica tu respuesta.
 R/el paso 1, porque primero observaria los datos.


b. Para el algoritmo que diseñaste en el punto 2, ¿Cuáles pasos de tu algoritmo se relacionan con la
fase de proceso? Justifica tu respuesta
.R/ Los pasos 2 y 3 porque en ellos sumaria y multiplicaria.

c. Para el algoritmo que diseñaste en el punto 2, ¿Cuáles pasos de tu algoritmo se relacionan con la
fase de salida? Justifica tu respuesta.
R/Los pasos 4 y 5, porque en ellos se alla el valor final.

d. Para el algoritmo que diseñaste en el punto 2, ¿falto alguna de estas fases que se resumen en el anterior diagrama?, ¿es necesario hacer algunas correcciones? ¿Cuáles correcciones harías a tu algoritmo? Debes justificar cada una de tus respuestas.
R/No, porque segui todos los pasos para diseñar el algoritmio
No, lo tengo ya todo esta bien organizado y estructurado
Ninguna

5.Recuerda que este algoritmo debe permitir que el computador resuelva el problema, ahora debes reflexionar y responder los siguientes planteamientos:

*Que datos debo suministrar al usuario durante la fase de entrada?
R/Datos de entrada = K,P

*Que operaciones debe realizar el computador durante la fase de proceso para obtener los resultados requeridos?
R/decidir si VALCOMPRA es mayor que 5000
si verdadero, calcular DESCTO
si falso, hacer DSCTO = 0

*Que datos debe imprimir el computador?
R/Calcular IVA
Calcular NETO

6. En esto consiste el análisis del problema por parte del programador, él debe plantear y responder una por una las preguntas que aparecen en el punto 5.
Ahora escribe tus conclusiones generales sobre este análisis que se ha hecho.
Recuerda publicar esta actividad en tu blog. Y enviar el enlace al grupo de correo del colegio, para la revisión. Corrección y calificación de la misma.
R/ conclusion hay que diseñar buenos algoritmios para llegar a la verda, como el problema que nos plantearon.
 

                              
                                                                                               


       
   
    

viernes, 31 de agosto de 2012

Conceptos Basicos




Algoritmo

Es una serie de pasos organizados que describe el proceso que se debe seguir para dar un proceso especifico.

 

Programacion/Programa

Es una seria de operacionesque realiza la computadora para llegar a un resultado. Nos sirve para solucionar un problema especifico.



Diagramas

Diagrama de flujo: El diagrama de flujo es la representacion grafica del algoritmo o proceso. Se utiliza en disciplinas como programacion, economia, procesos industriales y psicologia cognitiva. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.  

Pseudocodigo: Es una descripción de un algoritmo informático de programacion de alto nivel compacto e informal que utiliza las convenciones estructurales de un lenguaje de programacion verdadero, pero que está diseñado para la lectura humana en lugar de la lectura en máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas.



  Fases de la programacion

1.ANALISIS: Cuando se tiene y piensa la idea o problema a ejecutar.

2.DISEÑO: Se plantea un algoritmo con los pasos a dibujar o realizarse.

3.IMPLEMENTACION: Los pasos de algoritmo se transforma en un código pascal y  se plasman en el programa

4.PRUEBAS: Se corre el programa y se registra su efectividad.

5.DEPURACION: después de haber corrido el programa se hacen las correcciones necesarias.

6.RETROALIMENTACION Y LIBERACION: Después de haber corregido los errores se regresa al paso 4 en caso de haber existido.



Operadores aritmeticos

Los operadores aritméticos nos permiten, básicamente, hacer cualquier operación aritmética, que necesitemos (ejemplo: suma, resta, multiplicación, etc). En la siguiente tabla se muestran los operadores de los que disponemos en C y su función asociada.
Tabla: Operadores aritméticos
Operador Acción Ejemplo
$-$ Resta x = 5 $-$ 3; // x vale 2
$+$ Suma x = 2 $+$ 3; // x vale 5
$*$ Multiplicación x = 2 $*$ 3; // x vale 6
$/$ División x = 6 $/$ 2; // x vale 3
$\%$ Módulo x = 5 % 2; // x vale 1
$--$ Decremento x = 1; x$--$; // x vale 0
$++$ Incremento x = 1; x$++$; // x vale 2
 
 
  

miércoles, 1 de agosto de 2012

Ultrabook


Evaluación Ultrabook

1. ¿ Cuales son las características de la computadora Ultrabook, compuesta por la compañía Intel ?

R// Tanto sus características como su lema son:
          *Ultra Delgada
          *Ultra Ágil
          *Ultra Elegante

Formatos mas delgados, mayor duración de la batería, inicialización mas rápida y conectividad sin interrupción son solamente algunas de sus exigencias.


2. ¿ Que características se predicen en las computadoras Laptop para un futuro cercano ?

R// El 40% del segmento del mercado de Laptops para consumidores estará compuesto por una nueva categoría emergente de computadoras confiables que combinan mejor desempeño, mejor capacidad de respuesta y seguridad en formatos delgados y elegantes.


3. ¿ Que procesador propone Intel para las Ultrabook en el 2012, y cuales son sus características ?

R// El procesador propuesto por Intel se llama: Ivy Bridge, sus características son: mayor eficiencia energética, desempeño inteligente, visuales impactantes, mayor capacidad de respuestas y mejor seguridad.


4. Especifique las 5 tecnologías básicas que manejan los procesadores Intel de 2da generación.

R// * Tecnología Intel Turbo Boost 2.03
        * Tecnología Intel Hyper-Threading 4
        * Tecnología Sync Video 5
        * Tecnología Intel Clear Video HD
        * Intel HD Graphics 6


5. Explique las 4 tecnologías básicas que presenta la computadora Ultrabook.

R// * Tecnología Intel Rapid Start
        * Tecnología Smart Response
        * Tecnología Intel Anti-Robo
        * Tecnología Intel Identity Protection


6. ¿ Cuales son las características fundamentales de una Netbook ?

R// *Ofrecen mas funcionalidad
        *Algunas ofrecen la ejecución a multitarea
        *Incluyen un teclado
        *Su diseño en es forma de almeja


7. ¿ Cuales son las características de una laptop con todos sus recursos ?

R// *Editar y enviar fotos
        *Copiar y codificar música y video 
        *Multitarea 
        *Ver videos en HD
        *Participar en juegos intensivos 


8. Explique las características de una tablet

R// *Ver videos 
        *Actualizar redes sociales
        *Leer ( E-books, revistas, etc. )
        *Navegar en Internet
        *Escribir E-mails cortos o mensajes instantáneos 


9. ¿ A que tipo de usuario le recomendaríamos una computadora Ultrabook ?

R// Aquel que necesite un excelente desempeño y en su decisión sean factores importantes el peso y el diseño.


10. En cada una de las siguientes situaciones debe seleccionar el equipo apropiado para cada persona según sus características. ( Justificar cada una de las respuestas ).

R// * Situación 1 ( Mandy ): Una Laptop porque se dice que la chica es vanguardista, pasa tiempo viajando y le hace falta una equipo muy agil. Ella le da valor al estilo y esta buscando una diseño elegante.

        * Situación 2 ( Sasha ): Una Netbook porque siempre va y viene de su oficina para ver y leer recetas online. Quiere un equipo que pueda utilizar en la cocina, pero que sirva como equipo de entretenimiento para navegar en la web o ver videos. Insiste en un teclado y tiene un presupuesto limitado.

        * Situación 3 ( Colette ): Una Tablet porque ella viaja mucho por trabajo y esta buscando un equipo que apoye su Laptop de trabajo, la utilizara para leer libros en el avión y navegar en Internet.

        * Situación 4 ( Derek ): Un Ultrabook porque Derek trabaja todo el dia en su Desktop y quiere comprar un PC portátil, pero necesita un excelente desempeño, y peso y diseño son factores importantes en su decisión.