lunes, 13 de agosto de 2007

Practica 6: Ejercicios de estructuras selectivas simples y dobles.

Materia: Lógica Computacional.
Profesor: Lic. Salomón Aquino.
OBJETIVOS
Al finalizar la práctica, los estudiantes serán capaces de:
• Identificar las estructuras de selección simple (If) y doble (If-else) en la solución de problemas
• Escribir programas en lenguaje C con estructuras selectivas simples y dobles.

INTRODUCCIÓN TEÓRICA.
Estructuras Selectivas.
La solución de problemas selectivos involucra una serie de acciones en las que la ejecución de alguna dependerá de que se cumplan una o varias condiciones.
Estas estructuras se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deben realizarse o no.
La Sentencia IF
En C la estructura de control de selección principal es una sentencia IF. La sentencia IF tiene dos formatos o alternativas posibles. El formato más sencillo tiene la sintaxis siguiente:


Supongamos por ejemplo, que tenemos el caso de que los alumnos cuya calificación sea mayor o igual que 6 tienen nota suficiente para aprobar el curso. El enunciado seria el siguiente en pseudocódigo:
Si nota del estudiante mayor o igual que 6
Escriba “APROBADO”

Lo que la estructura de selección hace es evaluar la expresión “nota del estudiante es mayor o igual que 6”. Si el resultado de esta evaluación es Verdadero, entonces se imprime “APROBADO” pero si el resultado de la evaluación es Falso; se ignora la impresión y ejecuta la línea que sigue después de la decisión.
Para una mayor comprensión se presenta el flujograma de la decisión anterior:




En este caso, nos estamos refiriendo a una estructura de selección simple ya que no se ejecuta ninguna acción en el caso que la condición sea falsa.
Si en el ejemplo cambiáramos la condición y dijéramos que si la nota no es mayor o igual a 6 entonces escribir “alumno reprobado”, en este caso nos estamos refiriendo a una estructura de selección doble, ya que existen las dos opciones: que la condición sea verdadera, o que sea falsa.

Sintaxis en lenguaje C
Para la estructura selectiva simple:
If ( [condición] )
[ïnstrucción];
Cuando las instrucciones que se van a imprimir al cumplirse la condición son varias, utilizamos llaves para indicar que corresponden a esa estructura.
If ( [condición] )
{
[instruccion1];
[instruccion2];
}
Para la estructura selectiva doble, agregamos la palabra else para indicar el grupo de instrucciones cuando la condición es falsa.
If ( [condición] )
{
[instruccion1];
[instruccion2];
/* acción que se realiza si la expresión lógica es verdadera*/
}
else
{
[instruccion1];
[instruccion2];
/* acción que se ejecuta si la expresión lógica es falsa */
}




EJERCICIOS RESUELTOS
1) Codificando el ejemplo anterior, tenemos el siguiente programa:
#include
#include
main()
{
float nota;
printf(“introduzca la nota:\n”);
scanf(“%f”, ¬a);
if (nota >=6.0)
printf(“aprobado\n”);
system(“pause”);
return 0;
}
2) Ejemplo Selectivo doble
Tomaremos como base el ejemplo de la nota, pero felicitando a los que aprueben y con un mensaje de aviso a los que reprueben.
En este ejemplo podrás notar que se agregaron llaves ya que son dos mensajes los que se tuvieron que desplegar.



Ejemplo 3. Otra versión del ejemplo anterior:
En base al parámetro de 6.0 como nota para poder aprobar el curso, escriba APROBADO si el alumno cumple con la nota mínima o si ésta es mayor, pero deberá escribir REPROBADO si la nota es menor.

#include
#include
main ( )
{
float nota;
char nombre[30];
printf("Escriba su nombre: ");
scanf("%s",nombre);
printf("\nEscriba su nota: ");
scanf("%f",¬a);
if (nota >= 6)
{
printf ("%s, nos complace informarle que usted ",nombre);
printf ("\n ha APROBADO el curso con una nota de %.2f",nota);
printf ("\ny puede inscribirse en el modulo siguiente.");
}
else
{
printf ("%s, lamentamos informarle",nombre);
printf ("\nque usted ha REPROBADO el curso con una nota de %.2f",nota);
}
printf ("\n\n\n fin del programa \n\n");
system(“pause”);
return 0;
}
Observa las nuevas instrucciones que se han agregado.
Ejemplo 4.
Dados dos números enteros, se desea determinar si el primero es divisible por el segundo, si es cierto desplegar “es divisible” y si no lo es, desplegar “no es divisible”.
#include
#include
int main()
{
int n,d;
printf(“Introduzca dos enteros: “);
scanf(“%d %d”, &n, &d);
if (n%d ==0)
printf(“%d es divisible por %d\n”,n,d);
else
printf(“%d no es divisible por %d\n”,n,d);
system(“pause”);
return 0;
}



Si al ejecutar el programa introducimos 36 y 5, 36 no es divisible por 5 ya que se obtiene un residuo de 1 (n%d ==0 es falsa, entonces se ejecuta la cláusula else).



EJERCICIOS:
Elabora programa en Dev-C++ para los ejercicios siguientes:
1) Dado un número introducido por el usuario, indicar si éste es positivo, negativo o nulo. Resuélvelo usando estructura selectiva simple.
2) Calcular el mayor de dos números leídos del teclado y visualizarlo en pantalla. Utiliza la forma if – else.
3) Escriba un programa que pida un número y a continuación escriba si es par o impar usando la instrucción mod.
4) Calcular el promedio de calificaciones de un alumno. Las dos primeras notas valen 30% cada una y la tercera 40%. Si el promedio es mayor o igual a 7 imprimirá aprobado, de lo contrario dirá reprobado. Si el promedio es igual a 10, dirá alumno excelente. Se desea imprimir el nombre del alumno, código de la materia y el promedio obtenido.

9 comentarios:

Anónimo dijo...

NECESITO QUE ME AYUDE POR EJEMPLO SE TIENE 30 NUMEROS ,SE QUIERE SABER DE LOS ULTIMOS 25 NUMEROS CUALES SON DIVIBLES POR 5 Y DE LOS PRIMEROS SE DE OBTENER SU SUMA EN DIAGRAMA DE FLUJO Y ESTRUCTURA DE FOR POR FAVOR

Anónimo dijo...

por favor necesito que me ayuden a resolver este ejercicio en c++.
Obtener el promedio de calificaciones de un grupo de n alumnos.

Anónimo dijo...

Aqui t muestro un programita q iio hice talvez t ayude es sobre un listbox que muestra una serie de numeros segun ingrse los limites el usuario y alfinal hace la suma y saca el promedio:

//****esto va dentro de tu boton****

private void button1_Click(object sender, EventArgs e)
{

int isuma= 0;
double dpromedio;
int iInicio, iFinal;
iInicio = int.Parse(textBox1.Text);
iFinal = int.Parse(textBox2.Text);
int icontador = iFinal ;
while (icontador >= iInicio )
{

listBox1.Items.Add(icontador);
isuma = isuma + icontador;
icontador = icontador - 1;

}
dpromedio = isuma / icontador;
MessageBox.Show("El promedio es de " + dpromedio.ToString ());
MessageBox.Show("La suma es: " + isuma.ToString ());
}

Anónimo dijo...

nesecito k m ayuden a resolver el siguiente programa Hacer un algoritmo que nos verifique si el numero dentro de una lista de 10 es divisible para 5 o sea cuales son divisibles por 5 Utilizando el concepto de Vector/array

Anónimo dijo...

no entiendo ni michi

Anónimo dijo...

NECESITOO Q ME AYUDEN A RESOLVER ESTE PROBELMAa....
Escriba un programa que pida un número entero y, a continuación escriba si es par usando el operador MOD

Anónimo dijo...

wtf no se ni madres de estos problemas solo se q estan muy dificiles y q voy a sacar un 2 xD

juan dijo...

// (c)JFLH 2018
// LENGUAJE: JAVA
/* PLANTEAMIENTO:Calcular el promedio de calificaciones de un alumno.
* Las dos primeras notas valen 30% cada una y la tercera 40%. Si el promedio es mayor o igual a 7 imprimirá aprobado, de lo contrario dirá reprobado.
* Si el promedio es igual a 10, dirá alumno excelente. Se desea imprimir el nombre del alumno, código de la materia y el promedio obtenido.
*/

//SOLUCION.
import java.util.Scanner;
import javax.swing.*;
public class practica2 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner (System.in);
int nota1,nota2,nota3;
float pt,nt;
String materia,nombre;

nombre=JOptionPane.showInputDialog("introduce tu nombre");
materia=JOptionPane.showInputDialog("introduce codigo materia");
System.out.println("ingrese % nota 1 (/30%): ");
nota1=sc.nextInt();
System.out.println("ingrese % nota 2 (/30%): ");
nota2=sc.nextInt();
System.out.println("ingrese % nota 3 (40%): ");
nota3=sc.nextInt();
pt=nota1+nota2+nota3;
nt=(pt*10)/100;
System.out.println("Su no total es de " + nt);
if(nt==10) {
System.out.println("Excelente");
}

if(nt>=7) {
System.out.println("Aprobado");
}

else {
System.out.println("Reprobado");
}

}




}

Xd dijo...

Y nadie lo ayudo en 13 años XD, que triste,PS Contesta esto si sigues vivo