Guia de Ejercicios...

40
Bachiller: Frank D. Rivas A. CI. 26028773 ING. INFORMATICA SECCION N02 SUBPROYECTO Algoritmo y Programación I Barinas, JUNIO del 2016. INDICE

description

Estructuras selectivas

Transcript of Guia de Ejercicios...

Page 2: Guia de Ejercicios...

INTRODUCCION

Page 3: Guia de Ejercicios...

DESARROLLO

A)Si Condicional (IF):

*SI (IF) Condicional: Los condicionales en C++, son una estructura de control esencial al momento de programar y aprender a programar. Tanto C como C++ y la mayoría de los lenguajes de programación utilizados actualmente, nos permiten hacer uso de estas estructuras para definir ciertas acciones condiciones especificas en nuestro algoritmo. Un condicional, permite establecer una serie de condiciones al interior de nuestro programa, que nos ayudan a determinar que acciones llevará cabo dadas ciertas circunstancias, por ejemplo si queremos decidir cuándo dar acceso a un usuario, dependiendo de si el nombre de usuario y contraseña son correctos, para algo como esto, es útil un

Page 4: Guia de Ejercicios...

condicional, nos permite verificar si determinada condición se cumple (en este caso si la contraseña y el nombre de usuario son correctos) y de acuerdo a que se cumpla o no, llevar a cabo un conjunto de acciones. Los condicionales aumentan la "expresividad" de un software, es decir nos permiten considerar diferentes situaciones con antelación, evitando o permitiendo sortear diferentes tipos de situaciones que son del interés de nuestra aplicación.

EJEMPLO:

IF A=0 THEN

PRINT “A VALE 0”

ELSE

PRINT “A NO VALE 0”

2) IF (CONDICION A EVALUAR)//POR EJEMPLO 50<=10

{

BLOQUE DE INSTRUCIONES SI SE CUMPLE LA CONDICION...

}

ELSE

{

BLOQUE DE INSTRUCCIONES SI NO SE CUMPLE LA CONDICION…

}

Page 5: Guia de Ejercicios...

*SI (IF) CONDICIONAL COMPLEJO: Este programa lee un número entero digitado por el usuario. Luego el programa prueba el valor usando una estructura  condicional simple para verificar si el número es negativo. Sí lo es, el programa imprime el mensaje: "El valor es negativo". En otro caso, el programa no hace nada. El (b < 0) es la parte de la estructura condicional que se denomina Expresión Booleana. C evalúa (determina si es cierta o falsa) para decidir cuándo imprimir o no imprimir el mensaje. Si la expresión booleana se evalúa a verdadero (True), entonces C ejecuta el bloque de instrucciones (dentro de llaves {}) o la instrucción que sigue a la estructura condicional. Sí la expresión booleana es falsa (False), entonces C  salta el bloque de instrucciones o la instrucción que sigue a la estructura condicional. 

EJEMPLO:

1)  A continuación se muestra un ejemplo un poco más complejo:#include <stdio.h>

int main (){    int valor;    printf ("Enter a value:");    scanf ("%d", &valor);    if (valor < 0)        printf ("\nEl valor es negativo\n");    else           if (valor == 0)            printf ("\nEl valor es cero\n");        else            printf ("\nEl valor es positivo\n");    return 0;}

En este ejemplo, la estructura condicional después de la primera aparición de else: if(valor == 0) evalua por un valor de cero y si es cierto C imprimirá el mensaje "El valor es cero", el segundo else corresponde a la ocurrencia de un valor positivo, en este caso no se evalúan más condiciones debido a que luego de haber evaluado las dos expresiones booleanas, solo queda la opción de que el valor sea positivo y por lo tanto no es necesario evaluar algo como if (valor>0).

2) #include <stdio.h>

int main (){    int valor;

Page 6: Guia de Ejercicios...

    printf ("Digite un valor entero:");    scanf ("%d", &valor);    if (valor < 0)        printf ("\nEl valor es negativo\n");    return 0;}

*SI (IF) CONDICIONAL ANIDADO:  

Las sentencias if implementan decisiones que implican una o dos alternativas.

Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa es a su vez una sentencia if.

Una sentencia if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas.

EJEMPLO:

1) if (condición1) sentencia1

Else if (condición2)

sentencia2

• Else if (condición)

Sentencia n

Else sentencia e

2) if (condición 1) if (condición 2)

Estatuto;

else // este else pertenece al if de la condición 2, pues se

// Se asocia al if más cercano estatuto;

Page 7: Guia de Ejercicios...

Niveles de anidamiento en Visual Basic:En Visual Basic, las estructuras de control pueden anidarse en tantos niveles como se desee. A fin de que las estructuras anidadas sean más fáciles de leer, es práctica habitual aplicar sangría al cuerpo de cada una. El editor del entorno de desarrollo integrado (IDE) lo hace automáticamente.

En el siguiente ejemplo, el procedimiento sumRows suma los elementos positivos de cada fila de la matriz

Public Sub sum Rows (By Val a (,) As Double, ByRef r () As Double)

Dim i, j As Integer

For i = 0 To UBound(a, 1)

R (i) = 0

For j = 0 To UBound(a, 2)

If a(i, j) > 0 Then

R (i) = r (i) + a (i, j)

End If

Next j

Next i

End Sub

B) Estructura de control switch: La sentencia switch selecciona una de entre múltiples alternativas.

La forma general de esta expresión es la siguiente:

switch (expresión)

{

Case constante1:

Page 8: Guia de Ejercicios...

Instrucciones;

Break;

Case constante 2:

Instrucciones;

Break;

· · ·

Default:

Instrucciones;

}

En una instrucción switch, expresión debe ser una expresión con un valor entero, y constante1, constante2, ..., deben ser constantes enteras, constantes de tipo carácter o una expresión constante de valor entero. Expresión también puede ser de tipo char, ya que los caracteres individuales tienen valores enteros

Dentro de un case puede aparecer una sola instrucción o un bloque de instrucciones.

La instrucción switch evalúa la expresión entre paréntesis y compara su valor con las constantes de cada case. Se ejecutarán las instrucciones de aquel case cuya constante coincida con el valor de la expresión, y continúa hasta el final del bloque o hasta una instrucción que transfiera el control fuera del bloque del switch (una instrucción break, o return). Si no existe una constante igual al valor de la expresión, entonces se ejecutan las sentencias que están a continuación de default si existe (no es obligatorio que exista, y no tiene porqué ponerse siempre al final).

EJEMPLO:

1) De uso de la instrucción switch en C++. Programa que lee dos números y una operación y realiza la operación entre esos números.

#include <iostream>

Using namespace std;

Int main (void)

{

Page 9: Guia de Ejercicios...

Int A, B, Result ado;

Char operador;

Cout << "Introduzca un numero:";

Cin >> A;

Cout << "Introduzca otro numero:";

Cin >> B;

Cout <<"Introduzca un operador (+,-,*, /):";

Cin >> operador;

Resultado = 0;

Switch (operador)

{

Case '-’: Result ado = A - B;

Break;

Case '+’: Result ado = A + B;

Break;

Case '*’: Result ado = A * B;

Break;

Case '/’: Resultado = A / B; //suponemos B!=0

Break;

Default: cout << "Operador no valido"<< endl;

}

Cout << "El resultado es: ";

Cout << Resultado << endl;

System ("pause");

}

Page 10: Guia de Ejercicios...

Otro ejemplo de uso de switch en C++. Programa que determina si un carácter leído es o no una vocal. En ese caso como la sentencia a ejecutar por todas las etiquetas case es la misma, esta sentencia se pone una única vez al final:

#include <iostream>

Using namespace std;

Int main (void)

{

Char car;

Cout << "Introduzca un caracter: ";

Cin >> car;

Switch (car)

{

Case 'a':

Case 'A':

Case 'e':

Case 'E':

Case 'i':

Case 'I':

Case 'o':

Case 'O':

Case 'u':

Case 'U': cout << car << " es una vocal" << endl;

Break;

Default: cout << car << " no es una vocal" << endl;

}

System ("pause");

Page 11: Guia de Ejercicios...

}

Estructuras de decisión (Visual Basic)

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.

En el siguiente ejemplo se muestra una estructura de decisión que prueba si el valor de una condición es true y emprende distintas acciones en función del resultado.

Emprender acciones diferentes cuando el valor de una condición es true y cuando es false.

Ejercicios propuestos condicional IF

1) Dado como dato el sueldo de un trabajador, considere un aumento del 15% si su sueldo es inferior a 1000 y de un 12% en caso contrario. Imprima el sueldo con el aumento incorporado.

#include <cstdlib>#include <iostream>

Using namespace std;

Int main ()

{float Sueldo, Total, Aumento;system (“color F0“);cout<<“\n\t***EJERCICIO 1 CONDICIONAL IF***\n\n“;cout<<“\tDado como dato el sueldo de un trabajador, considere un aumento\n“;cout<<“\tSi su sueldo es menor a 1000 se hara del 15%\n“;

Page 12: Guia de Ejercicios...

cout<<“\tSi su sueldo es mayor o igual a 1000 se hara del 12%\n“;cout<<“\tImprima el sueldo con el aumento incorporado…\n\n“;cout<<“\tEscriba el sueldo del trabajador\n\t“;cin>>Sueldo;if (Sueldo<1000){Aumento=Sueldo*.15;Total=Sueldo+Aumento;}else{Aumento=Sueldo*.12;Total=Sueldo+Aumento;}cout<<“\n\tSu aumento es de: “<<Aumento<<” pesos\n“;cout<<“\tEl sueldo con aumento es de: “<<Total<<” pesos\n\n\t“;system(“PAUSE“);return 0;

}

2) En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectúa con base en el siguiente criterio.

Si el monto es menor que 500 no hay descuentoSi el monto está comprendido entre 500 y 1000 inclusive, el desc es de 5%Si el monto está comprendido entre 1000 y 7000 inclusive, el desc es del 11%Si el monto está comprendido entre 7000 y 15000 inclusive, el desc es del 18%Si el monto es mayor de 15000 el desc es del 25%

#include <cstdlib>#include <iostream>

Using namespace std;

Int main ()

{Float Compra, Total;system (“color F0“);cout<<“\n\t***EJERCICIO 3 CONDICIONAL IF***\n“;cout<<“\n En una tienda efectuan descuento a los clientes“;cout<<“\n dependiendo del monto de la compra. El descuento“;cout<<“\n se efectúan con base en los siguientes criterios.“;

Page 13: Guia de Ejercicios...

cout<<“\n\n *Si el monto es menor que 500 no hay descuento“;cout<<“\n *Si la compra es entre 500 y menor a 1000 hay descuento de 5%“;cout<<“\n *Si la compra es entre 1000 y menor a 7000 hay descuento de 11%“;cout<<“\n *Si la compra es entre 7000 y menor a 1500 hay descuento de 18%“;cout<<“\n *Si la compra es mayor o igual a 1500 hay descuento de 25%“;cout<<“\n\n Introduzca el monto de la compra\n “;cin>>Compra;if (Compra<500)Total=Compra;else{if (Compra <1000)Total = Compra-Compra*0.05;else{if (Compra<7000)Total = Compra-Compra*0.11;else{if (Compra<1500)Total = Compra -Compra*0.18;elseTotal = Compra-Compra*0.25;}}}cout<<“\n\n El monto a pagar es “<<Total<<“ pesos“<<endl;cout<<“\n Gracias por su compra :p\n\n “;system(“PAUSE”);return EXIT_SUCCESS;}

Que pida 3 números y los muestre en pantalla de menor a mayor

#include <stdio.h>

#include <stdlib.h>

Page 14: Guia de Ejercicios...

Int main (void)

{

Int num1, num2, num3;

Printf ("Introduzca número 1:");

scanf("%d",&num1);

printf("Introduzca número 2:");

Scanf ("%d", &num2);

Printf ("Introduzca número 3:");

scanf("%d",&num3);

if (num1<num2 && num1<num3)

{

if (num2<num3)

{

Printf ("%d", num1);

Print ("%d", num2);

Printf ("%d", num3);

}

else

{

Printf ("%d", num1);

Printf ("%d", num3);

Printf ("%d", num2);

Page 15: Guia de Ejercicios...

}

}

Else if (num2<num1 && num2<num3)

{

If (num1<num3)

{

Printf ("%d", num2);

Printf ("%d", num1);

Printf ("%d", num3);

}

Else

{

Printf ("%d", num2);

Printf ("%d", num3);

Printf ("%d", num1);

}

}

Else if (num3<num1 && num3<num2)

{

If (num1<num2)

{

Printf ("%d", num3);

Printf ("%d", num1);

Printf ("%d", num2);

}

Else

Page 16: Guia de Ejercicios...

{

Printf ("%d", num3);

Printf ("%d", num2);

Printf ("%d", num1);

}

}

System ("PAUSE");

return 0;

}

4) Que pida 3 números y los muestre en pantalla de mayor a menor en líneas distintas. En caso de haber números iguales se pintan en la misma línea.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Int num1, num2, num3;

Printf ("Introduzca número 1:");

Scanf ("%d", &num1);

Page 17: Guia de Ejercicios...

Printf ("Introduzca número 2:");

Scanf ("%d", &num2);

Printf ("Introduzca número 3:");

Scanf ("%d", &num3);

If (num1>num2 && num1>num3)

{

If (num2>num3)

{

Printf ("%d\n", num1);

Printf ("%d\n", num2);

Printf ("%d\n", num3);

}

Else if (num3>num2)

{

Printf ("%d\n", num1);

Printf ("%d\n", num3);

Printf ("%d\n", num2);

}

Else

{

Printf ("%d\n", num1);

Printf ("%d", num3);

Printf ("%d\n", num2);

}

Page 18: Guia de Ejercicios...

}

Else if (num2>num1 && num2>num3)

{

If (num1>num3)

{

Printf ("%d\n", num2);

Printf ("%d\n", num1);

Printf ("%d\n", num3);

}

Else if (num3>num1)

{

Printf ("%d\n", num2);

Printf ("%d\n", num3);

Printf ("%d\n", num1);

}

Else

{

Printf ("%d\n", num2);

Printf ("%d", num3);

Printf ("%d\n", num1);

}

}

Else if (num3>num1 && num3>num2)

{

If (num1>num2)

{

Page 19: Guia de Ejercicios...

Printf ("%d\n", num3);

Printf ("%d\n", num1);

Printf ("%d\n", num2);

}

Else if (num2>num1)

{

Printf ("%d\n", num3);

Printf ("%d\n", num2);

Printf ("%d\n", num1);

}

Else

{

Printf ("%d\n", num3);

Printf ("%d", num2);

Printf ("%d\n", num1);

}

}

Else

{

Printf ("%d", num1);

Printf ("%d", num2);

Printf ("%d", num3);

}

System ("PAUSE");

return 0;

Page 20: Guia de Ejercicios...

}

5) Que pida un número y diga si es positivo o negativo.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

int num1;

Printf ("Introduzca número 1:");

Scanf ("%d", &num1);

If (num1>0) {

Printf ("Es positivo\n");

}

Else if (num1<0) {

printf ("Es negativo\n");

}

else

{

Printf ("Es cero\n");

}

System ("PAUSE");

Page 21: Guia de Ejercicios...

Return 0;

}

6) Que sólo permita introducir los caracteres S y N.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Char c;

Printf ("Introduzca un carácter:");

scanf("%c",&c);

if (c=='s' || c=='n' ){

Printf ("Es correcto\n");

}

Else

{

Printf ("Es incorrecto\n");

}

System ("PAUSE");

Return 0;

}

Page 22: Guia de Ejercicios...

7) Que pida un número y diga si es mayor de 100.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Int num1;

Printf ("Introduzca un número:");

Scanf ("%d", &num1);

If (num1>100) {

Printf ("Es mayor\n");

}

else

{

Printf ("Es menor\n");

}

System ("PAUSE");

return 0;

}

8) Que pida tres números y detecte si se han introducido en orden creciente.

Page 23: Guia de Ejercicios...

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Int num1, num2, num3;

Printf ("Introduzca número 1:");

Scanf ("%d", &num1);

Printf ("Introduzca número 2:");

Scanf ("%d", &num2);

Printf ("Introduzca número 3:");

Scanf ("%d", &num3);

If (num1<num2)

{

If (num2<num3)

{

Printf ("Orden creciente");

}

Else

{

Printf ("No están introducidos en orden creciente ");

Page 24: Guia de Ejercicios...

}

}

Else

{

Printf ("No están introducidos en orden creciente ");

}

System ("PAUSE");

return 0;

}

9) Que pida tres números y detecte si se han introducido en orden decreciente.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Int num1, num2, num3;

Printf ("Introduzca número 1:");

Scanf ("%d", &num1);

Printf ("Introduzca número 2:");

Scanf ("%d", &num2);

Page 25: Guia de Ejercicios...

Printf ("Introduzca número 3:");

Scanf ("%d", &num3);

If (num1>num2)

{

If (num2>num3)

{

Printf ("Orden decreciente");

}

else

{

printf("No están introducidos en orden decreciente ");

}

}

else

{

Printf ("No están introducidos en orden decreciente ");

}

System ("PAUSE");

Return 0;

}

10) Que pida tres números e indicar si el tercero es igual a la suma del primero y el segundo.

#include <stdio.h>

Page 26: Guia de Ejercicios...

#include <stdlib.h>

Int main (void)

{

Int num1, num2, num3;

Printf ("Introduzca número 1:");

Scanf ("%d", &num1);

Printf ("Introduzca número 2:");

Scanf ("%d", &num2);

Printf ("Introduzca número 3:");

Scanf ("%d", &num3);

If (num1+num2==num3)

{

Printf ("El tercer número es la suma de los dos primeros.\n");

}

Else

{

Printf ("El tercer número NO es la suma de los dos primeros.\n");

}

System ("PAUSE");

return 0;

Page 27: Guia de Ejercicios...

}

11) Que muestre un menú que contemple las opciones “Archivo”, “Buscar” y “Salir”, en caso de que no se introduzca una opción correcta se notificará por pantalla.

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int opcion;

printf("Seleccione opción:\n");

printf("1 - Archivo\n");

printf("2 - Buscar\n");

printf("3 - Salir\n");

scanf("%d",&opcion);

if (opcion!=1 && opcion!=2 && opcion!=3)

{

printf("La opción NO es correcta.\n");

}

else

{

printf("La opción es correcta.\n");

}

Page 28: Guia de Ejercicios...

System ("PAUSE");

Return 0;

}

12) Que tome dos números del 1 al 5 y diga si ambos son primos.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Int num1, num2;

Printf ("Introduzca número del 1 al 5:");

Scanf ("%d", &num1);

Printf ("Introduzca número del 1 al 5:");

Scanf ("%d", &num2);

if (num1!=4 && num2!=4) {

Printf ("Ambos son primos.\n");

}

else

{

Printf ("Los números, o uno de ellos, no son primos.\n");

}

Page 29: Guia de Ejercicios...

System ("PAUSE");

Return 0;

}

Ejercicios propuestos condicional SWITCH

1)Que pida una letra y detecte si es una vocal.

#include <stdio.h>

#include <stdlib.h>

Int main (void)

{

Char c;

Printf ("Introduzca un carácter:");

Scanf ("%c", &c);

Switch (c)

{

Case 'a':

Printf ("Es vocal\n");

Break;

Case 'e':

Printf ("Es vocal\n");

Break;

Page 30: Guia de Ejercicios...

Case 'i':

Printf ("Es vocal\n");

Break;

Case 'o':

Printf ("Es vocal\n");

Break;

Case 'u':

Printf ("Es vocal\n");

Break;

default:

printf ("No es vocal\n");

break;

}

System ("PAUSE");

return 0;

}

2) Que pida un número del 1 al 7 y diga el día de la semana correspondiente.

#include <stdio.h>

#include <stdlib.h>

int main (void)

{

Page 31: Guia de Ejercicios...

            Int i;

            Printf ("Introduzca número del 1 al 7:");

    Scanf ("%d", &i);

    Switch (i) {

              Case 1:

                   Printf ("Lunes\n");

                   Break;

              Case 2:

                   Printf ("Martes\n");

                   Break;

              Case 3:

                   printf ("Miércoles\n");

                   Break;

              Case 4:

                   Printf ("Jueves\n");

                   Break;

              Case 5:

                   Printf ("Viernes\n");

                   break;

              Case 6:

                   Printf ("Sábado\n");

                   Break;

              Case 7:

                   Printf ("Domingo\n");

Page 32: Guia de Ejercicios...

                   Break;

              Default:

                   printf ("Opción no válida\n");

                   break;

    }

    System ("PAUSE");     

    Return 0;

}

Calcular el salario de un trabajador

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

Int main ()

{

Int nivel;

Float salario, slanuevo;

Printf ("Introduce el nivel de antiguedad del trabajador: ");

Scanf ("%d", &nivel);

Printf ("Introduce tu salario: ");

Scanf ("%f", &salario);

Switch (nivel) {

Case 5:

Page 33: Guia de Ejercicios...

slanuevo=salario+(salario*.035);

Printf ("\nTu salario es: %f\n", slanuevo);

Break;

Case 6:

Salmuero=salario+ (salario*.041);

Printf ("\nTu salario es: %f\n", slanuevo);

Break;

Case 7:

slanuevo=salario+(salario*.048);

Printf ("\nTu salario es: %f\n", slanuevo);

Break;

Case 8:

slanuevo=salario+(salario*.053);

Printf ("\nTu salario es: %f\n",slanuevo);

Break;

Default:

Printf ("\nTu salario es: %f\n", salario);

}

System ("PAUSE");

Return 0;

}

Programa que muestre los días de la semana

#include <stdio.h>

Int dia = 0;

Page 34: Guia de Ejercicios...

Main (void) {

Printf ("Elige un Dia a la Semana\n\n");

Printf ("1. Lunes\n");

Printf ("2. Martes\n");

Printf ("3. Miercoles\n");

Printf ("4. Jueves\n");

Printf ("5. Viernes\n");

Printf ("6. Sábado\n");

Printf ("7. Domingo\n");

Printf ("Que numero de dia de la semana escoges: ");

Scanf ("%i",&dia);

switch(dia) {

case 1 :

printf("Lunes es, Luna\n");

break;

case 2 :

printf("Martes es, Marte\n");

break;

case 3 :

Printf ("Miercoles es, Mercurio\n");

Break;

Case 4:

Printf ("Jueves es, Jupiter\n");

Break;

Page 35: Guia de Ejercicios...

Case 5:

Printf ("Viernes es, Venus\n");

Break;

Case 6:

Printf ("Sábado es, Saturno\n");

Break;

Case 7:

Printf ("Domingo es, Sol\n");

Break;

Default:

Printf ("No existe\n");

}

System ("PAUSE");

}

Análisis y ejemplo comparativo con SCRIPT PHP

1) Dado un número entero positivo determine si es par o impar.

<html>

<title> Numero Par o impar </title>

  <body>

   <?php

   $numero=8;

   if($numero>0){

Page 36: Guia de Ejercicios...

   if($numero%2==0)

   printf(“El numero %d es par”,$numero);

    else

    printf(“El numero %d es impar”,$numero);

    }

    else

    printf(“El Numero no es entero positivo”);

     ?>

            </body>

</html>