Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Программирование на языках высокого уровня

 в указателе L увеличивается  на  единицу
(k –  тип  word).  Значению  переменной  st  присваивается  значение  пустой
строки,  переменной  b  (признак  наличия  текущего  слова   в   списке   L)
присваивается  значение  true.  Указатель  L   принимает   значение   ссылки
содержащейся в данном элементе списка, на  который  указывает  указатель  L.
Иначе указатель L принимает значение ссылки содержащейся в  данном  элементе
списка, на который  указывает  указатель  L.  И  таким  образом  проверяется
следующий элемент списка L и т. д. весь список  L,  на  содержание  текущего
слова в списке. Если оно уже существует  в  списке  L,  то  число  вхождений
этого слова в тексте программы увеличивается на 1, если оно не содержится  в
списке, то тогда будет выполнятся следующая  часть  программы,  образованная
операторами IF и THEN. И это слово включается в список L.
    8) Проверяется условие: если переменная  b  (Признак  наличия  текущего
слова в списке L) равна значению false, что соответствует отсутствию  слова,
содержащегося в переменной st в списке L, и переменная st  не  равна  пустой
строке, и переменная с (признак считывания раздела программы, после  встречи
слов: TYPE, VAR,  CONST,  PROCEDURE,  FUNCTION)  равна  значению  true,  что
соответствует то  выполняется  следующее.  Указатель  L  принимает  значение
указателя Fst, имеющего адрес первого элемента списка  L.  Далее  с  помощью
стандартной процедуры  NEW  резервируется  память  в  ЭВМ  под  динамическую
переменную,  адрес  которой  будет  содержать  указатель  Fst.  В   поле   s
динамической  переменной,  адрес  которой   содержится   в   указателе   Fst
присваивается значение слова,  содержащегося  в  переменной  st.  Количество
вхождений этого слова в тексте программы, содержится в поле  k  динамической
переменной, на которую указывает указатель Fst. В данное  поле  записывается
значение 1. И в поле ссылки данной динамической  переменной,  адрес  которой
содержится  в  указателе  Fst  записывается  значение  адреса  указателя  L,
который имел значение адреса первого элемента списка L. А далее указатель  L
принимает  значение  адреса  указателя  Fst.  Переменной  st   присваивается
значение пустой строки. А иначе, если условие не выполняется, то  переменной
st присваивается значение пустой строки.

    На этом часть проверки слова заканчивается. Она начиналась  с  проверки
значения переменной a. И если а не равно  true,  то  тогда  в  конец  слова,
содержащегося в переменной st добавляется символ, содержащийся в  переменной
ch.

    Далее проверяется условие: если символ в переменной ch равен коду  #26,
что соответствует концу файла, то происходит выход из  цикла,  образованного
операторами REPEAT и UNTIL, если же символ не равен  этому  коду,  то  тогда
программа переходит к началу этого  цикла.  В  результате  чего  формируется
список L, содержащий все идентификаторы программы и  число  их  вхождений  в
тексте программы.

    Далее формируется новый список (Est), который будет содержать эти слова
в алфавитном порядке.
    С  помощью  процедуры  NEW  в  памяти  ЭВМ  резервируется   место   под
динамическую переменную, адрес которой будет содержаться  в  указателе  FEst
(указатель,  содержащий  адрес  первого  элемента  списка  Est).  В  поле  s
динамической  переменной,  адрес  которой  содержится   в   указателе   Fest
присваивается  значение  поля  s  динамической  переменной,  адрес   которой
содержится в указателе L. В поле k динамической  переменной,  адрес  которой
содержится в указателе  Fest  присваивается  значение  поля  k  динамической
переменной, адрес которой содержится в указателе L. В  поле  p  динамической
переменной,  адрес  которой  содержится  в  указателе   Fest   присваивается
значение nil.
    Далее перед строкой стоит метка lb.
    Указатель L принимает значение,  содержащееся  в  поле  р  динамической
переменной, на которую ссылается этот указатель. Указателю  Est  (указатель,
содержащий адрес произвольного элемента списка  Est,  который  содержит  все
имена  идентификаторов  программы  в  алфавитном  порядке,  а  также   числе
вхождений идентификаторов  в  программе)  присваивается  значение  указателя
Fest.
    Далее организуется цикл при помощи оператора  WHILE.  В  то  время  как
указатель L имеет значение отличное от nil выполняется  следующие  действия,
разбитые на 4 пунктов. В результате этих операций будет  сформирован  список
Est, который будет содержать идентификаторы в алфавитном  порядке,  а  также
число их вхождений в тексте программы.
    1) Если слово, содержащееся в поле  s  динамической  переменной,  адрес
которой  находится  в  указателе  L  старше  в  алфавитном  порядке   слова,
содержащегося в поле s динамической переменной, адрес  которой  находится  в
указателе Est (указатель, содержащий  адрес  произвольного  элемента  списка
Est),  то  выполняется  следующее.  Это  соответствует  тому,  что   текущий
идентификатор в списке L старше идентификатора  в  списке  Est.  Поэтому  мы
должны  добавить  идентификатор  из  списка  L  в  ячейку,   стоящую   после
идентификатора  в  списке  Est.  Для  этого   указателю   PEst   (указатель,
содержащий адрес произвольного элемента списка Est)  присваивается  значение
указателя Est. Указатель  Est  принимает  значение  содержащееся  в  поле  р
динамической переменной, на которую ссылается этот указатель. Таким  образом
в списке Est мы переходим к следующему элементу.
    2)  Если  в  указатель  Est  содержит  значение  nil,  то   выполняется
следующее. С помощью процедуры NEW в  памяти  ЭВМ  резервируется  место  под
динамическую переменную, адрес которой будет содержаться  в  указателе  temp
(вспомогательный указатель,  для  записи  адреса  вспомогательного  элемента
списка). В  поле  s  динамической  переменной,  адрес  которой  находится  в
указателе temp записывается значение поля s динамической  переменной,  адрес
которой находится в указателе L. В поле  k  динамической  переменной,  адрес
которой  находится  в  указателе   temp   записывается   значение   поля   k
динамической переменной, адрес которой находится  в  указателе  L.  Затем  в
поле р динамической переменной, адрес которой  находится  в  указателе  temp
записывается значение nil. В поле р динамической переменной,  адрес  которой
находится в указателе PEst  записывается  значение  адреса  указателя  temp.
Далее  осуществляется  переход  по  метке  lb.  Таким   образом   происходит
добавление элемента списка Est в его конец.
    3) Если слово, содержащееся в поле  s  динамической  переменной,  адрес
которой  находится  в  указателе  L  младше  в  алфавитном  порядке   слова,
содержащегося в поле s динамической переменной, адрес  которой  находится  в
указателе Est (указатель, содержащий  адрес  произвольного  элемента  списка
Est), и адрес указателя Est не равен адресу первого элемента списка Est,  то
есть адресу указателя FEst, то выполняется следующее.  С  помощью  процедуры
NEW в памяти ЭВМ резервируется  место  под  динамическую  переменную,  адрес
которой будет содержаться в указателе temp (вспомогательный  указатель,  для
записи адреса вспомогательного  элемента  списка).  В  поле  s  динамической
переменной, адрес которой находится в указателе temp  записывается  значение
поля s динамической переменной, адрес которой находится  в  указателе  L.  В
поле k динамической переменной, адрес которой  находится  в  указателе  temp
записывается  значение  поля  k  динамической  переменной,   адрес   которой
находится в указателе L. Затем  в  поле  р  динамической  переменной,  адрес
которой  находится  в  указателе  temp  записывается  адрес,  находящийся  в
указателе Est. В поле р динамической переменной, адрес которой  находится  в
указателе  PEst  записывается  значение   адреса   указателя   temp.   Далее
осуществляется переход по метке lb.
    4) Если слово, содержащееся в поле  s  динамической  переменной,  адрес
которой  находится  в  указателе  L  младше  в  алфавитном  порядке   слова,
содержащегося в поле s динамической переменной, адрес  которой  находится  в
указателе Est (указатель, содержащий  адрес  произвольного  элемента  списка
Est), и адрес указателя Est равен адресу первого  элемента  списка  Est,  то
есть адресу указателя FEst, то выполняется следующее.  С  помощью  процедуры
NEW в памяти ЭВМ резервируется  место  под  динамическую  переменную,  адрес
которой будет содержаться в указателе temp (вспомогательный  указатель,  для
записи адреса вспомогательного  элемента  списка).  В  поле  s  динамической
переменной, адрес которой находится в указателе temp  записывается  значение
поля s динамической переменной, адрес которой находится  в  указателе  L.  В
поле k динамической переменной, адрес которой  находится  в  указателе  temp
записывается  значение  поля  k  динамической  переменной,   адрес   которой
находится в указателе L. Затем  в  поле  р  динамической  переменной,  адрес
которой  находится  в  указателе  temp  записывается  адрес,  находящийся  в
указателе FEst. В поле р динамической переменной, адрес которой находится  в
указателе  FEst  записывается  значение   адреса   указателя   temp.   Далее
осуществляется переход по метке lb.

    В результате этого цикла  указатель  L  будет  переходить  к  следующим
ячейкам и достигнет значения nil. Когда это произойдет  в  результате  цикла
будет сформирован отсортированный список Est. Далее  необходимо  по  условию
задачи распечатать этот  список.  После  выполнения  этого  цикла  программа
перейдет к выполнению строки, стоящей после метки lb.  Указатель  Est  будет
иметь адрес первого элемента отсортированного списка (FEst).
    Для  распечатки  на  экран  списка  Est  организуется  цикл  с  помощью
оператора WHILE. В то время как указатель Est не равен  значению  nil  будет
выполнятся следующее. С помощью оператора  WRITE  распечатывается  значение,
содержащееся в поле s и k динамическ
1234
скачать работу

Программирование на языках высокого уровня

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ