Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe General Arreglos Unidemensionales-Milena Quintana
Informe General Arreglos Unidemensionales-Milena Quintana
Politecnica Salesiana
programación
Milena Roxana
Quintana Román
Nivel 2
Ejercicios de Arreglos
Unidimensionales
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
PS5.1 Escribe un programa que, al dar como dato un arreglo unidimensional de números
enteros, determine cuántos de ellos son positivos, cuántos negativos y cuántos nulos.
Dato: VEC[N] (arreglo unidimensional de tipo entero de N elementos, 1 ≤ N ≤ 100).
CODIGO
#include <stdio.h>
int main(){
int A;
printf("Ingrese cuantos numeros desas ingresar: ");
scanf("%d",&A);
int vector[A];
short i;
int B=0;
for (i = 1; i <= A; i++)
{
printf("Ingrese el dato numero [%d]: ",i);
scanf("%d",&B);
vector[i]=B;
}
short j;
int n_positivos=0;
int n_negativos=0;
int n_nulos=0;
2
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
3
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
31) 1346269
32) 2178309
33) 3524578
34) 5702887
35) 9227465
36) 14930352
37) 24157817
38) 39088169
39) 63245986
40) 102334155
41) 165580141
42) 267914296
43) 433494437
44) 701408733
45) 1134903170
46) 1836311903
47) 2971215073
48) 4807526976
49) 7778742049
50) 12586269025
51) 20365011074
52) 32951280099
53) 53316291173
54) 86267571272
55) 139583862445
56) 225851433717
57) 365435296162
58) 591286729879
59) 956722026041
60) 1548008755920
61) 2504730781961
62) 4052739537881
63) 6557470319842
64) 10610209857723
65) 17167680177565
66) 27777890035288
67) 44945570212853
68) 72723460248141
69) 117669030460994
70) 190392490709135
71) 308061521170129
72) 498454011879264
73) 806515533049393
74) 1304969544928657
75) 2111485077978050
76) 3416454622906707
77) 5527939700884757
78) 8944394323791464
79) 14472334024676220
80) 23416728348467684
4
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
81) 37889062373143904
82) 61305790721611584
83) 99194853094755488
84) 160500643816367070
85) 259695496911122560
86) 420196140727489660
87) 679891637638612220
88) 1100087778366101900
89) 1779979416004714000
90) 2880067194370816000
91) 4660046610375530500
92) 7540113804746346500
93) 12200160415121877000
94) 19740274219868226000
95) 31940434634990100000
96) 51680708854858326000
97) 83621143489848426000
98) 135301852344706760000
99) 218922995834555200000
100) 354224848179262000000
--------------------------------
Process exited after 0.0854 seconds with return value 100
Presione una tecla para continuar . . .
5
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
{
case 1:
if(max<100){
printf("Ingrese un valor : ");
scanf("%d",&num);
if(max==0){
arreglo[max]=num;
max++;
}else if(!Buscar(num)){
arreglo[max]=num;
max++;
} else {
printf("El valor ya existe\n\n");
}
Ordenar();
}else{
printf("El vector esta lleno\n\n");
}
break;
case 2:
if (max==0){
printf("No hay valores para eliminar\n\n");
}else{
printf("Ingrese valor a eliminar : ");
scanf("%d",&num);
if(Buscar(num)){
if(max==1){
max--;
}else{
Eliminar();
max--;
}
printf("Eliminacion exitosa \n\n");
}else{
printf("No hay valores para eliminar\n\n");
}
}
break;
case 3:
if(max!=0){
printf("Vector\n");
short i;
for (i = 0; i < max; i++)
{
printf("%d\t",arreglo[i]);
}
printf("\n\n");
}else{
printf("El vector no tiene valores\n\n");
6
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
}
break;
case 4:
printf("Gracias por usar el comando :3\n\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=4);
}
short Buscar(int Numero){
int primero =0;
int ultimo = max -1;
int medio = (primero+ultimo)/2;
while (primero<=ultimo)
{
if (arreglo[medio]< Numero)
{
primero=medio+1;
}
else if (arreglo[medio]== Numero)
{
posicion=medio;
return 1;
}
else {
ultimo = medio - 1;
}
medio = (primero+ultimo)/2;
}
if (primero>ultimo)
{
return 0;
}
}
void Ordenar()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = max / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
7
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
e = 1;
while (e <= (max - salto))
{
if (arreglo[e - 1] > arreglo[(e - 1) + salto])
{
auxi = arreglo[(e - 1) + salto];
arreglo[(e - 1) + salto] = arreglo[e - 1];
arreglo[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void Eliminar(){
int aux;
int i;
for (i = posicion; i < max; i++){
arreglo[i] = arreglo[i+1];
}
}
PRUEBA DE ESCRITORIO
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 8
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 5
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 2
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 2
Ingrese valor a eliminar : 5
Eliminacion exitosa
8
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 3
Vector
2 8
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 3
Vector
2 8
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 4
Gracias por usar el comando :3
--------------------------------
Process exited after 46.13 seconds with return value 0
Presione una tecla para continuar . . .
9
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
{"Dic"}
};
short conteo=0;
void Generar();
float Promedio();
void Superior(float prom);
void Mayor();
void Ingresar();
void Imprimir();
int main(){
short cas=0;
do
{
printf("1) Ingresar Valores\n");
printf("2) Usar el demo\n");
printf("3) Visualizar promedio anual\n");
printf("4) Visualizar meses que tuvieron cosecha superior a la anual\n");
printf("5) Visualizar el mes con mayor producci%cn\n",162);
printf("6) Visualizar la lista de producci%cn\n",162);
printf("7) Salir\n");
printf("Escoja opci%cn : ",162);
scanf("%hd",&cas);
switch (cas)
{
case 1:
Ingresar();
break;
case 2:
Generar();
break;
case 3:
if(conteo)
printf("El promedio de toneladas es %.2f\n\n",Promedio());
else
printf("Debe agregar valores primero\n\n");
break;
case 4:
if(conteo)
Superior(Promedio());
else
printf("Debe agregar valores primero\n\n");
break;
case 5:
if(conteo)
Mayor();
else
printf("Debe agregar valores primero\n\n");
break;
case 6:
if(conteo)
10
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
Imprimir();
else
printf("Debe agregar valores primero\n\n");
break;
case 7:
printf("Adios\n\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=7);
}
void Generar(){
short i;
for (i = 0; i < 12; i++)
{
cose[i]=rand()%501 + 100;
}
conteo=1;
printf("Los datos demos se han cargado exitosamente\n\n");
}
void Ingresar(){
short i;
printf("Ingreso de toneladas\n");
for (i =1; i <=12; i++)
{
printf("Ingrese las toneladas para el mes de %s : ",meses[i]);
scanf("%f",&cose[i]);
}
conteo=1;
printf("\n");
}
void Superior(float prom){
short flag = 0;
short i;
for (i = 0; i < 12; i++)
{
if(prom<cose[i]){
printf("%s : %.2f\n",meses[i],cose[i]);
flag++;
}
}
if(flag==0){
printf("La produccion ha sido constante\n");
}
printf("\n");
}
void Mayor(){
11
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
12
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 2
Los datos demos se han cargado exitosamente
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 3
El promedio de toneladas es 385.83
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 4
Feb : 531.00
Mar : 422.00
Abr : 548.00
Jul : 556.00
Ago : 400.00
Sep : 509.00
Oct : 516.00
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
13
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
Escoja opción : 5
La mayor produccion se dio en el mes de :
Jul con 556.00 toneladas
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 6
Lista de produccion
Ene : 141.00 toneladas
Feb : 531.00 toneladas
Mar : 422.00 toneladas
Abr : 548.00 toneladas
May : 231.00 toneladas
Jun : 293.00 toneladas
Jul : 556.00 toneladas
Ago : 400.00 toneladas
Sep : 509.00 toneladas
Oct : 516.00 toneladas
Nov : 294.00 toneladas
Dic : 189.00 toneladas
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 7
Adios
--------------------------------
Process exited after 46.64 seconds with return value 0
Presione una tecla para continuar . . .
14
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
#include <stdlib.h>
#include <time.h>
int arreglo1[100];
int arreglo2[100];
int arreglo3[200];
int m=0;
int n = 0;
int nm = 0;
int posicion=0;
void OrdenarA();
void OrdenarB();
void OrdenarC();
void Imprimir(short indice);
void Ingresar();
void Generar(short indice, short limite);
void Unir();
int main(){
srand(time(NULL));
short cas =0;
int num=0, a=0;
do
{
printf("1) Ingresar valores de vectores\n");
printf("2) Generar aleatoriamente\n");
printf("3) Finalizar\n");
printf("Escoja Opcion : ");
scanf("%hd",&cas);
switch (cas)
{
case 1:
Ingresar();
cas=3;
break;
case 2:
do
{
printf("Ingrese tamaño del vector 1 (entre 1 y 100) :");
scanf("%d",&a);
printf("\n");
} while (a<0 || a>100);
Generar(1,a);
do
{
printf("Ingrese tamaño del vector 2 (entre 1 y 100) :");
scanf("%d",&a);
printf("\n");
} while (a<0 || a>100);
Generar(2,a);
cas=3;
break;
15
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
case 3:
printf("Adios\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=3);
nm=m+n;
if(n!=0 && m!=0){
Unir();
OrdenarA();
OrdenarB();
OrdenarC();
Imprimir(1);
Imprimir(2);
Imprimir(3);
}else{
printf("Faltan valores para ingresar");
}
}
void OrdenarA()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = m / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (m - salto))
{
if (arreglo1[e - 1] > arreglo1[(e - 1) + salto])
{
auxi = arreglo1[(e - 1) + salto];
arreglo1[(e - 1) + salto] = arreglo1[e - 1];
arreglo1[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
16
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
void OrdenarB()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = n / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (n - salto))
{
if (arreglo2[e - 1] > arreglo2[(e - 1) + salto])
{
auxi = arreglo2[(e - 1) + salto];
arreglo2[(e - 1) + salto] = arreglo2[e - 1];
arreglo2[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void OrdenarC()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = nm / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (nm - salto))
{
if (arreglo3[e - 1] > arreglo3[(e - 1) + salto])
{
auxi = arreglo3[(e - 1) + salto];
arreglo3[(e - 1) + salto] = arreglo3[e - 1];
arreglo3[(e - 1)] = auxi;
17
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void Generar(short indice, short limite){
if(limite<0 || limite>100){
printf("El valor debe estar entre 1 y 100\n");
} else{
if(indice==1){
m = limite;
short i;
for (i = 0; i < limite; i++)
{
arreglo1[i]=rand()%901 + 100;
}
} else if(indice==2){
n = limite;
short i;
for (i = 0; i < limite; i++)
{
arreglo2[i]=rand()%901 + 100;
}
} else{
printf("Indice no reconocido\n");
}
}
}
void Ingresar(){
short maximo=0;
do
{
printf("Ingrese el tamano del vector 1 (entre 1 y 100) :");
scanf("%hd",&maximo);
} while (maximo<0 || maximo>100);
m = maximo;
short i;
for (i = 0; i < maximo; i++)
{
printf("Ingrese el elemento [%hd] del vector 1 : ",i+1);
scanf("%d",&arreglo1[i]);
}
printf("\n");
do
{
printf("Ingrese el tamano del vector 2 (entre 1 y 100) :");
scanf("%hd",&maximo);
18
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
19
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
3) Finalizar
Escoja Opcion : 1
Ingrese el tamano del vector 1 (entre 1 y 100) :3
Ingrese el elemento [1] del vector 1 : 4
Ingrese el elemento [2] del vector 1 : 5
Ingrese el elemento [3] del vector 1 : 6
Vector 1
4 5 6
Vector 2
7 8 9
Vector 3
4 5 6 7 8 9
--------------------------------
Process exited after 10.33 seconds with return value 0
Presione una tecla para continuar . . .
PRUEBA DE ESCRITORIO
1) Ingresar valores de vectores
2) Generar aleatoriamente
3) Finalizar
Escoja Opcion : 2
Ingrese tama±o del vector 1 (entre 1 y 100) :3
Vector 1
368 389 793
Vector 2
210 443 536 765
Vector 3
210 368 389 443 536 765 793
--------------------------------
Process exited after 9.688 seconds with return value 0
Presione una tecla para continuar . . .
20
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina
int main(){
int perfecto[30];
int conteo=0;
int adi;
int n=5;
while (conteo<4)
{
adi = 0;
int i;
for (i = 2; i < n; i++)
{
if(n%i==0){
adi+=i;
}
if(adi>n){
i=n+1;
}
}
if(adi+1==n){
perfecto[conteo]=n;
conteo++;
}
n++;
}
printf("Lista de numeros\n");
short i;
for (i = 0; i < 5; i++)
{
printf("%d\t",perfecto[i]);
}
printf("\n");
}
PRUEBA DE ESCRITORIO
Lista de numeros
6 28 496 8128 0
--------------------------------
Process exited after 0.2614 seconds with return value 0
Presione una tecla para continuar . . .
21