Me he dado cuenta que mi práctica de programación está totalmente oxidada para cualquier cosa que no sea RPN. Me cuesta un montón hacer un programa que no sea en RPN o en el BASIC original de HP. La HP Prime tiene una multitud de tipos de bucle, y me he perdido buscando el bucle que mejor se adaptara al problema que nos ocupa: cómo calcular Pi mediante el teorema de Pitágoras. Tampoco fui capaz de encontrar los medios de para r y rearrancar el programa, sin hacer chapuzas como utilizar un form de entrada y no utilizar lo entrado. Pero bueno: el programa hace lo que se quería hacer, mostrando los valores que se van consiguiendo en cada iteración.
El programa toma como entrada el diámetro, y da la circunferencia para ese radio. Lógicamente, la mejor manera de probarlo es poniendo un diámetro de 1 - con lo cual el resultado ha de ser Pi:
EXPORT Pitagoras(D)
BEGIN
LOCAL LADO, POLY, C, R;
R:=D/2;
LADO:=R*sqrt(2);
POLY:=4;
C:=LADO*POLY;
FOR I FROM 2 TO 25 DO
PRINT(C);
WAIT(2);
POLY:=POLY*2;
LADO:=sqrt((LADO/2)^2+(R-sqrt(R2-(LADO/2)2))^2);
C:=LADO*POLY;
END;
PRINT(C);
END;