jueves, 31 de octubre de 2019

Unidad 4

UNIDAD 4


PROGRAMA 1


#include <stdio.h>
#include <stdlib.h>

void hola(void){ /**Declara una función llamada hola sin tipo*/
printf("Estoy en hola\n"); /**Imprime una frase*/
}


int main() /**Función principal*/
{
    hola(); /**Llama a la función hola*/
    return 0;
}




PROGRAMA 2


#include <stdio.h>
#include <stdlib.h>

void cubo(int b)
    int potencia=5;
    int res;
    res=potencia*b; /*Asigna a res el valor de la multiplicación entre potencia y b*/
    printf("Resultado es: %i\n",res); /
}


int main()
{
    int mb=3;
    cubo(mb); 
    return 0;
}




PROGRAMA 3


#include <stdio.h>
#include <stdlib.h>


int cubo (int a )
{ 
    int pot, res,i,b;
    puts ("Dame la potencia");
    scanf("%i", &pot); 
    res = pot*a; /*Asigna a res el resultado de la multiplicación entre a y pot*/
    }
    return res; /*Devuelve el valor de res al sistema*/
}

int main () 
{
    int resm ;
    resm = cubo(5); /*Se le asigna al identificador resm el valor del resultado al sustituir a por 5 en la función cubo*/
    printf("Otro resultado es:   %i\n", resm);
    return 0;
}



PROGRAMA 4


#include <stdio.h>
#include <stdlib.h>
#include <math.h>


PoTang  (int pot) /*Se llamo a la funcion PoTang y dentro de ella se declaro una variable de tipo entero*/
    int base,b,c=0;
    printf ("Dame un valor para la base: ");
    scanf ("%i", &base);
    b =  base; 
    for (c;c<pot;c++)
       base = base * b; 
       printf ("RESULTADO:  %i\n", base); 
}
}

int main()
{
    potang(5); /*Llama a la función potang y le asigna a pot el valor de 5*/
    return 0;
}


PROGRAMA 5


#include <stdio.h>
#include <stdlib.h>

int sumar (int num1, int num2) /*se declara dos variables dentro de la funcion de tipo entero*/
{
    return num1 + num2;   
}

int main () 
{
    int suma= sumar(5,3); /*Se le dio un valor directo a la funcion Suma*/
    printf("El resultado de la suma es: %i\n", suma);
return 0;

}


PROGRAMA 6


#include <stdio.h>
#include <stdlib.h>

int main ()
{
  int suma = sumar(5,3); /**Declaración de un identificador llamado sumar y se le asigna el valor de la función sumar son los valores que se le asignan*/

printf("El resultado de la suma es: %i", suma);
return 0;

}


int sumar (int num1, int num2) 
{
    return num1 + num2;   /**Devuelve al sistema el valor de la suma entre los dos identificadores*/

}


PROGRAMA 7

#include <stdio.h>
#include <stdlib.h>

int sumar (int num1, int num2); 

int main () 
{
  int suma = sumar(5,3); /*se da un valor a la funcion directamente*/

printf("El resultado de la suma es: %i", suma);
return 0;

}


int sumar (int num1, int num2)
{ 

    return num1 + num2;  /*regresa el valor de num1+num2*/

}



PROGRAMA 8

#include <stdio.h>
#include <stdlib.h>

int entrada(int n1, int n2) 
{
    return n1+n2;   
}

void salida(int nu1, int nu2)  
{
    printf("Suma en funcion salir: %i\n", nu1+nu2);  /**Imprime el resultado de la suma que se encuentra dentro del printf*/

}

int main () 
{
    printf("%i\n", entrada(4,5));  /*Se le dio un valor directo a la funcion entrada*/

    salida(10,12);  
}




PROGRAMA 9

#include <stdio.h>
#include <stdlib.h>

int incrementar(int v) /**Valor que recibe*/
    int suma;  
    suma=v+1;
}

int main() 
{
    int a,b;
    b=3;
    a=incrementar(b); /*Asigna a "a" el valor de la función incrementar*/
    printf("El resultado es %i\n",a); /*Imprime el resultado de a*/

    return 0;
}



PROGRAMA 10

#include <stdio.h>
#include <stdlib.h>

void primera (); 
segunda (void); 

int main() 
{
printf("Llamar a la primera funcion\n");

primera(); /*Llama a la función primera*/
printf("Llamar a la segunda funcion\n");

segunda();  /*Llama a la función segunda*/

printf("Termine de llamar\n");

return 0;
}

void  primera() 
{
    printf("Estoy en la primera\n");
}

segunda (void) 
{
     printf("Estoy en la segunda\n");
}





PROGRAMA 11


#include <stdio.h>
#include <stdlib.h>

imprime_valor()
    int contador=5;
    printf("Valor de contador es: %i\n",contador); /**Imprime el valor de contador*/
}


int main() 
{
    int contador=0; /**Este contador es diferente que el de la función imprime_valor*/
    contador++; 
    printf("El valor de contador en main es: %i\n",contador);

    imprime_valor(); /*Llama a la función imprime_valor*/

    printf("Otro contador en main es: %i\n",contador);

    return 0;
}



PROGRAMA 12

#include <stdio.h>
#include <stdlib.h>

int contador; /*Variable global*/

imprime_valor()
{    
    contador=5; /**No se declara el identificador contador ya que existe una variable global llamada de ese modo*/
    printf("Valor de contador es: %i\n",contador);
}

int main() 
{
    contador=0; /**No se declara el identificador contador ya que existe una variable global llamada de ese modo*/
    contador++; 
    printf("El valor de contador en main es: %i\n",contador);

    imprime_valor(); /*Llama a la función imprime_valor*/

    printf("Otro contador en main es: %i\n",contador);
    return 0;
}




PROGRAMA 13


#include <stdio.h>
#include <stdlib.h>

int variable; 

void funcion()
{
    extern variable; /*LLama a una variable declarada en otro lugar*/

    printf("Variable en una funcion es: %i \n",variable);

    variable=variable+2; /**Realiza una operación algebraica*/
}

void otra_funcion(){ /**Se declara una variable global de tipo entero*/
       
}

int main() 
{
    /**extern variable=9; en la declaración de una variable extern, no se puede incluir la asignación*/
    variable=9;

    funcion(); /**Llama a la función "función"*/

    printf("Variable en la funcion main es: %i\n",variable);
    return 0;
}


PROGRAMA 14

#include <stdio.h>
#include <stdlib.h>

int main()
{
    imprime_valor(); /*Llama a la función imprime_valor*/
    imprime_valor();
    imprime_valor();
    imprime_valor();

    return 0;
}

void imprime_valor(){
    static int contador; /**Contador=0*Cuando se inicializa en cero en está linea, no toma en cuenta el static. No se puede asignar valor en el static */

 /** static contador=0; static int es un tipo de identificador entero, */

    contador=0;
    printf("Contador en funcion es: %i\n",contador);
    contador++; /*no se puede aplicar ya que es una variable externa*/
}



PROGRAMA 15

#include <stdio.h>
#include <stdlib.h>

sumar_valor(int numero)
{ 
    numero++;
    printf("Numero en funcion es: %i\n",numero);
    return;
}

int main()
{
    int numero=57; /**Este es un identificador dif.*/

    sumar_valor(numero); /**Llama a la función sumar_valor y le asigna el valor 57*/

    printf("Numero en main es: %i\n",numero);
    return 0;
}



PROGRAMA 16

#include <stdio.h>
#include <stdlib.h>

sumar_referencia(int *num) /**El asterisco toma el valor que hay en la memoria*/
    *num+=1;
    printf("Numero en funcion es: %i\n",*num);
    return;
}

int main() /**Función principal*/
{
    int numero=57; 
    sumar_referencia(&numero); /**Al agregar & manda el valor de numero hacia memoria*/
    printf("Numero en main es: %i\n",numero);
    return 0;
}



  
PROGRAMA 17

#include <stdio.h>
#include <stdlib.h>

float factorial(int n)

    if(n==0)
        return 1; 
/*Si n es igual a cero, la función termina*/
    else
        return n*factorial(n-1); 
/*Multiplicación que acumula*/

}

int main()
{
    int i,num;
    puts("Dame un numero: ");
    scanf("%i",&num);
 
    for(i=1;i<=num;i++)
{
        printf("\n\t%.2f",factorial(i)); 
/*Imprime el valor de la función factorial evaluada en i*/

}
    return 0;
}



PROGRAMA 18

#include <stdio.h>
#include <stdlib.h>

int producto(int a, int b)
{ 
    if(b==0){  /*Caso base*/
        return 0; /*Como be es cero, se retorna cero*/
    }
    else{
        return a+producto(a,(b-1)); 
    }
}

int main()
{
    /*En este caso se llama a la función y se imprime directamente*/
    printf("%i",producto(7,3));
    return 0;
}




PROGRAMA 19

#include <stdio.h>
#include <stdlib.h>

int factorial(int n){ /*Función de tipo entero que trabaja con n*/
    int r=1;
    int i=0;
    for(i=n;i>=1;i--){ /*Ciclo mientras 1 sea mayor o igual a uno*/
        r=r*i;
    }
    return r; /*Regresa al sistema el valor de r*/
}

int fact(int nr){ /*Función de tipo entero que trabaja con nr*/
    if(nr<=0){
        return 0; /*Termina el programa*/
    }
    else{
        return nr*fact(nr-1); /*Multiplica el valor de nr por si misma*/
    }
}

int main() /*Función principal*/
{
    int c=0;
    for(c;c<=10;c++){
        printf("%i = %i\n",c,factorial(c)); /*Imprime el resultado de la funcion factorial evaluada en c*/
    }
    return 0;
}




PROYECTOS


PROGRAMA 20

#include <stdio.h>
#include <stdlib.h>

int r; 
int tabla(int n, int l)
{ 
    int m=1;
    int c;
    printf("TABLA DEL %i HASTA EL %i\n",n,l); 
    puts(""); /**Funciona como un enter*/
    for(c=1;c<=l;c++)
        r=n*m; 
        printf("%i x %i = %i\n",n,m,r); 
        m++; 
}
}


int main() 
{
    int numero,r,limite,g;
    int m=1;
    puts("Dame la tabla que quieres: ");
    scanf("%i",&numero); 
    puts("Dame el limite que quieres: ");
    scanf("%i",&limite); /**Se ingresa el numero hasta el cual se desea que llegue la tabla*/
    system("cls"); /**Borra el texto de la pantalla*/
    do{ 
        if(limite>0 && numero>0) /**Se indican los limites que tienen ambos números*/
{ 
            g=tabla(numero,limite);
            m--;
        }
        Else
{                 if(numero>0){
                    puts("Dame el limite que quieres: ");
                    scanf("%i",&limite);
 }
Else
{
                    puts("Dame la tabla que quieres: ");
                    scanf("%i",&numero);
}
            system("cls");
        }
    }
while(m);
    return 0;
}




PROGRAMA 21

#include <stdio.h>
#include <stdlib.h>
#include<math.h>

int bandas; /**Variables globales de tipo entero*/
int colores;
int b2,b3,b4;

captura_bandas()
{     
    Do
{
        puts("Dame el numero de bandas de colores\n");
        scanf("%i",&bandas);
}
while(bandas!=3 && bandas!=4);
}

pedir_colores()
{
    int i=1;

    do{
        puts("COLORES\n");
        puts("1.- Negro");
        puts("2.- Cafe");
        puts("3.- Rojo");
        puts("4.- Naranja");
        puts("5.- Amarillo");
        puts("6.- Verde");
        puts("7.- Azul");
        puts("8.- Morado");
        puts("9.- Gris");
        puts("10.- Blanco");
        puts("11.-Dorado");
        puts("12.-Plata");
        puts("13.-SALIR");

        puts("Dame el primer color");
        scanf("%i",&colores); 
        switch(colores){ /**Dependiendo de el color de la primera banda llama a uno de los case*/
        case 1:
            para_case();
            getch();
            break; /**Termina el case*/
        case 2:
            para_case();
            getch();
            break;
        case 3:
            para_case();
            getch();
            break;
        case 4:
            para_case();
            getch();
            break;
        case 5:
            para_case();
            getch();
            break;
        case 6:
            para_case();
            getch();
            break;
        case 7:
            para_case();
            getch();
            break;
        case 8:
            para_case();
            getch();
            break;
        case 9:
            para_case();
            getch();
            break;
        case 10:
            para_case();
            break;
        case 11:
            para_case();
            break;
        case 12:
            para_case();
            break;
        case 13:
            i--; /**Termina el programa*/
            break;
        default: /**El numero ingresado no está en las opciones*/
            puts("Color no valido");
            getch();
        }

        system("cls");      
        }
while(i);
    }

calculo_3bandas()
{
    float res=0;
    res=res+((colores-1)*10); /**Al valor de la resistencia se le asigna el valor de el color seleccionado y se multiplica por 10*/
    puts("Dame el segundo color");
    scanf("%i",&b2);
        if(b2==13)
return 0;
    res=res+(b2-1);
    puts("Dame el tercer color");
    scanf("%i",&b3);
        if(b3==3){
            int a;
            a=pow(10,(b3-1));
            res=(res*(a+1));
            printf("El valor de la resistencia es: %.2f",res);
        }Else
{
        if(b3==11)
            res=(res/10);
            printf("El valor de la resistencia es: %.2f",res);
        }else
{
        if(b3==12)
{
            res=(res/100);
            printf("El valor de la resistencia es: %.2f",res);
        }else
{
    res=(res*(pow(10,(b3-1)))); /**El valor anterior de la resistencia se multiplica por el valor de 10 elevado al valor de la banda 3*/
}
        }
        printf("El valor de la resistencia es: %.2f",res);
        }

}

calculo_4bandas()
    float res=0;
    res=res+((colores-1)*100);
    puts("Dame el segundo color ");
    scanf("%i",&b2);
        if(b2==13) return 0;
    res=res+((b2-1)*10); 
    puts("Dame el tercer color");
    scanf("%i",&b3);
        if(b3==13) return 0;
    res=(res+(b3-1));
    puts("Dame el cuarto color");
    scanf("%i",&b4);
        if(b4==13) return 0;
        if(b4==3)
{
            int a;
            a=pow(10,(b4-1));
            res=(res*(a+1));
            printf("El valor de la resistencia es: %.2f",res);
        }else
{
        if(b4==11)
{
            res=(res/10);
            printf("El valor de la resistencia es: %.2f",res);
        }else
{
        if(b4==12){ /**Cuando de selecciona el color plata funciona como un divisor, no como multiplicador*/
            res=(res/100);
            printf("El valor de la resistencia es: %.2f",res);
        }else{
    res=(res*(pow(10,(b4-1))));
        }
        }
        printf("El valor de la resistencia es: %.2f",res);
        }
}

tolerancia()
    int tol;
    do{
            if(b2==13) return 0;
            if(b3==13) return 0;
            if(b4==13) return 0;
        puts("\nDame el valor de la tolerancia: ");
        scanf("%i",&tol);
        if(tol==11)
            puts("Tu tolerancia es de 5%");
}
        if(tol==12)
            puts("Tu tolerancia es de 10%");
}
  while(tol!=11 && tol!=12); 
}

para_case()
{
    if(bandas==3)
{
        calculo_3bandas();
        tolerancia();
    }
    if(bandas==4)
{
        calculo_4bandas();
        tolerancia();
    }
}

int main() 
{
    
    captura_bandas();
    pedir_colores(); 

    return 0;
}



PROGRAMA 22

#include <stdio.h>
#include <stdlib.h>

int m=0; 
/*Variable global*/
int limite;
int numero;

int tabla(int m)
{
        if(m>limite)
/*Si m es igual al limite termina el programa*/
            return 0;
}else
/*Si m es diferente de limite e imprimen nuevamente la multiplicación*/
                printf("%i x %i = %i\n",numero,m,m*numero);
            return tabla(m+1); /*Se llama a si misma pero incrementa el valor de m en 1*/
        }
}


int main()
{
    int r,g;
    int m=1;
    puts("Dame la tabla que quieres: ");
    scanf("%i",&numero);
    puts("Dame el limite que quieres: ");
    scanf("%i",&limite);
    system("cls"); 
    do
{
        if(limite>0 && numero>0)
{
            g=tabla(m);
            m--;
        }else

                if(numero>0){
                    puts("Dame el limite que quieres: ");
                    scanf("%i",&limite);
                }else{
                    puts("Dame la tabla que quieres: ");
                    scanf("%i",&numero);
                }
            system("cls");
        }
    }while(m);
    return 0;
}



PROGRAMA 23

#include <stdio.h>
#include <stdlib.h>

int c1,c2,c3,c4,c5,c6;
 /*Identificadores globales*/
float promedio;
char nombre[20];

Fun_cal()

    puts("\tCALFIFICACIONES"); 
    puts("Dame tu primera calificacion: ");
    scanf("%i",&c1);
    puts("Dame tu segunda calificacion: ");
    scanf("%i",&c2);
    puts("Dame tu tercera calificacion: ");
    scanf("%i",&c3);
    puts("Dame tu cuarta calificacion: ");
    scanf("%i",&c4);
    puts("Dame tu quinta calificacion: ");
    scanf("%i",&c5);
    puts("Dame tu sexta calificacion: ");
    scanf("%i",&c6);
    promedio=((c1+c2+c3+c4+c5+c6)/6);
    printf("Hola %s tu promedio es: %.2f y ",nombre,promedio);
    return promedio; 
/*Regresa al sistema el valor del promedio*/

}

tipo_estu()
{
    if(promedio<60) /*Condiciones que determinan que tan buen o mal estudiante eres*/
        puts("eres deficiente");
    if(promedio>=60 && promedio<70)
        puts("eres aceptable");
    if(promedio>=70 && promedio<80)
        puts("eres regular");
    if(promedio>=80 && promedio<90)
        puts("eres suficiente");
    if(promedio>=90 && promedio<=100)
        puts("eres Destacado");
}

int main()
{
    puts("Dame tu nombre: ");
    gets(nombre); 
/*Permite ingresar cadenas con los caracteres ascii*/
    Fun_cal();
    tipo_estu();
    return 0;
}






ENTREGABLES:



ENTREGABLE 1:
 Lea la función al terminar entregue un resumen en donde usted explique cada termino y como lo aplica, en sus palabras, no re-escriba la información. HAGA ANOTACIONES EN LAS HOJAS.






Programa 1 (entregable)

#include <stdio.h>
#include <stdlib.h>

int main (void)
     int j, k;
     int *ptr;
     j = 1; k = 2; ptr = &k; 
     printf("\n"); 
     printf("j tiene el valor: %d y esta alojado en: %p\n", j, (void *)&j); 
     printf("k tiene el valor: %d y esta alojado en: %p\n", k, (void *)&k);
     printf("ptr tiene el valor: %p y esta alojado en: %p\n", ptr, (void *)&ptr);
     printf("El valor del entero al que apunta ptr es: %d\n", *ptr); return 0;
}


Programa 2 (entregable)

#include <stdio.h>
#include <stdlib.h>


int main(void)
int mi_arreglo[] = {1,23,17,4,-5,100}; /*Se declara arreglo*/
int *ptr; 
int i;
ptr = &mi_arreglo[0]; 
printf("\n\n");
for (i = 0; i < 6; i++)
{
printf("mi_arreglo[%d] = %d ", i, mi_arreglo[i]); 
printf("ptr + %d = %d\n",i, *(ptr + i)); 
}
return 0;
}

Programa 3 (entregable)

#include <stdio.h>
#include <stdlib.h>
char strA[80] = "Cadena a usar para el programa de ejemplo"; 
char strB[80];
int main(void)
{
char *pA;
char *pB; 
puts(strA); 
pA = strA;
puts(pA);
pB = strB;
putchar('\n'); 
while(*pA != '\0') 
{
*pB++ = *pA++; 
}
*pB = '\0'; 
puts(strB);
return 0;
}


ENTREGABLE 2: 
Desarrollar un programa con las siguientes opciones:

a) Introducir un valor entero impar comprendido entre 1 y 29.

b) Calcular la serie numérica 1 + 3 +5 +....+ n   IMPRIMIRLA

c) Calcular  1*3*5*....*n   IMPRIMIRLA

d) Salir del programa


#include <stdio.h>
#include <
stdlib.h>

int num,op,imp=1,res=1,c=1; 

numero()

    printf("Dame un numero impar entre 1 y 29\n");
    scanf("%i",&num);
    while (num%2==0 || num<1 || num>29)
{
            puts("El numero no es valido, ingresalo nuevamente\n");
            scanf("%i",&num);
        }
}

suma(c)
{
    if(c>num){
        printf("El resultado de la suma es: %i\n",imp);
        return 1;
    }
    else{
        imp=imp+2; /
*Incrementa el valor de imp en 2, por lo que sigue siendo un impar*/

        return suma(c+1); 
/*Se llama a si misma pero el valor de c aumenta en 1*/
    }
}

mult(c)
{
    if(c>num){
        printf("%.2f\n",res); 
        return 1;
    }else{
        imp=imp+2; /
*Incrementa el valor de imp en 3, por lo que sigue siendo un impar*/

        res=res*imp; 
/*Se acumula lo multiplicado*/

        return mult(c+1);  
    }
}

int main ()
{  
    puts("OPCIONES\n"); 
    puts("1) Suma de numeros impares");
    puts("2) Producto de numeros impares");
    puts("3) SALIR");
    scanf("%i",&op);  
    switch(op){
        case 1:
            puts("Suma\n");
            numero();  
            suma();  
            break; /*Termina el case*/
        case 2:
            puts("Multiplicacion\n");
            numero();
            mult();
            break;
        case 3:
            return 0;
            break;
        default: /
*No se eligió una opción valida*/

            puts("Opcion no valida\n");
    }
}




ENTREGABLE 3: 
Escriba un programa que despliegue todos los subconjuntos no vacios del conjunto de los números del 1 a N.

#include <stdio.h>
#include <stdlib.h>

int num; 
int c=1;

void sub_1(c)
    if(c>num)
        return 1;
    else
        printf("%i\n",c); /*Imprime todos los numero desde el 1 hasta el elegido por el usuario de forma descendente*/
        return sub_1(c+1); 

}

void sub_2(c)
{
    int t=1;
    for(t;(t+c)<=num;t++){
        printf("%i,%i\n",c,t+c); /*Imprime los subconjuntos*/
    }
    if(c>=num-1) /*Cuando el subconjunto termina el valor de c aumenta para continuar el mismo*/
        return 1;
    else{
        return sub_2(c+1);
    }
}

void sub_3(c)
{
    if(c>num)
        return 1;
    else
        printf("%i ",c); 
        return sub_3(c+1);
}

int main() 
{
    puts("Dame un numero: ");
    scanf("%i",&num);
    system("cls"); 
    sub_1(c);
    sub_2(c);
    sub_3(c);
    return 0;
}



No hay comentarios:

Publicar un comentario