Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Clase 5 28/08/2017
1 Calcular ecuacin
Escriba un programa que permita leer los datos que se requieran para calcular e imprimir el valor de alfa.
program obtenerAlfa;
{Autor: Nancy Espinoza
Fecha de creacin: 27/08/2017
Fecha de actualizacin: 27/08/2017}
var phi25, phi1, cos1, senh, log5, raiz5, raiz3, delta47, tan8: real;
alfa,phi, delta, omega:real;
begin
writeln('Ingrese los valores de phi, delta y omega');
readln(phi, delta, omega);
phi25:=exp(2.5*ln(phi));
phi1:=exp(phi25*ln(phi));
cos1:=arcTan(sqrt(1-sqr(phi1))/phi1);
senh:=(exp(delta+omega)-(1/exp(delta+omega)))/2;
log5:=ln(sqrt(delta)/senh)/ln(5);
raiz5:=exp((1/5)*ln(log5));
raiz3:=exp((1/3)*ln(phi));
delta47:=exp((4+raiz3)*ln(delta));
tan8:=sin(delta47)/cos(delta47);
alfa:=exp((1/5)*ln(cos1*raiz5/tan8));
writeln('Alfa es igual a : ',alfa:10:5);
readln();
end.
Donde:
pp es el promedio de prcticas eliminando la nota ms baja.
ex1 es la nota del primer examen
ex2 es la nota del segundo examen
El examen especial reemplaza a uno de los exmenes en el caso que uno de ellos no se hubiera rendido. Si no se
rindieron los dos exmenes, el examen especial reemplazar al segundo examen.
Datos: Se tiene como datos el nombre del alumno y el cdigo, sus notas a las que llamaremos pr1, pr2, pr3, pr4, ex1,
ex2, exE. Las notas estarn entre 0 y 20, si un examen no se di, se ingresar en su lugar el valor -1, si no se rindieron
los dos exmenes, el examen especial reemplazar al segundo examen.
program promedioNotas;
{Autor: Nancy Espinoza
Fecha de creacin: 27/08/2017
}
var p1, p2, p3, p4, pMenorNota, ex1, ex2, exEsp: Integer;
promedioPas, notaFinal: Real;
codigo, nombre: String;
begin
writeln('Ingrese el codigo del alumno');
readln(codigo);
writeln('Ingrese el nombre del alumno');
readln(nombre);
writeln('Ingrese las notas de las cuatro practicas');
readln(p1, p2, p3, p4); //18 10 08 15
writeln('Ingrese las notas del examen 1, examen 2 y examen especial');
readln(ex1, ex2, exEsp); //15 18 -1
//Obtenemos la menor nota de las prcticas
pMenorNota:= p1*ord(p1<=p2)+p2*ord(p2<p1);
pMenorNota:= pMenorNota*ord(pMenorNota<=p3)+p3*ord(p3<pMenorNota);
pMenorNota:=pMenorNota*ord(pMenorNota<=p4)+p4*ord(p4<pMenorNota);
promedioPas:=(p1+p2+p3+p4-pMenorNota)/3;
//Obtenemos notas de los examenes
ex1:=ex1*ord(ex1<>-1)+exEsp*ord((ex1=-1)and(ex2<>-1));
ex2:=ex2*ord(ex2<>-1)+exEsp*ord(ex2=-1);
notaFinal:=round((promedioPas*3+ex1*3+ex2*4)/10); //16
writeln('El alumnno: ', codigo,'-',nombre,' obtuvo de nota ',notaFinal:10:2);
readln();
end.
NOTA: Esta pregunta busca evaluar el uso de los operadores de bits por lo que NO EST PERMITIDO emplear otros
operadores como: /, *, div, mod,, etc. ni funciones como exp, ln, sin,..., etc., tampoco se pueden usar valores
constantes a menos que sean 1 2.
program manejoBits;
{Autor: Nancy Espinoza
Fecha de creacin: 27/08/2017}
var b1, b2, v1: Byte;
masc, parte1, parte2: Byte;
begin
writeln('Ingrese el valor de b1 y b2');
readln(b1, b2);
//b1=194 es 1100 0010 b2=11 es 0110 0111
//Creamos la primera mascara
masc:=1; //0000 0001
masc:=masc shl 1; //0000 0010
masc:=masc+1; //0000 0011
masc:=masc shl 1; //0000 0110
masc:=masc+1; //0000 0111
parte1:=b1 and masc;//0000 0010
parte1:=parte1 xor masc; //0000 0101
parte1:= parte1 shl 1; //0000 1010
parte1:=parte1 shl 1; //0001 0100
parte1:=parte1 shl 1; //0010 1000
parte1:=parte1 shl 1; //0101 0000
v1:=parte1 shl 1; //1010 0000
//Creamos la segunda mascara
masc:=1; //0000 0001
masc:=masc shl 1+1; //0000 0011
masc:=masc shl 1+1; //0000 0111
masc:=masc shl 1+1; //0000 1111
masc:=masc shl 1+1; //0001 1111
masc:=masc shl 1; //0011 1110
masc:=masc shl 1; //0111 1100
parte2:=b2 and masc; //0110 0100
parte2:=parte2 shr 1;//0011 0010
parte2:=parte2 shr 1;//0001 1001
v1:=v1 or parte2; //1011 1001
writeln('El valor de v1 es ', v1);
readln();
end.