lunes, 18 de marzo de 2013

Condicionales anidados

1.Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional.
diagrama flujo estructura condicional anidada
El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la rama del falso de la primer estructura.
Es común que se presenten estructuras condicionales anidadas aún más complejas.

2.Anidamiento de Estructuras


En muchas ocasiones los programas no están formados solo por sentencias que deben ser ejecutados secuencial mente  es decir una sentencia a continuación de la otra. A veces es necesario la transferencia de control a otras partes del programa. Sin embargo el abuso en estas transferencias realizadas utilizando la sentencia goto- provocan dificultades a los des arrolladores de software.
Investigaciones realizadas por C. Böh, y G. Jacopini demostraron que los programas podrían codificarse sin ninguna sentencia gotom utilizando solo tres estructuras de control: la estructura de secuencia, la de selección y la de repetición.
Surge asi. en la década del 70 lo que se conoce como Programación Estructurada, cuyas técnicas permitieron realizar programas mas facilites de codificar y depurar.
Lenguaje C presenta el siguiente grupo de sentencias estructuradas, las que aparecen analizadas en seudocodigo, en el Apéndice 1 de este libro:

Las siguientes sentencias estructuradas son trabajadas tambien en seudocodigo:

SECUENCIA

SELECCIÓN O ALTERNATIVA

ITERACION
S. Compuesta  {    }

IF
SWITCH

FOR
WHILE
DO...WHILE

SENTENCIA COMPUESTA: Una o mas sentencia que se ejecutan una sola vez y en un determinado orden. Toda sentencia compuesta comienza con "{" y termina con "}".

DIAGRAMA DE FLUJO DE DATOS: Es una herramienta que permite visualizar un sistema como una red de procesos funcionales, conectados entre sí por conductos y tanques de almacenamiento de datos. Proporciona un punto de vista de un sistema, el orientado a funciones.
Podemos encontrarlo en la literatura con los siguientes sinónimos:
• Carta de burbujas.
• DFD (abreviatura que usaremos).
• Diagrama de burbujas.
• Modelo de proceso.
• Diagrama de flujo de trabajo.
• Modelo de función.
• Una imagen de lo que sucede.

3.Estructura condicional simple.

3. Cuando se presenta la elección tenemos la opción de realizar una actividad o no realizar ninguna.
Representación gráfica:
estructura condicional simple
Podemos observar: El rombo representa la condición. Hay dos opciones que se pueden tomar. Si la condición da verdadera se sigue el camino del verdadero, o sea el de la derecha, si la condición da falsa se sigue el camino de la izquierda.
Se trata de una estructura CONDICIONAL SIMPLE porque por el camino del verdadero hay actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas, inclusive ya veremos que puede haber otras estructuras condicionales.

Problema:

Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un mensaje en pantalla indicando que debe abonar impuestos.

Diagrama de flujo:

problema estructura condicional simple
Podemos observar lo siguiente: Siempre se hace la carga del sueldo, pero si el sueldo que ingresamos supera 3000 pesos se mostrará por pantalla el mensaje "Esta persona debe abonar impuestos", en caso que la persona cobre 3000 o menos no aparece nada por pantalla.

Estructura condicional compuesta.

Cuando se presenta la elección tenemos la opción de realizar una actividad u otra. Es decir tenemos actividades por el verdadero y por el falso de la condición. Lo más importante que hay que tener en cuenta que se realizan las actividades de la rama del verdadero o las del falso, NUNCA se realizan las actividades de las dos ramas.
Representación gráfica:
estructura condicional compuesta
En una estructura condicional compuesta tenemos entradas, salidas, operaciones, tanto por la rama del verdadero como por la rama del falso.

Problema:

Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor de ellos.

Diagrama de flujo:

problema estructura condicional compuesta
Se hace la entrada de num1 y num2 por teclado. Para saber cual variable tiene un valor mayor preguntamos si el contenido de num1 es mayor (>) que el contenido de num2, si la respuesta es verdadera vamos por la rama de la derecha e imprimimos num1, en caso que la condición sea falsa vamos por la rama de la izquierda (Falsa) e imprimimos num2.
Como podemos observar nunca se imp





viernes, 15 de marzo de 2013

Pantallazos de problemas







                              Glosario 





Hardware




El término 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.1 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.


Software



Se conoce como software1 al equipamiento lógico o soporte lógico de un sistema informático, el que comprende el conjunto de los componenteslógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.


Lenguaje de programación




Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como lascomputadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila y se mantiene el código fuente de un programa informático se le llama programación.

Programación lógica

La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcionalprogramación con restricciones, programas DSL (de dominio específico) e híbridos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. La programación lógica gira en torno al concepto de predicado, o relación entre elementos.



Lenguaje de Bajo Nivel


Los lenguajes de bajo nivel, también llamados lenguajes ensambladores, permiten al programadorescribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador, como se muestra en la siguiente figura:



Lenguaje de alto nivel

Un lenguaje de programación de nivel alto (incorrectamente mencionado "alto nivel") se 


caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva 

humana, en lugar de a la capacidad ejecutora de las máquinas.

Lenguaje de bajo nibel


Los lenguajes de bajo nivel son mas fáciles de utilizar que los lenguajes máquina, pero, al 


igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia

es el ensamblador.

Lenguaje de maquina

El lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito


microprogramable, como el microprocesador de una computadora o el microcontrolador de

un autómata. Este lenguaje está compuesto por unconjunto de instrucciones que determinan 

acciones a ser tomadas por la máquina

Lenguaje ensamblador

El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de


programación de bajo nivel para los computadores, microprocesadores, microcontroladores y 

otros circuitos integrados programables. Implementa una representación simbólica de los 

códigos de máquina binarios y otras constantes necesarias para programar una arquitectura

dada de CPU y constituye la representación más directa del código máquina específico para

cada arquitectura legible por un programador



Codigo Fuente
Un programa es un conjunto de instrucciones que se le da a una computadora para que haga algo. Para hacer un programa se emplea un lenguaje de programación. La computadora sólo entiende un lenguaje: el suyo. Y sólo podemos hablarle con él. Su lenguaje es el  (o ), una serie de 1 y 0. Como eso es muy complicado, se inventaron los llamados .

Todas esas ordenes para la computadora que forman el programa y que están escritas en un lenguaje de programación se llaman . Una vez que está escrito el de un programa, es necesario someterlo a un proceso que se llama “”: traducir el lenguaje de programación en el que está escrito a otro que la compu si entiende: el código máquina.

Programa Objeto


Pero para ello debemos dar un paso más, ya que para que el Procesador pueda ordenar los datos enviados y recibidos, transformarlos en Información y que ésta genere una respuesta en el resto de los componentes, es necesario que sea llevado al conocido como Código Objeto, o Programa Objeto, que es el que interpreta exclusivamente el ordenador.
Compilador

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto

Intérprete de comando

Un intérprete de órdenes o de comandos, es un programa informático que tiene la capacidad de traducir las órdenes que introducen los usuarios, mediante un conjunto de instrucciones facilitadas por él mismo directamente al núcleo y al conjunto de herramientas que forman el sistema operativo.

Dirección de memoria

En informática, una dirección de memoria es un identificador para una localización de memoria con la cual un programa informático o un dispositivo de hardware pueden almacenar un dato para su posterior reutilización.
Una forma común de describir la memoria principal de un ordenador es como una colección de celdas que almacenan datos e instrucciones. Cada celda está identificada unívocamente por un número o dirección de memoria.

Campo de memoria

En informática, la memoria (también llamada almacenamiento) se refiere a parte de los componentes que integran una computadora. Son dispositivos que retienen datos informáticos durante algún intervalo de tiempo. Las memorias de computadora proporcionan una de las principales funciones de la computación moderna, la retención o almacenamiento de información

Registro de memoria.0

El Registro de la Memoria del Mundo es una lista del patrimonio documental que ha sido aprobado por el Comité Consultivo Internacional y ratificado por el Director General de la UNESCO como elemento que cumple los criterios de selección del patrimonio documental considerado de importancia mundial

Archivo 
Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. Los archivos informáticos se les llama así porque son los equivalentes digitales de los archivos escritos en libros, tarjetas, libretas, papel o microfichas del entorno de oficina tradicional. Los archivos informáticos facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático virtual.

Base de Datos 

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
 Compilador 
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce comocompilación.1
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.



Fases de Proceso de un compilado

1.- Analizador Léxico:
Realiza un análisis del archivo. La cadena de entrada se lee e izquierda a derecha y se va agrupando en componentes léxicos, que son secuencias de caracteres con un significado colectivo. Por ejemplo, identificadores, palabras reservadas, signos de final de instrucción. Cada componente es asociada ala categoría que pertenece.
2.- Analizador Sintáctico
Realiza un análisis jerárquico agrupado de los componentes léxicos en frases gramaticales que el compilador utiliza.
3.- Analizador Semántico
Busca errores semánticos, reúne información sobre los tipos; identifica operadores en base al árbol sintáctico producido en el análisis anterior Ejemplo de error: operación entre tipos de datos incompatibles, rangos permitidos existencia de variables. En cualquiera de estos tres análisis pueden producirse errores.
4.- Generador de código intermedio
Algunos compiladores generan una representación explicita del programa fuente. Este código es independiente de la maquina y a veces se usa en un conjunto con interpretes, en lenguajes independientes de la plataforma como JAVA. Esta representación debe ser fácil de producir, ayudar a la optimización y fácil de traducir al programa objeto.
5.-Optimización
Esta fase trata de mejorar el código intermedio, o las estructuras que generaran el código definitivo de modo de que resulte un código de maquina más rápido de ejecutar para guardarlos valores calculados por cada instrucción.
6.- Generador de código
Esta fase final de un compilador. Genera el código objeto, que por lo general consiste en un código de maquina relocalizable o código ensamblador. Las posiciones de memoria relativas se seleccionan para cada variable. El uso de los registros de la CPU es relevante.
7.- Agrupación lógica de un compilador
Es la fase de análisis, depende del lenguaje fuente y son independientes de las maquinas. Controla la corrección del programa fuente, manejando errores en cada etapa. Produce las estructuras necesarias para la generación del código.
Fase de generación, depende de la maquina y el lenguaje intermedio. Hace uso intensivo de la tabla de símbolo

fase de ejecución

Identificar y gestionar los recursos necesarios: necesitaremos dinero, computadoras e Internet Verificar el conjunto de especificaciones necesarias:veremos que requisitos tenemos que cumplir

Ejecutar ensayos para definir la adecuación del producto a las funciones que realmente deba cumplir.

Desarrollar manuales técnicos y otra documentación complementaria: si podemos se podría describir como se realizo el periódico.

Integrar el proyecto dentro de los sistemas de organización: sugeriremos si nos sale bien que sea el periódico digital de la escuela

Evaluar técnica y económicamente el proyecto

Evaluar la idoneidad de los sistemas de apoyo.
Proporcionar datos de control a los responsables de la planificación de nuevos productos o procesos en la empresa.

Ulilizar los resultaos del proyecto por los usuarios o clientes del mismo




AlGORITMO
Un algoritmo, en informática, particularmente en programación, es un conjunto de pasos para lograr un resultado, por lo general, un algoritmo tiene datos de entrada, proceso de datos, y datos de salida, por ejemplo, el siguiente es un algoritmo muy sensillo que suma dos números que ingresas por el teclado:

Solicita num1 //Datos de entrada
Solicita num2
res = num2 + num2 // proceso de datos
regresa res //datos de salida

Como puedes ver, ese algoritmo está de risa, sin embargo, existen algoritmos más complejos, por ejemplo, el que ordena una serie de números, el que obtiene una raiz cuadrada, hasta simuladores de complejos procesos químicos o físicos.