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

на паскале. Для работы с очередью, т.е. последовательностью элементов, в которую элементы всегда добавляются в конец, а удаляются из начала ("первым пришел - первым ушел"), нужны обычно следующие операции:
ОЧИСТОЧ(Q) - создать пустую очередь Q (очистить очередь);
ПУСТОЧ(Q) - проверить, является ли очередь Q пустой;
ПЕЧОЧ(Q) – распечатать содержимое очереди;
ВОЧЕРЕДЬ(Q,x) - добавить в конец очереди Q элемент x;
ИЗОЧЕРЕДЬ(Q,x) - удалить из очереди Q первый элемент, присвоив его параметру x.
Требуется для каждого из указанных ниже представлений очереди описать соответствующий тип ОЧЕРЕДЬ, считая, что все элементы очереди имеют некоторый тип ТЭО, и реализовать в виде процедур или функций перечисленные операции над очередью ( если операция по тем или иным причинам не может быть выполнена, следует передать управление некоторой процедуре ОШИБКА(k), считая ее уже описанной, где k - номер ошибки: 1 - переполнение очереди, 2 - исчерпание очереди).
Представление очереди (n – целая константа >1):
а) для каждой очереди отводится свой массив из N компонентов типа ТЭО, в котором элементы очереди занимают группу соседних компонент, индексы первой и последней из которых запоминаются; при этом, когда очередь достигает правого края массива, все ее элементы сдвигаются к левому краю;
б) аналогичное представление, но массив как бы склеивается в кольцо, поэтому если очередь достигает правого края массива, то новые элементы записываются в начало массива;
в) для каждой очереди создается свой однонаправленный список из эле-ментов типа ТЭО, при этом запоминаются ссылки на первое и последнее звенья списка.
2. Для работы со стеком, т.е. последовательностью элементов, в которой элементы всегда добавляются в конец и удаляются из конца ("последним пришел - первым ушел"), нужны обычно следующие операции:
ОЧИСТЕК(S) - создать пустой стек S (очистить стек);
ПЕЧСТЕК(S) – распечатать содержимое стека;
ПУСТЕК(S) - проверить, является ли стек S пустым;
ВСТЕК(S,X) - добавить в конец стека S элемент X;
ИЗСТЕК(S,X) - удалить из очереди S последний элемент, присвоив его параметру X.
Требуется для каждого из указанных ниже представлений стека описать соответствующий тип СТЕК, считая, что все элементы стека имеют некоторый тип ТЭC, и реализовать в виде процедур или функций перечисленные операции над стеком (если операция по тем или иным причинам невыполнима, следует передать управление некоторой процедуре ОШИБКА(k), считая ее уже описанной, где k - номер ошибки: 1 -переполнение стека, 2 -исчерпание стека).
Представление стека (n -целая константа>1):
а) для каждого стека отводится свой массив из n компонентов типа ТЭC, в начале которого располагаются элементы стека, при этом запоминается индекс компоненты массива, занятой последним элементом стека;
б) для каждого стека создается свой однонаправленный список, в котором элементы стека располагаются в обратном порядке.

13. Описать процедуру translate(infix,postfix), которая переводит выражение (определение "выражения" смотри в задаче 12), записанное в обычной (ин-фиксной) форме в текстовом файле infix, в постфиксную форму и в таком виде записывает его в текcтовый файл postfix.
Использовать следующий алгоритм перевода. В стек записывается открывающая скобка, и выражение просматривается слева направо. Если встречается операнд (число или переменная), то он сразу переносится в файл postfix. Если встречается открывающая скобка, то она заносится в стек, а если встречается закрывающая скобка, то из стека извлекаются находящиеся там знаки операций до ближайшей открывающей скобки, которая также удаляется из стека, и все знаки (в порядке их извлечения) записываются в файл postfix. Когда же встречается знак операции, то из конца стека извлекаются (до ближайшей скобки, которая сохраняется в стеке) знаки операций, старшинство которых больше или равно старшинству данной операции, и они записываются в файл postfix, после чего рассматриваемый знак заносится в стек. В заключение выполняются такие же действия, как если бы встречалась закрывающая скобка.

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

25. Используя очередь или стек (предварительно описав его тип и операции над ним (упр.1 или упр.2)), описать процедуру или функцию, которая при-сваивает параметру Е элемент из самого левого листа непустого дерева Т (лист - вершина, из которого не выходит ни одной ветви). Продемонстрировать работу программы.

👇
Открыть все ответы
Ответ:
Marina12971
Marina12971
10.09.2021
Program ZvonPOBEDITEL;var i,n,k,i_1,i_2,d_1,d_2: integer;c: char;s,s_1,s_2: string;begin i_1:=0; i_2:=0; d_1:=1; d_2:=1; readln(n); for i:=1 to n do begin  c:='a';  s:='';  while c<>' ' do  begin   read(c);   s:=s+c;  end;  read(c);  while c<>' ' do  begin   s:=s+c;   read(c);  end;  read(c);  while c<>' ' do  begin   read(c);  end;  readln(k);  if (k=i_1) and (i<>1) then d_1:=d_1+1;  if k>i_1 then   begin   i_2:=i_1;   i_1:=k;   s_2:=s_1;   s_1:=s;   d_2:=d_1;   d_1:=1;  end;  if (k=i_2) and (i<>1) then d_2:=d_2+1;  if (k>i_2) and (k<i_1) then   begin    i_2:=k;   s_2:=s;   d_2:=1;  end; end; if (i_1<=200) and (d_1=1) then writeln(s_1); if (i_1<=200) and (d_1<>1)then writeln(d_1); if (i_1>200) and (d_2=1) then writeln(s_2); if (i_1>200) and (d_2<>1) then writeln (d_2);end. Это сугубо мое решение за копирайтинг отвешу люлей. И к тому же сдесь есть одна ошибка о которой знаю только я, так сказать один из частных случаев здесь не прощитывается, по этому поломайте голову, Ха-Ха-Ха...
4,4(16 оценок)
Ответ:
basarbakhtiar
basarbakhtiar
10.09.2021

var

  a : array [1..9] integer;

  i : integer;

begin

  for i := 1 to 9 do

    if i mod 3 = 1 then a[i] := i

    else if i mod 3 = 2 then a[i] := sqr (i - 1)

    else a[i] := a[i - 1] div i;

  for i := 1 to 9 do

    write (a[i], ' ');

end.

 

var

  b, a : array [1..15] of integer;

  i, sa, sb : integer;

begin

  randomize;

  sa := 0; sb := 0;

  for i := 1 to 15 do

  begin

    a[i] := trunc (random (100)) + 1;

    write (a[i], ' ');

    sa := sa + a[i];

  end;

  writeln;

  for i := 1 to 15 do

  begin

    b[i] := sqr (a[i]) - a[i]);

    write (b[i], ' ');

    sb := sb + b[i];

  end;

  writeln;

  writeln (abs (sb - sa));

end.

  

4,5(79 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ