miércoles, 19 de marzo de 2014

ALGORITMO

¿QUE ES UN ALGORITMO?

inicialmente podemos determinar que un ALGORITMO es una secuencia de pasos a seguir con un fin común, mas no es lo que muchas personas piensan cuando les preguntan,lo cual responden que es algo para programar o algo así, tenemos que aprender a diferenciar entre un algoritmo y un pseudocodigo y si podes distinguir estos pasos ya estar haciendo un algoritmo.

PASO 1 
leer detenidamente y con lapsos de 5 minutos por cada párrafo el problema planteado, esto nos ayudara a captar la idea del algoritmo a diseñar. con esto también logramos que nuestra lógica comienza a desarrollarse sin cansarnos tanto ni causar confusiones con los siguientes pasos.

PASO 2
los algoritmos son como traductores de problemas matemáticos para nuestras computadoras que por medio del compilador nos ayuda a interactuar con ellas ya que su idioma es totalmente diferente a de nosotros y de algún modo debemos hablarnos casi en el mismo "IDIOMA" por decirlo así.

  • debe tener un punto particular de inicio
  • debe ser completamente definido y no debe permitir dobles interpretaciones 
  • debe ser general,es decir, soporta la mayoría de las variantes que se puedan presentar en la definicion del problema.
  • debe ser finito en tamaño y tiempo en ejecución.
  • debe ser legible,claro y fácil de interpretar y entender

ESTRUCTURA DE UN ALGORITMO
inicio
leer variables
asignar valores
realizar proceso
imprimir resultado
fin



EJEMPLO 
diseñar un algoritmo que convierta MILLAS a METROS recordando que 1 MIILA SON 1852 MTS.

lo principal es declarar variables con este símbolo INT recuerden que siempre deben poner esto y enseguida las variables las cuales les asignaran. pero ustedes se preguntaran que son la variables pues simplemente son un campo de memoria con un nombre propio (con una letra que el usuario quiera, no interferirá con el proceso) para almacenar un valor de cualquier tipo.
enseguida de esto deben colocar el proceso a seguir segun lo indicado o requerido por el problema y por ultimo imprimir nuestra respuesta.

ALGORITMO  

INICIO

INT     M;  V;  MT;

M=NUMERO INGRESADO POR EL USUARIO;V=1852;

MT= M*V;

IMPRIMIR MT

FIN

OPERADORES

Matematicos + - * / % ^        

Comparacion   <  >  <=  >=  ==  !=

And  Or Not
  &    ||    !=

Incrementales  ++ +- --



DFD

Un diagrama de flujo de datos es una representación gráfica del flujo de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos . Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y las entidades externas.


Los diagramas de flujo de datos fueron inventados por Larry Constantine, el desarrollador original del diseño estructurado, basado en el modelo de computación de Martin y Estrin: "flujo gráfico de datos" . Los diagramas de flujo de datos (DFD) son una de las tres perspectivas esenciales de Análisis de Sistemas Estructurados y Diseño por Método SSADM. El patrocinador de un proyecto y los usuarios finales tendrán que ser informados y consultados en todas las etapas de una evolución del sistema. Con un diagrama de flujo de datos, los usuarios van a poder visualizar la forma en que el sistema funcione, lo que el sistema va a lograr, y cómo el sistema se pondrá en práctica. El antiguo sistema de diagramas de flujo de datos puede ser elaborado y se comparó con el nuevo sistema de diagramas de flujo para establecer diferencias y mejoras a aplicar para desarrollar un sistema más eficiente. Los diagramas de flujo de datos pueden ser usados para proporcionar al usuario final una idea física de cómo resultarán los datos a última instancia, y cómo tienen un efecto sobre la estructura de todo el sistema. La manera en que cualquier sistema es desarrollado, puede determinarse a través de un diagrama de flujo de datos. modelo de datos.





















'

lunes, 17 de marzo de 2014

LOS DATOS


TIPOS DE DATOS

Tipo de dato informático es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de datos comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, etc.
Por ejemplo, por lo general el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como son la suma, la resta, y la multiplicación. Los colores, por su parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas en este caso incluyen la adición y la sustracción, pero no la multiplicación.
Éste es un concepto propio de la informática, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de la matemática y lalógica.
En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores.1 Casi todos los lenguajes de programación explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminologías diferentes. La mayor parte de los lenguajes de programación permiten al programador definir tipos de datos adicionales, normalmente combinando múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que específica que el dato interpretado como Persona incluirá, por ejemplo, un nombre y una fecha de nacimiento.

Un tipo de dato puede ser también visto como una limitación impuesta en la interpretación de los datos en un sistema de tipificación, describiendo la representación, la interpretación y la estructura de los valores u objetos almacenados en la memoria del ordenador. El sistema de tipificación usa información de los tipos de datos para comprobar la verificación de los programas que acceden o manipulan los datos.




LAS GENERACIONES DE LA COMPUTACION


Historia

El Electronic Numerical Integrator and Computer (ENIAC) se ha considerado a menudo la primera computadora de propósito general, aunque este título pertenece en realidad a la computadora alemana Z1. Era totalmente digital, es decir, ejecutaba sus procesos y operaciones mediante instrucciones en lenguaje máquina, a diferencia de otras máquinas contemporáneas de procesos analógicos. Presentada al público el 15 de febrero de 1946, John W. Mauchly y John P. Eckert de la Universidad de Pensilvania (EEUU) iniciaron su desarrollo en 1943. Esta enorme máquina medía más de 30 metros de largo y pesaba 32 toneladas, estaba compuesta por 17.468 válvulas. El calor de las válvulas elevaba la temperatura de la sala donde se hallaba instalada hasta los 50º C. y para que llevase a cabo las operaciones para las que se había diseñado. Cuando la ENIAC se terminó en 1946, la II Guerra Mundial ya había terminado. El fin de la contienda hizo que los esfuerzos hasta entonces dedicados principalmente a objetivos militares, se destinaran también a otro tipo de investigación científica más relacionada con las necesidades de la empresa privada. Los esfuerzos múltiples dieron resultados en 1945 Mauchly y Eckert comenzaron a trabajar en una sucesora de la ENIAC, el EDVAC (Electronic Discrete Variable Automatic Computer) y Aiken inició el diseño de la Mark II. En 1951, el que está considerado como la primera computadora que se llamó Saly fue ampliamente comercializada, la UNIVAC I, comenzó a funcionar con éxito. En 1952 la computadora UNIVAC se utilizó para realizar el recuento de votos en las elecciones presidenciales de EE.UU. El resultado victoria (Eisenhower sobre Adlai Stevenson) se conoció 45 minutos después de que se cerraran los colegios electorales.
En 1952 entra en funcionamiento la primera de las llamadas IAS machines, diseñadas por John von Neumann y que incorporaban notables mejoras respecto a sus predecesoras y en 1962, Steven Russell creó el primer juego para computadoras, Spacewar.

Primera Generación (1946-1958)

En esta época las computadoras funcionaban con válvulas, usaban tarjetas perforadas para entrar los datos y los programas, utilizaban cilindros magnéticos para almacenar información e instrucciones internas y se utilizaban exclusivamente en el ámbito científico o militar. La programación implicaba la modificación directa de los cartuchos y eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban gran cantidad de calor y eran sumamente lentas.

Segunda Generación (1958-1964)

Características de ésta generación: Usaban transistores para procesar información. Los transistores eran más rápidos, pequeños y más confiables que los tubos al vacío. 200 transistores podían acomodarse en la misma cantidad de espacio que un tubo al vacío. Usaban pequeños anillos magnéticos para almacenar información e instrucciones. Producían gran cantidad de calor y eran sumamente lentas. Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación.
Se desarrollaron nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accesibles. Se usaban en aplicaciones de sistemas de reservaciones de líneas aéreas, control del tráfico aéreo y simulaciones de propósito general. La marina de los Estados Unidos desarrolla el primer simulador de vuelo, Computadora Whirlwind. Se comenzó a disminuir el tamaño de las computadoras.
Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Mánchester. Algunas computadoras se programaban con cintas perforadas y otras por medio de cableado en un tablero.

Tercera Generación (1964-1971)

Comienza a utilizarse los circuitos integrados, lo cual permitió abaratar costos al tiempo que se aumentaba la capacidad de procesamiento y se reducía el tamaño de las máquinas. La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. El PDP-8 de la Digital Equipment Corporation fue el primer miniordenador.

Cuarta Generación (1971-1983)

Fase caracterizada por la integración sobre los componentes electrónicos, lo que propició la aparición del microprocesador, es decir, un único circuito integrado en el que se reúnen los elementos básicos de la máquina. Se desarrolló el microprocesador. Se colocan más circuitos dentro de un "chip". "LSI - Large Scale Integration circuit". "VLSI - Very Large Scale Integration circuit". Cada "chip" puede hacer diferentes tareas. Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer componente, la memoria primaria, es operado por otros "chips". Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio. Se desarrollan las microcomputadoras, o sea, computadoras personales o PC. Se desarrollan las supercomputadoras.

Quinta Generación (1984 -1999)

Surge la PC tal cual como la conocemos en la actualidad. IBM presenta su primera computadora personal y revoluciona el sector informativo. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras.

TOMA DE DECISIONES



en los algoritmos existen algo llamado las CONDICIONALES (IF) que significa SI, esta expresion se utiliza para poder determinar un problema el cual es necesario tomar una decision ya sea un SI o un No, por ejemplo si me piden que realize un programa el cual me diferencie los nmeros primos de los no primos podrias emplear esta expresion acompañada de otros proceso.

Pero estas condicionales se dividen en 3 TIPOS las cuales son :


CONDICIONALES SIMPLES 


No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando hay que tomar una decisión aparecen las estructuras condicionales.
En nuestra vida diaria se nos presentan situaciones donde debemos decidir.
¿Elijo la carrera A o la carrera B?
¿Me pongo este pantalón?
Para ir al trabajo, ¿elijo el camino A o el camino B?
Al cursar una carrera, ¿elijo el turno mañana, tarde o noche?

Por supuesto que en un problema se combinan estructuras secuenciales y condicionales.

ESTRUCTURA

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.

EN PROGRAMACIÓN

INICIO
INT SUELDO;
SUELDO=3000
IF(SUELDO>3000)
{
IMPRIMA "ESTA PERSONA DEBE ABANDONAR IMPUESTOS"
}
FIN

DIAGRAMA DE FLUJO (DFD)
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.



CONDICIONALES COMPUESTAS (IF-ELSE)


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



ESTRUCTURA

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.

PROGRACION

INICIO
INT N1;N2;

IMPRIMA "INGRESE NUMERO";
LEA NUM 1;
IMPRIMA "INGRESE OTRO NUMERO";
LEA NUM 2;

IF(NUM1>NUM2)
{
IMPRIMA NUM1 "ES MAYOR";
}
ELSE
{
IMPRIMA NUM2 "ES MAYOR";
}
FIN



DIAGRAMA DE FLUJO (DFD)
problema estructura condicional compuesta




CONDICIONALES ANIDADAS
diagrama flujo estructura condicional anidada
Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional.








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.


PROBLEMA

Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobado".

EN PROGRAMACION
INICIO
INT NOTA1;NOTA2;NOTA3;D;
D=3;
IMPRIMA"INGRESE NOTA";
LEA NOTA1;
IMPRIMA"INGRESE NOTA";
LEA NOTA2;
IMPRIMA"INGRESE NOTA";
LEA NOTA3;
PROMEDIO=(NOTA1+NOTA2+NOTA3)/D;
IF(PROMEDIO>=7)
{
IMPRIMA "PROMOCIONADO"
}
ELSE
{
IF(PROMEDIO >=4 && <=7)
{
IMPRIMA "REGULAR"
}
ELSE
{
IF(PROMEDIO <4)
{
IMPRIMA "REPROBADO"
}
}
FIN



DIAGRAMA DE FLUJO (DFD)

problema estructuras condicionales anidades

EXPRESIONES BOOLEANAS

este tema es un ooco mas complejo por lo que debemos tener en cuenta varios aspectos que veremos mas adelantes, una expresion booleana es quella que hay que evaluar como resultaddo un valor de FALSO o VERDADERO, para ello necesitamos los operadores logicos de relacion o comparecion.

EJEMPLO

3>2 = V     3==2 =  F

3<2=  F    3!=2= V

EN EL ALGORITMO

Incio
int=a;b;
logico S;
a= 10;
b=5;
S=a>b;
imprima S
fin

lo que podemos deducir con el ejemplo anterios es que las expresiones booleanas son pasos logicos de una operacion.

TABLAS DE VERDAD

     AND                                  OR                          NOT

V       V     V                     V    V     V                  V   F
V       F      F                     V    F     V                   F   V
F       V      F                     F    V     V
F       V      F                     F    F      F
F       F      F


TOMA DE DECICIONES 


la toma de dicisiones es el proceso mediante cual se realiza una eleccion entre las opciones o formas para resovler difere nte situaciones del prblema.


INSTRUCCION SI ( IF )

SI CONDICION; 
    MIENTRAS PROCESO;
  FIN SI;

INICIO

INT A,B;
A=3;B=3;
SI A==B
EN
ENTONCES A=A+1;
FIN SI 
IMPRIMA A 
FIN SI
IMPRIMA A 

FIN 


EJEMPLO 

realize un algoritmo, con la instruccion SI podra determinar. SI en la variable a existe un numero multiplo de 5.
en caso de ser verdadero asignele B=1 de lo contrario asignele B=0

domingo, 16 de marzo de 2014

BUCLES FOR, WHILE Y DO WHILE



FOR (PARA)

Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la estructura while. Pero hay otra estructura repetitiva cuyo planteo es más sencillo en ciertas situaciones.
En general, la estructura for se usa en aquellas situaciones en las cuales CONOCEMOS la cantidad de veces que queremos que se ejecute el bloque de instrucciones. Ejemplo: cargar 10 números, ingresar 5 notas de alumnos, etc. Conocemos de antemano la cantidad de veces que queremos que el bloque se repita. Veremos, sin embargo, que en el lenguaje Java la estructura for puede usarse en cualquier situación repetitiva, porque en última instancia no es otra cosa que una estructura while generalizada.


estructura repetitiva for



En su forma más típica y básica, esta estructura requiere una variable entera que cumple la función de un CONTADOR de vueltas. En la sección indicada como "inicialización contador", se suele colocar el nombre de la variable que hará de contador, asignándole a dicha variable un valor inicial. En la sección de "condición" se coloca la condición que deberá ser verdadera para que el ciclo continúe (en caso de un falso, el ciclo se detendrá). Y finalmente, en la sección de "incremento contador" se coloca una instrucción que permite modificar el valor de la variable que hace de contador (para permitir que alguna vez la condición sea falsa)
Cuando el ciclo comienza, antes de dar la primera vuelta, la variable del for toma el valor indicado en la sección de de "inicialización contador". Inmediatamente se verifica, en forma automática, si la condición es verdadera. En caso de serlo se ejecuta el bloque de operaciones del ciclo, y al finalizar el mismo se ejecuta la instrucción que se haya colocado en la tercer sección.
Seguidamente, se vuelve a controlar el valor de la condición, y así prosigue hasta que dicha condición entregue un falso.
Si conocemos la cantidad de veces que se repite el bloque es muy sencillo emplear un for, por ejemplo si queremo que se repita 50 veces el bloque de instrucciones puede hacerse así:

estructura repetitiva for


La variable del for puede tener cualquier nombre. En este ejemplo se la ha definido con el nombre f.
Analicemos el ejemplo:
- La variable f  toma inicialmente el valor 1.
- Se controla automáticamente el valor de la condición: como f vale 1 y esto es menor
que 50, la condición da verdadero.
- Como la condición fue verdadera, se ejecutan la/s operación/es.
- Al finalizar de ejecutarlas, se retorna a la instrucción f++, por lo que la
variable f se incrementa en uno.
- Se vuelve a controlar (automáticamente) si f es menor o igual a 50.
Como ahora su valor es 2, se ejecuta nuevamente el bloque de instrucciones e
incrementa nuevamente la variable del for al terminar el mismo.
- El proceso se repetirá hasta que la variable f sea incrementada al valor 51.
En este momento la condición será falsa, y el ciclo se detendrá.
La variable f PUEDE ser modificada dentro del bloque de operaciones del for, aunque esto podría causar problemas de lógica si el programador es inexperto.
La variable f puede ser inicializada en cualquier valor y finalizar en cualquier valor. Además, no es obligatorio que la instrucción de modificación sea un incremento del tipo contador (f++).
Cualquier instrucción que modifique el valor de la variable es válida. Si por ejemplo se escribe f=f+2 en lugar de f++, el valor de f será incrementado de a 2 en cada vuelta, y no de a 1. En este caso, esto significará que el ciclo no efectuará las 50 vueltas sino sólo 25.

PROBLEMA 
RELIZE UN PROGRAMA QUE IMPRIMA EN PANTALLA LOS NUMEROS DEL 1 AL 100.

EN PROGRAMA
INCIO
INT N;
FOR(N=1;1<=100;N=N++);
{
IMPRIMA "NUMERO";
}
FIN

DIAGRAMA DE FLUJO (DFD)


estructura repetitiva for


Podemos observar y comparar con el problema realizado con el while. Con la estructura while el CONTADOR x sirve para contar las vueltas. Con el for el CONTADOR f cumple dicha función.
Inicialmente f vale 1 y como no es superior a 100 se ejecuta el bloque, imprimimos el contenido de f, al finalizar el bloque repetitivo se incrementa la variable f en 1, como 2 no es superior a 100 se repite el bloque de instrucciones.
Cuando la variable del for llega a 101 sale de la estructura repetitiva y continúa la ejecución del algoritmo que se indica después del círculo.
La variable f (o como sea que se decida llamarla) debe estar definida como una variable más.


BUCLE WHILE

Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existe otro tipo de estructuras tan importantes como las anteriores que son las estructuras REPETITIVAS.
Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces.
Una ejecución repetitiva de sentencias se caracteriza por:
- La o las sentencias que se repiten.
- El test o prueba de condición antes de cada repetición, que motivará que se repitan o no las sentencias.

estructura repetitiva while

No debemos confundir la representación gráfica de la estructura repetitiva while (Mientras) con la estructura condicional if (Si)
Funcionamiento: En primer lugar se verifica la condición, si la misma resulta verdadera se ejecutan las operaciones que indicamos por la rama del Verdadero.
A la rama del verdadero la graficamos en la parte inferior de la condición. Una línea al final del bloque de repetición la conecta con la parte superior de la estructura repetitiva.
En caso que la condición sea Falsa continúa por la rama del Falso y sale de la estructura repetitiva para continuar con la ejecución del algoritmo.
El bloque se repite MIENTRAS la condición sea Verdadera.

Importante: Si la condición siempre retorna verdadero estamos en presencia de un ciclo repetitivo infinito. Dicha situación es un error de programación, nunca finalizará el programa.


PROBLEMA
REALIZE UN PROGRAMA QUE IMPRIMA EN PANTALLA LOS NUMEROS DEL 1 AL 100.

EN PROGRAMACION

INICIO
INT X;
X=1;
WHILE (A<=100);
{
IMPRIMA "DIGITE UN #";
LEA X;
X=X+1
}
FIN

DIAGRAMA DE FLUJO (DFD)

algoritmo números del 1 al 100 while

Es muy importante analizar este diagrama

La primera operación inicializa la variable x en 1, seguidamente comienza la estructura repetitiva while y disponemos la siguiente condición ( x <= 100), se lee MIENTRAS la variable x sea menor o igual a 100.
Al ejecutarse la condición retorna VERDADERO porque el contenido de x (1) es menor o igual a 100. Al ser la condición verdadera se ejecuta el bloque de instrucciones que contiene la estructura while. El bloque de instrucciones contiene una salida y una operación.
Se imprime el contenido de x, y seguidamente se incrementa la variable x en uno.
La operación x=x + 1 se lee como "en la variable x se guarda el contenido de x más 1". Es decir, si x contiene 1 luego de ejecutarse esta operación se almacenará en x un 2.
Al finalizar el bloque de instrucciones que contiene la estructura repetitiva se verifica nuevamente la condición de la estructura repetitiva y se repite el proceso explicado anteriormente.
Mientras la condición retorne verdadero se ejecuta el bloque de instrucciones; al retornar falso la verificación de la condición se sale de la estructura repetitiva y continua el algoritmo, en este caso finaliza el programa.
Lo más difícil es la definición de la condición de la estructura while y qué bloque de instrucciones se van a repetir. Observar que si, por ejemplo, disponemos la condición x >=100 ( si x es mayor o igual a 100) no provoca ningún error sintáctico pero estamos en presencia de un error lógico porque al evaluarse por primera vez la condición retorna falso y no se ejecuta el bloque de instrucciones que queríamos repetir 100 veces.
No existe una RECETA para definir una condición de una estructura repetitiva, sino que se logra con una práctica continua solucionando problemas.
Una vez planteado el diagrama debemos verificar si el mismo es una solución válida al problema (en este caso se debe imprimir los números del 1 al 100 en pantalla), para ello podemos hacer un seguimiento del flujo del diagrama y los valores que toman las variables a lo largo de la ejecución:
                x
                1
                2
                3
                4
                .
                .
        100
        101  Cuando x vale 101 la condición de la estructura repetitiva retorna falso,
             en este caso finaliza el diagrama.
Importante: Podemos observar que el bloque repetitivo puede no ejecutarse ninguna vez si la condición retorna falso la primera vez.
La variable x debe estar inicializada con algún valor antes que se ejecute la operación x=x + 1 en caso de no estar inicializada aparece un error de compilación.


CONDICONAL DO WHILE (HACER MIENTRAS)


La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior
estructura repetitiva do while

El bloque de operaciones se repite MIENTRAS que la condición sea Verdadera.
Si la condición retorna Falso el ciclo se detiene. En Java, todos los ciclos repiten por verdadero y cortan por falso.
Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.


PROBLEMA

Escribir un programa que solicite la carga de un número entre 0 y 999, y nos muestre un mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.

INICIO 
INT VALOR;
DO
{
IMPRIMA "DIGITE UN NUMERO"

IF(VALOR>=100 && <=999)
{
IMPRIMA "TIENE 3 DIGITOS"
}
ELSE
{
IF(VALOR>=10)
{
IMPRIMA "TIENE 2 DIGITOS"
}
ELSE
{
IMPRIMA "TIENE 1 DIGITOS"
}
WHILE(VALOR=!0)
}
FIN


DIAGRAMA DE FLUJO (DFD)


estructura repetitiva do while

No hay que confundir los rombos de las estructuras condicionales con los de las estructuras repetitivas do while.
En este problema por lo menos se carga un valor. Si se carga un valor mayor o igual a 100 se trata de un número de tres cifras, si es mayor o igual a 10 se trata de un valor de dos dígitos, en caso contrario se trata de un valor de un dígito. Este bloque se repite hasta que se ingresa en la variable valor el número 0 con lo que la condición de la estructura do while retorna falso y sale del bloque repetitivo finalizando el programa.










sábado, 15 de marzo de 2014

SENTENCIA SWITCH / CASE

Como las sentencias if, switch...case controla el flujo de programas permitiendo a los programadores especificar diferentes códigos que deberían ser ejecutados en función de varias condiciones. En particular, una sentencia switch compara el valor de una variable con el valor especificado en las sentencias case. Cuando se encuentra una sentencia case cuyo valor coincide con dicha variable, el código de esa sentencia se ejecuta.

La palabra clave break sale de la sentencia switch, y es usada típicamente al final de cada case





 
Blogger Templates