Ejercicio 31
Escriba el algoritmo para un programa que evalúe la función , donde x toma los valores de 1 a 2 en pasos de 0.1. Para cada valor de x la salida debe dar el valor de y el mensaje POSITIVO o NEGATIVO según el caso. Ejm: si y= 1.0 POSITIVO, Y=-1 NEGATIVO.
Algoritmo
Inicio
Declare a, y
A 1
Mientras a<2.1 hacer
y 4*a*a-16*a+15
a a+0.1
si y>0 entonces imprimir y, "POSITIVO"
sino imprimir y, "NEGATIVO"
fin si
Fin mientras
Fin
Variables
a : Toma los valores de x desde a hasta 2
y : Toma los valores de la expresión para cada valor de a.
Programa
#include<stdio.h>
main(void)
{float a,y;
a=1;
while(a<2.1)
{ y=4*a*a-16*a+15;
a=a+0.1;
if(y>0) printf(" %lf POSITIVO\n",y);
else printf(" %lf NEGATIVO\n",y);
}
}
USO DE CENTINELA
Se usan centinelas para salir de los bucles en cualquier instante que uno desee, un centinela es una variable que inicialmente adopta un valor, luego dentro de un bucle este valor cambia, por lo que nos vemos obligados a abandonarlos. Lo anterior se comprende a través del ejercicio 32
Ejercicio 32
Escriba el algoritmo para un programa de nómina usando un ciclo mientras con centinela. Para cada empleado, el programa debe leer el nombre, sexo, horas de trabajo, sueldo por hora e imprimir el pago. La segunda parte debe imprimir el pago promedio para las mujeres y el pago promedio para los hombres.
Algoritmo
Inicio
Declare pht, nht, sexo, ptt, sumasm, sumasf, sm, sf, nombre, centinela
Sumasm 0
Sumasf 0
Sm 0
Sf 0
Mientras centinela <> 1 hacer
Leer sexo
Si sexo<>1 o sexo <> 2 entonces
Centinela 1 //aquí se origina la salida
Sm 1
Sf 1
sino
si sexo=1 entonces
sm sm+1
leer nombre, nht, pht
ptt nht*pht
imrpimir nombre,ptt
sumasm sumasm+ptt
else
sf sf+1
leer nombre, nht, pht
ptt nht*pht
imrpimir nombre, ptt
sumasf sumasf+ptt
fin si
Fin Si
Fin mientras
Imprimir sumasm, sumasm/sm
Imprimir sumasf, sumasf/sf
Fin
Variables
pht : valor del pago por hora trabajada.
nht : cantidad de horas trabajadas.
sexo : valor numérico que indica (1 masculino, 2 femenino)
ptt : valor del pago por persona.
sumasm: guarda la suma de pagos a los varones.
sumasf: guarda la suma de pagos a las mujeres.
sm : guarda la cantidad de varones ingresados.
sf : guarda la cantidad de mujeres ingresadas.
nombre: guarda los nombres de las personas.
centinela: valor numérico que permite finalizar el programa.
Comentario: para este caso cualquier número asignado a la variable sexo, diferente de 1 o 2, hará que la variable centinela se cargue a 1, hecho que obligará la salida del sistema.
Programa
#include<stdio.h>
int x,pht,nht,sexo,ptt,sumasm,sumasf;
float sm,sf;
main(void)
{char nombre[20];
int centinela;
sumasm=0;
sumasf=0;
sm=0;
sf=0;
while(centinela!=1)
{printf("ingrese sexo 1 varon, 2 mujer 3 Salir \n ");
scanf("%d",&sexo);
if(sexo!=1 || sexo!=2 )
{centinela=1;
sm=1;
sf=1;}
else
{
if(sexo==1)
{sm=sm+1;
printf("ingrese nombre \n ");
scanf("%s",&nombre);
printf("ingrese nro de horas trabajadas \n");
scanf("%d",&nht);
printf("ingrese pago por hora trabajada\n");
scanf("%d",&pht);
ptt=nht*pht;
printf("%s GANA %d SOLES \n\n",nombre,ptt);
sumasm=sumasm+ptt;}
else
{sf=sf+1;
printf("ingrese nombre \n ");
scanf("%s",&nombre);
printf("ingrese nro de horas trabajadas \n");
scanf("%d",&nht);
printf("ingrese pago por hora trabajada\n");
scanf("%d",&pht);
ptt=nht*pht;
printf("%s GANA %d SOLES \n\n",nombre,ptt);
sumasf=sumasf+ptt;}
}
}
printf("los HOMBRES GANAN TOTAL: %d SOLES, PROMEDIO: %f \n",sumasm,sumasm/sm);
printf("las MUJERES GANAN TOTAL: %d SOLES, PROMEDIO: %f",sumasf,sumasf/sf);
}
Ejercicio 33
Las potencias de 2 son: 1, 2, 4, 8,16,..... Para obtener la siguiente potencia se multiplica la anterior por 2. Escribir el algoritmo para un programa que imprima la primera potencia de 2 que pasa de 1000.
Algoritmo
Inicio
Declare potencia, e
Potencia 1
e 0
mientras potencia<=1000 hacer
potencia potencia*2
e e+1 //e es el exponente
fin mientras
imprimir e
Fin
Variables
potencia: acumula el producto de la variable potencia y el número 2.
e : guarda el valor del exponente.
Programa
#include<stdio.h>
main(void)
{
int potencia,e;
potencia=1;
e=0;
while(potencia<=1000)
{
potencia=potencia*2;
e=e+1; //e es el exponente
}
printf("%d",e);
}
NOTA: Ciertamente es 10, porque 210 = 1024
Ejercicio 34
Escriba un algoritmo para un programa en el que el usuario debe introducir enteros positivos entre 1 y 5. El programa debe informar al usuario cuando haya escrito un número que hace que la suma pase de 21, imprimiendo la suma y el último entero introducido y el mensaje "mas de 21".
Algoritmo
Inicio
Leer suma, num
Suma 0
Mientras suma<=21 hacer
leer num
si num>=1 y num<=5 entonces suma suma+num
fin si
fin mientras
imprimir suma, num
Fin
Variables
suma : el valor de suma acumulada
num : numero ingresado
Programa
#include<stdio.h>
main(void)
{
int suma,num;
suma=0;
printf("INGRESE NÚMEROS ENTRE 1 y 5 \n");
while(suma<=21)
{
printf("ingrese un número ");
scanf("%d",&num);
if(num>=1 && num<=5)
{suma=suma+num;}
}
printf("\ n SUMA: %d, NÚMERO: %d",suma,num);
}
Ejercicio 35
Escriba el algoritmo para un programa que imprima la sucesión completa de ULAM para un entero de entrada, si la longitud de toda la sucesión es no más de 10. En caso contrario sólo se imprimirá los 10 primeros enteros de la sucesión. Haga las pruebas de mano para sucesiones de menores de 10 números iguales a 10 y mayores de 10.
Ejemplo
5: 16, 8, 4, 3, 1.
25: 76, 38, 19, 58, 29, 88, 44, 22, 11,34.
Algoritmo
Inicio
Declare c, num
Leer num
c 1;
mientras num>1 y c<=10 hacer
si num modulo 2=0 entonces num num/2
sino num num*3+1
fin si
imprimir num
c c+1
fin mientras
Fin
Variables
c : contador
num : número que se imprimirá
Programa
#include<stdio.h>
main(void)
{
int c,num;
printf("ingrese un número.. ");
scanf("%d",&num);
c=1;
while(num>1 && c<=10)
{
if(num%2==0)num=num/2;
else num=num*3+1;
printf(" \n número= %d", num);
c=c+1;
}
}
|
1. Algoritmos en QBASIC. Manual Este manual de QBASIC es una colección linkografica y bibliográfica sobre el uso... [26/10/09] |
12.730 | ||||
|
2. Introducción al lenguaje Pascal Pascal es un lenguaje de alto nivel y de propósito general (es aplicable a un gran... [01/03/06] |
40.127 | ||||
|
3. Introducción al lenguaje HTML ¿Te interesa entrar al mundo de la programación web ? ¡Entonces este curso de... [14/04/11] |
739 |
|
|||