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

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

ой переменной, адрес которой  содержится
в  указателе  Est.  И  значению  адреса  указателя  присваивается  значение,
содержащееся в поле р данной динамической переменной, на  которую  ссылается
этот указатель.
    Далее программа ждет нажатия на клавишу "Enter"  при  помощи  процедуры
READLN. Программа завершает работу.



5    РУКОВОДСТВО ОПЕРАТОРА

    Напечатать в алфавитном порядке все различные идентификаторы  программы
на языке Pascal, указав для каждого число его вхождений в тексте программы.
    Программа   находится   в   текстовом   файле.    Максимальная    длина
идентификатора заранее неизвестна.

    Вначале программа спрашивает имя текстового файла, в котором  находится
программа. Программа выдает на экран строку:
|File >:                                                                 |


    Далее требуется ввести путь к файлу, содержащего текст программы, и его
имя и нажать клавишу "Enter".
    К примеру возьмем текст данной программы. Для этого  необходимо  ввести
путь к этому файлу и его имя. К примеру, если файл имеет  имя  "kurs.pas"  и
находится в директории "Programs" на логическом диске С, то для того,  чтобы
программа начала работу с текстом данного файла необходимо ввести  следующую
строку: "C:Programskurs.pas".
    После этого  программа  начинает  считывать  каждый  символ  текста  по
очереди,  формирует  слова,  исключает  зарезервированные  слова  и   другие
символы, выбирает из этих слов идентификаторы, считает количество  вхождений
каждого идентификатора в  программе  и  формирует  список.  Затем  программа
сортирует получившийся список по алфавиту и выводит на  экран  в  алфавитном
порядке все  идентификаторы  программы,  указывая  число  вхождений  каждого
идентификатора программы.
    В данном примере список L можно представить в виде:
|LB       |5  |   |

|F        |6  |   |

|TEMP     |16 |   |

|EST      |17 |   |

    . . .

|SPISOK   |3  |nil|


    Далее программа составляет новый список, состоящий из элементов  списка
L (имен идентификаторов программы, а  также  чисел  их  вхождений  в  тексте
программы), отсортированных в алфавитном порядке.
    Изначально список Est будет иметь один элемент (первый  элемент  списка
L). Далее элементы из списка L по очереди будут добавляться  в  список  Est.
Список Est будет формироваться по  алфавиту,  то  есть  вначале  список  Еst
содержит один элемент:
|LB       |5  |nil|


    Далее программа выберет из списка L следующий элемент:
|F        |6  |   |


    Имя F младше по алфавиту имени  LB,  соответственно  список  Est  будет
преобразован в следующий список:
|F        |6  |   |

|LB       |5  |nil|


    И так далее до тех пор пока список L не кончится.  Программа  проверяет
старше  ли  имя  идентификатора  элемента  списка  L  имени   идентификатора
изначально первого элемента списка Est. Если да, то  программа  переходит  к
сравнению  имени  идентификатора  элемента  списка  L  со  следующим  именем
идентификатора элемента списка Est. Как только список Est заканчивается  или
же имя идентификатора списка L будет младше  имени  идентификатора  элемента
списка Est, то  программа  вставляет  элемент  списка  L  после  предыдущего
элемента списка Est.

    В итоге программа распечатает на экран содержание  списка  Est,  что  в
данном примере будет выглядеть следующим образом:
    A=4; B=4; C=7; CH=44; E=6; EST=17; F=6; FEST=10;  FST=10;  K=14;  L=33;
LB=5; P=14; PEST=4; RECSPISOK=2; S=19; SPISOK=3; ST=75; TEMP=16;

    Далее программа ждет нажатия на клавишу "Enter". После этого  программа
завершает работу.
-----------------------
ST:=''??????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????
????????????????????????????;

    (st='AND') or (st='XOR') or (st='NOT') or (st='OR') or (st='DIV') or
  (st='MOD') or (st='SHL') or (st='SHR') or (st='NIL') or (st='OBJECT') or
 (st='ARRAY') or (st='FILE') or (st='OF') or (st='RECORD') or (st='SET') or
     (st='BYTE') or (st='SHORTINT') or (st='WORD') or (st='INTEGER') or
     (st='LONGINT') or (st='STRING') or (st='BOOLEAN') or (st='REAL') or
      (st='DOUBLE') or (st='EXTENDED') or (st='COMP') or (st='CHAR') or
                          (st='END') or (st='TEXT')

                          c:=true; e:=true; ST:='';

ST='LABEL'

                          c:=true; e:=false; ST:=''

                                  Fst:=nil;
                       Write('File >: '); ReadLn(st);
                       Assign(f,st); Reset(f); st:='';

                                  L:=L^.p;

                                L^.k:=L^.k+1;
                          st:=''; b:=true; L:=L^.p;

                                   L^.s=st

                                   L<>nil


                             L:=L^.p; Est:=FEst;

                            (L<>nil) and (st<>'')

                                   ST:='';

           New(FEst); FEst^.s:=L^.s; FEst^.k:=L^.k; FEst^.p:=nil;

                                 st:=st+ch;

  (e=false) and (c=false) and ((st[1]='0') or (st[1]='1') or (st[1]='2') or
 (st[1]='3') or (st[1]='4') or (st[1]='5') or (st[1]='6') or (st[1]='7') or
                  (st[1]='8') or (st[1]='9')) and (ch<>':')

                                   ST:='';

                                 L^.s>Est^.s

(e=false) and (c=true) and  ((st[1]='0') or (st[1]='1')  or  (st[1]='2')  or
(st[1]='3') or (st[1]='4') or (st[1]='5') or (st[1]='6') or  (st[1]='7')  or
(st[1]='8') or (st[1]='9'))

                     (b=false) and (st<>'') and (c=true)

                                   ch=#26

                                 st:=st+ch;


                              Начало программы

     L:=Fst; New(Fst); Fst^.s:=st; Fst^.k:=1; Fst^.p:=L; L:=Fst; st:='';

      (ST='TYPE') OR (ST='VAR') OR (ST='CONST') OR (ST='PROCEDURE') OR
                               (ST='FUNCTION')

                             c:=false; e:=false;

ST='BEGIN'

a=true

                                  a:=true;

(ch=' ') or (ch='!') or (ch='"') or (ch='#')  or  (ch='$')  or  (ch='%')  or
(ch='&') or (ch='*') or (ch='+') or (ch=',')  or  (ch='-')  or  (ch='.')  or
(ch='/') or (ch=':') or (ch=';') or (ch='<')  or  (ch='=')  or  (ch='>')  or
(ch='@') or (ch='[') or (ch=']') or (ch='')  or  (ch='^')  or  (ch='`')  or
(ch='|') or (ch='~') or (ch='(') or (ch=')')  or  (ch=#10)  or  (ch=#13)  or
(ch='}')



                                   ch='}'

                                 Read(f,ch);

                                   ch='{'

                                   ch=''''

                                 Read(f,ch);

                                   ch=''''

                                   L:=Fst;
                             a:=false; b:=false;
                         Read(f,ch);ch:=UpCase(ch);

                                   Est=nil

    New(temp); temp^.s:=L^.s; temp^.k:=L^.k; temp^.p:=nil; PEst^.p:=temp;

                           PEst:=Est; Est:=Est^.p;



    New(temp); temp^.s:=L^.s; temp^.k:=L^.k; temp^.p:=Est; PEst^.p:=temp;



                        (L^.s<>Fest)


                                  Est<>nil

                 Write(Est^.s,'=',Est^.k,'; '); Est:=Est^.p;

                                   ReadLn;


                                    Выход



1234
скачать работу

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

 

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

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


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