En este ejemplo de aplicación de sentencias selectivas múltiples tomaremos un ejercicio del libro: "Fundamentos de programacíon Piensa en C" (Cairó) el cual dice:
Escribe un programa en C que, al recibir como dato un
arreglo unidimensional de tipo entero de N elementos, determine si el arreglo
es palíndrome. Por ejemplo, el arreglo VEC que se muestra a continuación es
palíndrome:
Dato: VEC[N] (arreglo unidimensional de tipo entero
de N elementos, 1 ≤ N ≤ 100).
Aplicando los pasos para realizar un diagrama de flujo:
Paso 1: Definición del problema.
Se quiere
realizar un programa que lea un arreglo unidimensional y evalúe el mismo si es
palíndromo. El número de elementos que el arreglo contiene son definidos por el
usuario y debe estar entre 1 y 100. El programa imprime un mensaje: “El arreglo
sí es palíndromo” si el caso es afirmativo o “El arreglo no es palíndromo” si
el caso es negativo.
Paso 2: Planeación de la solución.
Datos de entrada: Número de elementos
que tiene el arreglo, elementos que tiene el arreglo VEC (números enteros).
Datos de salida: Mensaje de
información (caracteres).
Datos adicionales: Ninguno.
Proceso:
Lo primero que
se debe saber es el tamaño del arreglo que es ingresado por el usuario. El
programa lee el tamaño y lo evalúa, si este no está en el rango del 2 al 100
imprime un mensaje que dice "Ingrese un numero entre el rango 2 y 100. Si
el valor está dentro del rango procede a utilizar una sentencia for para generar
el vector cuya dimensión ya fue establecida. Después evalúa utilizando una
sentencia for si el elemento del primer índice es igual al elemento del ultimo,
si esto es verdadero se utiliza una variable "bandera" que se declara
igual a 1, este proceso se repite hasta que se hayan comparado todos los
elementos del vector. Después el programa utiliza una sentencia if para evaluar
esa variable "bandera" la cual si es igual a 0 imprime un mensaje que
dice: "El arreglo no es palindrome" caso contrario imprime un mensaje
que dice: "El vector si es palindrome".
Diagrama de flujo:
Programa en lenguaje C:
/* CABECERA
Nombres: Juan Diego Mantilla
Fecha: 04-Diciembre-2014
Descripción: Programa que evalua si un arreglo que es ingresado por el usuario de n elementos es palindrome o no. El programa lee el tamaño del arreglo y lo evalua, si este no esta en el rango del 2 al 100 imprime un mensaje que dice "Ingrese un numero entre el rango 2 y 100. Si el valor esta dentro del rango procede a utilizar una sentencia for para generar el vector cuya dimension ya fue establecida. Despues evalua utilizando una sentencia for si el elemento del primer indice es igual al elemento del ultimo, si esto es verdadero se utiliza una variable "bandera" que se declara igual a 1, este proceso se repite hasta que se hayan comparado todos los elementos del vector. Despues el programa utiliza una sentencia if para evaluar esa variable "bandera" la cual si es igual a 0 imprime un mensaje que dice: "El arreglo no es palindrome" caso contrario imprime un mensaje que dice: "El vector si es palindrome".
*/
#include <stdio.h>
#define MAX 100
main()
{
int vec[MAX], bandera;
int i, n, j, k;
printf("Ingrese el tamaño del arreglo:");
scanf("%d",&n);
if(n>1&&n<=100)
{
for(i=0;i<n;i++)
{
printf("Ingrese un valor del arreglo:");
scanf("%d",&vec[i]);
}
k=n-1;
for(j=0,k;vec[j]==vec[k];j++,k++)
{
bandera=1;
}
if(bandera==0)
{
printf("\n\nEl arreglo no es palindrome");
}
else
{
printf("\n\nEl arreglo si es palindrome");
}
}
else
{
printf("Ingrese un numero entre el rango 2 y 100");
}
getch();
}
CAPTURAS DE PANTALLA: