Translate

sábado, 6 de diciembre de 2014

Ejercicio Resuelto de Arreglos Fundamentos de la Programación piensa en C.


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:



 Código Fuente:


//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