Buscar este blog

sábado, 24 de marzo de 2012

Tarea 1 Unidad 3

-¿Que es una función? 

Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.

-Prototipo de una función.

Un prototipo de función le da información importante al compilador. En el prototipo se indican el tipo de dato que retorna la función, el número, tipo y orden de parámetros que recibe la misma. El compilador utiliza los prototipos para verificar las llamadas a funciones. Antes el prototipado no existía y el compilador no podía detectar ciertos errores.
Veamos un ejemplo de un prototipo de función:
int maximo(int, int, int);
Este prototipo indica que la función de nombre máximo retorna como resultado un valor de tipo entero. Además informa que la función debe ser llamada con tres parámetros del tipo entero también.
El prototipo también sirve para la coerción de argumentos, o sea, si la función es llamada con valores de otro tipo diferentes a los definidos en el prototipo de esa función, el compilador tratará de convertir esos valores a los tipos de datos correspondientes declarados en el prototipo (esto funcionará siempre y cuando sea posible la conversión entre esos tipos de datos). Por ejemplo, si la función espera un entero y recibe un decimal, intentará convertir ese decimal al entero truncando la parte decimal, lo cual puede generar errores si la exactitud de ese dato es importante. Por esta razón se debe tener mucho cuidado en la coerción de tipos automática.

El prototipado de funciones puede omitirse cuando se programa; el compilador formará el prototipo dependiendo de la primera aparición de la función. También, por omisión, el compilador asume que toda función regresa un valor del tipo entero de forma predeterminada.



Función sin parámetros sin entregar valor

void cuadrados()

{
    int contador;

    for( contador=1; contador<10; contador++)
        printf("%d\n",contador*contador);
}




Función con parámetros sin entregar valor

void compara( int a, int b )
    { 
                    if ( a>b )                     printf( "%i es mayor que %i\n" , a, b ); 


    else
                   printf( "%i es mayor que %i\n", b, a );
return; 

  }

Función con parámetros entregando un valor

int compara( int a, int b ) 
   { 
     int mayor;
                       if ( a>b ) 
                       mayor = a; 
   else 

                      mayor = b; 
 return mayor; 
http://www.alegsa.com.ar/Notas/112.php
http://cfievalladolid2.net/tecno/cyr_01/control/lengua_C/funciones.htm

domingo, 18 de marzo de 2012

Examen no.1 secuencia de Fibonacci


Examen no.1
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
Calcule n terminos de la seciencia de fibonacci y recuerde que los primeros dos
numeros son 0,1.
pseudocodigo:
1. inicio.
 anterior=0, siguiente=0, actual=1, N=0, c=2  int
do
{
print "Numero de ternimos de la serie:"
read N
if(N<=2)
{ print "El numero de ternimos debe ser mayor a dos"
}
} while(N<=2)
print "Serie de fibonacci para ", N, " Terminos"
read "0 , 1, "
for(c=3 to N  step c=c+1)
{
siguiente=anterior+actual
anterior=actual
actual=siguiente
print siguiente, " , "
}
fin

miércoles, 14 de marzo de 2012

PRACTICA 10


problema 1
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
 Un molde para calcular la poblacion mundial en miles de  millones de personas,
 esta dado por la ecuacion         poblacion=4.88(1+e^0.2t)
 utilizando esta formula, escriba un programa que muestre una tabla anual de
 pobacion de enero de1985 a enero de 2012 
Pseudocodigo:
1.            Inicio.
A=0, t=0 int
poblacion=0.0 real
 print ("Anio         Poblacion"), " millones de personas"
 for(A=1985  to  2012  step   A=A+1)
 {
 poblacion=4.88*(1+exp(0.2*t))
 print A, "          ", poblacion
 t=t+1
 }
 Fin


problema 2
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
 Escriba un programa que despliegue una tabla de valores de x y y para un
 proyectil disparado a una velocidad de 500 pies/s y au angulo de 22.8°
 (recuerde convertir la medida a radianes). la tabla debe contener valores que
 correspondad a un intervalo de o a 10s en invrementos de 1/2s.
Pseudocodigo:
1.            Inicio.
 v=500.0, ang=(22.8*3.1416)/180.00, x=0.0, y=0.0, t=0.0  real
 print "  x              y"
  for(t=0.0  step 10  to  t=t+0.5)
  {
  x=v*t*cos(ang)
  y=v*t*sin(ang)
  print x, "       ", y
  }
  Fin 



problema 3
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
Escriba un programa que utilise una gaza anidada para calcular y desplegar el
promedio del ensaye para cada experimento.
Pseudocodigo:
1.       Inicio.
 E=0, R=0   int
ensaye=0.0, suma=0.0   real
 for(E=1  to 4  step  E=E+1)
 {suma=0.0
 Print "introdusca resultados del experimento", E
 for(R=1  to  6  step  R=R+1)
 {
 Print "Resultado", R, "="
 Read ensaye
 suma=suma+ensaye
 }
 Print "promedio es:", (suma/6.0)
 }
 Fin


problema 4  a
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
Modifique el problema tres para que el usuario introdusca la cantidad de
resultados de los ensayes.
Pseudocodigo:
1.            Inicio.
E=0, R=0, N=0  int
 ensaye=0.0, suma=0.0   real
 for(E=1  to 4  step  E=E+1)
 {suma=0.0
 Print "Introdusca la cantidad de resultados por experimento:"
 Read N
 Print "introdusca resultados del experimento", E
 for(R=1 to N  step  R=R+1)
 {
 Print "Resultado", R, "="
 Read ensaye
 suma=suma+ensaye
 }
 Print "promedio es:",  (suma/N)
 }
Fin

problema 4   b
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
Vuelva a escribir el problema 3 para eliminar la gaza interior. para hacer esto
tiene que introducir seis resultados por experimento en lugar de uno a la ves.
Pseudocodigo:
1.                  Inicio.
 E=0, R=0, N=0  int
 ensaye=0.0, suma=0.0  real
 for(E=1  to 4  step  E=E+1)
 {suma=0.0
 Print "Introdusca la cantidad de resultados por experimento:"
 Read N
 for(R=1  to N  step  R=R+1)
 {
 Print "Resultado", R, "="
 Read ensaye
 suma=suma+ensaye
 }
 Print "promedio es:", (suma/N)
 }
 Fin 


problema 5   a
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
produzca una tabla de valores X Y para lo siguiente:
a) Y=x+x^2/2+x^3/6+x^4/24+x^5/120 para x entre 5 y 1 en incrementos de 0.2 
Pseudocodigo:
1.                  Inicio.
x=0, y=0   real
print "  X            Y"
for(x=5.0 to 10.0  step  x=x+0.2)
{
y=x+pow(x,2.0)/2.0+pow(x,3.0)/6.0+pow(x,4.0)/24.0+pow(x,5.0)/120.0
print setw(4), x, setw(15), y
}
Fin

problema 5   b
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
produsca una tabla de valores X Y para lo siguiente:
b) y= 24e^0.04t para t entre 1 y 10 en incrementos de 0.2 
Pseudocodigo:
1.                  Inicio.
  t=0, y=0   real
print "  t           Y"
for(t=1.0 to 10.0  step  t=t+0.2)
{
y=24.0*exp(0.4*t)
print setw(4), t, setw(15), y       
}
Fin

problema 5   c
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
produsca una tabla de valores X Y para lo siguiente
c) Y= 5x^5-2x^3+x para x entre 5 y 10 en incrementos de 0.5  
Pseudocodigo:
1.            Inicio.
  x=0, y=0   real
print "  X            Y"
 for(x=5.0 to  10.0  step  x=x+0.5)
{
y=5.0*pow(x,5.0)-2.0*pow(x,3.0)+x
print setw(4), x, setw(15), y       
}
Fin

problema 6
 GARCIA GAETA FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
produsca una tabla de valores X Y para lo siguiente
Escriba un programa que calcule los valores de x y z cuando y=x^2z/(x-z)   
Pseudocodigo:
1.            Inicio.
 system("color 8b")
x=0, y=0, z=0  real
 print setw(4), "X" setw(15), "Z", setw(15), "Y"
 for(x=2 to 6 step x=x+1)
 {
 Print endl
 for(z=2 to 6 step z=z+1)
 {
 if(x==z)
 { print setw(4), x, setw(15), z, setw(31), "Funcion indefinida"
 }
 else
 {
 y=pow(x,2)*z/(x-z)
 }
 Print setw(4), x, setw(15), z, setw(15), y
 }
 }
 Fin 



sábado, 10 de marzo de 2012

TAREA: CAPITULO 1 DEL TUTORIAL

TUTORIAL
 DE PROGRAMACION
GARCIA GAETA FRANCISCO ARMANDO NO.COTROL: 11211033

PRACTICA 9

problema 1

 GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
 Escriba un programa que calcule y visualice:
Pseudocodigo:
1.       Inicio.
n=0, f=1, suma=0, c1=0, c2=0  int
print "Cantidad determinos:"
read n
for(c1=1 to n step c1=c1+1)
{
f=1
for(c2=c1 to 1 step c2=c2-1)
{ f=f*c2
}
Print f
if(c1==n)
{
Print "="
}
else
{ print "+"
}
suma=suma+f
}
Print suma
Fin 



problema 2

 GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
El valor de e^x se puede aproximar por la suma
1+x+x^2/2!+x^3/3!+.....x^n/n!
Escribir un programa que tome un valor x como entrada y visualice la suma
para cada uno de los valores de x   
pseudocodigo:
1.       Inico.
 suma=1.0, x, f=1.0 real
 c1=0, c2=0  int
print  "ingresar volor de la x="
read x
 print "1+"
 for(c1=1 to 20 step c1=c1+1)
 {
 f=1.0
 for(c2=c1 to 1 step c2=c2-1)
 { f=f*c2
 }
 Print (pow(x,c1))/f
 suma=suma+(pow(x,c1)/f)
 if(c1==20)
 { print " = "
 }
 else{ print " + "
 }
 }
Print suma
Fin 



problema 3

GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
  Visualiza en pantalla una figura similar a la siguiente:
  *
  **
  ***
  ****            
Pseudocodigo:
1.       Inicio.
nl, c1=0,c2=0  int
 ca=' '  char
 print "Numero delineas="
read nl
 print "Ingresar caracter:"
 read ca
 for(c1=1 to nl step c1=c1+1)
 {
 for(c2=1 to c1 step c2=c2+1)
 {
 Print ca
}
Print endl
}
Fin 



problema 4

GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
Diseñe un programa para leer los precios de los artículos vendidos y calcúlese
el numero de cada clase de moneda que debe darse de cambio de tal manera
que se devuelva un mínimo de moneda fraccionaria.
Pseudocodigo:
1.       Inicio.
precio=0, cambio=0  int
half=50, quar=25, dime=10, nickel=5, peni=1  int
m1, m2, m3, m4, m5  int
carac=' ' char
do
{
Print "Precio del producto="
Read precio
if(precio<=100)
{
cambio=100-precio
m1=cambio/half
m2=(cambio%half)/quar
m3=(cambio%half)%(quar)/dime
m4=(cambio%half)%(quar)%(dime)/nickel
m5=(cambio%half)%(quar)%(dime)%(nickel)/peni
print "El cambio sera"
print "Monedas de 50:", m1
print "Monedas de 25:", m2
print "Monedas de 10:", m3
print "Monedas de 5:", m4
print "Mondeas de 1:", m5
} print "hay otro cliente:"
Read carac
}while(carac=='s')
Fin 



problema 5

GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL: 11211033
Diseñe un programa para leer la siguiente información: nombre del granjero, tipo
de fumigación(código entero entre el 1-4) y el numero de hectáreas (entero)
pseudocodigo:
1.       Inicio.
hec=0,tipo  int
cuenta=0 float
print "Ingrese la cantidad de hectareas fumigadas:"
read hec
print "Tipo de fumigacion:"
read tipo
switch(tipo)
{
case 1:cuenta=hec*10
break
case 2:cuenta=hec*20
break
case 3:cuenta=hec*30
break
case 4:cuenta=hec*50
break
default: print "Error en el tipo de fumigación"
}
if(hec>=1000)
{
cuenta=cuenta-(cuenta*.05)
}
if(cuenta>=1500)
{
cuenta=cuenta-((cuenta-1500)*(.10))
}
Print "Cuenta final=", cuenta
Fin 


sábado, 3 de marzo de 2012

PRACTICA 8

problema 1
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL: 11211033
Diseñe un progrma para calcular los valores de la funcion
               f(x,y)=(x^2-y^2)/(x^2+y^2)
para x= 2, 4, 6, 8
         y= 6, 9, 12, 15, 18, 21                           
Pseudocodigo:
1.       Inicio.
int x, y
real  f
print "x\ty\tf(x,y)"
for(x=2;x<=8;x=x+2)
{
for(y=6;y<=21;y=y+3)
{
f=(pow(x,2)-pow(y,2))/(pow(x,2)+pow(y,2))
print , x, "\t", y, "\t", f
}
}
Fin 



problema 2

GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
diseñe un programa para calcular el nuero de puntos con coordenadas de valores
enteros que están contenidos en la siguiente elipse
Pseudocodigo:
1.       inico
int x,y
real f
print "Las coordenadas que cumplen x^2/16+y^2/25=1 son"
Print “x      y"
for(x=-4;x<=4;x=x+1)
{
for(y=-5;y<=5;y=y+1)
{

f=(pow(x,2)/16)+(pow(y,2)/25)
if(f==1.0)
{print x, "      ", y
}
}
}
Fin 




problema 3
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
Diseñe e implemente un programa que solicite a su usuario
un valor no negativo n y visualice la siguiente salida
Pseudocodigo;
1.       inicio
system("color 5a")
numero, I=0, J=0  int
do
{
Print "introduce un valor positivo:"
rea numero
if(numero<=0)
{
Print "El numero no es valido"
}
}while(numero<=0)
 for(I=0 to numero-1 step I++)
{
for(J=1to numero-I step J++)
{
Print J," "
}
}
Fin 



problema 4

GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL: 11211033
Diseñe un programa para leer N jugadores y para imprimir para cada jugador
la cifra de evolución. Al final de la lista desplegara el nombre y la cifra
de evaluación que haya obtenido la mas alta calificacion.
Pseudocodigo:
1.       Inico.
nombre[15] char
N=0, edad=0, goles=0, asistencia=0, minp=0, contador=0   int
facl=0, altura=0, peso=0, evaluacion=0, mayor=0 real
print "Numero de jugadores a evaluar:"
read N
for(contador=1 to N step contador=contador+1)
{
Print "Jugador no.", contador, ":"
Read nombre
Print "Edad:"
Read edad
Print "Goles:"
Read goles
Print "Asistencia:"
Read asistencia
Print "Minutos penalizados:"
Read minp
Print "Peso:"
Read peso
Print "Altura:"
Read altura
Print "Factor liga:"
Read facl
evaluacion=((goles+asistencia-minp)/4)+((altura+peso)/5-edad)*facl
print "cifra de evaluacion=", evaluacion
if(evaluacion>=mayor)
{mayor=evaluacion
}
}print "La evaluacion mayor fue:", mayor
Fin 

PRACTICA 7


 problema 1
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL: 11211033
Supóngase que debemos obtener la suma de los gatos que hicimos
en el ultimo viaje pero no sabemos cuantos fueron.
Pseudodigo:
1.       inicio
real  gasto=0, total=0
print "Gasto de viaje="
read gasto
do
{
total=total+gasto
print "Gasto de viaje="
read gasto
}
while(gasto!=-1)
total=total+1
print "Total de gasto=", total
Fin 
problema 2
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL: 11211033
Haga un programa que lea 30 números enteros y obtenga la suma
de los números pares y la suma de los números impares.
Pseudodigo:
1.       inicio
int par=0, impar=0, contador=1, numero=0
while(contador<=30)
{
Print "Numero="
Read numero
if(numero%2==0)
{
par=par+numero
}
else
{
impar=impar+numero
}
contador=contador+1
}
Print "la suma de los numeros pares es=", par
Print "la suma de los numeros impares es=", impar
Fin
problema 3
GARCIA GAETA FRANCISCO ARMADNO NO.CONTROL: 11211033
Escriba un programa que calcule y visualice el mas grande y la media de
N numeros el valor N se solicitara al principio del programa  y los
numeros seran introducidos por el usuario.
Pseudodigo:
1.                  inicio
int N=0, contador=1
real  numero=0,total=0, mayor=0, menor=99999, promedio=0
print "introducir cantidad de datos:"
read N
while(contador<=N)
{
Print "Numero="
Read numero
total=total+numero
if(numero>mayor)
{mayor=numero
}
else {if(numero<menor&&numero>=0)
{menor=numero
}
}
contador=contador+1
}
promedio=total/N
print "El numero mayor es:", mayor
print "El numero menor es:", menor
print "La media es igual a:", promedio
Fin
 problema 4
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
Un equipo de hockey ha tenido una buena campaña y desea premiar a sus jugadores
con un aumento de salario para la siguiente campaña. Diseñe un programa que lea
el nombre del jugador y su salario actual para N jugadores y que a continuación
imprima el nombre el sueldo actual y el sueldo aumentado. al final de la lista
debe proporcionar también el monto total de la nomina actual y el monto de la
nueva nomina que incluye los aumentos mencionados.
Pseudodigo:
1.       inicio

system("color 4f")     
char nombre[15]
int N=0
real  sueldo1=0, sueldo2=0, aumento=0, totalactual=0, totalaumentado=0
char decision=' '
do
{
Print "Nombre del jugador:"
Read nombre
Print "Sueldo del jugador:"
Read sueldo1
if(sueldo1>0&&sueldo1<=9000)
{sueldo2=sueldo1+(sueldo1*.20)
}
else{if(sueldo1>=9001&&sueldo1<=13000)
{sueldo2=sueldo1+(sueldo1*.10)
}
else{if(sueldo1>=13001&&sueldo1<=18000)
{sueldo2=sueldo1+(sueldo1*.5)
}
else{if(sueldo1>18000)
{sueldo1=sueldo1
}
}
}
}
totalactual=totalactual+sueldo1
totalaumentado=totalaumentado+sueldo2
aumento=sueldo2-sueldo1
N=N+1
Print "Desea agregar otro jugador s/n:”
Read decision
} while(decision=='s'||decision=='s')
Print "Sueldo aumentado=", sueldo2
Print "El aumento fue=", aumento
Print "Total de la nomina actual=", sueldo1
Print "Total de la nueva nomina=", sueldo2
Fin

problema 5
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
cada equipo de laliga de futbol tiene un equipo de N jugadores. diseñe un
programa para leer los datos de cada equipo y calcular los siguientes valores
estadisticos
a) peso y edad promedio de los N jugadores 

Pseudocodigo:
1.       inicio
int N=0, totaledad=0, edad=0
float totalpeso=0, peso=0
char decision=' '
char nombre[15]
do
{
Print "Nombre del jugador:"
Read nombre
Print "Peso del jugador:"
Read peso
Print "Edad del jugador:"
Read edad
totalpeso=(totalpeso+peso)/N
totaledad=(totaledad+edad)/N
N=N+1
Print "Desea ingresar otro jugador s/n:"
Read decision
} while(decision=='s'||decision=='s')
Print "El peso promedio de los jugadores es:", totalpeso
Print "La edad promedio de los jugadores es:", totaledad
Fin 

problema 6
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROL:11211033
Diseñe un programa para calcular la suma de 100 términos de la serie:
1.0-1.0/2.0+1.0/4.0-1.0/6.0+1.0/8.0-1.0/10.0+1.0/12.0-.....
Pseudodigo:
1.       inicio

system("color 5f")
real  serie=1.0
int terminos=2,denominador=2.0;
while(terminos<=100)
{
if(terminos<=0)
{
serie=serie-1.0/denominador
}
else
{
serie=serie+1.0/denominador
}
denominador=denominador+2
terminos=terminos+1
}
Print "\n\n"
Print "\t\tLa suma de los numeros es:", serie
Fin