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

Коли виникає необхідність введення проміжних даних?

Показать ответ
Ответ:
ymniupisos
ymniupisos
11.01.2021 01:27

var

 s, s1, s2, s3, s4, tmp1, tmp2: string;

 i, a, b, c, d, e, f: integer;

begin

 Writeln('Введите строку: ');

 Readln(s);

 //

 for var k := 1 to length(s) do  

 begin

   if (s[k] = '(') then

   begin

     var j := k + 1;

     while (s[j].IsDigit) do

     begin

       tmp1 := tmp1 + s[j];

       j := j + 1;

     end;

     var ch := s[j];

     j := j + 1;

     while (s[j].IsDigit) do

     begin

       tmp2 := tmp2 + s[j];

       j := j + 1;

     end;

     case ch of

       '+': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger + tmp2.ToInteger)); end;

       '-': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger - tmp2.ToInteger)); end;

       '*': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger * tmp2.ToInteger)); end;

       '/': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger div tmp2.ToInteger)); end;

     end;

     break;

   end;

 end;

 //

 for i := 1 to length(s) do

 begin

   if (s[i] = '+') or (s[i] = '-') or (s[i] = '*') or (s[i] = '/') then

   begin

     s1 := copy(s, 1, i - 1);

     s2 := copy(s, i + 1, length(s));

     c := i;

   end;

 end;

 for i := 1 to length(s1) do

 begin

   if (s1[i] = '+') or (s1[i] = '-') or (s1[i] = '*') or (s1[i] = '/') then

   begin

     s3 := copy(s1, 1, i - 1);

     s4 := copy(s1, i + 1, length(s1));

     e := i;

   end;

 end;

 Val(s3, a, d);

 Val(s4, b, d);

 Val(s2, f, d);

 if (s[e] = '/') and (s[c] = '/') then Writeln((a div b) div f);

 if (s[e] = '/') and (s[c] = '*') then Writeln((a div b) * f);

 if (s[e] = '+') and (s[c] = '*') then Writeln(a + (b * f));

 if (s[e] = '*') and (s[c] = '*') then Writeln(a * b * f);

 if (s[e] = '+') and (s[c] = '/') then Writeln(a + (b div f));

 if (s[e] = '*') and (s[c] = '+') then Writeln((a * b) + f);

 if (s[e] = '/') and (s[c] = '+') then Writeln((a div b) + f);

 if (s[e] = '*') and (s[c] = '/') then Writeln((a * b) div f);

 if (s[e] = '+') and (s[c] = '+') then Writeln(a + b + f);

 if (s[e] = '-') and (s[c] = '-') then Writeln(a - b - f);

 if (s[e] = '+') and (s[c] = '-') then Writeln(a + b - f);

 if (s[e] = '-') and (s[c] = '+') then Writeln(a - b + f);

 if (s[e] = '*') and (s[c] = '-') then Writeln((a * b) - f);

 if (s[e] = '/') and (s[c] = '-') then Writeln((a div b) - f);

 if (s[e] = '-') and (s[c] = '*') then Writeln(a - (b * f));

 if (s[e] = '-') and (s[c] = '/') then Writeln(a - (b div f));

end.

0,0(0 оценок)
Ответ:
oksiur4enko
oksiur4enko
26.10.2021 16:29

B1 = E3*7

C1 = F3*7

A2 = D4*7

A3 = D5*7

Объяснение:

Формула в ячейке A1 содержит относительную ссылку (D3), которая будет изменяться при копировании.

При копировании в другой столбец будет изменяться буква столбца ссылки на столько букв на сколько столбцов сдвинулись относительно ячейки откуда копируется формула.

При копировании в ячейку B1, мы сдвинулись на 1 столбец относительно ячейки A1, поэтому заменяем в ссылке D на E (следующую букву в алфавите)

При копировании в ячейку C1, мы сдвинулись на 2 столбца относительно ячейки A1, поэтому заменяем в ссылке D на F (букву в алфавите отстоящую от буквы D на 2 буквы)

При копировании в другую строку будет изменяться номер строки ссылки на число строк на которые сдвинулись относительно ячейки откуда копируется формула.

При копировании в ячейку A2, мы сдвинулись на 1 строку относительно ячейки A1, поэтому заменяем в ссылке 3 на 4 (3 + 1 = 4)

При копировании в ячейку A3, мы сдвинулись на 2 строки относительно ячейки A1, поэтому заменяем в ссылке 3 на 5 (3 + 2 = 5)

Если копировать одновременно сдвигаясь и по столбцам и по строкам, то ссылка будет изменяться целиком, как написано выше

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