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

1. Запишите общий вид разветвляющихся алгоритмов с использованием условного оператора.
2. Запишите неполную форму условного оператора для записи
неполных ветвлений.
3. Вставьте пропущенные слова:
В …... операторе и после then, и после else можно использовать только
один оператор. Если при некотором условии требуется выполнить
последовательность из нескольких операторов, то их объединяют в
один ……. оператор.
4. Запишите конструкцию составного оператора.
5. Что такое составной оператор? Для чего он используется в
условном операторе?

Показать ответ
Ответ:
vagiz9779
vagiz9779
18.12.2021 20:19
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 оценок)
Ответ:
qwertyuiop330
qwertyuiop330
19.10.2021 10:52
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-бота