gorsimonyan4
?>

Написать блок-схему задание: Ввести массив символов-разделителей заданной пользователем длины, а затем строку текста, общее количество символов в которой (символы, составляющие слова+ разделители) заранее неизвестно. Признаком окончания ввода строки является ввод слова, совпадающего с первым словом в строке. Если в строке присутствуют все разделители из массива символов-разделителей, вставить между первым и вторым словом в строке заранее введённое пользователем слово. Слева от вставленного слова сохранить уже имеющиеся разделители (которые разделяли первое и второе слово), справа же вставить случайный разделитель.

Информатика

Ответы

lenalevmax7937

1) n = 16

2) m = 180

3) a = 26

4) a = 22

5) b = 1

Объяснение:

1)

v := 1 // v = 1

n := 24 // n = 24

v := n - v * 4 // 24 - 1 * 4 ⇒ v = 20

n := v * 2 - n // 20 * 2 - 24 ⇒ n = 16

n = 16

2)

k := 3 // k = 3

m := 30 // m = 30

k := m - k * 3 // 30 - 3 * 3 ⇒ k = 21

m := k * 10 - m // 21 * 10 - 30 ⇒ m = 180

m = 180

3)

a := 4 // a = 4

b := 9 // b = 9

b := 6 * b - a // 6 * 9 - 4 ⇒ b = 50

a := b / 5 * 3 - a // 50 / 5 * 3 - 4 ⇒ a = 26

a = 26

4)

a := -12 // a = -12

b := 14 - a / 2 // 14 - (-12) / 2 ⇒ b = 20

b := (b - a) / 8 // (20 - (-12)) / 8 ⇒ b = 8

a := b * 2 + 6 // 8 * 2 + 6 ⇒ a = 22

a = 22

5)

a := 7 // a = 7

b := 2 // b = 2

a := b * 4 + a * 3 // 2 * 4 + 7 * 3 ⇒ a = 29

b := 30 - a // 30 - 29 = 1

b = 1

markitandl
// PascalABC.NET 3.0, сборка 1128
const
  nmax=100;
var
  n,i,j,nn,nz,np,t:integer;
  a,an,az,ap:array[1..nmax] of integer;
begin
  // формируем массив и выводим его
  Write('Количество элементов в массиве: '); Read(n);
  for i:=1 to n do begin
    a[i]:=Random(11)-5;
    Write(a[i],' ')
    end;
  Writeln;
  // разбиваем массив на три подмассива
  nn:=0; nz:=0; np:=0;
  for i:=1 to n do
    if a[i]<0 then begin nn:=nn+1; an[nn]:=a[i] end
    else
      if a[i]=0 then begin nz:=nz+1; az[nz]:=a[i] end
      else begin np:=np+1; ap[np]:=a[i] end;
  // сортируем массив с отрицательными элементами по убыванию
  for i:=1 to nn-1 do
    for j:=1 to nn-1 do
      if an[j]<an[j+1] then
        begin t:=an[j]; an[j]:=an[j+1]; an[j+1]:=t end;
  // сортируем массив с положительными элементами по возрастанию
  for i:=1 to np-1 do
    for j:=1 to np-1 do
      if ap[j]>ap[j+1] then
        begin t:=ap[j]; ap[j]:=ap[j+1]; ap[j+1]:=t end;
  // формируем новое содержимое массива a
  i:=0;
  for j:=1 to nz do begin i:=i+1; a[i]:=az[j] end;
  for j:=1 to np do begin i:=i+1; a[i]:=ap[j] end;
  for j:=1 to nn do begin i:=i+1; a[i]:=an[j] end;
  // вывод результата
  for i:=1 to n do Write(a[i],' ');
  Writeln
end.

Тестовое решение:
Количество элементов в массиве: 15
1 2 5 0 -5 -3 0 0 1 -4 3 -2 -2 0 -5
0 0 0 0 1 1 2 3 5 -2 -2 -3 -4 -5 -5

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

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

Написать блок-схему задание: Ввести массив символов-разделителей заданной пользователем длины, а затем строку текста, общее количество символов в которой (символы, составляющие слова+ разделители) заранее неизвестно. Признаком окончания ввода строки является ввод слова, совпадающего с первым словом в строке. Если в строке присутствуют все разделители из массива символов-разделителей, вставить между первым и вторым словом в строке заранее введённое пользователем слово. Слева от вставленного слова сохранить уже имеющиеся разделители (которые разделяли первое и второе слово), справа же вставить случайный разделитель.
Ваше имя (никнейм)*
Email*
Комментарий*

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

yurkovam-037
Виктор Попова
ignashkinamasha
shymilin19951783
Nikolaevna1623
mashuska
Кирилл-Анна1023
funny-furiya
daarisgoy
X2755070
Anastasiamoscow80
gbelihina
puma802
yatania-popovich7
parolmm
▲