בעייה
יש לי תוכנית פשוטה בפסקל שפותרת משוואה ריבועית. הבעייה היא שהשורשים לא מוצגים טוב, אבל אם אני מעגל אותם והופך אותם ל INTEGER, הם מוצגים מצויין (במידה והם עגולים). למשל, תכניסו A=3, B=37, C=1786 ותראו שX1 אמור להיות 19 אך מוצג כ 1.9. אם אני מעגל את המשתנה והופך אותו ל INTEGER אז זה באמת 19. הבעייה היא שאני לא יכול להפוך תמיד כי לפעמים יש שורשים שהם שברים, ואני חייב להשאר עם REAL. מה לעשות
(הקוד כאן והתכנית עצמה בקובץ, תהפכו בבקשה ל EXE)
יש לי תוכנית פשוטה בפסקל שפותרת משוואה ריבועית. הבעייה היא שהשורשים לא מוצגים טוב, אבל אם אני מעגל אותם והופך אותם ל INTEGER, הם מוצגים מצויין (במידה והם עגולים). למשל, תכניסו A=3, B=37, C=1786 ותראו שX1 אמור להיות 19 אך מוצג כ 1.9. אם אני מעגל את המשתנה והופך אותו ל INTEGER אז זה באמת 19. הבעייה היא שאני לא יכול להפוך תמיד כי לפעמים יש שורשים שהם שברים, ואני חייב להשאר עם REAL. מה לעשות

Program ribooit; uses crt; var a,b,c,xone,xtwo:real; ex:boolean; exx:char; Begin While (ex=false) do begin clrscr; Write('Input a,b,c: '); ReadLn(a,b,c); xone:=((-b)+Sqrt(sqr(b)-(4*a*c))) / (2*a); xtwo:=((-b)-Sqrt(sqr(b)-(4*a*c))) / (2*a); If xone = xtwo then WriteLn('X1: ',xone) else begin WriteLn('X1: ',xone); WriteLn('X2: ',xtwo); end; WriteLn; Write('More? (y/n)'); ReadLn(exx); If exx='n' then ex:=true; end; End.