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

Миша заблудился в лесу и пытается выйти. Он составил план маршрута выхода из леса. План состоит из N прямолинейных отрезков пути. Сначала Миша идёт a1 метров на север, потом a2 метров на восток, потом a3 метров на юг, затем a4 метров на запад, затем он опять начинает повторять направления в порядке север, восток, юг, запад, то есть a5 метров он проходит на север, a6 метров на восток и т.д. Оказалось, что для того, чтобы выйти из леса из его первоначальной точки, ему нужно было пройти ровно K метров в любом из четырёх направлений, то есть первоначально Миша находится в центре квадрата со стороной 2K метров.

Введём систему координат, в которой Миша первоначально находился в центре координат, ось OX направлена на восток, ось OY направлена на север, а единица измерения равна 1 метру. Определите, в какой точке Миша выйдет из леса (впервые окажется на границе леса), если будет следовать своему плану, или в какой точке его маршрут закончится, если он не выйдет из леса.


Миша заблудился в лесу и пытается выйти. Он составил план маршрута выхода из леса. План состоит из N

Показать ответ
Ответ:
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 оценок)
Ответ:
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 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота