В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Guru2002o6
Guru2002o6
26.11.2020 18:35 •  Информатика

На питоне.решить в действительных числах уравнение ax^2+bx+c.выдать код ситуации и значения корней: -1 - бесконечное множество решений; 0 - нет действительных корней; 1 - уравнение выражается в линейное, выдать x; 2 - уравнение квадратное, два различных корня, выдать x1 и x2; 3 - уравнение квадратное, кратный корень, выдать x; значения корней выводить с двумя знаками после десятичной точки в порядке возрастания.​

Показать ответ
Ответ:
dmatveeva1
dmatveeva1
23.02.2021 02:43
Var
  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.
0,0(0 оценок)
Ответ:
jokerlytvinenkо
jokerlytvinenkо
16.09.2022 17:26
Case понимает только integer, т.е можно написать:
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота