М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
davo20051
davo20051
22.12.2021 04:05 •  Информатика

Объясните все в этом коде: больше всего не понимаю: begin inc(n); while (arabic[n] < = number) do begin snumber : = snumber + rome[n]; number : = number - arabic[n]; //writeln(snumber); end //программа для перевода арабских //чисел в римские const rome: array[1..13] of string = ('m', 'cm', 'd', 'cd', 'c', 'xc', 'l', 'xl', 'x', 'ix', 'v', 'iv', 'i'); arabic: array[1..13] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1); var number: integer; snumber: string; n: integer; // // основная программа // begin while(true) do begin repeat writeln('введите арабское число 1..3999'); number : = readinteger(); //если задан нуль, то работу с программой заканчиваем: if (number = 0) then exit; until ((number > = 1) and (number < = 3999)); //формируем строку с римским числом, //равным заданному числу number: n : = 0; snumber : = ''; while (number > 0) do begin inc(n); while (arabic[n] < = number) do begin snumber : = snumber + rome[n]; number : = number - arabic[n]; //writeln(snumber); end end; writeln(snumber); writeln(); end; end.

👇
Ответ:
xXEliteXx
xXEliteXx
22.12.2021

Есть неудобные древние римские цифры, их нужно перевести в современные индийские цифры, которые почему-то называются арабскими.

берется строка типа:

LXIV и посимвольно (иногда по двусимвольно идет справа налево) и переводит в обычные нам цифры. IV - переводит в 4. Потом X переводит в 10, потом L переводит в 50. Складывает полученное, получается 64.  Перевели. Т.к. строка с латинской цифрой большая и не известно сколько там символов(LXIV тут 4), то берется цикл по переменной длине строки. Цикл пройдет все символы строки( 4 их или 10), в цикле будет N количество итераций, столько сколько знаков в латинской цифре.

Цикл это вот это:

while(true) do

begin

repeat

***тут идет итерация цикла***

until ((number >= 1) and (number <= 3999));

4,5(7 оценок)
Открыть все ответы
Ответ:
ahmetovalim
ahmetovalim
22.12.2021
Uses graphabc; 
var 
  i, j: integer; 
  ar: array[1..10]of integer; 
  b: boolean; 

 label l1; 
 begin 
  b := false; 
  for i := 1 to 10 do ar[i] := random(10, 300); 
  l1: 
  b := false; 
  for i := 1 to 10 do 
     for j := 1 to 10 do if((ar[i] = ar[j]) or (abs(ar[i] - ar[j]) < 10)) and (i <> j) 
      then 
      begin 
      b := true;
      ar[i] := random(30, 300); 
      end; 
  if b = true then goto l1; 
  window.Init(0, 0, 800, 600, clwhite); 
  window.IsFixedSize := true; 
  randomize; 
  lockdrawing; 
  pen.Width := 5; 
  for i := 1 to 10 do 
  begin 
    pen.Color := rgb(random(0, 255), random(0, 255), random(0, 255));              drawcircle(400, 300, ar[i]); 
    redraw;
end; 
end.
4,8(74 оценок)
Ответ:
КаМиЛлА777
КаМиЛлА777
22.12.2021
А) Массиву будут принадлежать 10 случайных чисел, так как задан цикл от 1 до 10, а случайные числа благодаря команде random, так же можно заменить, что есть (101)-50, а это значит, что в значениях массива, будут и отрицательные числа.
б) Еще проще, тут уже цикл задан от 1 до 20, то бишь 20 значений для массива(20 цифр), а a[i] := i это значит, то что, массиву будут присвоены числа по порядку от 1 до 20, потому что массив = i
в) Тут цикл задан от 1 до 5, и массив каждый раз будет выполнять действие, заданное по условию, то бишь умножить и вычесть, i - каждый раз будет увеличиваться на 1, и получиться, что (2*1-1) (2*2-1), и так число будет увеличиваться до 5.
4,7(18 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ