Овезова Игорь
?>

не очень понимаю как это решить. Определить значение переменных L и M после выполнения фрагмента алгоритма. ответом будет два числа, записанные через пробел (Если M=7, L=20, в результате ответ: 7 20: ) x:=1234; L:=0; M:=0; while x>0 do begin L:=L+1; M:=M + x mod 10; x:=x div 10; end;

Информатика

Ответы

ekaizer
1. → 2 [сдвинуться вправо, перейти на строку 2]
2. → 3 [сдвинуться вправо, перейти на строку 3] — в вопросе опечатка?
3. → 4 [сдвинуться вправо, перейти на строку 4]
4. ? 5;2 [если в текущей ячейке нет метки, перейти на строку 5, иначе вернуться на 2]
5. ← 6 [сдвинуться влево, перейти на строку 6]
6. V 7 [поставить метку, перейти на строку 7]
7. ! [закончить работу]

Программа делает следующее: переходит на метку вправо, шагами по две ячейки идёт вправо, пока не дойдёт до пустой ячейки, возвращается на ячейку влево, ставит там метку и заканчивает работу.

Пусть метки расположены в ячейках 0 - (n-1), каретка под ячейкой 0.
Тогда сначала каретка окажется подячейкой 1, сделает [n/2] шагов по 2 вправо ([x] — целая часть x), оказавшись под ячейкой 1 + 2 * [n/2], вернётся на ячейку влево (ячейка 2 * [n/2]) и поставит там метку.

Если n было четным, будут заполнены ячейки от 0 до n, каретка под ячейкой n
Если n было нечетным, будут заполнены ячейки от 0 до n - 1, каретка под ячейкой n - 1
lolydragon
// PascalABC.NET 3.0, сборка 1111
const
  alpha=['a'..'z'];
  digits=['0'..'9'];
var
  na,nd,i:integer;
  s:string;
begin
  na:=0; nd:=0;
  Write('Введите текст: '); Readln(s);
  for i:=1 to Length(s) do
    if s[i] in alpha then Inc(na)
    else
      if s[i] in digits then Inc(nd);
  if na>nd then Writeln('В тексте больше букв')
  else
    if na<nd then Writeln('В тексте больше цифр')
    else Writeln('В тексте букв и цифр поровну')
end.

Тестовое решение:
Введите текст: the equation 3.546x^2+4.18x-4.1=0
В тексте больше букв

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

не очень понимаю как это решить. Определить значение переменных L и M после выполнения фрагмента алгоритма. ответом будет два числа, записанные через пробел (Если M=7, L=20, в результате ответ: 7 20: ) x:=1234; L:=0; M:=0; while x>0 do begin L:=L+1; M:=M + x mod 10; x:=x div 10; end;
Ваше имя (никнейм)*
Email*
Комментарий*