jueves, 4 de diciembre de 2014

Ejemplo de un programa en C usando arreglos bidimensionales

Para este ejemplo de aplicación de arreglos bidimensionales se hará un ejercicio sencillo en C para explicar la estructura de una matriz.

El programa es una aplicación básica de lectura de los elementos de una matriz de 3 filas y 2 columnas e impresión de las mismas.

Programa en lenguaje C:

/* CABECERA
Nombres: Juan Diego Mantilla
Fecha: 04-Diciembre-2014
Descripción: Programa que lee una serie de elementos de una matriz de 3 filas y 2 columnas e imprime las mismas en el orden correcto de lectura.

*/
#include <stdio.h>
main()
{
int matriza[3][2];
int i, j; //i corresponde a filas
//j corresponde a columnas
for(i=0;i<3;i++)
  {
for(j=0;j<2;j++)
{
printf("Ingrese el elemento %d - %d:",i,j);
scanf("%d",&matriza[i][j]);
}
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d\t",matriza[i][j]);
}
printf("\n");
}
getch();
}

CAPTURAS DE PANTALLA:





martes, 2 de diciembre de 2014

Ejemplo de un programa en C usando arreglos unidimensionales

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:
2
4
5
4
2


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: