patersimon1
?>

Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить реверс для каждой трети массива. пример: исходный массив: 4 -5 3 10 -4 -6 8 -10 1 0 5 7 результат: 10 3 -5 4 -10 8 -6 -4 7 5 0 1 есть готовая программа. объясните что да как. const n=12; var a: array[1..n] of integer; i, k, x: integer; begin randomize; writeln('исходный массив'); for i: =1 to n do begin a[i]: =-12+random(25); write(a[i]: 4); end; writeln; k: =n div 3; for i: =1 to k div 2 do begin x: =a[i]; a[i]: =a[k-i+1]; a[k-i+1]: =x; x: =a[k+i]; a[k+i]: =a[2*k-i+1]; a[2*k-i+1]: =x; x: =a[2*k+i]; a[2*k+i]: =a[n-i+1]; a[n-i+1]: =x end; writeln('инверсия третей массива'); for i: =1 to n do write(a[i]: 4); end.

Информатика

Ответы

Шабунина-Евгения1883
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
  var a:=ArrRandom(12,-12,12); a.Println;
  var b:=a.Batch(a.Length div 3).Select(x->x.Reverse);
  var k:=0;
  foreach var e1 in b do
    foreach var e2 in e1 do begin a[k]:=e2; Inc(k) end;
  a.Println
end.

Тестовое решение:
-7 -9 8 -11 -5 -3 -2 6 11 -7 4 -6
-11 8 -9 -7 6 -2 -3 -5 -6 4 -7 11
pimenovamar
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла.
А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.

Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...

Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
kuz-vlad21

Для определения информационного объема сообщения воспользуемся формулой: I = K * i,  где K - количество символов, i - вес одного символа.

1)  1024 стра­ни­цы, на одной стра­ни­це по­ме­ща­ет­ся 64 стро­ки, а в стро­ке по­ме­ща­ет­ся 64 сим­во­ла. Каж­дый сим­вол в ко­ди­ров­ке КОИ-8 за­ни­ма­ет 8 бит па­мя­ти.

i = 8 бит

K = 1024 * 64 * 64 = 4194304 символов,

I = 4194304 * 8 = 33554432 бит = 4194304 байт = 4096  Кбайт = 4 Мбайт

2) 512 стра­ниц, на одной стра­ни­це в сред­нем по­ме­ща­ет­ся 64 стро­ки, а в стро­ке 64 сим­во­ла. (Каж­дый сим­вол в ко­ди­ров­ке Unicode за­ни­ма­ет 16 бит па­мя­ти.)

i = 16 бит

K = 512 * 64 * 64 = 2097152 символов,

I = 2097152 * 16 = 33554432 бит = 4194304 байт = 4096 Кбайт = 4 Мбайт

*8 бит = 1 байт

1024 байт = 1 Кбайт

1024 Кбайт = 1 Мбайт

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

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

Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить реверс для каждой трети массива. пример: исходный массив: 4 -5 3 10 -4 -6 8 -10 1 0 5 7 результат: 10 3 -5 4 -10 8 -6 -4 7 5 0 1 есть готовая программа. объясните что да как. const n=12; var a: array[1..n] of integer; i, k, x: integer; begin randomize; writeln('исходный массив'); for i: =1 to n do begin a[i]: =-12+random(25); write(a[i]: 4); end; writeln; k: =n div 3; for i: =1 to k div 2 do begin x: =a[i]; a[i]: =a[k-i+1]; a[k-i+1]: =x; x: =a[k+i]; a[k+i]: =a[2*k-i+1]; a[2*k-i+1]: =x; x: =a[2*k+i]; a[2*k+i]: =a[n-i+1]; a[n-i+1]: =x end; writeln('инверсия третей массива'); for i: =1 to n do write(a[i]: 4); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Fedorovna
info4632
iptsr4968
nastyakrokhina87
frolevgevg6420
ryazantseva
ksen1280
Marianna45
victoriapetrs
gallush9
манукян29
toniv
dariamay1996
zakupka-marion
Вячеславовна_Сагитович