miércoles, 3 de noviembre de 2010

Lenguaje de programacion


Estructura de decisión:

     Visual Basic permite probar condiciones y realizar diferentes operaciones en función de los resultados de la prueba. Puede comprobar si una condición es verdadera o falsa, los distintos valores de una expresión o las diferentes excepciones que se generan al ejecutar una serie de instrucciones.

ESTRUCTURA DE DECISIÓN SIMPLE:

     Se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1 o la serie de sentencias comprendidas entre begin y end de la instrucción IF-THEN, según sea el caso. Mientras que si el resultado de su evaluación es falso se continúa como si la instrucción del IF-THEN no hubiese existido.

    Esta estructura evalúa la condición, luego: Si la condición es cierta entonces ejecuta el conjunto de sentencias definidas por Si, i =1 .. n.Si la condición es falsa entonces no ejecuta el conjunto de sentencias definidas por Si, i =1... N.

Diagrama de flujo.

Si (<condición>) entonces
S1
….
Sn
Fin sí
Código en C
If (<condición>)
{
S1
….
Sn
}

Diagrama de flujo. Pseudocódigo en español.
Si (<condición>) entonces
S1
….
Sn
Fin sí
Código en C
if (<condición>)
{
S1
….
Sn
}

Código en C
If (x>0.0)
Printf (“x es positivo
\n”);
If (a<b)
{b+=a;}
NOTA:
Observe que cuando hay una
sola instrucción a
Ejecutarse dentro del if,
Las llaves son opcionales.

    Dados tres números enteros, determinar si la suma de cualquier pareja de ellos es igual al tercer número. Si se cumple esta condición, escribir “Iguales” y, en caso contrario, escribir “Distintos”.

Análisis E-P-S
Entradas: A, B, C ∈ Z
Proceso:
- Determinar si A + B = C ⇒ “Iguales”
- Determinar si A + C = B ⇒ “Iguales”
- Determinar si B + C = A ⇒ “Iguales”
- Si no se cumple ninguno de los anteriores ⇒ “Distintos”
Salida: Mensaje indicando si la suma de dos números es
igual “Iguales” o diferente “Distintos” a un tercero.

ESTRUCTURA DE DECISIÓN DOBLE:

     Se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1. Mientras que si el resultado de su evaluación es falso se ejecuta la sentencia2. Recuerde que en el caso de sentencias compuestas, en lugar de la sentencia1 o la sentencia2 se ejecutarán las serie de sentencias comprendidas entre sus respectivos begin end.
   
Permite elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de la condición: Si el resultado de evaluar la condición el CIERTO se ejecutará un determinado grupo de instrucciones 1i, para i = 1, .., n. Si el resultado de evaluar la condición es FALSO se ejecutará otro grupo de instrucciones 2k, para

k = 1,.., m.

Ejemplo
Al cular el salario mensual de un empleado, sabiendo que éste se
Calcula en base a las horas semanales trabajadas y de acuerdo a
Un precio especificado por hora. Si se pasa de las 40 horas
Semanales, las horas extras se pagarán a razón de 1,5 veces la
Hora ordinaria.
Análisis E-P-S
Entradas: Horas semanales trabajadas (HST R)
Precio por hora (PH R)
Proceso: - Si horas semanales trabajadas (HST) <= 40
Calcular salario mensual (SM) = HST * PH
- Si horas semanales trabajadas (HST) > 40
Calcular salario mensual (SM) = 40 * PH + PH*1,5*(HST-40)
Salida: salario mensual (SM R)

Escriba un programa que lea un número entero y compruebe si es correcto. En caso que sea correcto, el programa imprimirá el mensaje “CORRECTO”, sino es
Correcto, el programa imprimirá el mensaje "ERROR -número incorrecto". Considere los siguientes casos para decidir si un número es o no correcto:

1. El número es correcto si se encuentra en el rango definido por
dos valores constantes MINIMO y MAXIMO.
3. El número es correcto si es uno de los tres valores constantes
VALOR1, VALOR2 o VALOR3
1. El número es correcto si se encuentra en el rango
Definido por dos valores constantes MINIMO y
MAXIMO, o bien es igual al valor constante
VALOR1.
3. El número es correcto si se encuentra en el rango
Definido por dos valores constantes MINIMO1 y
MAXIMO1, o bien en el definido por los valores
Constantes MINIMO2 y MAXIMO2.
ESTRUCTURAS DE DECISIÓN MÚLTIPLE
    Existen dos tipos de sentencias, las IF anidadas y las CASE.

SENTENCIA IF ANIDADA
     Se usan para representar estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia1. Mientras que si el resultado de su evaluación es falso se evalúa otra expresión lógica, si el resultado de esta última es verdadero se ejecuta la sentencia2, si es falso se evalúa otra expresión y así sucesivamente. Recuerde que en el caso de sentencias compuestas, en lugar de la sentencia1, sentencia2 o sentencia N, se ejecutarán la serie de sentencias comprendidas entre sus respectivos begin - end.

El algoritmo escrito: Nº. si condición 1 entonces,
Nº.Nº sentencia(s) 1
De lo contrario, si condición 2 entonces,
Nº.Nº sentencia(s) 2
De lo contrario, si condición n entonces,
Nº.Nº sentencia(s) N
De lo contrario
Nº.Nº sentencia(s) N+1
SENTENCIA CASE: se usa para elegir entre diferentes alternativas. Puede utilizarse de cualquiera de las dos maneras descritas a continuación, según sea el caso
CASE selector OF
Lista constantes1: sentencia1;
Lista constantes2: sentencia2;
:
Lista de constantesN: sententiaN
END;
CASE selector OF
Lista constantes1: sentencia1;
Lista constantes2: sentencia2;
:
Lista de constantesN: sententiaN
ELSE
SentenciaN+1
END;
Donde:
         • Lista de constantes es igual a uno o más posibles valores del selector separados por coma y pueden ser constantes o un valor subrango: constante1..constante2.
         • Cada sentencia puede ser simple o compuesta (recordar que las compuestas deben ir  entre un begin y un end).
         • El selector es una expresión que debe ser de tipo ordinal (integer, char, bolean, subrango o enumerado). No son válidos los tipo real, string, longint, Word.
         • Todas las constantes CASE deben ser únicas y de un tipo ordinal compatible con el tipo del selector.
         • Cada sentencia excepto la última, debe ir seguida de ;
         • La cláusula ELSE es opcional.

Reglas de funcionamiento:
        1. La expresión selector se evalúa y se compara con las listas de constantes.
        2. Si el valor resultante de la evaluación del selector se corresponde con alguno de la lista de constantes 1, se ejecutará la sentencia1 o el bloque de sentencias1 encerradas entre begín – end, en caso de sentencias compuestas. Luego el control se pasa seguidamente a la primera sentencia a continuación del END del CASE. Si el valor resultante de la evaluación del selector se corresponde con alguno de la lista constantes 2, se ejecutará la sentencia2 (simples o compuestas) y así sucesivamente.
        3. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y no existe la cláusula ELSE, no sucede nada y sigue el flujo del programa como si no hubiese existido el CASE.
        4. Si el valor resultante de la evaluación del selector no está comprendido en ninguna lista de constantes y si existe la cláusula ELSE, se ejecuta(n) la(s) instrucciones a continuación de la cláusula ELSE.

El algoritmo escrito de una sentencia CASE se representa:
Nº según sea selector hacer
Lista ctes. 1: Nº.Nº sentencia(s) 1
Lista ctes. 2: Nº.Nº sentencia(s) 2
Lista ctes N: Nº.Nº sentencia(s) N
De lo contrario
Nº.Nº sentencia(s) N+1
fin según.

NOTA: se pueden usar sentencias IF anidadas en lugar de sentencias CASE para realizar una decisión de alternativa múltiple, pero es más legible el CASE.

ESTRUCTURA DE CONTROL
La estructura repetitiva se utiliza cuando se quiere que un conjunto de instrucciones se ejecuten un cierto número finito de veces. Se le llama bucle o ciclo a todo proceso que se repite un cierto número de veces dentro de un pseudocódigo o un programa.
Existen dos tipos de estructuras repetitivas; la primera es aquella en donde se tiene perfectamente establecido el número de veces que un grupo de acciones se van a ejecutar (20, 5, 2 veces), y la segunda en la que el número de repeticiones es desconocido y se hará hasta que se cumpla o no cierta condición.

EJERCICIOS:

Ingrese 10 números, visualice un mensaje si el
Número ingresado es par
Inicio Leer N
Si N mod 2 =0 Entonces
Escribir “Par”
Fin Si
Leer M
Si M mod 2 =0 Entonces
Escribir “Par”
Fin Si
Leer P
Si P mod 2 =0 Entonces
Escribir “Par”
Fin Si
FIN

INICIOParai1 hasta10 Hacer
Leer Número
Si Numero MOD 2 =0 Entonces
Escribir “PAR
Fin Si
Fin Para
FIN
I
NGRESE POR TECLADO 200 NUMEROS,
VISUALICE EL
CUADRADO Y EL CUBO DE CADA NUMERO INGRESADO.

INICIO
Leer N
Escribir N ↑2 , N ↑3
Leer M
Escribir M ↑2 , M ↑3
Leer P
Escribir P ↑2 , P ↑3
.. .
FIN

INICIO Para i 1 hasta200 hacer
Leer N
Escribir N ↑2 , N ↑3
Fin Para
FIN

Estructura repetitiva while:

    Las estructuras repetitivas nos permiten ejecutar un bloque de instrucciones varias veces, dependiendo de una condición.
 La estructura while repite el bloque de instrucciones mientras la condición se verifique verdadera.

    Si queremos mostrar los números del 1 al 100 con estructuras secuenciales el proceso es largo y engorroso, utilizando una estructura repetitiva el algoritmo es muy compacto:

Print 'Números del 1 al 100:'
x=1                
While x<=100:
    Print x
    Print '-'
    x=x+1
Print 'Fin'
    Es importante recordar y remarcar que las instrucciones que se ejecutan en la estructura repetitiva while son todas las que se encuentran indentadas a derecha (cuatro espacios más a la derecha de la instrucción while)
La variable x se inicializa previo a la estructura while con el valor 1. La primera vez que se ejecuta la condición del while se verifica verdadera, ya que 1 es menor o igual a 100.

Dentro de la estructura repetitiva mostramos el contenido de la variable x, luego imprimimos un guión y finalmente incrementamos la variable x con el valor actual más uno.
La impresión de la cadena 'Fin' se ejecuta una vez finalizada la estructura repetitiva while

EJERCICIOS Y EJEMPLOS:
Import random
 
x=random.randint (100,200)
Print 'Número final:'
Print x
Print '<br>'
Cont=1
While cont<=x:
    Print cont
    Print '-'
    Cont=cont+1
 
   
Ejemplo 1:
 
#include <stdio.h>
Main () {    /* visualizar los números del 0 al 9.*/
Int digito=0;
While (digito<=9) {
Printf"%d ", digito);
++digito;
}
}
 
 Visualizará: 0 1 2 3 4 5 6 7 8 9
 
 NOTA: Inicialmente se le asigna a digito el valor de cero. El bucle while visualiza el valor actual de digito, incrementando su valor en uno y repitiéndose el ciclo, hasta que el valor de digito sea mayor que 9. El efecto total es que el cuerpo del bucle se repetirá diez veces, generándose diez visualizaciones de salida. Como en la instrucción printf no hemos puesto un \n  de salto de línea, entonces, los números del 0 al 9 aparecerán seguidos, y sólo separados por un espacio en blanco, que es el que aparece entre comillas en la instrucción printf.
 
Ejemplo 2:
 
 #include <stdio.h>
Main () {
Int I=0, j=0, final=40;
While (i<final) {
i=j*10;
printf ("%d\n",i);
j++;
}
j=100; /* sentencia que ejecutamos cuando deje de cumplirse la condición del while. */
}
 
 
Visualizará: 0
10
20
30
40

 Traza:
1ª comprobación del bucle: (0<40), cierto.
2ª comprobación del bucle: (0<40), cierto.
3ª comprobación del bucle: (10<40), cierto.
4ª comprobación del bucle: (20<40), cierto.
5ª comprobación del bucle: (30<40), cierto.
6ª comprobación del bucle: (40<40), falso, entonces, nos vamos a la sentencia:  j=100;.