Твой код не проверял. Недавно кому-то делал на Delphi. Переделал на Pascal.
Приложил картинкой, если запутаешься. Если что-то не так работает, я поправлю.
//Pascal var a, b, c, d, x1, x2: real; begin write('Введите a = '); readln(a); write('Введите b = '); readln(b); write('Введите c = '); readln(c); if ((a = 0) and (b = 0) and (c = 0)) then writeln('X любое') else if a <> 0 then begin d := sqr(b) - 4 * a * c; if (d > 0) then begin x1 := (-b+sqrt(d))/(2*a); x2 := (-b-sqrt(d))/(2*a); writeln('x1 = ', x1); writeln('x2 = ', x2); end else if d = 0 then begin x1:=-b/(2*a); x2:=x1; writeln('x1 = ', x1); //writeln('x2 = ', x2); end else if d < 0 then writeln('Корней нет.'); end else if (a = 0) and (b = 0) then writeln('Решений нет.') else if (a = 0) then begin x1 := (-c)/b; writeln('x = ', x1); end; end.
Приложил картинкой, если запутаешься. Если что-то не так работает, я поправлю.
//Pascal
var
a, b, c, d, x1, x2: real;
begin
write('Введите a = '); readln(a);
write('Введите b = '); readln(b);
write('Введите c = '); readln(c);
if ((a = 0) and (b = 0) and (c = 0)) then
writeln('X любое')
else
if a <> 0 then
begin
d := sqr(b) - 4 * a * c;
if (d > 0) then
begin
x1 := (-b+sqrt(d))/(2*a);
x2 := (-b-sqrt(d))/(2*a);
writeln('x1 = ', x1);
writeln('x2 = ', x2);
end
else
if d = 0 then
begin
x1:=-b/(2*a);
x2:=x1;
writeln('x1 = ', x1);
//writeln('x2 = ', x2);
end
else
if d < 0 then
writeln('Корней нет.');
end
else
if (a = 0) and (b = 0) then
writeln('Решений нет.')
else
if (a = 0) then
begin
x1 := (-c)/b;
writeln('x = ', x1);
end;
end.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(135,150,300); a.Println;
end.
Пример
259 236 185 153 260 288 245 189 168 257 243 279 191 162 253 286 286 254 256 175 170 295 195 299 201 183 291 195 165 266 280 195 194 207 193 274 243 191 151 211 264 265 229 169 225 240 298 232 162 159 252 254 252 236 269 265 191 187 253 226 297 200 173 202 278 198 235 284 269 279 193 245 252 195 211 205 216 176 223 261 185 209 182 156 163 175 243 258 238 229 233 205 238 225 214 214 242 176 192 177 154 163 264 183 267 157 152 207 174 214 199 164 265 292 191 238 167 167 188 252 255 278 196 190 196 289 156 176 281 298 264 189 285 196 256