Sei sulla pagina 1di 5

Solución al enunciado

Dados por lectura de datos r, N, y N coordenadas (x1, y1) (radio del círculo y las
coordenadas de N puntos en el plano X Y), determinar cuántos puntos caen en cada
región según la gráfica Nota: N en el rango [15 .. 50]

Solución A:
Algoritmo SolucionMayo7A
definir cu1,cu2,cu3,cu4,izqR3,derR3 como logico
definir r,x1,y1,m1,m2,b1,x2,y2 como real
definir dentroc,fuerac Como logico
definir ArrR1,ArrR2,AbaR1,AbaR2 como logico
definir R0,R1,R2,R3,R4,R5,R6,R7,R8 Como logico
definir i,N,c0,c1,c2,c3,c4,c5,c6,c7,c8 Como entero
i=0;c0=0;c1=0;c2=0;c3=0;c4=0;c5=0;c6=0;c7=0;c8=0;
r=Azar(5)+5 +(Azar(100)+1)/100;Escribir" .. r:",r
// con la recta 2 y con la ayuda de la gráfica suministrada
m2=-(rc(3.)/2.)/(1./2.); // rc(3) = 1.7320508075688772
m1=-1/m2 // Aplicando principio de "perpendicularidad"
// intercepto de la recta 1
b1=0-m1*r // ( al reemplazar en la ecuación de la recta "y=mx+b")
Escribir"m1:",m1," ,b1:",b1," ,m2:",m2;Escribir""
N=Azar(36)+15;Escribir" .. N:",N
mientras i<N Hacer
i=i+1
x1=((Azar(31)-15)/10)*r;
y1=((Azar(31)-15)/10)*r;
Escribir sin saltar "(",x1," ,",y1,")"
Cu1=(x1>0)&(y1>0);Cu2=(x1<0)&(y1>0);
Cu3=(x1<0)&(y1<0);Cu4=(x1>0)&(y1<0);
ArrR1=y1>m1*x1+b1;ArrR2=y1>m2*x1;AbaR1=y1<m1*x1+b1;AbaR2=y1<m2*x1
izqR3=x1<(-r/2);derR3=x1>(-r/2);
dentroc=x1^2+y1^2<r^2;fuerac=x1^2+y1^2>r^2;
R1=Cu1&dentroc
R2=(Cu2&ArrR2&dentroc)|(Cu4&dentroc&AbaR1)
R3=(Cu2&AbaR2&derR3)|(Cu1&fuerac)
R4=Cu2&dentroc&izqR3
R5=Cu3&dentroc&izqR3
R6=(Cu3&ArrR1&derR3)|(Cu4&fuerac)
R7=Cu3&AbaR1&dentroc
R8=fuerac&(Cu2|Cu3)|(Cu4&ArrR1)

Si R1 Entonces
c1=c1+1;Escribir " está en la Region 1"
SiNo
Si R2 Entonces
c2=c2+1;Escribir " está en la Region 2"
SiNo
Si R3 Entonces
c3=c3+1;Escribir " está en la Region 3"
SiNo
Si R4 Entonces
c4=c4+1;Escribir " está en la Region 4"
SiNo
Si R5 Entonces
c5=c5+1;Escribir " está en la Region 5"
SiNo
Si R6 Entonces
c6=c6+1;Escribir " está en la Region 6"
SiNo
Si R7 Entonces
c7=c7+1;Escribir " está en la Region 7"
SiNo
Si R8 Entonces
c8=c8+1;Escribir " está en la
Region 8"
SiNo
c0=c0+1;Escribir " está en la
Region 0"
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinSi
FinMientras
Escribir""
Escribir"c0:",c0," ,c1:",c1," ,c2:",c2," ,c3:",c3," ,c4:",c4," ,c5:",c5," ,c6:",c6," ,c7:",c7,"
,c8:",c8
Escribir c0+c1+c2+c3+c4+c5+c6+c7+c8
FinAlgoritmo

Solución B:
Algoritmo SolucionMayo7B
definir cu1,cu2,cu3,cu4,izqR3,derR3 como logico
definir r,x1,y1,m1,m2,b1,x2,y2 como real
definir dentroc,fuerac Como logico
definir ArrR1,ArrR2,AbaR1,AbaR2 como logico
definir R0,R1,R2,R3,R4,R5,R6,R7,R8 Como logico
definir i,N,c0,c1,c2,c3,c4,c5,c6,c7,c8 Como entero
i=0;c0=0;c1=0;c2=0;c3=0;c4=0;c5=0;c6=0;c7=0;c8=0;
r=Azar(5)+5 +(Azar(100)+1)/100;Escribir" .. r:",r
// con la recta 2 y con la ayuda de la gráfica suministrada
m2=-(rc(3.)/2.)/(1./2.); // rc(3) = 1.7320508075688772
m1=-1/m2 // Aplicando principio de "perpendicularidad"
// intercepto de la recta 1
b1=0-m1*r // ( al reemplazar en la ecuación de la recta "y=mx+b")
Escribir"m1:",m1," ,b1:",b1," ,m2:",m2;Escribir""
N=Azar(36)+15;Escribir" .. N:",N
mientras i<N Hacer
i=i+1
x1=((Azar(31)-15)/10)*r;
y1=((Azar(31)-15)/10)*r;
//Escribir sin saltar "(",x1," ,",y1,")"
Cu1=(x1>0)&(y1>0);Cu2=(x1<0)&(y1>0);
Cu3=(x1<0)&(y1<0);Cu4=(x1>0)&(y1<0);
ArrR1=y1>m1*x1+b1;ArrR2=y1>m2*x1;AbaR1=y1<m1*x1+b1;AbaR2=y1<m2*x1
izqR3=x1<(-r/2);derR3=x1>(-r/2);
dentroc=x1^2+y1^2<r^2;fuerac=x1^2+y1^2>r^2;
R1=Cu1&dentroc
R2=(Cu2&ArrR2&dentroc)|(Cu4&dentroc&AbaR1)
R3=(Cu2&AbaR2&derR3)|(Cu1&fuerac)
R4=Cu2&dentroc&izqR3
R5=Cu3&dentroc&izqR3
R6=(Cu3&ArrR1&derR3)|(Cu4&fuerac)
R7=Cu3&AbaR1&dentroc
R8=fuerac&(Cu2|Cu3)|(Cu4&ArrR1)
R0=Verdadero
Si R1 Entonces
c1=c1+1; //Escribir "Esta en la Region 1"
R0=Falso
Finsi
Si R2 Entonces
c2=c2+1; //Escribir "Esta en la Region 2"
R0=Falso
Finsi
Si R3 Entonces
c3=c3+1; //Escribir "Esta en la Region 3"
R0=Falso
Finsi
Si R4 Entonces
c4=c4+1; //Escribir "Esta en la Region 4"
R0=Falso
Finsi
Si R5 Entonces
c5=c5+1; //Escribir "Esta en la Region 5"
R0=Falso
Finsi
Si R6 Entonces
c6=c6+1; //Escribir "Esta en la Region 6"
R0=Falso
Finsi
Si R7 Entonces
c7=c7+1; //Escribir "Esta en la Region 7"
R0=falso
Finsi
Si R8 Entonces
c8=c8+1; //Escribir "Esta en la Region 8"
R0=Falso
Finsi
Si R0 Entonces
c0=c0+1; //Escribir "Esta en la Region 0"
Finsi
finmientras
Escribir""
Escribir"c0:",c0," ,c1:",c1," ,c2:",c2," ,c3:",c3," ,c4:",c4," ,c5:",c5," ,c6:",c6," ,c7:",c7,"
,c8:",c8
Escribir c0+c1+c2+c3+c4+c5+c6+c7+c8
FinAlgoritmo

Actividad: repetir el ejercicio para la siguiente figura:

Nota: Para este caso particular el radio es d