viernes, 27 de mayo de 2011

Bucles

Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana.
Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

Código en C

#include<stdio.h>
void main(void ){
      int numero_vendedores,i,j;
      float saldo, ventas=0, ventas_total=0,comision, total;
      printf("da el numero de vendedores: ");
      scanf("%d",&numero_vendedores);
       printf("da el saldo: ");
      scanf("%f",&saldo);
    
      for(i=1;i<=numero_vendedores;i++){
      printf("Vendedor %d \n",i);
            for(j=1;j<=3;j++)     {
                         printf("da la venta %d: ",j);
                         scanf("%f: ",&ventas);
                         ventas_total=ventas+ventas_total;      
                                
                                  }
                                  comision= .1*ventas_total;
                                  total=comision+saldo;
                                  printf("comision de vendedor %d = %.2f \n",i, comision);
                                  printf("total de vendedor %d = %.2f \n\n",i, total);      
                                    
                                       }

      }



En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la siguiente forma:
Si el obrero trabaja 40 horas o menos se le paga $2.085 por hora
Si trabaja mas de 40 horas se le paga $2.085 por cada una de las primeras 40 horas y $2.600 por cada hora extra.

Código en C

#include<stdio.h>
int main(){
      int numero_obreros,i,j;
      float saldo, horas=0,  salario;
      printf("da el numero de obreros: ");
      scanf("%d",&numero_obreros);
  
    
      for(i=1;i<=numero_obreros;i++){
      printf("obrero %d \n",i);
          salario=0;
                         printf("da la horas de trabajo: ");
                         scanf("%f: ",&horas);
                         if(horas<=40){
                         salario=horas*2085;      
                         printf("salario de obrero %d = %.2f \n",i, salario);      
                                         }
                         else if(horas>40){
                                    salario=40*2085+((horas-40)*2600);      
                                    printf("salario de obrero %d = %.2f \n",i, salario);
                                
                              }
                                  
                                     }            
                                    
  
      }



Determinar cuantos hombres y cuantas mujeres se encuentran en un grupo de n personas, suponiendo que los datos son extraídos alumno por alumno.

Código en C

#include<stdio.h>
int main(){
      int numero_personas,i,j, genero, hombres=0,  mujeres=0;
      printf("da el numero de personas: ");
      scanf("%d",&numero_personas);
  
    
      for(i=1;i<=numero_personas;i++){
      printf("selecciona 1=hombre, 2=mujer: ");
      scanf("%d: ",&genero);
        
                         if(genero==1){
                         hombres=hombres+1;
                         }
                         else if(genero==2){
                               mujeres=mujeres+1;
                                
                              }
                                  
                                     }
                                                
          printf("hay %d hombres y %d mujeres", hombres, mujeres);                    
  
      }




TDA


Es un TDA definido como:

Una colección ordenada de elementos, cuya
inserción y extracción se realiza por un
mismo extremo. Ese extremo se conoce
como “la parte superior”, la cima, o el tope
de la pila.

Codigo fuente de un programa para implemetar una pila:

/*ejemploPila.c*/
#include <stdio.h> // esta biblioteca sirve para gestionar memoria
#include <malloc.h> // esta biblioteca sirve para gestionar memoria
#ifndef Elem
#define Elem int
#endif
#include "pila.c"


/*programa principal*/

//void main (void) {
//Pila P;
//int x,n, num;
/* programa principal */
void main(void){
Pila P;
int x,n,num;
Elem e;
printf("\t\t\t***\n");
P = nuevaP();
printf("cuantos numeros quieres? :");
scanf("%i",&num);
printf("se capturaran %i numeros...\n",num);
for (x=0;x<num;x++){
printf("Dame el %i numero :",x+1);
scanf("%i",&n);
P = insertaP(n,P);
}
printf("Este es el contenido de la pila:\n");
for (x=0;x<num;x++){
e = tope(P);
printf("Elemento %i-esimo de la Pila: %i\n",x+1,e);
P = sacaP(P);
}
getch();
}


Codigo Fuente de las funciones de una Pila:


/*pila.c*/
#include <stdio.h> // esta biblioteca sirve para gestionar memoria
#include <malloc.h> // esta biblioteca sirve para gestionar memoria
#ifndef Elem
#define Elem int
#endif

/* Definicion de los tipos -las estructuras- de la Pila */
//typedef Elem int;
typedef struct celda * Pila;
struct celda {
Elem dato;
Pila sig;
};
/* Definicion de las funciones de la Pila */
Pila nuevaP();
Pila insertaP(Elem,Pila);
Pila sacaP(Pila);

int esVaciaP(Pila);
Elem tope(Pila);
/* CUERPOS DE LAS FUNCIONES */
Pila nuevaP()
{
return(NULL);
}

Pila insertaP(Elem elem,Pila pila)
{
Pila tempo;
/*Verifica que la asignacion de nueva memoria a tempo sea exitosa
* * (Pila) es una promocion de tipos de lo que regresa malloc
* * malloc gestiona memoria suficiente para un dato de tipo struct celda */
if(tempo = (Pila)malloc(sizeof(struct celda)))/*el tamaño de strcut celda en bits se le pasa a sizeof , de ahi se lo pasa a malloc como parametro para
 que verifique si hay memoria suficiente para que a tempo se le asigne como tipo pila*/
{
tempo->dato=elem; // Al campo dato de la nueva estructura se le asigna elem  operador flechita ->
tempo->sig=pila; // Al puntero sig de la nueva estructura se le hace apuntar al puntero de la pila -lo
//conecta a la pila recibida
//pila=tempo;
// Al puntero de la pila, se le hace apuntar a la nueva memoria creada, con lo que
//se actualiza y se adiciona la nueva estructura creada
}
else
printf("error(1)");
return pila;
}

Pila sacaP(Pila pila)
{
//Pila tempo;
if(esVaciaP(pila))
printf("error(5)");
else
{
Pila tempo=pila->sig;
//tempo=pila->sig;
free(pila);
pila=tempo;
}
return(pila);
}

int esVaciaP(Pila pila)
{     //-
// if (pila == NULL)    |
// return 1;       |- //es lo mismo q  return(!pila);
//else |
// return 0; |
//       -
return(!pila);
}

Elem tope(Pila pila)
{
if(esVaciaP(pila))
printf("error(5)");//
return(pila->dato);
}

/*Pila saceE(Pila pila){
printf("El elemento de la cima es %i", tope(pila);
pila = sacaP(pila);
}*/

piramide,cuenta letras


#include <stdio.h>

void main(void){
    int a=1;
    char c=' ', p[40];
    printf("Escribe una palabra: ");
    scanf("%s", &p);
    while( c!='\0'){
             c=p[a++];
    }
    printf("%i",a-1);

}
PIRÁMIDE POR PARAMETROS POR VALOR


#include <stdio.h>

void blancos (int, int);
void unos (int);
int main (){
     int n, fila;
     printf("Numero de pisos de la piramide: ");
     scanf("%d",&n);
     for (fila=1; fila<=n; fila++){
         printf(" %d,%d   ", fila, n);
         blancos(fila, n);
         printf(" %d,%d   ", fila, n);
         unos (fila);
          }
       }
      
      
         void blancos(int fila, int n){
              int columna;
              for(columna=1; columna<=n-fila; columna++){
                                                   printf(" ");
                                                   }
                                                   fila++;
                                                   n++;
                                                   printf("%d,%d   ",fila,n);
                                               }
         void unos (int fila){
             int columna;
             for(columna=1; columna<=fila; columna++){
             printf("1 ");
             }
             printf("\n");
         }





PIRAMIDE POR PARAMETROS POR REFERENCIA


#include <stdio.h>
#include <conio.h>
void blancos (int*, int*);
void unos (int);
int main (){
     int n, fila;
     printf("Numero de pisos de la piramide: ");
     scanf("%d",&n);
     for (fila=1; fila<=n; fila++){
         printf(" %d,%d   ", fila, n);
         blancos(&fila, &n);
         printf(" %d,%d   ", fila, n);
         unos (fila);
         }
         getch();
         }
         
         
         void blancos(int* fila, int* n){
              int columna;
              for(columna=1; columna<=*n-*fila; columna++){
                                                   printf(" ");
                                                   }
                                                   fila++;
                                                   n++;
                                                   printf("%d,%d   ",fila,n);
                                                   }
         void unos (int fila){
             int columna;
             for(columna=1; columna<=fila; columna++){
             printf("1 ");
             }
             printf("\n");
             }








condicionales compuestas, estructuras condicionales y secuenciales


En una fabrica de computadoras se planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra; si el número de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o mas se les da un 40% de descuento. El precio de cada computadora es de $1.150.000

Diagrama de Flujo




Código en C

#include <stdio.h>
void main (void){
     int cmp, desc,total, precio;
     printf("cuantas computadoras deseas comprar: ");
     scanf("%d", & cmp);
     if (cmp < 5){
             desc=(115000*.10);
             precio= 115000-desc;
             total= precio*cmp;
             printf("el precio total es:%f",total);
             }
             else if (cmp >= 5 && cmp <10){
             desc=(115000*.20);
             precio= 115000-desc;
             total= precio*cmp;
             printf("el precio total es:%f",total);
             }
             else if (cmp >= 10){
             desc=(115000*.40);
             precio= 115000-desc;
             total= precio*cmp;
             printf("el precio total es:%f",total);
             }  
          
             }


En Re industrias se ha establecido una promoción de las llantas marca “Hancock”, dicha promoción consiste en lo siguiente:
Si se compran menos de cinco llantas el precio es de $130.000 cada una, de $120.000 si se compran de cinco a 10 y de $115.000 si se compran mas de 10.
Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y la
que tiene que pagar por el total de la compra.


Diagrama de Flujo



Código en C
#include <stdio.h>
void main (void){
    int nll, llantas, total;
    printf("cuantas llantas se compraron: ");
    scanf("%d", & nll);
    if (nll < 5){
                llantas=130000;            
                total= nll*130000;
                printf("por cada llanta pagas: %d \n", llantas);
                printf("el total de la compra es: %d", total);
                }
                else if ( nll >= 5 && nll <= 10){
                llantas=120000;            
                total= nll*120000;
                printf("por cada llanta pagas: %d \n", llantas);
                printf("el total de la compra es: %d \n", total);
                }
                else if ( nll > 10){
                llantas=1150000;            
                total= nll*115000;
                printf("por cada llanta pagas: %d", llantas);
                printf("el total de la compra es: %d", total);
                }
                
                }


Una frutería ofrece las manzanas con descuento según la siguiente tabla:
NUM. DE KILOS COMPRADOS % DESCUENTO
0 - 2 0%
2.01 - 5 10%
5.01 - 10 15%
10.01 en adelante 20%
Determinar cuanto pagara una persona que compre manzanas es esa frutería.


Diagrama de Flujo
#include <stdio.h>
void main (void){
     float kilos, total, precio, desc;
     printf("cuanto cuesta el kilo: ");
     scanf("%f", & precio);
     printf("cuantos kilos vas a llevar: ");
     scanf("%f", & kilos);
     if (kilos <= 2){
               total=precio*kilos;
               printf("el total a pagar es:%.2f ", total);
               }
               else if (kilos >= 2.01 && kilos<= 5){
                    desc= precio*.10;
                    precio= precio-desc;
                    total= precio * kilos;
                    printf("el total a pagar es:%.2f ", total);
               }
                else if (kilos >= 5.01 && kilos <= 10){
                     desc= precio*.15;
                    precio= precio-desc;
                    total= precio * kilos;
                    printf("el total a pagar es:%.2f ", total);
               }
               else if (kilos >10 ){
                     desc= precio*.20;
                    precio= precio-desc;
                    total= precio * kilos;
                    printf("el total a pagar es:%.2f ", total);
               }
             
               }
               






Calcular el total que una persona debe pagar en un llanta, si el precio por unidad es de $80.000 si se compran menos de 5 llantas y de $70.000 si se compran 5 o más.


Diagrama de flujo
Código en C

#include <stdio.h>
void main (void){
     int unidades, total;
     printf("cuantas llantas deseas comprar:");
     scanf("%d", & unidades);
     if (unidades<=5){
                  total=unidades*80000;
                  printf("el precio es:%d", total);
                  }
                  else if(unidades >5){
                                     total=unidades*70000;
                                     printf("el precio es:%d", total);
                                     }
                                     
                                     }

En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el número escogido es menor que 50 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 50 el descuento es del 20%. Obtener cuanto dinero se le descuenta.


Diagrama de flujo




Código en C


#include <stdio.h>
void main (void){
     float totalapagar, descuento;
     int num;
     printf("de cuanto es el total de la compra:");
     scanf("%f", & totalapagar);
     printf("que numero te salio?:");
     scanf("%d", & num);
     if (num < 50){
                 descuento= totalapagar*.15;
                 printf("el descuento es de:%.2f", descuento);
                 }
                 else if(num >= 50){
                      descuento = totalapagar*.20;
                      printf("el descuento es de:%.2f", descuento);
                 }
              
                 }


Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico; la formula que se aplica cuando el sexo es femenino es:

num. pulsaciones = (220 - edad)/10
y si el sexo es masculino:
num. pulsaciones = (210 - edad)/10


Diagrama de Flujo



Código en C

#include <stdio.h>
void main (void){
     int edad, sex;
     float numpuls;
     printf("cual es tu edad: ");
     scanf("%d",& edad);
     printf("que sexo eres? \n\n 1Mujer \n 2Hombre\n");
     scanf("%d", & sex);
     if (sex ==1){
          
                 numpuls =(220 - edad)/10;
                 printf("el numero de pulsaciones por cada 10 segundos es:%f", numpuls);
                 }
            else if (sex ==2){
                 numpuls =(210 - edad)/10;
                 printf("el numero de pulsaciones por cada 10 segundos es:%f", numpuls);
              
                 }
              
                 }


Una compañía de seguros esta abriendo un departamento. de finanzas y estableció un programa para captar
clientes, que consiste en lo siguiente: Si el monto por el que se efectúa el préstamo es menor que $500000 la
cuota a pagar será por el 3% del monto, y si el monto es mayor que $500000 la cuota a pagar será el 2% del monto. La compañía desea determinar cual será la cuota que debe pagar un cliente.


Diagrama de Flujo

Código en C


#include <stdio.h>
void main (void){
     float monto, cuotafinal;
     printf("de cuanto es el prestamo:");
     scanf("%f",& monto);
     if (monto < 500000){
               cuotafinal=( monto*.03)+ monto;
               printf("la cuota final a pagar es:%.2f", cuotafinal);
               }
               else if (monto >= 500000){
               cuotafinal=( monto*.02)+ monto;
               printf("la cuota final a pagar es:%.2f", cuotafinal);
               }
            
               }

Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes condiciones: Si los ingresos del comprador son menores de $800000 el primer pago será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en diez años. Si los ingresos del comprador son de $800000 o más el la cuota inicial será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 7 años.

La empresa quiere obtener cuanto debe pagar un comprador por concepto del primer pago y cuanto por cada pago parcial.


Diagrama de Flujo



Código en C
#include <stdio.h>
void main (void){
     float pc,ing, pago1, pagop;
     printf("Precio de la casa: ");
     scanf("%f",& pc);
     printf("de cuanto son sus ingresos: ");
     scanf("%f",& ing);
     if ( ing < 800000){
          pago1= pc*.15;
          pagop= (pc*.85)/120;
          printf("el primer pago es de:%.2f \n",pago1);
          printf("los pagos parciales son de:%.2f ",pagop);
          }
          else if ( ing >= 800000){
          pago1= pc*.30;
          pagop= (pc*.70)/84;
          printf("el primer pago es de:%.2f \n",pago1);
          printf("los pagos parciales son de:%.2f ",pagop);
          }
          
          }




Dada un cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato
desconocido.

Diagrama de Flujo
Código en C
#include <stdio.h>
void main(void)
{
    float pesos,dolar,valdol;
    printf ("Introduzca el valor del dolar:  ");
    scanf ("%f",& valdol);
    printf ("Da la cantidad en pesos:  ");
    scanf ("%f",& pesos);
    dolar=pesos/valdol;
    printf ("El valor en dolares es:%f  ", dolar);
  
}

Leer un número y escribir el valor absoluto del mismo.

Diagrama de Flujo

Código en C
#include <stdio.h>
#include <math.h>
 main (){
    float num;
    printf ("Da un numero: ");
    scanf ("%f",& num);  
    printf("El valor absoluto es:%.1f ",fabs(num));
 }
             
La presión, el volumen y la temperatura de una masa de aire se relacionan por la formula:
masa = (presión * volumen)/(0.37 * (temperatura + 460))

Diagrama de Flujo
Código en C
#include <stdio.h>
void main (void){
     float  p, v, t, masa;
    
     printf("Da la cantidad de presion: ");
     scanf("%f",& p);
     printf("Da la cantidad de volumen: ");
     scanf("%f",& v);
     printf("Da la cantidad de temperatura: ");
     scanf("%f",& t);
     masa= (p * v)/(0.37 * (t+ 460));
     printf("La masa de aire es:%f ", masa);
     
     }

Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la formula es:
Num_ pulsaciones = (220 - edad)/10

Diagrama de Flujo

Código en C

#include <stdio.h>
void main (void){
     int edad;
     float numpuls;
     printf("da la edad de la persona:");
     scanf("%d",& edad);
     numpuls= (220-edad)/10;
     printf("el numero de puslasiones es:%.2f", numpuls);
     getch();
     }

Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.


Diagrama de flujo

Código en C
#include <stdio.h>
void main (void)
{
     float incr=.25, salant, nsald;
     printf("ingrese el salario anterior:");
     scanf("%f", & salant);
     nsald= (incr*salant)+ salant;
     printf("el nuevo saldo es:%.2f", nsald);
     
     }



En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se
reparte conforme a la siguiente. tabla:
Área Porcentaje del presupuesto
Ginecología 40%
Traumatología 30%
Pediatría 30%
Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

Diagrama de Flujo
#include <stdio.h>
void main (void){
     float g, t, p, pa;
     printf("ingrese el presupuesto anual:");
     scanf("%f" , & pa);
     g=pa*.40;
     t=pa*.30;
     p=pa*.30;
     printf(" el presupuesto de ginecologia es:%.2f \n", g);
     printf(" el de traumatologia es:%.2f \n", t);
     printf(" y el  de pedriatria es:%.2f", p);
     
     }



El dueño de una tienda compra un articulo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.

Diagrama de Flujo

Código en C
#include <stdio.h>
void main (void){
     float precioart, porcentaje, gan;
     printf("ingrese el precio al que se compro el articulo:");
     scanf("%f", & precioart);
     porcentaje= precioart*.30;
     gan= precioart+porcentaje;
     printf(" el precio de venta es:%.2f", gan);
     
     }

Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos.
Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

Diagrama de Flujo


#include <stdio.h>
void main (void){
     float l,m, v, prom;
     printf("da el tiempo de lunes:");
     scanf("%f" , & l);
      printf("da el tiempo del miercoles:");
     scanf("%f" , & m);
      printf("da el tiempo del viernes:");
     scanf("%f" , & v);
     prom= (l+m+v)/3;
     printf("el tiempo promedio es:%.2f", prom);
  
     }

Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad

distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.


Diagrama de Flujo


#include <stdio.h>
void main (void){
     float c1, c2, c3, total, p1,p2,p3;
     printf("ingrese la cantidad la persona 1:");
     scanf("%f" , & c1);
     printf("ingrese la cantidad la persona 2:");
     scanf("%f" , & c2);
     printf("ingrese la cantidad la persona 3:");
     scanf("%f" , & c3);
     total=c1+c2+c3;
     p1= (c1*100)/total;
     p2= (c2*100)/total;
     p3= (c3*100)/total;
     printf("el porcentaje que invirtio la persona 1 es:%.2f \n", p1);
     printf("el porcentaje que invirtio la persona 2 es:%.2f \n", p2);
     printf("el porcentaje que invirtio la persona 3 es:%.2f", p3);
  
     }