Beruflich Dokumente
Kultur Dokumente
Arreglos
Arreglos unidimensionales o vectores de variables simples
Realizar un programa en lenguaje C que permita cargar un arreglo de caracteres alfabéticos y luego lo presente por
pantalla. Resolver empleando una función para cargar el arreglo, otra para controlar los valores que se ingresan y
otra para presentar por pantalla el arreglo resultante.
//Ejemplo 30
#include <stdio.h>//entrada y salida estándar
#include <ctype.h>//manejo de caracteres
do{
printf("Ingrese el orden del arreglo que desea cargar, menor a 30: ");
scanf("%d", &orden);
}while(orden <0 || orden >30);
//controla que la cantidad de elementos a utilizar no supere la cantidad
máxima de elementos //declarado o que no se ingrese un tamaño negativo
{
printf("Ingrese el caracter %d del arreglo: ", i);
scanf("%c", &car);
fgetc(stdin);
//de vuelta es necesario absorber el enter ingresado en el scanf()
anterior
if(verificaAlfa(car)){
V[i]=car;
i++;
}
else
printf("\n* No es alfabetico*\n");
}
}
Realizar un programa en lenguaje C que permita cargar un arreglo de caracteres alfabéticos y luego lo presente por
pantalla, ordenado en forma descendente. Resolver empleando funciones.
//Ejemplo 31
/*
Arreglos de caracteres - Ordenamiento
*/
#include <stdio.h>
#include <ctype.h>
do{
printf("Ingrese el orden del arreglo que desea cargar, menor a 30: ");
scanf("%d", &orden);
}while(orden <0 || orden >30);
fgetc(stdin);
{
for(t=i+1; t<orden ; t++){
//segunda estructura de repetición que maneja el índice t
//para comparar A[i] con todos los demás elementos
if(A[i]<A[t]){
//comparación para decidir si se debe intercambiar los elementos
//compara el valor del elemento ubicado en la posición i con el de
la //posición t
aux = A[i];
A[i]= A[t];
A[t]=aux;
//si es menor, entonces se realiza el intercambio entre los
elementos
//para esto hace falta utilizar una variable auxiliar
}
}
}
}
Realizar un programa en lenguaje C que permita cargar un arreglo de números enteros y luego lo presente por
pantalla con los números pares del mismo ordenados en forma ascendente. Resolver empleando funciones.
//Ejemplo 32
/*
Año 2018 - Programación I
Arreglos de caracteres - Ordenamiento
*/
#include <stdio.h>
void ordenarArregloEnteros(int orden,int vector[]);
void cargarArregloEnteros(int orden, int vector[]);
void mostrarArregloEnteros(int orden, int vector[]);
int esPar (int numero);
do{
printf("Ingrese el orden del arreglo que desea cargar, menor a 30: ");
scanf("%d", &orden);
}while(orden <0 || orden >30);
printf("\n\n");
return 0;
}
Ingresar un arreglo de enteros de orden N. Contar cuántos elementos iguales a un valor entero x hay en él.
//Ej3mplo 33
/*
Arreglos de caracteres - Búsqueda
*/
#include <stdio.h>
void ordenarArregloEnteros(int orden,int vector[]);
void cargarArregloEnteros(int orden, int vector[]);
void mostrarArregloEnteros(int orden, int vector[]);
do{
printf("Ingrese el orden del arreglo que desea cargar, menor a 30: ");
scanf("%d", &orden);
}while(orden <0 || orden >30);
//Ej3mplo 34
/*
Arreglos - Búsqueda
*/
#include <stdio.h>
void ordenarArregloEnteros(int orden,int vector[]);
void cargarArregloEnteros(int orden, int vector[]);
void mostrarArregloEnteros(int orden, int vector[]);
int buscarMenorImpar (int orden, int vector[], int *pos, int *m);
int esPar (int numero);
do{
printf("Ingrese el orden del arreglo que desea cargar, menor a 30: ");
scanf("%d", &orden);
}while(orden <0 || orden >30);
c=buscarMenorImpar(orden, A, &posicion,&m);
if(c>1 && m==1)
printf("\n\nEl menor impar se encontro en la posicion %d y es el nro
%d\n\n", posicion, A[posicion]);
if(c==2)
printf("\n\nEl arreglo contiene un solo impar\n\n");
if(m>1)
printf("\n\nExiste uno o mas elementos que son los menores\n");
if(c==0)
printf("\n\nNo se encontraron impares en el arreglo ");
printf("\nc=%d m=%d\n",c,m);
printf("\n\n");
return 0;
}
int i;
for(i=0;i<orden;i++)
printf("\nElemento %d del arreglo: %d", i, vector[i]);
}
typedef struct {
int anio;
float precio;
char inicial;
}monitor;
for(i=0;i<orden;i++){
printf("\nElemento %d del arreglo: \n", i);
printf("Anio de fabricacion: %d\n", v[i].anio);
//se muestran los valores de los campos contenidos en la estructura
ubicada en
//la posición i, dado que v[i] es la estructura ubicada en la posición i
printf("Precio: %.2f\n", v[i].precio);
printf("Inicial de la marca: %c\n\n", v[i].inicial);
//e esta manera se muestran los valores de los campos de cada una de las
//estructuras que se encuentren en el arreglo
}
Ingresar los datos de N teléfonos en un arreglo de estructuras, los campos de la estructura deben almacenar los
siguientes datos: año de fabricación, precio y la inicial de la marca. Luego presentar por pantalla el contenido de
dicho arreglo y el arreglo ordenado por precio en forma ascendente
//Ejemplo 36
#include <stdio.h>
typedef struct {
int anio;
float precio;
char inicial;
}telefono;
scanf("%d", &v[i].anio);
printf("Ingrese el precio del telefono: ");
scanf("%f", &v[i].precio);
printf("Ingrese la inicial de la marca: ");
fgetc(stdin);//para eliminar el enter ingresado en el scanf() anterior
scanf("%c", &v[i].inicial);
}
}
Ingresar los datos de N teléfonos en un arreglo de estructuras, los campos de la estructura deben almacenar los
siguientes datos: año de fabricación, precio y la inicial de la marca. Luego buscar por inicial de una marca ingresada
por teclado. Presentar por pantalla un mensaje indicando si se encuentra dicha marca, presentar por pantalla el
contenido de dicho arreglo.
//Ejemplo 37
#include <stdio.h>
typedef struct {
int anio;
float precio;
char inicial;
}telefono;
Ingresar los datos de N televisores en un arreglo de estructuras, los campos de la estructura deben almacenar los
siguientes datos: cantidad, precio y la inicial de la marca. Luego reemplazar los valores de la cantidad de las
estructuras en los casos en donde exista coincidencia, entre una inicial de una marca ingresada por teclado y la
inicial registrada en el arreglo, buscando por inicial. Presentar por pantalla un mensaje indicando si se encuentra
dicha inicial, presentar por pantalla el contenido de dicho arreglo antes y después de la modificación.
//Ejemplo 38
#include <stdio.h>
typedef struct {
int cantidad;
float precio;
char inicial;
}televisor;
}
else
printf("La inicial de la marca ingresada NO se encuentra en el
arreglo\n");
printf("\n\n");
return 0;
}
}
}
return b;
}
#include <stdio.h>
int main (int argc, char *argv[])
{
char caracteres[50][50];//la matriz puede contener a lo sumo 50 filas y 50
columnas
int i, j, columnas, filas;
do{
printf("Ingrese la cantidad de filas : ");
scanf("%d", &filas);
}while(filas <0 || filas >50);
Realizar un programa en lenguaje C que permita cargar un arreglo bidimensional de caracteres alfabéticos y luego
lo presente por pantalla. Resolver empleando una función para cargar el arreglo, otra para controlar los valores que
se ingresan y otra para presentar por pantalla el arreglo resultante.
/*
Ejemplo 40
Arreglos Bidimensional de caracteres
*/
#include <stdio.h>
#include <ctype.h>
do{
printf("Ingrese la cantidad de columnas : ");
scanf("%d", &columnas);
}while(columnas <0 || columnas >50);
fgetc(stdin); //cuidado!!!!
return 0;
}
Ejemplo: usando la biblioteca de usuario que contenga el desarrollo de funciones para el uso de arreglos,
bajo el nombre arreglos.h (la biblioteca debe estar ubicada en el mismo directorio en donde se encuentre
el archivo fuente que incluya a dicha biblioteca)
Realizar un programa en lenguaje C que permita cargar un arreglo bidimensional de caracteres alfabéticos y luego
lo presente por pantalla. Resolver empleando la biblioteca de usuario “arreglos.h” que deberá contener todas las
funciones necesarias.
/*
Ejemplo 41
Arreglos Bidimensional de caracteres
*/
#include <stdio.h>
#include “arreglos.h”
do{
printf("Ingrese la cantidad de filas : ");
scanf("%d", &filas);
}while(filas <0 || filas >50);
do{
printf("Ingrese la cantidad de columnas : ");
scanf("%d", &columnas);
}while(columnas <0 || columnas >50);
fgetc(stdin); //cuidado!!!!
return 0;
}
Realizar un programa en lenguaje C que permita cargar un arreglo bidimensional de caracteres, presentarlos por
pantalla; luego tomar los elementos del arreglo bidimensional y generar un arreglo unidimensional con las letras ‘a’
o ‘A’; finalmente presente por pantalla el arreglo con las letras. Resolver empleando funciones.
/*
Ejemplo 42
Arreglos Uni y Bidimensionales de caracteres
*/
#include <stdio.h>
#include <ctype.h>
{
char MATRIZ[30][31],V[30];
int i, filas, columnas, orden=0;
do{
printf("Ingrese la cantidad de filas : ");
scanf("%d", &filas);
}while(filas <0 || filas >30);
do{
printf("Ingrese la cantidad de columnas : ");
scanf("%d", &columnas);
}while(columnas <0 || columnas >30);
fgetc(stdin); //cuidado!!!!
return 0;
}
for(i=0; i<filas;i++){
for(j=0; j<columnas;j++){
if(esLetraA(M[i][j]))
{
V[orden] =M[i][j];
//cuando se encuentra el valor buscado, se realiza la copia de dicho
//valor al arreglo V indicando la posición correspondiente
orden++;
}
}
}
return orden;
}
for(i=0;i<orden;i++)
printf("\nElemento V[%d]: %c \n", i, V[i]);
}
Realizar un programa en lenguaje C que permita cargar un arreglo bidimensional de números enteros, presentarlos
por pantalla; luego tomar los elementos del arreglo bidimensional y generar un arreglo unidimensional con los
números pares; finalmente presente por pantalla el arreglo de pares. Resolver empleando funciones.
/*
Ejemplo 43
Arreglos Uni y Bidimensionales de Enteros
*/
#include <stdio.h>
void cargarMatrizEnteros(int filas,int columnas, int matriz[30][30]);
void mostrarMatrizEnteros(int filas,int columnas, int matriz[30][30]);
int cargarArregloEnteros( int vector[], int filas, int columnas, int
matriz[30][30]);
void mostrarArregloEnteros(int orden, int vector[]);
int esPar (int numero);
do{
printf("Ingrese la cantidad de columnas : ");
scanf("%d", &columnas);
}while(columnas <0 || columnas >30);
printf("\n\n");
return 0;
}
}
}
for(i=0; i<filas;i++){
for(j=0; j<columnas;j++){
if(esPar(M[i][j]))
{
vector[orden] =M[i][j];
orden++;
}
}
}
return orden;
}
Cadena de caracteres
Ingresar una cadena de caracteres, luego mostrar cuántas vocales se encuentran dentro de dicha cadena o un
mensaje en caso que no se encuentre ninguna vocal.
//Ejemplo 44
#include<stdio.h>//entrada y salida estándar
#include<string.h>// manejo de cadenas
#include<ctype.h>//manejo de caracteres
int main() {
char c[50];//declaración de la variable c como cadena
//la cadena c también es un arreglo de caracteres
int n=50;
printf("Ingresar una cadena de caracteres:");
ingresarcadena(c,n);
printf("La cadena %s contiene %d vocales", c,contar(c));
return 0;
}
int main() {
char c[50];
int N,n=50;
do{
printf("Ingresar una cadena que contenga solamente dígitos: ");
ingresarcadena(c,n);
}while(control(c)==1);
return 0;
}
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main() {
int N,i, n=50 ;
char c[50][50];
//c es una matriz de caracteres, en lenguaje c se puede utilizar una matriz
de caracteres
//como un vector de cadenas, donde cada fila de la matriz es una cadena de
caracteres
for(i=0;i<N;i++){
printf("Ingrese el apellido Nº %d:",i+1);
ingresarcadena(c[i],n);
//utilizando solamente el índice de filas de la matriz c, se utiliza a c
como
//vector de cadenas, donde i será la posición de cada cadena en el
vector
}
ordenar(c,N);
printf("\n\nApellidos ordenados\n\n");
for(i=0;i<N;i++){
printf("%s\n",c[i]);
}
return 0;
}
//Ejemplo 47
#include"stdio.h"
struct partido
{
int codigo;
char nombre[30];
int cantidadVotos;
};
int main()
{
struct partido p1[40],ganador;
int n,i=0,b;
{
printf(" \n\nIngresar opcion\n\n\n\n");
printf("Alta -------> 1\n");//Alta corresponde a ingresar nuevos datos
printf("Listado ----> 2\n");
printf("Ganador ----> 3\n");
printf("Salir ------> 4\n\n");//finaliza el programa
printf("Ingresar opcion: ");
scanf("%d",&n);
getchar();
switch(n)
{//permite seleccionar múltiples opciones, según el valor de n
case 1: alta(&i,p1);
/*se le envía a la función: la cantidad de registros ingresados
en i, luego al retornar i queda incrementado en una unidad,
también
se envía el arreglo de estructuras p1, en donde se almacenarán
los nuevos datos*/
break;
case 2: listado(i,p1);
break;
case 3: ganador=partidoGanador(i,p1);
printf("El ganador es!!!!!\n\n El partido ganador es: %s con %d
votos",ganador.nombre,ganador.cantidadVotos );
break;
case 4: printf("\nSaliendo del programa... \n");
break;
default: printf("\nOpcion incorrecta\n");
break;
}
}while(n>0 && n!=4);
return(0);
}