Upload
diego-fernandez
View
16
Download
0
Embed Size (px)
DESCRIPTION
Ejercicios resueltos en lenguaje C
Citation preview
Escuela Tcnica N1 Otto Krause 4to Computacin 2da
14
Algoritmos y estructura de
datos Codificacin de guas prcticas
Fernndez Diego
2
ndice
Primera Gua Introduccin a variables y condiciones ____________________________ 3
Segunda Gua Condiciones compuestas / Switch _______________________________ 6
Tercera Gua Parte 1 Estructuras de control __________________________________ 16
Tercera Gua Parte 1 (Funciones) Estructuras de control ________________________ 43
Tercera Gua Parte Dos (Solo Funciones) Estructuras de Control __________________ 75
Cuarta Gua Vectores _____________________________________________________ 94
Quinta Gua Vectores 2 / Ordenamiento / Punteros / Funciones ________________ 110
Sexta Gua Matrices _____________________________________________________ 125
Sexta Gua Matrices (Funciones) __________________________________________ 135
Evaluacin Matrices Introduccin a Matrices ________________________________ 147
Trabajo Prctico en Clase Cadenas _________________________________________ 153
Parte Terica _______________________________________________________________ 153
Parte Prctica _______________________________________________________________ 154
Prctica con funciones en clases ____________________________________________ 160
3
Primera Gua Introduccin a variables y condiciones
//Ejercicio 1 #include #include void main() { int a, b; printf("Ingrese valor de a: "); scanf("%d", &a); printf("Ingrese valor de b: "); scanf("%d", &b); printf("El valor de a es: %d\nEl valor de b es: %d\n\n"); system("Pause"); }
//Ejercicio 2 #include #include void main() { int fuerza, presion, super; printf("Ingrese la superficie: "); scanf("%d", &super); printf("Ingrese la fuerza ejercida: "); scanf("%d", &fuerza); super = super * super; presion = fuerza / super; printf("La presion total es de %d \n", presion); system("Pause"); }
4
//Ejercicio 3 #include #include void main() { int r1, r2, r3, r4, r5, rt; printf("Ingrese el valor de R1: "); scanf("%d", &r1); printf("Ingrese el valor de R2: "); scanf("%d", &r2); printf("Ingrese el valor de R3: "); scanf("%d", &r3); printf("Ingrese el valor de R4: "); scanf("%d", &r4); printf("Ingrese el valor de R5: "); scanf("%d", &r5); rt = r1 + r2 + r3 + r4 + r5; printf("El valor de resistencia total (Rt) es: %d ohms. \n", rt); system("Pause"); } -------------------------------------------------------------- //Ejercicio 4 #include #include void main() { int valor, octparte; printf("Ingrese el valor a dividir: "); scanf("%d", &valor); octparte = valor / 8; printf("La octava parte del numero ingresado es: %d \n", octparte); system("Pause"); }
5
//Ejercicio 5 #include #include void main() { int lado1, lado2, peri, area; printf("Ingrese el valor del lado 1 en cm: "); scanf("%d", &lado1); printf("Ingrese el valor del lado 2 en cm: "); scanf("%d", &lado2); peri = (lado1 * 2) + (lado2 * 2); area = lado1 * lado2; printf("El perimetro del rectangulo es de: %d cm. \n", peri); printf("El area del rectangulo es de: %d cm. \n", area); system("Pause"); } -------------------------------------------------------------- - //Ejercicio 6 (primero de condiciones) #include #include void main() { int num1, num2; printf("Ingrese el primer numero: "); scanf("%d", &num1); printf("Ingrese el segundo numero: "); scanf("%d", &num2); if (num1 > num2) {
printf("El primer numero ingresado (%d), es mayor que el segundo numero ingresado (%d) \n", num1, num2);
} else { if (num1 == num2) {
printf("El primer numero ingresado (%d), es igual que el segundo numero ingresado (%d) \n", num1, num2);
} else {
printf("El segundo numero ingresado (%d), es mayor que el primer numero ingresado (%d) \n", num2, num1);
} } system("Pause"); }
6
Segunda Gua Condiciones compuestas / Switch
//Ejercicio 1 #include #include void main() { int n1, n2; printf("Ingrese el primer numero: "); scanf("%d", &n1); printf("Ingrese el segundo numero: "); scanf("%d", &n2);
printf("\nEl primer numero ingresado fue: %d \nY el segundo numero ingresado fue: %d \n \n", n1, n2);
system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 2 #include #include void main() { int fuerza, super, presion; printf("Ingrese la superficie: "); scanf("%d", &super); printf("Ingrese la fuerza ejercida: "); scanf("%d", &fuerza); presion = fuerza / (super*super); printf("\nLa presion total es de %d \n \n", presion); system("Pause"); }
7
//Ejercicio 3 #include #include void main() { int r1, r2, r3, r4, r5, rt; printf("Ingrese el valor de R1: "); scanf("%d", &r1); printf("Ingrese el valor de R2: "); scanf("%d", &r2); printf("Ingrese el valor de R3: "); scanf("%d", &r3); printf("Ingrese el valor de R4: "); scanf("%d", &r4); printf("Ingrese el valor de R5: "); scanf("%d", &r5); rt = r1 + r2 + r3 + r4 + r5;
printf("\nLos valores de resistencias ingresados son:\nR1 = %d\nR2 = %d\nR3 = %d\nR4 = %d\nR5 = %d\nEl valor de resistencia total (Rt) es: %d ohms. \n \n", r1, r2, r3, r4, r5, rt);
system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 4 #include #include void main() { int valor;
float octparte; //Se crea variable de tipo float para que el programa funcione correctamente.
printf("Ingrese el valor a dividir: "); scanf("%d", &valor); octparte = valor / 8; printf("\nLa octava parte del numero ingresado es: %f \n \n", octparte); system("Pause"); }
8
//Ejercicio 5 #include #include void main() { int lado1, lado2, peri, area; printf("Ingrese el valor del lado 1 en cm: "); scanf("%d", &lado1); printf("Ingrese el valor del lado 2 en cm: "); scanf("%d", &lado2); peri = (lado1 * 2) + (lado2 * 2); area = lado1 * lado2; printf("\nEl perimetro del rectangulo es de: %d cm. \n", peri); printf("\nEl area del rectangulo es de: %d cm. \n \n", area); system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 6 (primero de condiciones) #include #include void main() { int num1, num2; printf("Ingrese el primer numero: "); scanf("%d", &num1); printf("Ingrese el segundo numero: "); scanf("%d", &num2); if (num1 > num2) { printf("\nEl primer numero ingresado (%d), es mayor que el segundo numero ingresado (%d) \n \n", num1, num2); } else { if (num1 == num2) {
printf("\nEl primer numero ingresado (%d), es igual que el segundo numero ingresado (%d) \n \n", num1, num2);
} else {
printf("\nEl segundo numero ingresado (%d), es mayor que el primer numero ingresado (%d) \n \n", num2, num1);
} } system("Pause"); }
9
//Ejercicio 7 #include #include void main() { int edad, horas, con, sin, imp, desc; printf("Ingrese las horas utilizadas en el servicio: "); scanf("%d", &horas); printf("Ingrese la edad del consumidor del servicio: "); scanf("%d", &edad); if (horas >= 20) { sin = horas * 10; } else { sin = 200; } if (edad >= 70) { desc = (sin * 50) / 100; } else { if (edad >= 60) { desc = (sin * 30) / 100; } else { if (edad >= 50) { desc = (sin * 20) / 100; } else { desc = 0; } } } sin = sin - desc; imp = sin * 0.33; con = sin + imp; printf("El monto a pagar SIN impuesto es de: %d pesos. \n", sin); printf("El monto a pagar CON impuesto es de: %d pesos. \n", con); system("Pause"); }
10
//Ejercicio 8 #include #include void main() { char cat; int horas, sueldo; printf("Por favor, ingrese las horas trabajadas: "); scanf("%d", &horas); printf("Ingrese la categoria del empleado : "); scanf("%s", &cat); switch (cat) { case 'a': case 'A': sueldo = horas * 20; break; case 'b': case 'B': sueldo = horas * 18; break; case 'c': case 'C': sueldo = horas * 15; break; default: printf("El empleado no corresponde a ninguna categoria. \n"); }
printf("El sueldo correspondiente al empleado es de $%d pesos. \n \n", sueldo);
system("Pause"); }
11
//Ejercicio 9 #include #include void main() { int peso, alt, imc; printf("Ingrese peso de la persona a calcular: "); scanf("%d", &peso); printf("Ingrese la altura: "); scanf("%d", &alt); imc = peso / (alt*alt); if (imc
12
if (hijos>4) { adic2 = hijos * 200; } else { adic2 = 0; } if (cate = 1) { adic3 = (basico * 10) / 100; } else if (cate = 2) { adic3 = (basico * 20) / 100; } else { adic3 = 0; } total = adic1 + adic2 + adic3 + basico; printf("\nSu sueldo correspondiente es de: $%d pesos. \n \n", total); system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 11 #include #include void main() { int n1, n2, n3; printf("Ingrese el primer numero: "); scanf("%d", &n1); printf("Ingrese el segundo numero: "); scanf("%d", &n2); printf("Ingrese el tercer numero: "); scanf("%d", &n3); if (n1 == n2 && n1 == n3) { printf("\nSon todos iguales \n \n"); } else { if (n1 == n2 && n1 != n3) { printf("\n2 iguales 1 distinto \n \n"); } else { if (n1 != n2 && n2 == n3)
13
{ printf("\n2 iguales 1 distinto \n \n"); } else { if (n1 == n3 && n1 != n2) { printf("\n2 iguales 1 distinto \n \n"); } else { printf("\nTodos distintos \n \n"); } } } } system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 12 #include #include void main() { int horas, minutos, segundos, convert, opcion; printf("Ingrese las horas: "); scanf("%d", &horas); printf("Ingrese las minutos: "); scanf("%d", &minutos); printf("Ingrese las segundos: "); scanf("%d", &segundos);
printf("\nElija a que va a convertir \n1: Segundos \n2: Minutos \n3: Horas \nOtro: Muestra valor ingresado \nOpcion: ");
scanf("%d", &opcion); switch (opcion) { case 1: convert = (horas * 60) * 60 + (minutos * 60) + segundos; printf("\nLa conversion es: %d segundos. \n", convert); break; case 2: convert = (horas * 60) + (segundos / 60) + minutos; printf("\nLa conversion es: %d minutos. \n", convert); break; case 3: convert = (minutos / 60) + (segundos / 60) / 60 + horas; printf("\na conversion es: %d horas. \n", convert); break; default:
printf("\nUsted ingreso: %d:%d:%d \n \n", horas, minutos, segundos);
} system("Pause"); }
14
//Ejercicio 13 #include #include void main() { int n1, n2, n3; printf("Ingrese el primer numero: "); scanf("%d", &n1); printf("Ingrese el segundo numero: "); scanf("%d", &n2); printf("Ingrese el tercer numero: "); scanf("%d", &n3); if (n1 < n2 && n2 < n3) { printf("\nEl orden de los numeros es ascendente. \n\n"); } else { if (n1>n2 && n2>n3) { printf("\nEl orden de los numeros es descendente. \n\n"); } else {
printf("\nLos numeros ingresados se encuentran desordenados. \n\n");
} } system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 14 #include #include void main() { int sup1, pob1, sup2, pob2, sup3, pob3; float den1, den2, den3; printf("Ingrese la superficie de PAIS 1 en m2: "); scanf("%d", ¹); printf("Ingrese la superficie de PAIS 2 en m2: "); scanf("%d", ²); printf("Ingrese la superficie de PAIS 3 en m2: "); scanf("%d", ³); printf("Ingrese la cantidad de poblacion de PAIS 1: "); scanf("%d", &pob1); printf("Ingrese la cantidad de poblacion de PAIS 2: "); scanf("%d", &pob2); printf("Ingrese la cantidad de poblacion de PAIS 3: ");
15
scanf("%d", &pob3); den1 = pob1 / sup1; den2 = pob2 / sup2; den3 = pob3 / sup3; if (den1 > den2 && den1 > den3) { printf("\nLa densidad de PAIS 1 es la mayor. \n \n"); } else { if (den3 > den1 && den3 > den2) { printf("\nLa densidad de PAIS 3 es la mayor. \n \n"); } else { printf("\nLa densidad de PAIS 2 es la mayor. \n \n"); } } system("Pause"); }
16
Tercera Gua Parte 1 Estructuras de control
//Ejercicio 1 (Guia 2) #include #include void main() { int i; for (i = 0; i
17
scanf("%d", &num1); printf("Ingrese otro numero: "); scanf("%d", &num2); printf("\nLos numeros intermedios son: \n\n"); if (num1 < num2) { for (i = num1 + 1; i = num2 + 1; i--) { printf("%d\n", i); } printf("\nLa escala es descendente \n\n"); } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 4 #include #include void main() { int numero = 0, i = 0; long int factorial = 1; printf("Ingrese un numero para mostrar sus factoriales: "); scanf("%d", &numero); if (numero > 0) { printf("\n%d!: ", numero); for (i = numero; i >= 2; i--) { printf("%d x ", i); factorial = factorial * i; if (i == 2) { printf("1"); } }
printf("\nFactorial: %lu", factorial); //Como usamos una variable de tipo LONG INT usamos %lu para mostrar el valor de la variable LONG INT UNSIGNED
} else if (numero == 0) { printf("\n%d!: ", numero); printf("1");
18
factorial = 1; printf("\nFactorial: %d", factorial); } else { printf("\nERROR: El numero es menor a 0.\a"); } printf("\n\n"); system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 5 #include #include void main() { int base = 0, i = 1, potencia = 0, total = 1; printf("Ingrese la base: "); scanf("%d", &base); printf("Ingrese la potencia: "); scanf("%d", &potencia); printf("\n%d elevado a la %d: ", base, potencia); for (i = potencia; i >= 1; i--) { if (i != 1) { printf("%d x ", base); total = total*base; } else { printf("%d", base); total = total*base; } } printf("\n\nResultado: %d\n\n", total); system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 6 #include #include void main() { int alumno = 0, i = 0, numNota = 0, calific; float promAlum = 0.0, promCurso = 0.0, promParcial = 0.0; for (i = 1; i
19
{ numNota = numNota++; printf("Ingrese nota %d de alumno %d: ", numNota, i); scanf("%d", &calific); if (calific >= 0 && calific
20
mejorVendedor = i; }
printf("\nEl vendedor N:%d vendio un total de %d unidades en un periodo de 15 dias.\n", i, totXvend);
printf(" \n-----------------------------------\n\n"); totalVentas = totalVentas + totXvend; dia = 1; uniVend = 0; totXvend = 0; } printf("El total de unidades vendidas es de: %d. \n", totalVentas);
printf("El vendedor con mayor numero de ventas es el vendedor N:%d con un total de: %d unidades vendidas.\n\n", mejorVendedor, mayorVenta);
system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 8 #include #include void main() { int numero = 0, i = 0, positivos = 0, negativos = 0, nulos = 0; for (i = 1; i 0) { positivos++; } else { if (numero == 0) { nulos++; } else { negativos++; } } }
printf("\nResultados: \n\nPositivos: %d/10\nNegativos: %d/10\nIguales a cero: %d/10\n\n", positivos, negativos, nulos);
system("Pause"); }
21
//Ejercicio 9 #include #include void main() { int sueldo = 0, i = 0, demas = 0, demenos = 0, igual = 0, empleado = 1; for (i = 1; i = 0) { empleado++; if (sueldo > 2000) { demas++; } else { if (sueldo == 2000) { igual++; } else { demenos++; } } } else {
printf("**************************************************\nINGRESO VALOR INCORRECTO(Solo valores mayores a $0) \n\aPor favor, intente nuevamente: \n**************************************************\n");
i--; } }
printf("\nResultados: \n\nGanan mas de $2000 pesos: %d/20\nGanan $2000 pesos: %d/20\nMenos de $2000 pesos: %d/20\n\n", demas, igual, demenos);
system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 10 #include #include void main() { int i = 0; char nombre[50]; char apelli[50]; float nota = 0.0;
22
for (i = 0; i = 0 && nota 8) {
printf("\nEl alumno %s %s tiene nota mayor a 8.\n\n", nombre, apelli);
nota = 0; } else {
printf("\nEl alumno %s %s no tiene una nota mayor a 8.\n\n", nombre, apelli);
nota = 0; } } else {
printf("\nERROR: La nota ingresada no pertenece al rango 0-10.\n\n");
i--; nota = 0; } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 11 #include #include void main() { int dia, mes, ao, bisiesto; printf("Ingrese un numero de dia: "); scanf("%d", &dia); printf("Ingrese un numero de mes: "); scanf("%d", &mes);
printf("Ingrese un numero de a\xA4o: "); scanf("%d", &ao);
23
if (ao > 0 && (mes > 0 && mes 0 && dia 0 && dia < 29) { printf("\nLa fecha ingresada es valida.\n\n"); } } break; //Para meses de 30 dias case 4: case 6: case 9: case 11: if (dia > 0 && dia
24
} //Finaliza instruccion SWITCH } //Finaliza primer instruccion IF else { printf("\nERROR: La fecha ingresada es invalida.\a\n\n"); } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 12 #include #include void main() { int nroFact = 0, nroProd = 0, cant = 0, masVend = 0, mayorImp = 0, i = 0; float precio = 0.0, importe = 0.0; while (nroProd != 999) { printf("Ingrese el numero de producto: "); scanf("%d", &nroProd); if (nroProd != 999) { printf("Ingrese numero de factura: "); scanf("%d", &nroFact); printf("Ingrese cantidad de productos: "); scanf("%d", &cant); if (cant > masVend) { masVend = nroProd; } printf("Ingrese precio unitario de producto: "); scanf("%f", &precio); importe = precio * cant; if (importe > mayorImp) { mayorImp = nroProd; } printf("\n"); } else { printf("\nEl producto mas vendido es el: %d\n", masVend);
printf("\nEl producto de mayor importe vendido es el: %d\n\n", mayorImp);
break; } } system("Pause"); } ------------------------------------------------------------------------ -
25
//Ejercicio 13 #include #include void main() {
int alumno = 0, i = 1, mayorProm = 0, TPaprob = 0, alumINSUF = 0, numACT = 1, mejorProm = 0; float promParcial = 0.0, promGeneral = 0.0, promCurso = 0.0, notaTP = 0.0, notaAct = 0.0;
for (i = 1; i 10) {
printf("**************************************************\nINGRESO VALOR INCORRECTO (Solo numeros de 0 a 10) \n\aPor favor, intente nuevamente:\n**************************************************\n");
notaTP = 0; i--; } else //Si se encuentra dentro del rango 0-10 { printf("\nIngrese numero NEGATIVO para finalizar ingreso.\n"); while (notaAct >= 0 && notaAct 10) {
printf("**************************************************\nINGRESO VALOR INCORRECTO (Solo numeros de 0 a 10) \n\aPor favor, intente nuevamente:\n**************************************************\n");
numACT--; promParcial = promParcial - (notaAct); notaAct = 0; } } numACT--; if (numACT
26
//Cuando el promedio es el mas alto se almacena el numero de alumno
if (promGeneral > mayorProm) { mayorProm = promGeneral; mejorProm = i; }
//Si la nota de TP es mayor o igual a 6, se aumenta en 1 la variable correspondiente
if (notaTP >= 6) { TPaprob++; }
//Se resetean las variables para su nuevo uso y se actualiza el valor del promCurso para su posterior division entre cantidad de alumnos
notaAct = 0; notaTP = 0; numACT = 1; promParcial = 0; promCurso = promCurso + promGeneral; promGeneral = 0; numACT = 1; notaAct = 0; } printf("\n"); } printf("Numero de alumno con mejor promedio: %d\n", mejorProm); promCurso = promCurso / 50; printf("Promedio total del curso: %.2f \n", promCurso); printf("Alumnos con 2 o menos actividades registradas: %d \n", alumINSUF); printf("Alumnos con TP aprob: %d \n\n", TPaprob); system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 15 #include #include main() { int i = 0, cont = 0, numero = 0; int unsigned long fctrial = 1; for (cont = 1; cont = 0) { if (numero == 0 || numero == 1) { printf("\nEl factorial de %d es: 1", numero); } if (numero >= 0) {
27
printf("\n%d!: ", numero); for (i = numero; i >= 2; i--) { printf("%d x ", i); fctrial = fctrial * i; if (i == 2) { printf("1\n"); } }
printf("El factorial de %d es: %lu\n\n", numero, fctrial);
} } else {
printf("\n\n\n");
cont--; } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 16 #include #include main() { int numero = 0, i = 0, result = 0; printf("Ingrese un numero para mostrar su tabla de multiplicar: "); scanf("%d", &numero); for (i = 0; i
28
//Ejercicio 17 #include #include void main() {
int limit1 = 0, limit2 = 0, suma = 0, i = 0, cont = 0, cumpleCond = 0, restoCero = 0;
printf("Ingrese el limite mas bajo : "); scanf("%d", &limit1); for (cont = 1; cont
29
//Ejercicio 18 #include #include main() { int num1 = 0, num2 = 0, i = 0, result = 0, cont = 0; for (cont = 1; cont
30
{ printf("ERROR: Ingreso un valor incorrecto "); cont--; } printf("Ingrese el divisor : "); scanf("%d", &num2); if (num2 < 0) { printf("ERROR: Ingreso un valor incorrecto "); cont--; } result = num1; if (num1 > num2) { do { result = result - num2; valorTotal++; } while (result >= num2); } else {
printf("\nEl primer valor debe ser mayor que el segundo obligatoriamente: \n\n");
cont--; } }
printf("\nLa division entre %d y %d sin usar la operacion es: %d \nCon un resto igual a: %d\n\n", num1, num2, valorTotal, result);
system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 20 #include #include Void main() { int num1 = 0, num2 = 0, i = 0, result = 0, cont = 0, valorTotal = 0; for (cont = 1; cont
31
cont--; } result = num1; if (num1 > num2) { do { result = result - num2; valorTotal++; } while (result >= num2); } else {
printf("\nEl primer valor debe ser mayor que el segundo obligatoriamente: \n\n");
cont--; } }
printf("\nLa division entre %d y %d sin usar la operacion es: %d \nCon un resto igual a: %d\n\n", num1, num2, valorTotal, result);
system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 21 #include #include main() { int anio = 0, cont = 0, resto = 0;
printf("\n\n");
for (cont = 1; cont 0) { resto = anio % 4; if (resto == 0) { resto = 0; resto = anio % 100;
32
if (resto == 0) { resto = 0; resto = anio % 400; if (resto == 0) {
printf("\nEl anio ingresado SI es bisiesto.\n\n");
} else {
printf("\nEl anio ingresado NO es bisiesto.\n\n");
} } else { printf("\nEl anio ingresado SI es bisiesto.\n\n"); } } else { printf("\nEl anio ingresado NO es bisiesto.\n\n"); } } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 22 #include #include void main() { int num = 0, uniMil = 0, cent = 0, dece = 0, uni = 0, inicial = 0, capicua = 0; printf("Ingrese un numero: "); scanf("%d", &num); inicial = num; uniMil = num / 1000; num = num - (1000 * uniMil); cent = num / 100; num = num - (100 * cent); dece = num / 10; num = num - (10 * dece); uni = inicial - (1000 * uniMil) - (cent * 100) - (dece * 10); capicua = uniMil + (1000 * uni) + (dece * 100) + (cent * 10); if (capicua == inicial) { printf("El numero SI es capicua\n"); }
33
else { printf("El numero NO es capicua\n"); } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 23 #include #include main() { int uni = 0, dec = 0, cent = 0, uniMil = 0, decMil = 0, centMil = 0, i = 0; long int num = 0, copia = 0; printf("Ingrese un numero de 6 cifras : "); scanf("%d", &num); copia = num; if (num >= 100000) { centMil = num / 100000; num = num - (100000 * centMil); } decMil = num / 10000; num = num - (10000 * decMil); uniMil = num / 1000; num = num - (1000 * uniMil); cent = num / 100; num = num - (100 * cent); dec = num / 10; num = num - (10 * dec);
uni = copia - (100000 * centMil) - (10000 * decMil) - (1000 * uniMil) - (cent * 100) - (dec * 10);
printf("\nDia: %d%d", centMil, decMil); printf("\nMes: %d%d", uniMil, cent); printf("\nA\xA4o: %d%d\n\n", dec, uni); system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 24 #include #include Void main() { int num = 0, i = 0, division = 0, suma = 0; printf("Ingrese un numero para su verificacion: "); scanf("%d", &num); for (i = num - 1; i >= 1; i--) {
34
division = num % i; if (division == 0) { suma = suma + i; } } if (suma == num) { printf("\nEl numero ingresado SI es perfecto.\n\n"); } else { printf("\nEl numero ingresado NO es perfecto.\n\n"); } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 25 #include #include void main() { int P = 0, Q = 0, i = 0, PmenosQ = 0, cont = 0; int long unsigned factorialA = 1, factorialB = 1; float result = 0.0; for (cont = 1; cont = 0) { for (i = P; i >= 1; i--) { factorialA = factorialA * i; } if (P == 0) { factorialA = 1; } i = 0; PmenosQ = P - Q; if (PmenosQ >= 0) { for (i = PmenosQ; i >= 1; i--) { factorialB = factorialB * i; } result = factorialA / (factorialB * Q); printf("El resultado es: %.2f\n\n", result);
35
} else {
printf("\nERROR: No se pudo calcular el factorial de P - Q , la resta da un numero negativo, intente nuevamente:\n\n");
cont--; } } else {
printf("\nERROR: P no puede valer menos que 0, intente nuevamente:\n\n");
cont--; } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 26 #include #include void main() { int varA = 0, varB = 1, i = 0, limite = 0, cont = 0, secue = 1, cuentaComa = 0; for (cont = 1; cont 0) { for (i = 1; i
36
system("Pause"); } ------------------------------------------------------------------------ - // Ejercicio 27 #include #include void main() { int num = 0, i = 0, j = 0, k = 0; printf("Ingrese un numero: "); scanf("%d", &num); printf("\n"); for (i = 0; i = i; k--) { printf(" "); } for (j = 0; j
37
if (dia >= 19 && mes == 2 || dia = 21 && mes == 3 || dia = 21 && mes == 4 || dia = 22 && mes == 5 || dia = 22 && mes == 6 || dia = 23 && mes == 7 || dia = 24 && mes == 8 || dia = 24 && mes == 9 || dia = 24 && mes == 10 || dia = 23 && mes == 11 || dia = 22 && mes == 12 || dia
38
printf("\nERROR: Ha ingresado una fecha invalida, intente nuevamente:\n\n");
i--; } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 29 #include #include void main() { float importe = 0.0, efectivo = 0.0, vuelto = 0.0; int i = 0; printf("BIENVENIDO AL SUPERCHINO...\n\n"); for (i = 1; i = importe) { vuelto = efectivo - importe; printf("\nEl vuelto es: %.2f pesos.\n\n", vuelto); } else {
printf("\nERROR: Ha ingresado un monto recibido del cliente menor al importe o...\n"); printf("ADVERTENCIA: Lo quieren estafar... Ingrese nuevamente ambos valores:\n\n");
i--; } } system("Pause"); } ------------------------------------------------------------------------ - //Ejercicio 30 #include #include void main() {
int num1 = 0, num2 = 0, desorden = 0, ascCont = 1, desCont = 1, canti = 0, i=1, primerNum = 0, ultNum = 0, suma = 0;
printf("Ingrese la cantidad de numero a ingresar: ");
39
scanf("%d", &canti); printf("Ingrese un numero: "); scanf("%d", &num1); primerNum = num1; for (i = 1; i num1) { ascCont++; num1 = num2; } if (num2 < num1) { desCont++; num1 = num2; } else { desorden++; } if (i == canti - 1) { ultNum = num2; suma = primerNum + ultNum; } } if (ascCont == i) { printf("\nORDEN: ASCENDENTE\n\n"); } else { if (desCont == i) { printf("\nORDEN: DESCENDENTE\n\n"); } else { printf("\nORDEN: DESORDENADOS\n\n"); } } printf("La suma entre el primer y ultimo numero ingresado es: %d\n\n", suma); system("Pause"); }
40
//Ejercicio 31 #include #include void main() { //Variables del programa Fibonacci int varA = 0, varB = 1, i = 0, limite = 0, contFibo = 0, contPpal = 0, secue = 1, cuentaComa = 0; //Variable del MENU int opcion = 0; //Variables programa Factoriales int numero = 0, iFact = 0, contFact = 0; long int factorial = 1; for (contPpal = 1; contPpal
41
printf("\n\n"); printf("--------------------------------\n\n"); contPpal--; break; case 3: printf("--------------------------------"); printf("\nCALCULADORA DE FACTORIAL:\n\n"); for (contFact = 1; contFact 0) { printf("\n%d!: ", numero); for (iFact = numero; iFact >= 2; iFact--) { printf("%d x ", iFact); factorial = factorial * iFact; if (iFact == 2) { printf("1"); } } printf("\nFactorial: %lu", factorial); } else if (numero == 0) { printf("\n%d!: ", numero); printf("1"); factorial = 1; printf("\nFactorial: %d", factorial); } else { printf("\nERROR: El numero es menor a 0.\a"); contFact--; } printf("\n\n"); } contPpal--; printf("--------------------------------\n\n"); break; default: contPpal--;
printf("\aERROR: Ha ingresado un valor incorrecto, intente nuevamente: \n\n");
printf("--------------------------------\n\n"); } } }
42
//Ejercicio 32 #include #include void main() { float porcen1 = 0, porcen2 = 0, porcen3 = 0; int opcion = 0; int cantPers = 0; int prod1 = 0, prod2 = 0, prodAmbos = 0; printf("Opciones:\n\n"); printf("1: Producto N%c1\n", 167); printf("0: Producto N%c2\n", 167); printf("Otro: Ambos productos\n\n"); printf("Numero negativo: Para finalizar ingreso. \n\n"); while (opcion >= 0) { cantPers++; printf("Opcion: "); scanf("%d", &opcion); switch (opcion) { case 1: prod1++; break; case 0: prod2++; break; } if (opcion > 0 && opcion != 1 && opcion != 0) { prodAmbos++; } } if (cantPers != 0) { cantPers--; porcen1 = (prod1 * 100) / cantPers; porcen2 = (prod2 * 100) / cantPers; porcen3 = (prodAmbos * 100) / cantPers; } system("cls"); printf("Cantidad de personas entrevistadas: %d\n\n", cantPers); printf("Porcentaje de personas que eligio el producto 1: %.2f\n", porcen1); printf("Porcentaje de personas que eligio el producto 2: %.2f\n\n", porcen2);
printf("Porcentaje de personas que eligio ambos productos: %.2f\n\n", porcen3);
system("Pause"); }
43
Tercera Gua Parte 1 (Funciones) Estructuras de control
//Ejercicio 2 (Funciones) #include #include float promedio(int numero, float prom) { prom = prom + numero; //a prom le suma nmero return prom;//devuelve prom } int mayorProm(int numero, int mayor)//Recibe dos valores desde la funcin principal { if (numero > mayor) //compara los valores que recibe { mayor = numero; } return mayor; //devuelve el valor resultante! } void main() { float prom = 0; int numero = 0, mayor = 0; int i = 0; for (i = 1; i
44
void num2Mayor(int num1, int num2) { int i = 0; for (i = num1 - 1; i >= num2 + 1; i--) { printf("%d\n", i); } printf("\nLa escala es descendente.\n\n"); } void main() { int num1 = 0, num2 = 0, i = 0; printf("Ingrese un numero: "); scanf("%d", &num1); printf("Ingrese otro numero: "); scanf("%d", &num2); printf("\nLos numeros intermedios son: \n\n"); if (num1 == num2) {
printf("\aNO SE PUEDE BUSCAR NUMEROS INTERMEDIOS ENTEROS ENTRE EL MISMO NUMERO\n\n");
} if (num1 < num2) { num1Mayor(num1, num2); } else { if (num2 < num1) { num2Mayor(num1, num2); } } system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 4 #include #include long int funcFactorial(int numero) { long int factorial = 1; int i = 0; printf("\n%d!: ", numero); for (i = numero; i >= 2; i--) { printf("%d x ", i); factorial = factorial * i; if (i == 2) { printf("1"); } }
45
return factorial; } void main() { int numero = 0; printf("Ingrese un numero para mostrar sus factoriales: "); scanf("%d", &numero); if (numero > 0) { printf("\nFactorial: %lu\n\n", funcFactorial(numero)); } else { if (numero == 0) { printf("\nFactorial: %d", funcFactorial(numero)); } else { printf("\ERROR: El numero es menor a 0.\a"); } printf("\n\n"); } system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 5 #include #include long int funcTotal(int base, int potencia) { long int total = 1, i = 0; for (i = potencia; i >= 1; i--) { if (i != 1) { printf("%d x ", base); total = total*base; } else { printf("%d", base); total = total*base; } } return total; } void main() { int base = 0, potencia = 0; printf("Ingrese la base: "); scanf("%d", &base);
46
printf("Ingrese la potencia: "); scanf("%d", &potencia); printf("\n%d elevado a la %d: ", base, potencia); printf("\n\nResultado: %lu\n\n", funcTotal(base, potencia)); system("Pause"); } -------------------------------------------------------------------------------------------------------- //Ejercicio 6 #include #include float funcPromParcial(int calific, float promParcial) { promParcial = promParcial + calific; return promParcial; } void main() { int numNota = 0, calific = 0, i = 0; float promAlum = 0.0, promParcial = 0.0, promCurso = 0.0, promedioAlumno = 0; for (i = 1; i
47
------------------------------------------------------------------------------------ //Ejercicio 7 #include #include int funcVentasTotales(int totXvend) { int totalVentas = 0; totalVentas = totalVentas + totXvend; return totalVentas; } int funcMejorVend(int mejorVendedor, int i, int totXvend, int mayorVenta) { if (mayorVenta < totXvend) { mayorVenta = totXvend; mejorVendedor = i; } return mejorVendedor; //No funca } void main() {
int dia = 1, i = 0, totXvend = 0, uniVend = 0, mejorVendedor = 0, ventasTotales = 0, mayorVenta = 0;
for (i = 1; i
48
//Ejercicio 8 #include #include int func_positivos(int numero) { int positivos = 0; positivos++; return positivos; } int func_negativos(int numero) { int negativos = 0; negativos++; return negativos; } int func_nulos(int numero) { int nulos = 0; nulos++; return nulos; } void main() { int numero = 0, i = 0; int pos = 0, nega = 0, null = 0; for (i = 1; i 0) { pos = func_positivos(numero); } else { if (numero < 0) { nega = func_negativos(numero); } else { null = func_nulos(numero); } } } printf("\nResultados: \n\nPositivos: %d/10\nNegativos: %d/10\nIguales a cero: %d/10\n\n", pos, nega, null); system("Pause"); }
49
//Ejercicio 8 (Modificado) #include #include void func_Compr(int *po, int *nu, int *ne, int numero) { if (numero > 0) { *po = *po + 1; } else { if (numero == 0) { *nu = *nu + 1; } else { *ne = *ne + 1; } } } void main() { int i = 0, numero = 0, positivos = 0, negativos = 0, nulos = 0; for (i = 1; i 2000) { demas++; } else { if (sueldo == 2000) { igual++; }
50
else { demenos++; } } } void main() { int sueldo = 0, i = 0, empleado = 1; for (i = 1; i = 0) { func_Compr(sueldo, empleado); } else {
printf("\nINGRESO VALOR INCORRECTO(Solo valores mayores a $0) \n\aPor favor, intente nuevamente: \n\n");
i--; } }
printf("\nResultados: \n\nGanan mas de $2000 pesos: %d/20\nGanan $2000 pesos: %d/20\nMenos de $2000 pesos: %d/20\n\n", demas, igual, demenos);
system("Pause"); }
//Ejercicio 10 #include #include void func_ComprNota(float nota, char nombre, char apelli, int i) { if (nota >= 0 && nota 8) {
printf("\nEl alumno %s %s tiene nota mayor a 8.\n\n", nombre, apelli);
nota = 0; } else {
printf("\nEl alumno %s %s no tiene una nota mayor a 8.\n\n", nombre, apelli);
nota = 0; } } else { printf("\nERROR: La nota ingresada no pertenece al rango 0-10.\n\n"); i--; nota = 0; } }
51
void main() { int i = 0; char nombre[50]; char apelli[50]; float nota = 0.0; for (i = 0; i 0 && dia
52
} else { if (dia > 0 && dia < 29) { printf("\nLa fecha ingresada es valida.\n\n"); } } break; //Para meses de 30 dias case 4: case 6: case 9: case 11: if (dia > 0 && dia 0 && (mes > 0 && mes
53
//Ejercicio 12 #include #include int func_MayorImp(float importe, int mayorImp, int nroProd) { if (importe > mayorImp) { mayorImp = nroProd; } return mayorImp; } int func_MasVend(int cant, int masVend, int nroProd) { if (cant > masVend) { masVend = nroProd; } return masVend; } void main() { int nroFact = 0, nroProd = 0, cant = 0, masVend = 0, mayorImp = 0, i = 0; int masVendido = 0, mayorImporte = 0; float precio = 0.0, importe = 0.0; while (nroProd != 999) { printf("Ingrese el numero de producto: "); scanf("%d", &nroProd); if (nroProd != 999) { printf("Ingrese numero de factura: "); scanf("%d", &nroFact); printf("Ingrese cantidad de productos: "); scanf("%d", &cant); masVendido = func_MasVend(cant, masVend, nroProd); printf("Ingrese precio unitario de producto: "); scanf("%f", &precio); importe = precio * cant; mayorImporte = func_MayorImp(importe, mayorImp, nroProd); printf("\n"); } else { printf("\nEl producto mas vendido es el: %d\n", masVendido);
printf("El producto de mayor importe vendido es el: %d\n\n", mayorImporte);
break; } } system("Pause"); }
54
//Ejercicio 13 #include #include float func_promAlum(float promParcial, float promGeneral, int notaAct, int notaTP, int numACT) { promParcial = promParcial - (notaAct); promGeneral = (promParcial + notaTP) / (numACT);
printf("\nPromedio de alumno: %.2f\n\n----------------------------------------\n", promGeneral);
return promGeneral; } int func_mayorProm(float promGeneral, int mayorProm, int mejorProm, int i) { if (promGeneral > mayorProm) { mayorProm = promGeneral; mejorProm = i; } return mejorProm; } void main() {
int alumno = 0, i = 1, mayorProm = 0, TPaprob = 0, alumINSUF = 0, numACT = 1, mejorProm = 0;
int mejorPromedio = 0.0; float promParcial = 0.0, promGeneral = 0.0, promCurso = 0.0, notaTP = 0.0, notaAct = 0.0;
float promAlumno = 0.0; for (i = 1; i 10) {
printf("\nINGRESO VALOR INCORRECTO (Solo numeros de 0 a 10) \n\aPor favor, intente nuevamente:\n\n");
notaTP = 0; i--; } else { printf("\nIngrese numero NEGATIVO para finalizar ingreso.\n"); while (notaAct >= 0 && notaAct 10) {
printf("\nINGRESO VALOR INCORRECTO (Solo numeros de 0 a 10) \n\aPor favor, intente nuevamente:\n\n");
55
numACT--; promParcial = promParcial - (notaAct); notaAct = 0; } } numACT--; if (numACT = 6) { TPaprob++; } notaAct = 0; notaTP = 0; numACT = 1; promParcial = 0; promCurso = promCurso + promAlumno; promGeneral = 0; numACT = 1; notaAct = 0; } printf("\n"); } printf("Numero de alumno con mejor promedio: %d\n", mejorPromedio); promCurso = promCurso / 3; printf("Promedio total del curso: %.2f \n", promCurso); printf("Alumnos con 2 o menos actividades registradas: %d \n", alumINSUF); printf("Alumnos con TP aprob: %d \n\n", TPaprob); system("Pause"); } -------------------------------------------------- //Ejercicio 14 #include #include #include void func_sexo(int *male, int *female); int func_naci(int anioAct); void func_estadisticas(int cantIngre, int cantMenor, int male, int female, int infeTreinta); void main() { long int dni = 0; int nacim = 0, anioAct = 0; int male = 0, female = 0, infeTreinta = 0, cantMenor = 0, cantIngre = 0; printf("Ingrese anio actual: ");
56
scanf("%d", &anioAct); while (getchar() != '\n'); while (dni >= 0) { system("cls"); printf("Ingrese numero de DNI: "); scanf("%ld", &dni); while (getchar() != '\n'); if (dni >= 0) { if (dni < 30000000) { infeTreinta++; } func_sexo(&male, &female); cantMenor = func_naci(anioAct); } else { break; } cantIngre++; } func_estadisticas(cantIngre, cantMenor, male, female, infeTreinta); } void func_sexo(int *male, int *female) { int contSex = 0; char sexo; for (contSex = 1; contSex
57
{ printf("Ingrese anio de nacimiento: "); scanf("%d", &nacim); while (getchar() != '\n'); if (nacim < 0 || nacim > anioAct) {
printf("\aERROR: Ingreso un caracter incorrecto. Intente nuevamente...");
getch(); system("cls"); contNaci--; } else { if ((anioAct - nacim) < 18) { cantMenor++; } } } return cantMenor; } void func_estadisticas(int cantIngre, int cantMenor, int male, int female, int infeTreinta) { float porcenMenor = 0; if (cantIngre > 0) { porcenMenor = (cantMenor * 100) / cantIngre; system("cls"); printf("Calculos realizados, pulse una tecla para continuar..."); getch(); system("cls"); printf("..::ESTADISTICAS::..\n\n"); printf("Cantidad de personas Masculinas: %d\n", male); printf("Cantidad de personas Femeninas: %d\n", female); printf("Cantidad de personas con DNI inferior a 30 millones: %d\n", infeTreinta); printf("Porcentaje de personas menores de edad: %%%.2f\n\n", porcenMenor); system("Pause"); } else { system("cls"); printf("No se pueden realizar calculos si no hay personas registradas..."); getch(); } }
58
//Ejercicio 15 #include #include int unsigned long func_factorial(int numero) { int i = 0; int long unsigned fctrial = 1; for (i = numero; i >= 2; i--) { printf("%d x ", i); fctrial = fctrial * i; if (i == 2) { printf("1\n"); } } return fctrial; } int main() { int cont = 0, numero = 0; int unsigned long factorial = 0; for (cont = 1; cont = 0) { if (numero == 0 || numero == 1) { printf("\nEl factorial de %d es: 1", numero); } if (numero >= 0) { printf("\n%d!: ", numero); factorial = func_factorial(numero); printf("El factorial de %d es: %lu\n\n", numero, factorial); } } else {
printf("\n\n\n");
cont--; } } //FOR system("Pause"); }
59
//Ejercicio 16 #include #include void func_tablas(int numero) { int i = 0, result = 0; for (i = 0; i
60
{ printf("\nERROR: Ha ingresado un valor menor o igual al limite mas bajo.");
cont--; } printf("\n"); for (i = limit1; i
61
{ printf("ERROR: Ingreso un valor incorrecto "); cont--; } for (i = 1; i *num2) { do {
62
*result = *result - *num2; valorTotal++; } while (*result >= *num2); } else {
printf("\nEl primer valor debe ser mayor que el segundo obligatoriamente: \n\n");
*cont--; } return valorTotal; } ------------------------------------------------------------------------------------ //Ejercicio 20 #include #include int division(int *num1, int *num2, int *result, int *cont); void main() { int num1 = 0, num2 = 0, result = 0, cont = 0, valorTotal = 0; for (cont = 1; cont *num2) { do { *result = *result - *num2;
63
valorTotal++; } while (*result >= *num2); } else {
printf("\nEl primer valor debe ser mayor que el segundo obligatoriamente: \n\n");
*cont--; } return valorTotal; } ------------------------------------------------------------------------------------ //Ejercicio 21 #include #include void bisiesto(int anio, int *cont); void main() { int anio = 0, cont = 0, resto = 0;
printf("\n\n");
for (cont = 1; cont 0) { resto = anio % 4; if (resto == 0) { resto = 0; resto = anio % 100; if (resto == 0)
64
{ resto = 0; resto = anio % 400; if (resto == 0) { printf("\nEl anio ingresado SI es bisiesto.\n\n"); } else { printf("\nEl anio ingresado NO es bisiesto.\n\n"); } } else { printf("\nEl anio ingresado SI es bisiesto.\n\n"); } } else { printf("\nEl anio ingresado NO es bisiesto.\n\n"); } } } ------------------------------------------------------------------------------------ //Ejercicio 22 #include #include int func_capicua(int num, int inicial); void main() { int num = 0, inicial = 0, capicua = 0; printf("Ingrese un numero de 4 cifras: "); scanf("%d", &num); inicial = num; capicua = func_capicua(num, inicial); if (capicua == inicial) { printf("El numero SI es capicua\n"); } else { printf("El numero NO es capicua\n"); } system("Pause"); } int func_capicua(int num, int inicial) { int uniMil = 0, cent = 0, dece = 0, uni = 0, capicua = 0; uniMil = num / 1000; num = num - (1000 * uniMil);
65
cent = num / 100; num = num - (100 * cent); dece = num / 10; num = num - (10 * dece); uni = inicial - (1000 * uniMil) - (cent * 100) - (dece * 10); capicua = uniMil + (1000 * uni) + (dece * 100) + (cent * 10); return capicua; } ------------------------------------------------------------------------------------ //Ejercicio 23 Practicando con punteros #include #include void desgloce(long int num, int *uni, int *dec, int *cent, int *uniMil, int *decMil, int *centMil); void main() { int uni = 0, dec = 0, cent = 0, uniMil = 0, decMil = 0, centMil = 0, i = 0; long int num = 0, copia = 0; printf("Ingrese un numero de 6 cifras : "); scanf("%d", &num); desgloce(num, &uni, &dec, ¢, &uniMil, &decMil, ¢Mil); printf("\nDia: %d%d", centMil, decMil); printf("\nMes: %d%d", uniMil, cent); printf("\nA\xA4o: %d%d\n\n", dec, uni); system("Pause"); } void desgloce(long int num, int *uni, int *dec, int *cent, int *uniMil, int *decMil, int *centMil) { long int copia; copia = num; if (num >= 100000) { *centMil = num / 100000; num = num - (100000 * *centMil); } *decMil = num / 10000; num = num - (10000 * *decMil); *uniMil = num / 1000; num = num - (1000 * *uniMil); *cent = num / 100; num = num - (100 * *cent); *dec = num / 10; num = num - (10 * *dec); *uni = copia - (100000 * *centMil) - (10000 * *decMil) - (1000 * *uniMil) - (*cent * 100) - (*dec * 10); }
66
//Ejercicio 24 #include #include int func_perfecto(int num); void main() { int num = 0, suma = 0; printf("Ingrese un numero para su verificacion: "); scanf("%d", &num); suma = func_perfecto(num); if (suma == num) { printf("\nEl numero ingresado SI es perfecto.\n\n"); } else { printf("\nEl numero ingresado NO es perfecto.\n\n"); } system("Pause"); } int func_perfecto(int num) { int i = 0, division = 0, suma = 0; for (i = num - 1; i >= 1; i--) { division = num % i; if (division == 0) { suma = suma + i; } } return suma; } ------------------------------------------------------------------------------------ //Ejercicio 25 #include #include void func_facto(int P, int Q, int *cont); void main() { int P = 0, Q = 0, cont = 0; for (cont = 1; cont = 0)
67
{ func_facto(P, Q, &cont); } else {
printf("\nERROR: P no puede valer menos que 0, intente nuevamente:\n\n");
cont--; } } system("Pause"); } void func_facto(int P, int Q, int *cont) { int i = 0, PmenosQ = 0; long float result = 0; int long unsigned factorialA = 1, factorialB = 1; for (i = P; i >= 1; i--) { factorialA = factorialA * i; } if (P == 0) { factorialA = 1; } i = 0; PmenosQ = P - Q; if (PmenosQ >= 0) { for (i = PmenosQ; i >= 1; i--) { factorialB = factorialB * i; } result = factorialA / (factorialB * Q); printf("El resultado es: %.2f\n\n", result); } else { printf("\nERROR: No se pudo calcular el factorial de P - Q , la resta da un numero negativo, intente nuevamente:\n\n"); *cont = *cont - 1; } } ------------------------------------------------------------------------------------ //Ejercicio 26 #include #include void func_fibo(int limite); void main() { int limite = 0, cont = 0;
68
for (cont = 1; cont 0) { func_fibo(limite); } else {
printf("\nERROR: Ha ingresado un valor igual o menor a 0, por favor intente nuevamente:\n\n");
cont--; } } printf("\n\n"); system("Pause"); } void func_fibo(int limite) { int varA = 0, varB = 1, i = 0, secue = 1; for (i = 1; i
69
void func_dibuja(int num) { int i = 0, j = 0, k = 0; for (i = 0; i = i; k--) { printf(" "); } for (j = 0; j
70
printf("ADVERTENCIA: Lo quieren estafar... Ingrese nuevamente ambos valores:\n\n");
*i = *i - 1; } } ------------------------------------------------------------------------------------ //Ejercicio 30 #include #include int func_orden(int num1, int num2, int canti, int *i, int primerNum, int *ascCont, int *desCont) { int desorden = 0, ultNum = 0, suma = 0; if (num2 > num1) { *ascCont = *ascCont + 1; num1 = num2; } if (num2 < num1) { *desCont = *desCont + 1; num1 = num2; } else { desorden++; } if (*i == canti - 1) { ultNum = num2; suma = primerNum + ultNum; } return suma; } void main() { int num1 = 0, num2 = 0, canti = 0, i = 1, suma = 0, ascCont = 1, desCont = 1, primerNum; printf("Ingrese la cantidad de numero a ingresar: "); scanf("%d", &canti); printf("Ingrese un numero: "); scanf("%d", &num1); primerNum = num1; for (i = 1; i
71
if (ascCont == i) { printf("\nORDEN: ASCENDENTE\n\n"); } else { if (desCont == i) { printf("\nORDEN: DESCENDENTE\n\n"); } else { printf("\nORDEN: DESORDENADOS\n\n"); } } printf("La suma entre el primer y ultimo numero ingresado es: %d\n\n", suma); system("Pause"); } ------------------------------------------------------------------------------------ //Ejercicio 31 #include #include #include void fibonacci(int *contPpal); void factorial(int *contPpal); void main() { //Ejercicio realizado antes de ver ciclo de repeticion Do-While int opcion = 0, contPpal = 0; for (contPpal = 1; contPpal
72
} } } void fibonacci(int *contPpal) {
int varA = 0, varB = 1, i = 0, limite = 0, contFibo = 0, secue = 1, cuentaComa = 0;
system("cls"); printf("--------------------------------"); printf("\nSECUENCIA DE FIBONACCI:\n\n"); for (contFibo = 1; contFibo 0) { for (i = 1; i = 2; iFact--) {
73
printf("%d x ", iFact); factorial = factorial * iFact; if (iFact == 2) { printf("1"); } } printf("\nFactorial: %lu", factorial); } else if (numero == 0) { printf("\n%d!: ", numero); printf("1"); factorial = 1; printf("\nFactorial: %d", factorial); } else { printf("\nERROR: El numero es menor a 0.\a"); contFact--; } printf("\n\n"); } *contPpal = *contPpal - 1; printf("--------------------------------\n\n"); getch(); }
//Ejercicio 32 #include #include int ingreso(int *cantPers, int *prod1, int *prod2, int *prodAmbos); int porcen(int cantPers, int prod1, int prod2, int prodAmbos, float *porcen1, float *porcen2, float *porcen3); void main() { float porcen1 = 0, porcen2 = 0, porcen3 = 0; int opcion = 0; int cantPers = 0; int prod1 = 0, prod2 = 0, prodAmbos = 0; printf("Opciones:\n\n"); printf("1: Producto N%c1\n", 167); printf("0: Producto N%c2\n", 167); printf("Otro: Ambos productos\n\n"); printf("Numero negativo: Para finalizar ingreso. \n\n"); while (opcion >= 0) { opcion = ingreso(&cantPers, &prod1, &prod2, &prodAmbos); } if (cantPers != 0) {
cantPers = porcen(cantPers, prod1, prod2, prodAmbos, &porcen1, &porcen2, &porcen3);
74
} system("cls"); printf("Cantidad de personas entrevistadas: %d\n\n", cantPers); printf("Porcentaje de personas que eligio el producto 1: %.2f\n", porcen1); printf("Porcentaje de personas que eligio el producto 2: %.2f\n\n", porcen2);
printf("Porcentaje de personas que eligio ambos productos: %.2f\n\n", porcen3);
system("Pause"); } int ingreso(int *cantPers, int *prod1, int *prod2, int *prodAmbos) { int opcion = 0; *cantPers = *cantPers + 1; printf("Opcion: "); scanf("%d", &opcion); switch (opcion) { case 1: *prod1 = *prod1 + 1; break; case 0: *prod2 = *prod2 + 1; break; } if (opcion > 0 && opcion != 1 && opcion != 0) { *prodAmbos = *prodAmbos + 1; } return opcion; } int porcen(int cantPers, int prod1, int prod2, int prodAmbos, float *porcen1, float *porcen2, float *porcen3) { cantPers--; *porcen1 = (prod1 * 100) / cantPers; *porcen2 = (prod2 * 100) / cantPers; *porcen3 = (prodAmbos * 100) / cantPers; return cantPers; }
75
Tercera Gua Parte Dos (Solo Funciones) Estructuras de Control
//Ejercicio 33 #include #include #include float volumen(float a, float b, float c) { float vol = 0; vol = a * b * c; return vol; } float capacidad(float a) { float capaci = 0; capaci = a * 7.8; return capaci; } void horas(float a) { int time = 0; time = (a / 20) / 60;
printf("\nLa cantidad de horas requeridas para llenar la piscina es de %d aprox.", time);
} void main() { float vol = 0, capaci = 0, longi = 0, ancho = 0, profun = 0; printf("Ingrese la longitud de la piscina : "); scanf("%f", &longi); printf("Ingrese el ancho de la piscina : "); scanf("%f", &ancho); printf("Ingrese la profundidad de la piscina : "); scanf("%f", &profun); vol = volumen(longi, ancho, profun); capaci = capacidad(vol); horas(capaci); getch(); }
76
//Ejercicio 34 #include #include void func_vali(); void main() { func_vali(); } void func_vali() { char var; printf("Ingrese un valor : "); scanf("%c", &var); while (getchar() != '\n'); if (var >= 48 && var = 97 && var = 65 && var = 60) { *segundos = seg % 60; min = min + (seg / 60); *minutos = min; } if (min >= 60) { *minutos = min % 60; hs = hs + (min / 60); } *horas = hs; }
77
void func_comp(int h1, int m1, int s1, int h2, int m2, int s2) { if (h1 > h2) { printf("\nEl primer instante NO es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2); } else { if (h1 < h2) { printf("\nEl primer instante SI es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2); } else { if (m1 > m2) {
printf("\nEl primer instante NO es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2);
} else { if (m1 < m2) {
printf("\nEl primer instante SI es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2);
} else { if (s1 > s2) {
printf("\nEl primer instante NO es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d q
segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2);
} else { if (s1 < s2) {
printf("\nEl primer instante SI es anterior al segundo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1);
78
printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2);
} else {
printf("\nAmbos instantes ocurren al mismo tiempo...\n"); printf("Instante 1: %d hs - %d min - %d segs\n", h1, m1, s1); printf("Instante 2: %d hs - %d min - %d segs\n", h2, m2, s2);
} } } } } } } void main() { int time[4], time2[4]; int horas1, minutos1, segundos1; int horas2, minutos2, segundos2; printf("Indique la hora del primer instante: "); scanf("%d", &time[1]); printf("Indique los minutos del primer instante: "); scanf("%d", &time[2]); printf("Indique los segundos del primer instante: "); scanf("%d", &time[3]); func_time(time[1], time[2], time[3], &horas1, &minutos1, &segundos1); printf("\n"); printf("Indique la hora del segundo instante: "); scanf("%d", &time2[1]); printf("Indique los minutos del segundo instante: "); scanf("%d", &time2[2]); printf("Indique los segundos del segundo instante: "); scanf("%d", &time2[3]); func_time(time2[1], time2[2], time2[3], &horas2, &minutos2, &segundos2); func_comp(horas1, minutos1, segundos1, horas2, minutos2, segundos2); getch(); } ------------------------------------------------------------------------------------ //Ejercicio 36 #include #include #include #include float func_apuesta(int *cont, float saldoBanca, float apuestaAct, float saldoJugador, int booleana) { system("cls"); printf("Saldo de la BANCA: %.2f\n", saldoBanca); if (saldoBanca > 0)
79
{ printf("Ingrese el valor de apuesta: "); scanf("%f", &apuestaAct); while (getchar() != '\n'); //Vacia buffer if (apuestaAct 2000) {
printf("\n\aIngreso un valor no correspondido, procure leer las instrucciones\nsi no entendio que hay que hacer...");
*cont = *cont - 1; getch(); } } else { printf("La banca se ha quedado sin fondos"); booleana = 0; } return apuestaAct; } int func_tirarDados(int *dado1, int *dado2, int sumaDados, float saldoBanca, float saldoJugador, float apuestaAct, int primerTiro) { system("cls"); printf("Saldo de banca: %.2f\n", saldoBanca); printf("Saldo jugador: %.2f\n", saldoJugador); printf("Apuesta en curso: %.2f\n", apuestaAct); printf("En tu primer tiro sacaste: %d\n\n", primerTiro); printf("Pulse una tecla para tirar los dados..."); getch(); system("cls"); *dado1 = 1 + rand() % 6; *dado2 = 1 + rand() % 6; sumaDados = *dado1 + *dado2;
printf("DADO 1: %d\nDADO 2: %d\n\nLa suma de ambos dados es de: %d", *dado1, *dado2, sumaDados);
getch(); return sumaDados; } int func_primerTiro(int *sumaDados, int *booleana, float saldoJugador, float apuestaAct, float saldoBanca) { int sumaPrimer = 0; sumaPrimer = *sumaDados; *sumaDados = 0; switch (sumaPrimer) { case 7: case 11: system("cls"); printf("FELICIDADES, HA GANADO EN EL PRIMERO TIRO!!\n\n"); saldoJugador = saldoJugador + apuestaAct; saldoBanca = saldoBanca - apuestaAct; printf("Punto para el jugador!!\n\n"); printf("Saldo de banca: %.2f\n", saldoBanca); printf("Saldo jugador: %.2f\n", saldoJugador); getch(); *booleana = 0; break;
80
case 2: case 3: case 12: system("cls");
printf("OPS!, HA PERDIDO, NO PODIA SUMAR %d EN EL PRIMER TIRO. BANCA GANA.\n\n", sumaPrimer);
saldoJugador = saldoJugador - apuestaAct; saldoBanca = saldoBanca + apuestaAct; printf("Saldo de banca: %.2f\n", saldoBanca); printf("Saldo jugador: %.2f\n", saldoJugador); printf("Acaba de perder: %.2f\n\n", apuestaAct); getch(); *booleana = 0; break; default: *booleana = 1; } return sumaPrimer; } void main() { srand(time(NULL));
int dado1 = 0, dado2 = 0, sumaDados = 0, numTiro = 0, sumaPrimer = 0, cont = 0, opcion = 0, seguir = 0;
int booleana = 1; float saldoBanca = 2000, saldoJugador = 0, apuestaAct = 0;
do { printf("..::JUEGO DE DADOS::..\n\n"); printf("Menu:\n\n"); printf("1. Jugar\n"); printf("2. Instrucciones\n"); printf("3. Salir\n\n"); printf("Opcion: "); scanf("%d", &opcion); switch (opcion) { case 1: for (cont = 1; cont
81
if (booleana == 1) { if (sumaDados == sumaPrimer) { system("cls"); saldoJugador = saldoJugador + apuestaAct; saldoBanca = saldoBanca - apuestaAct; printf("Punto para el jugador!!\n\n"); printf("Saldo de banca: %.2f\n", saldoBanca); printf("Saldo jugador: %.2f\n", saldoJugador); printf("Apuesta en curso: %.2f\n\n", apuestaAct); for (cont = 1; cont
82
system("cls"); break; } } while (opcion != 3); } ----------------------------------------------------------------------------------- //Ejercicio 38 #include #include #include void ingreso(int *anio1, int *anio2); int func_anios(int anio1, int anio2, int *mayor, int *menor); int bisiesto(int mayor, int menor, int dias, int *cantBisi); void main() { int dias = 0, horas = 0; unsigned long int minutos = 0, segundos = 0; int mayor = 0, menor = 0; int anio1 = 0, anio2 = 0, cantAnios = 0, cantBisi = 0, opcion = 0; ingreso(&anio1, &anio2); do { system("cls"); cantAnios = func_anios(anio1, anio2, &mayor, &menor); system("cls"); dias = cantAnios * 365; dias = bisiesto(mayor, menor, dias, &cantBisi); horas = dias * 24; minutos = horas * 60; segundos = minutos * 60; printf("...::MENU::...\n\n"); printf("Cantidad de a%cos: %d\n", 164, cantAnios); printf("Cantidad de a%cos bisiestos: %d\n\n", 164, cantBisi); printf("1. Convertir a dias\n"); printf("2. Convertir a horas\n"); printf("3. Convertir a minutos\n"); printf("4. Convertir a segundos\n"); printf("5. Realizar otro ingreso\n"); printf("6. Salir\n\n"); printf("Opcion: "); scanf("%d", &opcion); switch (opcion) { case 1: system("cls"); printf("Cantidad de a%cos expresados en dias: %d\n\n", 164, cantAnios); printf("Dias: %d\n\n", dias); system("Pause");; break;
83
case 2: system("cls");
printf("Cantidad de a%cos expresados en horas: %d\n\n", 164, cantAnios);
printf("Horas: %d\n\n", horas); system("Pause"); break; case 3: system("cls");
printf("Cantidad de a%cos expresados en minutos: %d\n\n", 164, cantAnios);
printf("Minutos: %lu\n\n", minutos); system("Pause"); break; case 4: system("cls"); printf("Cantidad de a%cos expresados en segundos: %d\n\n", 164, cantAnios); printf("Segundos: %lu\n\n", segundos); system("Pause"); break; case 5: system("cls"); anio1 = 0; anio2 = 0; cantBisi = 0; ingreso(&anio1, &anio2); break; } } while (opcion != 6); } void ingreso(int *anio1, int *anio2) { printf("Ingrese un a%co: ", 164); scanf("%d", &*anio1); printf("Ingrese otro a%co: ", 164); scanf("%d", &*anio2); } int func_anios(int anio1, int anio2, int *mayor, int *menor) { int Anios = 0; if (anio1 > anio2) { Anios = (anio1 - anio2); *mayor = anio1; *menor = anio2; } else if (anio2 > anio1) { Anios = (anio2 - anio1); *mayor = anio2; *menor = anio1; } return Anios; }
84
int bisiesto(int mayor, int menor, int dias, int *cantBisi) { int i = 0, resto = 0; for (i = menor; i
85
case 3: tarifa = 1.75; break; } if (opcion != 4) { abonado = func_cambio(tarifa); vuelto = func_vuelto(tarifa, abonado); system("cls"); printf("El vuelto correspondiente es de: $%.2f\n\n", vuelto); getch(); } } while (opcion != 4); } int func_menu() { int opcion = 0; system("cls"); printf("..::CALCULADORA DE VUELTO::..\n\n"); printf("Seleccione su viaje:\n\n"); printf("1. Viaje corto: $1.10\n"); printf("2. Viaje medio: $1.20\n"); printf("3. Viaje largo: $1.75\n"); printf("4. Salir\n\n"); printf("Opcion: "); scanf("%d", &opcion); return opcion; } float func_cambio(float tarifa) { float monedas[6] = { 2, 1, 0.5, 0.25, 0.1, 0.05 }; int cantMonedas[6] = { 0, 0, 0, 0, 0, 0 }; float cambio = 0, pago = 0, i = 0; int booleana = 0, f = 0; printf("..::INGRESO DE CAMBIO A ABONAR::..\n\n"); for (i = 0; i < tarifa; i = i + pago) { pago = 0; system("cls"); printf("A abonar: %.2f\n", tarifa); printf("Abonado: %.2f\n\n", cambio);
printf("Monedas aceptadas: $2 - $1 - $0.50 - $0.25 - $0.10 - $0.05\n\n");
printf("Ingrese moneda a abonar: "); scanf("%f", &pago); for (f = 0; f
86
} } if (booleana == 0) //En caso de que no se halle esa moneda { printf("Ingreso una moneda incorrecta..."); i = i - pago; getch(); } } system("cls"); printf("A abonar: %.2f\n", tarifa); printf("Abonado: %.2f\n\n", cambio); printf("Cambio ingresado:\n\n"); printf("Monedas de $2.00: %d\n", cantMonedas[0]); printf("Monedas de $1.00: %d\n", cantMonedas[1]); printf("Monedas de $0.50: %d\n", cantMonedas[2]); printf("Monedas de $0.25: %d\n", cantMonedas[3]); printf("Monedas de $0.10: %d\n", cantMonedas[4]); printf("Monedas de $0.05: %d\n\n", cantMonedas[5]); system("Pause"); return cambio; } float func_vuelto(float tarifa, float abonado) { float monedas[6] = { 2, 1, 0.5, 0.25, 0.1, 0.05 }; int cantMonedas[6] = { 0, 0, 0, 0, 0, 0 }; int j = 0; float vuelto = 0, restaMoneda = 0; vuelto = abonado - tarifa; return vuelto; } ---------------------------------------------------------------------------------- //Ejercicio 40 #include #include #include char equi(float notaNum); void recomendacion(char notaFinal); void main() { float notaNum = 0; char notaFinal; printf("Tabla de equivalencias:\n\n"); printf(" 10 = A+\n9 a 9.99 = A \n8 a 8.99 = B \n7 a 7.99 = C \n6 a 6.66 = D \n1 a 5.99 = F\n"); printf("____________________________\n\n"); printf("Ingrese la nota del alumno: "); scanf("%f", ¬aNum); notaFinal = equi(notaNum); if (notaNum == 10) { printf("\nLa nota del alumno en el sistem SGY es: %c+\n\n", notaFinal); }
87
else { printf("\nLa nota del alumno en el sistem SGY es: %c\n\n", notaFinal); } printf("Pulse una tecla para ver una observacion..."); getch(); system("cls"); recomendacion(notaFinal); printf("\n\n"); system("Pause"); } void recomendacion(char notaFinal) { if (notaFinal == 'A') {
printf("Excelente desempe%co, esperamos que siga asi y demuestre que con esfuerzo,\nvoluntad y responsabilidad se pueden lograr nuestras metas. Nuevamente, \nfelicitaciones!!", 164);
} if (notaFinal == 'B') {
printf("Nos alegra saber que hay alumnos que se esfuerzan por mejorar cada dia. \nSiga asi y pronto llegara a obtener la mejor calificacion posible. \nFelicitaciones!!");
} if (notaFinal == 'C') {
printf("Buena calificacion, esperamos que siga mejorando aun mas para obtener \nmejores calificaciones. Gran trabajo!!");
} if (notaFinal == 'D') {
printf("Aprobado con lo justo pero aprobado. Vamos, no se conforme con una nota regular,esfuercese mas y mas para conseguir las mejores calificaciones. \nCon dedicacion y esfuerzo todo es posible. Adelante!!");
} if (notaFinal == 'F') {
printf("Ups!, no se dio esta vez... Vamos, no se rinda y siga intentando, todos tenemos malos dias. El dia del examen no fue el suyo. Dedique mayor esfuerzo y voluntad al estudio de esta materia que se le ha complicado, vera que con ganas es todo \nmas facil. Adelante!!");
} } char equi(float notaNum) { char sgy; if (notaNum == 10) { sgy = 'A'; } if (notaNum >= 9 && notaNum
88
if (notaNum >= 8 && notaNum = 7 && notaNum = 6 && notaNum = 1 && notaNum
89
} } printf("\nEl caracter invertido es: %c\n\n", convert); } else { printf("Ingreso un caracter invalido, intente nuevamente..."); *cont = *cont - 1; getch(); } } ------------------------------------------------------------------------------- //Ejercicio 42 #include #include #include #include void calculo(float a, float b, float c, float b1, float discri); void main() { float a = 0, b = 0, c = 0; float b1 = 0, discri = 0; do { system("cls"); printf("Ingrese el valor de a: "); scanf("%f", &a); printf("Ingrese el valor de b: "); scanf("%f", &b); printf("Ingrese el valor de c: "); scanf("%f", &c); b1 = b*(-1); discri = (b*b) - 4 * a*c; if (discri > 0) { calculo(a, b, c, b1, discri); } else { system("cls"); printf("No hay raices reales para la ecuacion..."); getch(); } } while (discri < 0); } void calculo(float a, float b, float c, float b1, float discri) { float x1pos = 0, x2neg = 0; x1pos = (b1 + sqrt(discri)) / (2 * a); x2neg = (b1 - sqrt(discri)) / (2 * a); system("cls"); printf("Valores ingresados:\n\na: %.2f\nb: %.2f\nc: %.2f\n\n", a, b, c);
90
printf("Resultados:\n\nX1: %.4f\nX2: %.4f\nDiscriminante: %.2f", x1pos, x2neg, discri);
getch(); } -------------------------------------------------------------------------------- //Ejercicio 44 #include #include #include int long unsigned func_factA(int P); void func_divisor(int PmenosQ, int long unsigned factorialA, int Q, int *cont); void main() { int P = 0, Q = 0, i = 0, PmenosQ = 0, cont = 0; int long unsigned factorialA = 1; for (cont = 1; cont = 0) { factorialA = func_factA(P); PmenosQ = P - Q; func_divisor(PmenosQ, factorialA, Q, &cont); } else {
printf("\nERROR: P no puede valer menos que 0, intente nuevamente:\n\n");
cont--; } } system("Pause"); } int long unsigned func_factA(int P) { int i = 0, factorialA = 1; for (i = P; i >= 1; i--) { factorialA = factorialA * i; } if (P == 0) { factorialA = 1; } return factorialA; }
91
void func_divisor(int PmenosQ, int long unsigned factorialA, int Q, int *cont) { int j = 0; float result = 0; int long unsigned factorialB = 1; if (PmenosQ >= 0) { for (j = PmenosQ; j >= 1; j--) { factorialB = factorialB * j; } result = factorialA / (factorialB * Q); printf("El resultado es: %.2f\n\n", result); } else {
printf("\nERROR: No se pudo calcular el factorial de P - Q , la resta da un numero negativo, intente nuevamente:\n\n");
getch(); system("cls"); *cont = *cont - 1; } } ----------------------------------------------------------------------------------- // Ejercicio 45 #include #include void func_esp(int num, int i); void func_tabu(int i); void main() { int num = 0, i = 0; printf("Ingrese un numero: "); scanf("%d", &num); printf("\n"); for (i = 0; i
92
void func_esp(int num, int i) { int k = 0; for (k = num - 1; k >= i; k--) { printf(" "); } } void func_tabu(int i) { int j = 0; for (j = 0; j 79) x = 79; if (x < 0) x = 0; if (y > 24) y = 24; if (y < 0) y = 0; system("cls"); switch (move) { case 100: case 68: x++; func_ejeY(&y); func_ejeX(&x); break;
93
case 97: case 65: x--; func_ejeY(&y); func_ejeX(&x); break; case 119: case 87: y--; func_ejeY(&y); func_ejeX(&x); break; case 115: case 83: y++; func_ejeY(&y); func_ejeX(&x); break; default: func_ejeY(&y); func_ejeX(&x); } } } void func_ejeX(int *x) { int i = 0; for (i = 1; i
94
Cuarta Gua Vectores
//Ejercicio 1 #include #include #include void main() { int resist[5] = { 0 }; int i = 0, total = 0; for (i = 0; i
95
//Ejercicio 3 #include #include #include void main() { int inter[1500] = { 0 }; int i = 0, cantInter = 0, limit1 = 0, limit2 = 0, temp = 0; printf("Ingrese un limite: "); scanf("%d", &limit1); printf("Ingrese el segundo limite: "); scanf("%d", &limit2); if (limit2 > limit1) { temp = limit1; limit1 = limit2; limit2 = temp; } getch(); for (i = limit1 - 1; i >= limit2 + 1; i--) { inter[i] = i; } printf("Numeros intermedios: \n\n"); for (i = limit2 + 1; i
96
//Ejercicio 5 #include #include #include void main() { int cantVend[21] = { 0 }, sumaVend[16] = { 0 }; int totalUni = 0, mejorVende = 0, mayor = 0, i = 0, o = 0; for (i = 1; i = 0) { empleado++; }
97
else {
printf("\n\nINGRESO VALOR INCORRECTO(Solo valores mayores a $0) \n\aPor favor, intente nuevamente: \n\n");
sueldo[empleado] = 0; } } while (empleado
98
//Ejercicio 8 #include #include #include void main() { int fibo[150] = { 0 }; int varA = 0, varB = 1, i = 0, limite = 0, contFibo = 0; printf("\n..::SECUENCIA DE FIBONACCI::..\n\n"); fibo[1] = 1; printf("Ingrese un limite para mostrar la secuencia de Fibonacci: "); scanf("%d", &limite); printf("\nLa secuencia de Fibonacci es la siguiente: "); if (limite > 0) { for (i = 1; i
99
void main() { int numeros[150]; int i = 0, cont = -1, ascen = 0, descen = 0, suma = 0; do { cont++; printf("Ingrese un numero distinto de 0: "); scanf("%d", &numeros[cont]); } while (numeros[cont] != 0); suma = func_suma(&numeros[0], &numeros[cont - 1]); for (i = 0; i < cont - 1; i++) { if (numeros[i] > numeros[i + 1]) { descen++; } else { if (numeros[i] < numeros[i + 1]) { ascen++; } } } printf("\n"); if (descen != 0 && ascen == 0) { printf("Escala Descendente"); } if (ascen != 0 && descen == 0) { printf("Escala Ascendente"); } if (descen != 0 && ascen != 0) { printf("Escala Desordenados"); } printf("\nLa suma entre el primer y ultimo numero ingresado es: %d", suma); getch(); } ----------------------------------------------------------------------------------- //Ejercicio 10 #include #include #include void main() { int elem[11] = { 0 }; int i = 0, suma = 0, debajo = 0; float prom = 0; unsigned long int producto = 1; for (i = 0; i < 10; i++) {
100
printf("%d. Ingrese un numero: ", i + 1); scanf("%d", &elem[i]); } for (i = 0; i < 10; i++) { suma = suma + elem[i]; producto = producto * elem[i]; } prom = suma / 10; for (i = 0; i < 10; i++) { if (elem[i] < prom) { debajo++; } } printf("\n"); printf("Suma de elementos: %d\n", suma); printf("Producto de elementos: %lu\n", producto); printf("Promedio de elementos: %.2f\n", prom); printf("Elementos por debajo del promedio: %d", debajo); getch(); } ----------------------------------------------------------------------------------- //Ejercicio 11 #include #include #include void main() { int num[10] = { 0 }; int mostrados[10] = { 0 }; int i = 0, j = 0, repeticiones = 0; for (i = 0; i < 10; i++) { printf("Ingrese numero: "); scanf("%d", &num[i]); } for (i = 0; i < 10; i++) { repeticiones = 0; for (j = 0; j < 10; j++) { if (j == i) continue; if (num[i] == num[j]) { repeticiones++; mostrados[j] = num[i]; } } if (repeticiones > 0 && mostrados[i] != num[i]) {
101
printf("El numero %d aparece repetido: %d veces.\n", num[i], repeticiones);
mostrados[i] = num[i]; } } getch(); } ------------------------------------------------------------------------------------ //Ejercicio 12 #include #include #include void main() { int elem[10] = { 0 }; int copia[10] = { 0 }; int descen[10] = { 0 }; int i = 0, j = 0, k = 9, cont = 1, temp = 0; for (i = 0; i < 10; i++) { printf("%d. Ingrese un numero: ", cont); scanf("%d", &elem[i]); cont++; } for (i = 0; i < 10; i++) { copia[i] = elem[i]; } for (i = 0; i < 10; i++) { for (j = i + 1; j < 10; j++) { if (elem[j] < elem[i]) { temp = elem[j]; elem[j] = elem[i]; elem[i] = temp; } } } printf("\nVector de forma ingresada:\n"); for (i = 0; i < 10; i++) { printf("%d", copia[i]); if (i != 9) printf(", "); } printf("\n\nVector de forma ascendente:\n"); for (i = 0; i < 10; i++) { printf("%d", elem[i]); if (i != 9) printf(", "); }
102
for (i = 0; i < 10; i++) { descen[i] = elem[k]; k--; } printf("\n\nVector de forma descendente:\n"); for (i = 0; i < 10; i++) { printf("%d", descen[i]); if (i != 9) printf(", "); } getch(); } ----------------------------------------------------------------------------------- //Ejercicio 13 #include #include #include void main() { int elem[6] = { 0 }; int i = 0, cont = 1, resto = 0; for (i = 0; i < 6; i++) { printf("%d. Ingrese un numero: ", cont); scanf("%d", &elem[i]); cont++; } printf("\nNumeros pares del vector: "); for (i = 0; i < 6; i++) { resto = elem[i] % 2; if (resto == 0) { printf("%d", elem[i]); if (i != 5) printf(", "); } } getch(); } -------------------------------------------------------------------------------- //Ejercicio 14 #include #include #include void main() { int elem[6] = { 0 };
103
int i = 0, cont = 1, resto = 0; for (i = 0; i < 6; i++) { printf("%d. Ingrese un numero: ", cont); scanf("%d", &elem[i]); cont++; } printf("\nNumeros pares del vector: "); for (i = 0; i < 6; i++) { resto = i % 2; if (resto == 0) { printf("%d", elem[i]); if (i != 5) printf(", "); } } getch(); } -------------------------------------------------------------------------------- //Ejercicio 15 #include #include #include void main() { int vector1[11] = { 0 }; int vector2[11] = { 0 }; int vector3[11] = { 0 }; int i = 0, cont = 1, impar = 1, par = 0; for (i = 0; i < 10; i++) { printf("%d. Ingrese un numero al primer vector: ", cont); scanf("%d", &vector1[i]); cont++; } printf("\n"); cont = 1; for (i = 0; i < 10; i++) { printf("%d. Ingrese un numero al segundo vector: ", cont); scanf("%d", &vector2[i]); cont++; } for (i = 0; i < 5; i++) { vector3[i] = vector1[impar]; impar = impar + 2; } for (i = 5; i < 10; i++) { vector3[i] = vector2[par]; par = par + 2;
104
} printf("\nElementos del tercer vector generado:\n\n"); printf("Elementos de posiciones impares del primer vector: "); for (i = 0; i < 5; i++) { printf("%d", vector3[i]); if (i != 4) { printf(" - "); } } printf("\nElementos de posiciones impares del primer vector: "); for (i = 5; i < 10; i++) { printf("%d", vector3[i]); if (i != 9) { printf(" - "); } } getch(); } ------------------------------------------------------------------------------- //Ejercicio 16 #include #include #include void main() { int vector1[7] = { 0 }; int vector2[7] = { 0 }; int vector3[7] = { 0 }; int i = 0, cont = 1; for (i = 0; i < 6; i++) { printf("%d. Ingrese un numero al primer vector: ", cont); scanf("%d", &vector1[i]); cont++; } printf("\n"); cont = 1; for (i = 0; i < 6; i++) { printf("%d. Ingrese un numero al segundo vector: ", cont); scanf("%d", &vector2[i]); cont++; } for (i = 0; i < 6; i++) { vector3[i] = vector1[i] * vector2[6 - i]; } printf("\nElementos del tercer vector generado: ");
105
for (i = 0; i < 6; i++) { printf("%d", vector3[i]); if (i != 5) { printf(" - "); } } getch(); } ---------------------------------------------------------------------------------- //Ejercicio 17 #include #include #include void main() { int vector1[11] = { 0 }; int i = 0, cont = 1; for (i = 0; i < 10; i++) { printf("%d. Ingrese un numero al vector: ", cont); scanf("%d", &vector1[i]); cont++; } printf("\nElementos invertidos del vector: "); for (i = 9; i >= 0; i--) { printf("%d", vector1[i]); if (i != 0) { printf(" - "); } } getch(); } ----------------------------------------------------------------------------------- //Ejercicio 18 #include #include #include void main() { int numeros[10] = { 0 }; int i = 0, ascen = 0, descen = 0, iguales = 0; for (i = 0; i < 10; i++) { printf("%d.Ingrese un numero: ", i + 1); scanf("%d", &numeros[i]); }
106
for (i = 0; i < 10; i++) { if (numeros[i] > numeros[i + 1] && i != 9) { descen++; } else { if (numeros[i] < numeros[i + 1] && i != 9) { ascen++; } else { if (numeros[i] == numeros[i + 1] && i != 9) { iguales++; } } } } printf("\nRESULTADO: "); if (iguales == 9 && descen == 0 && ascen == 0) { printf("1"); } else { if (ascen == 9 && descen == 0) { printf("2"); } else { if (descen == 9 && ascen == 0) { printf("3"); } else { printf("4"); } } } getch(); }
107
//Ejercicio 19 #include #include #include int bisiesto(int anio) { int resto = 0, check = 0; if (anio > 0) { resto = anio % 4; if (resto == 0) { resto = 0; resto = anio % 100; if (resto == 0) { resto = 0; resto = anio % 400; if (resto == 0) { return check = 1; } else { return check = 0; } } else { return check = 1; } } else { return check = 0; } } } void main() { int vector[5] = { 0 }; int bisiestos[5] = { 0 }; int i = 0, j = 0, check = -1; do { printf("%d. Ingrese un anio: ", i + 1); scanf("%d", &vector[i]); for (j = 0; j < i; j++) { if (vector[j] == vector[i]) { printf("\n\aValor ingresado anteriormente.\n\n"); i--; break; } }
108
if (vector[i] < 1000 || vector[i] > 9999) { printf("\n\aSolo valores de cuatro cifras.\n\n"); i--; } i++; } while (i < 5); for (i = 0; i < 5; i++) { check = bisiesto(vector[i]); if (check == 1) bisiestos[i] = vector[i]; else continue; } printf("\nAnios bisiestos: "); for (i = 0; i < 5; i++) { if (bisiestos[i] != 0) { printf("%d - ", bisiestos[i]); } } getch(); } ----------------------------------------------------------------------------------- //Ejercicio 20 #include #include #include void recargo(float *vector) { int i = 0; for (i = 0; i < 6; i++) { vector[i] = vector[i] + (15 * vector[i]) / 100; } } void ordenar(float *vector1, int *posis) { int pasada = 0, cambio = 0, i = 0, aux2 = 0; float aux = 0; do { pasada++; cambio = 0; for (i = 0; i < (6 - pasada); i++) { if (vector1[i] > vector1[i + 1]) { aux = vector1[i]; vector1[i] = vector1[i + 1]; vector1[i + 1] = aux; //Se ordenan sus respectivas posiciones en paralelo
109
aux2 = posis[i]; posis[i] = posis[i + 1]; posis[i + 1] = aux2; cambio = 1; } } } while (cambio == 1); } void main() { float vector[6] = { 0 }; int posis[6] = { 1, 2, 3, 4, 5, 6 }; int i = 0; for (i = 0; i < 6; i++) { printf("%d. Ingrese precio: ", i + 1); scanf("%f", &vector[i]); } ordenar(vector, posis); system("cls"); printf("..::PRODUCTOS::..\n\n"); for (i = 0; i < 6; i++) { printf("CODIGO PRODUCTO 0%d - %.2f\n", posis[i], vector[i]); } printf("\nPulse una tecla para aplicar recargo...\n\n"); getch(); recargo(vector); for (i = 0; i < 6; i++) { printf("CODIGO PRODUCTO 0%d - +15%% %.2f\n", posis[i], vector[i]); } getch(); }
110
Quinta Gua Vectores 2 / Ordenamiento / Punteros / Funciones
//Metodo Burbuja #include #include #include void main() { int vector1[5] = { 0 }; int i = 0, aux = 0, cambio = 0, pasada = 0; for (i = 0; i < 5; i++) { printf("%d.Ingrese un numero: ", i + 1); scanf("%d", &vector1[i]); } do { pasada++; cambio = 0; for (i = 0; i < (5 - pasada); i++) { if (vector1[i] > vector1[i + 1]) { aux = vector1[i]; vector1[i] = vector1[i + 1]; vector1[i + 1] = aux; cambio = 1; } } } while (cambio == 1); for (i = 0; i < 5; i++) { printf("\n%d", vector1[i]); } getch(); } -------------------------------------------------------------------------- - //Ejercicio 1 #include #include #include void mostrar(int *vector1) { int j = 0; for (j = 0; j < 6; j++) { printf("\n%d", vector1[j]); } }
111
void ingreso(int *vector1) { int i = 0; for (i = 0; i < 6; i++) { printf("%d.Ingrese un numero: ", i + 1); scanf("%d", &vector1[i]); } } void main() { int vector1[6] = { 0 }; ingreso(vector1); mostrar(vector1); getch(); } -------------------------------------------------------------------------- - //Ejercicio 2 #include #include #include void ingreso(int *vector) { int i = 0; for (i = 0; i < 7; i++) { printf("%d.Ingrese un numero: ", i + 1); scanf("%d", &vector[i]); } } int mayor(int *vector, int *posmayor) { int mayor = 0, j = 0; for (j = 0; j < 7; j++) { if (vector[j] > mayor) { mayor = vector[j]; *posmayor = j; } } return mayor; } void mostrar(int *vector) { int j = 0; for (j = 0; j < 7; j++) { printf("%d - ", vector[j]); } }
112
void main() { int vector[7] = { 0 }; int posmayor = 0, mayornum = 0; ingreso(vector); mayornum = mayor(vector, &posmayor); printf("\nEl mayor valor del vector es: %d\nPosicion del valor mayor: %d\n\n", mayornum, posmayor); printf("Vector completo: "); mostrar(vector); getch(); } ----------------------------------------------------------------------------------- //Ejercicio 3 #include #include #include int mayor(float *vector, int mayor) { int j = 0; for (j = 0; j < 7; j++) { if (