163
Escuela Técnica N°1 Otto Krause – 4to Computación 2da 14 Algoritmos y estructura de datos Codificación de guías prácticas Fernández Diego

Guías Prácticas de Algoritmos

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", &sup1); printf("Ingrese la superficie de PAIS 2 en m2: "); scanf("%d", &sup2); printf("Ingrese la superficie de PAIS 3 en m2: "); scanf("%d", &sup3); 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, &cent, &uniMil, &decMil, &centMil); 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", &notaNum); 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 (