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

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



 Другие рефераты
Программирование на Object Pascal в среде Delphi Программирование на С++ Өндірістік желдеткіш Дамыған елдердің ауыл шаруашылығы өндірістік инфрақұрылымын қалыптастыру тәжірибесі

МОСКОВСКИЙ ИНСТИТУТ РАДИОТЕХНИКИ,
                          ЭЛЕКТРОНИКИ И АВТОМАТИКИ
                          (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)



                               КУРСОВАЯ РАБОТА
                       Программирование на языках В/У



                                        Студент:
                                        Группа:



                                 Москва 2003

    СОДЕРЖАНИЕ

    1    ЗАДАНИЕ                                               3
    2    БЛОК-СХЕМА ПРОГРАММЫ                     3
    3    ТЕКСТ ПРОГРАММЫ                                   7
    4    ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ           9
    5    РУКОВОДСТВО ОПЕРАТОРА                        18

1    ЗАДАНИЕ

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

    2    БЛОК-СХЕМА ПРОГРАММЫ



                                                                     Нет

                                              Да

                                                                        Нет
Да

                                                                     Нет

                                              Да


                                                                        Нет
Да



       Нет



                                        Да



                  Нет


                              Да



                                      Да


                              Нет



                                        Да



                              Нет



                                     Да



                               Нет



                                                                       Да



                                          Нет



                                          Да



                      Нет



                                           Да



                      Нет



                                            Нет                          Да
    Да


                                                                       Нет

                             Нет



                                        Да



                             Да


                    Нет



                                   Нет


                                            Да


                                                              Да


                                         Нет



                                            Да


                                         Нет



                                                          Да



                                            Нет



                                                          Да



                                           Нет



                     Да


              Нет



3    ТЕКСТ ПРОГРАММЫ

    Program Project1;
    {$APPTYPE CONSOLE}
    Uses SysUtils;
    type spisok=^Recspisok;
    Recspisok=record
    s:String; k:word; p:spisok; end;
    var a,b,c,e:boolean; ch:char; st:string;
    L,Fst,FEst,PEst,Est,temp:spisok; f:text;
    label lb;
    BEGIN
    Fst:=nil;
    Write('File >: '); ReadLn(st);
    Assign(f,st); Reset(f); st:='';
    REPEAT
    L:=Fst;
    a:=false; {a-признак конца слова}
    b:=false; {b-признак наличия текущего слова в списке}
    Read(f,ch);ch:=UpCase(ch);
    {УДАЛЕНИЕ СЛОВ, ПЕЧАТАЕМЫХ ПРОЦЕДУРОЙ WRITE}
    if ch='''' then begin
    Repeat Read(f,ch); Until ch=''''; end;
    {УДАЛЕНИЕ КОМЕНТАРИЕВ}
    if ch='{' then begin
    Repeat Read(f,ch); Until ch='}'; end;
    {ПРОВЕРКА СИМВОЛА НА ПРИЗНАК КОНЦА СЛОВА}
    if (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='}')
    then a:=true;
    {ЕСЛИ a=true, ТО СЛОВО СФОРМИРОВАНО. ПЕРЕХОДИМ К ПРОВЕРКЕ}
    if (a=true) THEN BEGIN
    IF (ST='BEGIN') THEN begin c:=false; e:=false; end;
    IF (ST='TYPE') OR (ST='VAR') OR  (ST='CONST')  OR  (ST='PROCEDURE')  OR
    (ST='FUNCTION') THEN
    begin c:=true; e:=false; ST:=''; end;
    IF (ST='LABEL') THEN begin c:=true; e:=true; ST:=''; end;
    {УДАЛЕНИЕ ЗАРЕЗЕРВИРОВАННЫХ СЛОВ}
    if (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') then st:='';
    {--УДАЛЕНИЕ ЦИФР В ОПИСАНИИ ПЕРЕМЕННЫХ--}
    if (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')) then st:='';

    {--УДАЛЕНИЕ ЦИФР В ПРОГРАММЕ--}
    if (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<>':') then st:='';

    {УВЕЛИЧЕНИЕ СЧЕТЧИКА СЛОВА НА ЕДИНИЦУ. ЕСЛИ ЭТО СЛОВО УЖЕ ЕСТЬ}
    while (L<>nil) and (st<>'') do begin
    if L^.s=st then begin L^.k:=L^.k+1; st:=''; b:=true; L:=L^.p; end
    else L:=L^.p; end;
    {ДОБАВЛЕНИЕ СЛОВА. ЕСЛИ ЕГО НЕТ В СПИСКЕ}
    if (b=false) and (st<>'') and (c=true) then begin L:=Fst;
    New(Fst); Fst^.s:=st; Fst^.k:=1; Fst^.p:=L; L:=Fst;  st:='';  end  else
    st:='';

    END ELSE st:=st+ch;
    UNTIL ch=#26;

    {ФОРМИРОВАНИЕ ОТСОРТИРОВАННОГО СПИСКА}
    New(FEst); FEst^.s:=L^.s; FEst^.k:=L^.k; FEst^.p:=nil;
    lb: L:=L^.p; Est:=FEst;
    While L<>nil do BEGIN
    IF L^.s>Est^.s THEN begin PEst:=Est; Est:=Est^.p; end;

    IF Est=nil THEN begin New(temp); temp^.s:=L^.s; temp^.k:=L^.k;
    temp^.p:=nil; PEst^.p:=temp; goto lb; end;

    IF (L^.s<>Fest) THEN begin
    New(temp); temp^.s:=L^.s; temp^.k:=L^.k; temp^.p:=Est;
    PEst^.p:=temp; goto lb; end;

    IF (L^.s<>nil do  begin  Write(Est^.s,'=',Est^.k,';  ');  Est:=Est^.p;
end;
    ReadLn;
    END.
    END.

4    ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ

    ТАБЛИЦА ТИПОВ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ
|Имя типа |Тип   |Назначение                                            |
|spisok   |      |Динамическая переменная со структурой Recspisok       |
|Recspisok|record|запись, содержащая переменную типа String (s) для     |
|         |      |хранения слова, переменную типа word (k) для хранения |
|         |      |числа входов этого слова в тексте программы и ссылку  |
|         |      |(p).                                                  |

    ТАБЛИЦА ПЕРЕМЕННЫХ, ИСПОЛЬЗУЕМЫХ ПРОГРАММОЙ
|Имя    |Тип    |Назначение                                            |
|a      |boolean|Признак конца слова                                   |
|b      |boolean|Признак наличия текущего слова в списке L             |
|c      |boolean|Признак считывания раздела программы, после встречи   |
|       |       |слов: TYPE, VAR, CONST, PROCEDURE, FUNCTION           |
|e      |boolean|Признак считывания раздела программы, после встречи   |
|       |       |слова LABEL                                           |
|ch     |char   |Символы, которые считываются из текстового файла      |
|st     |string |Переменная содержащая отдельное слово из текстового   |
|       |       |файла                                                 |
|L      |spisok |Указатель, содержащий адрес произвольного элемента    |
|       |       |списка L, который содержит все имена идентификаторов  |
|       |       |программы, а также число вхождений этих               |
|       |       |идентификаторов в программе                           |
|Fst    |spisok |Указатель, содержащий адрес первого элемента списка L |
|Est    |spisok |Указатель, содержащий адрес произвольного элемента    |
|       |       |списка Est, который содержит все имена идентификаторов|
|       |       |программы в алфавитном порядке, а также числе         |
|       |       |вхождений идентификаторов в программе                 |
|FEst   |spisok |Указатель, содержащий адрес первого элемента списка   |
|       |       |Est                                                   |
|PEst   |spisok |Указатель, содержащий адрес произвольного элемента    |
|       |       |списка Est                                            |
|temp   |spisok |Вспомогательный указатель, для записи адреса          |
|       |       |вспомогательного элемента списка             
1234
скачать работу


 Другие рефераты
Идейно-художественное своеобразие и специфика конфликта в трагедии У.Шекспира “Макбет”
Фауст
Коррозия
Появление христианства


 

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

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


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