I wanted to write a simple arithmetic calculation in delphi.
But it displays an error:
[Error] Project1.dpr (10): Missing operator or semicolon
Here is my code:
program Project1;
uses
SysUtils;
var x, y: real;
begin
write ('x ='); readln (x);
if (x & gt; 1) then y: = cos (x) / (x * x * x + 3 * sin (x) +8)
else y: = x * x * x + 3 * sin (x) +8
writeln ('y =', y: 0: 3);
Readln;
end.
Answer 1, authority 100%
Missing ;
after the else block. To avoid confusion, remember – always surround blocks of code with statement brackets begin
and end
, even if it is a block from one call:
program Project1;
uses
SysUtils;
var x, y: real;
begin
write ('x ='); readln (x);
if (x & gt; 1) then
begin
y: = cos (x) / (x * x * x + 3 * sin (x) +8);
end
else
begin
y: = x * x * x + 3 * sin (x) +8;
end;
writeln ('y =', y: 0: 3);
Readln;
end.
It’s at ideone
Answer 2, authority 100%
This will be correct both from a logical point of view and from a formatting point of view:
program Project1;
{$ APPTYPE CONSOLE} // Instructions for Delphi that this is a console application
uses
SysUtils;
var
x, y: real;
begin
// We are waiting for the input of the X value from the user
write ('x =');
readln (x);
// Program logic
if (x & gt; 1) then
y: = cos (x) / (x * x * x + 3 * sin (x) + 8)
else
y: = x * x * x + 3 * sin (x) + 8; // & lt; - The error was here, skipped;
// Show the result
writeln ('y =', y: 0: 3);
readln;
end.
Notice how correct formatting allows you to see the entire program at a glance and spot errors in it.
P.S. Just in case, trigonometric functions like cos
expect an angle in radians as input, so if the user enters a number in degrees, you will need to convert it to radians.