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índromo.
Análisis del
problema:
Necesitamos un programa que nos ayude conocer si el arreglo ingresado es palíndromo,
en otras palabras si este arreglo se lee de igual forma de izquierda a derecha
que de derecha a izquierda quiere decir la misma información contenida leyendo
en ambos sentidos.
Datos de
entrada: Un
arreglo unidimensional de n elementos.
Datos de
salida: El
arreglo unidimensional con un mensaje que nos dirá si es palíndromo o no.
Datos
adicionales:
Ninguno.
Proceso:
El
usuario introduce el número del arreglo, y este se evalúa de acuerdo a la
condición de no exceder el rango determinado. El proceso de ingreso de los
elementos se lo logra con un ciclo for, que mediante el podemos inicializarlo
en cero y con la condición que sea menor al número de elementos ingresados y su
respectivo incremento.
Una
vez ingresado evaluamos la primera posición con la última, ya que si es palíndromo
sus elementos deben ser iguales siendo el primero con el último, el segundo con
el penúltimo y así respectivamente.
Para
esto usamos dos variables en un ciclo for inicializadas la primera en cero y la
otra en n-1 (ya que hablamos de posición y no de tamaño), la condición seria de
que sea la posición cero igual a la de n-1, y el respectivo aumento en ambas
variables. Si cumplen con estas condiciones se asignó una variable bandera en
la que le asignamos un valor, en caso de no cumplir con estas condición,
simplemente la variable quedara vacía.
Al
finalizar el ciclo for realizamos una condición en la que establecemos que si
la variable es el valor que ingresamos en la condición de esta manera la
bandera nos desplegara el mensaje de “es palíndromo” junto con nuestro vector,
caso contrario la variable será nula y nos desplegara un mensaje de “no es palíndromo” y nuestro vector.
Diagrama de flujo:
//Algoritmo: Palindromo
//Nombre:David Ponce
//Fecha: 04/12/2014
/* Descripcion: El usuario introduce el número del arreglo, y este se evalúa de acuerdo a la condición de no exceder el rango determinado. El proceso de ingreso
de los elementos se lo logra con un ciclo for, que mediante el podemos inicializarlo en cero y con la condición que sea menor al número de elementos ingresados y
su respectivo incremento.
Una vez ingresado evaluamos la primera posición con la última, ya que si es palíndromo sus elementos deben ser iguales siendo el primero con el último, el segundo
con el penúltimo y así respectivamente.
Para esto usamos dos variables en un ciclo for inicializadas la primera en cero y la otra en n-1 (ya que hablamos de posición y no de tamaño), la condición seria
de que sea la posición cero igual a la de n-1, y el respectivo aumento en ambas variables. Si cumplen con estas condiciones se asignó una variable bandera en la
que le asignamos un valor, en caso de no cumplir con estas condición, simplemente la variable quedara vacía.
Al finalizar el ciclo for realizamos una condición en la que establecemos que si la variable es el valor que ingresamos en la condición de esta manera la bandera
nos desplegara el mensaje de "es palíndromo" junto con nuestro vector, caso contrario la variable será nula y nos desplegara un mensaje de "no es palíndromo" y
nuestro vector.*/
#include <stdio.h>
#define MAX 100
main()
{
int a[MAX];
int i, j=0, k, b, n;
printf("Ingrese el tamano del arreglo: ");
scanf("%d", &n);
printf("\n");
printf("\n");
for (i=0;i<n;i++)
{
printf("Ingrese el elemento de A en la posicion %d: ", i);
scanf("%d", &a[i]);
}
printf("\nLos valores de A son: \n ");
printf("\n");
for (i=0;i<n;i++)
{
printf("\t%d", a[i]);
}
printf("\n");
printf("\n");
k=n-1;
for(j,k;a[j]==a[k];j++,k++)
{
b=1;
}
if (b==1)
{
printf(" Por lo tanto el vector A es pailindrome");
}
else
{
printf(" Por lo tanto el vector A NO es pailindrome");
}
}
Ejecutable:
No hay comentarios:
Publicar un comentario