На питоне.решить в действительных числах уравнение ax^2+bx+c.выдать код ситуации и значения корней: -1 - бесконечное множество решений; 0 - нет действительных корней; 1 - уравнение выражается в линейное, выдать x; 2 - уравнение квадратное, два различных корня, выдать x1 и x2; 3 - уравнение квадратное, кратный корень, выдать x; значения корней выводить с двумя знаками после десятичной точки в порядке возрастания.
i, j, n, kolPol, kolOtr, sum, p, ch, k :integer;
a :array of integer;
begin
readln(n);
SetLength(a,n+1);
randomize;
for i:= 1 to n do
a[i]:= random(100)-50;
sum:= 0; p:= 1;
for i:= 1 to n do
begin
if a[i] > 0 then
begin
inc(kolPol);
sum:= sum + a[i];
end;
if a[i] > 0 then
begin
inc(kolOtr);
p:= p * a[i];
end;
end;
writeln('Количество положительных элементов: ',kolPol);
writeln('Сумма положительных элементов: ',sum);
writeln('Количество отрицательных элементов: ',kolOtr);
writeln('Произведение отрицательных элементов: ',p);
i:= 1; p:= 1; ch:= 0;
while (a[i] >= 0) and (i <> n+1) do
begin
p:= p * a[i];
inc(ch);
inc(i);
end;
if ch <> 0 then
writeln('Произведение до первого отрицательного элемента: ',p)
else
writeln('Первый элемент массива отрицательный!');
for i:= 1 to n-1 do
for j:= 1 to n-i do
if a[j] > a[j+1] then
begin
k:= a[j];
a[j]:= a[j+1];
a[j+1]:= k;
end;
writeln('Массив отсортирован по возрастанию:');
for i:= 1 to n do
write(a[i],' ');
end.
case A of
1 : bla
2 : bla-bla
end;
такое выражение выдаст ошибку:
case A of
'sin' : bla
'cos' : bla-bla
end;
т.к в данном случае используется string вместо integer;
если делается калькулятор в одно действие (число - знак - число, пример: 2 + 3), то можно сделать так:
if znak = 'sin' then
result := sin(number)
else
if znak = 'cos' then
result := cos(number)
... (другие условия)
Если же создаётся калькулятор с неограниченным числом параметров (2 + 5 * 4 / 5), то имеет смысл найти парсинга математических выражений
Вроде всё
var
num : integer;
begin
readln(num);
case num of
1 : bla (понедельник)
2 : bla-bla (вторник)
...
6 : bla-bla-bla (суббота)
end;
end.