Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Составление списк идентификаторов в С++
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Spoke Spoke вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2006
Red face Составление списк идентификаторов в С++ - 23.12.2007, 23:04

Приветствую! Помогите пожалуйста с програмкой, вопрос жизни и смерти!
Вот само задание, оно достаточно объемное, ибо как я понял сдесь все описано какими путями идти:


Входной файл содержит себя текст программы на языке C++. Разработайте программу, составляющую лексикографически упорядоченный список встречающихся в файле идентификаторов, не являющихся служебными словами C++.
Каждый идентификатор должен упоминаться в списке ровно один раз. Для каждого идентификатора необходимо хранить информацию о том, сколько раз он встретился в тексте.

~Задание №1~
Используйте для хранения списка идентификаторов линейный однонаправленный список. В качестве результатов обработки необходимо вывести в выходной файл сформированный список. Дополнительно вывести те идентификаторы, которые встречаются в тексте ровно один раз (скорей всего, они являются либо необъявленными переменными, либо объявленными, но неиспользуемыми в программе).
~Задание №2~
Переработайте программу, реализованную в соответствии с заданием №1, с целью обеспечения максимально полного использования средств стандартной библиотеки C++. Выберите и используйте наиболее подходящий контейнер стандартной библиотеки для хранения списка идентификаторов. Составьте отдельный список идентификаторов, встретившихся в исходном тексте ровно один раз.

P.S: Во истину буду очень благодарен за помощь...
Ответить с цитированием
  (#2 (permalink)) Старый
Spoke Spoke вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2006
Red face Составление списк идентификаторов в С++ - 23.12.2007, 23:04

Приветствую! Помогите пожалуйста с програмкой, вопрос жизни и смерти!
Вот само задание, оно достаточно объемное, ибо как я понял сдесь все описано какими путями идти:


Входной файл содержит себя текст программы на языке C++. Разработайте программу, составляющую лексикографически упорядоченный список встречающихся в файле идентификаторов, не являющихся служебными словами C++.
Каждый идентификатор должен упоминаться в списке ровно один раз. Для каждого идентификатора необходимо хранить информацию о том, сколько раз он встретился в тексте.

~Задание №1~
Используйте для хранения списка идентификаторов линейный однонаправленный список. В качестве результатов обработки необходимо вывести в выходной файл сформированный список. Дополнительно вывести те идентификаторы, которые встречаются в тексте ровно один раз (скорей всего, они являются либо необъявленными переменными, либо объявленными, но неиспользуемыми в программе).
~Задание №2~
Переработайте программу, реализованную в соответствии с заданием №1, с целью обеспечения максимально полного использования средств стандартной библиотеки C++. Выберите и используйте наиболее подходящий контейнер стандартной библиотеки для хранения списка идентификаторов. Составьте отдельный список идентификаторов, встретившихся в исходном тексте ровно один раз.

P.S: Во истину буду очень благодарен за помощь...
Ответить с цитированием
  (#3 (permalink)) Старый
Spoke Spoke вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2006
Red face Составление списк идентификаторов в С++ - 23.12.2007, 23:04

Приветствую! Помогите пожалуйста с програмкой, вопрос жизни и смерти!
Вот само задание, оно достаточно объемное, ибо как я понял сдесь все описано какими путями идти:


Входной файл содержит себя текст программы на языке C++. Разработайте программу, составляющую лексикографически упорядоченный список встречающихся в файле идентификаторов, не являющихся служебными словами C++.
Каждый идентификатор должен упоминаться в списке ровно один раз. Для каждого идентификатора необходимо хранить информацию о том, сколько раз он встретился в тексте.

~Задание №1~
Используйте для хранения списка идентификаторов линейный однонаправленный список. В качестве результатов обработки необходимо вывести в выходной файл сформированный список. Дополнительно вывести те идентификаторы, которые встречаются в тексте ровно один раз (скорей всего, они являются либо необъявленными переменными, либо объявленными, но неиспользуемыми в программе).
~Задание №2~
Переработайте программу, реализованную в соответствии с заданием №1, с целью обеспечения максимально полного использования средств стандартной библиотеки C++. Выберите и используйте наиболее подходящий контейнер стандартной библиотеки для хранения списка идентификаторов. Составьте отдельный список идентификаторов, встретившихся в исходном тексте ровно один раз.

P.S: Во истину буду очень благодарен за помощь...
Ответить с цитированием
  (#4 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Talking 24.12.2007, 07:40

Примерно так :
Код:
#include <string>
#include <iostream>
#include <list>
#include <stdio.h>
using namespace std;

class IdentifierList
{
   struct  IdStatistics
   {
      string  Identifier;// identifier name 
      int num;//  кол-во таких идентификаторов в файле 
   };
  list<IdStatistics>   IdList;//  список пар  {уникальный идентификатор;  частота появления в файле }  (результат !!!)
  FILE *F;// file для обработки , чтобы не таскать туда /сюда

  string GetNextIdentifier()
  {// использует F; достаёт следующий идентификатор из файла.
   // идентификатор - первый char - буква , последующие - буква или цифра; => use functions :  isalpha(), isalnum()
  }
  IdStatistics*  HasThisId(string &newId)// проверяет , есть ли newId в списке идентификаторов
  {
    list<IdStatistics>::iterator I; 
    for(I= IdList.begin();I!= IdList.end();I++)
    {
        if((*I).Identifier==newId)   //если такой идентификатор уже есть , 
           return &(*I);// возвращает указатель на структуру , содержащую этот идентификатор
    }
    return NULL;//если идентификатора newId в списке ещё нет 
  }  
public:
  IdentifierList(FILE *File)//constructor
  {  F=File; }

  GetIdentifierList()
  {
     while(!feof(F)/*... and may be something else..   */)   //пока файл не закончился 
     {
          string  NewId=GetNextIdentifier();
          IdStatistics    *TwinOfNewID=HasThisId(NewId);
          if(TwinOfNewID!=NULL)// если NewId уже есть в списке
             TwinOfNewID->num++;//  увелич. счётчик 
          else
          { // добавляем новый идентификатор    в список
             IdList.push(  ... NewID ,...num=1 ..) 

          }      
     }
  }
  PrintResults(FILE *F_out)//распечатка результатов
  {
    for(I= IdList.begin();I!= IdList.end();I++)
    {
       ... /// use:        (*I).Identifier ,  (*I).num  

    }
  }
};
main()
{
   FILE *F=fopen....;
   IdentifierList  IdList(F);// constructor
   IdList.GetIdentifierList();
//results :
   FILE *out...;
   IdList.PrintResults(out);
}
Ответить с цитированием
Ads
  (#5 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Talking 24.12.2007, 07:40

Примерно так :
Код:
#include <string>
#include <iostream>
#include <list>
#include <stdio.h>
using namespace std;

class IdentifierList
{
   struct  IdStatistics
   {
      string  Identifier;// identifier name 
      int num;//  кол-во таких идентификаторов в файле 
   };
  list<IdStatistics>   IdList;//  список пар  {уникальный идентификатор;  частота появления в файле }  (результат !!!)
  FILE *F;// file для обработки , чтобы не таскать туда /сюда

  string GetNextIdentifier()
  {// использует F; достаёт следующий идентификатор из файла.
   // идентификатор - первый char - буква , последующие - буква или цифра; => use functions :  isalpha(), isalnum()
  }
  IdStatistics*  HasThisId(string &newId)// проверяет , есть ли newId в списке идентификаторов
  {
    list<IdStatistics>::iterator I; 
    for(I= IdList.begin();I!= IdList.end();I++)
    {
        if((*I).Identifier==newId)   //если такой идентификатор уже есть , 
           return &(*I);// возвращает указатель на структуру , содержащую этот идентификатор
    }
    return NULL;//если идентификатора newId в списке ещё нет 
  }  
public:
  IdentifierList(FILE *File)//constructor
  {  F=File; }

  GetIdentifierList()
  {
     while(!feof(F)/*... and may be something else..   */)   //пока файл не закончился 
     {
          string  NewId=GetNextIdentifier();
          IdStatistics    *TwinOfNewID=HasThisId(NewId);
          if(TwinOfNewID!=NULL)// если NewId уже есть в списке
             TwinOfNewID->num++;//  увелич. счётчик 
          else
          { // добавляем новый идентификатор    в список
             IdList.push(  ... NewID ,...num=1 ..) 

          }      
     }
  }
  PrintResults(FILE *F_out)//распечатка результатов
  {
    for(I= IdList.begin();I!= IdList.end();I++)
    {
       ... /// use:        (*I).Identifier ,  (*I).num  

    }
  }
};
main()
{
   FILE *F=fopen....;
   IdentifierList  IdList(F);// constructor
   IdList.GetIdentifierList();
//results :
   FILE *out...;
   IdList.PrintResults(out);
}
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Talking 24.12.2007, 07:40

Примерно так :
Код:
#include <string>
#include <iostream>
#include <list>
#include <stdio.h>
using namespace std;

class IdentifierList
{
   struct  IdStatistics
   {
      string  Identifier;// identifier name 
      int num;//  кол-во таких идентификаторов в файле 
   };
  list<IdStatistics>   IdList;//  список пар  {уникальный идентификатор;  частота появления в файле }  (результат !!!)
  FILE *F;// file для обработки , чтобы не таскать туда /сюда

  string GetNextIdentifier()
  {// использует F; достаёт следующий идентификатор из файла.
   // идентификатор - первый char - буква , последующие - буква или цифра; => use functions :  isalpha(), isalnum()
  }
  IdStatistics*  HasThisId(string &newId)// проверяет , есть ли newId в списке идентификаторов
  {
    list<IdStatistics>::iterator I; 
    for(I= IdList.begin();I!= IdList.end();I++)
    {
        if((*I).Identifier==newId)   //если такой идентификатор уже есть , 
           return &(*I);// возвращает указатель на структуру , содержащую этот идентификатор
    }
    return NULL;//если идентификатора newId в списке ещё нет 
  }  
public:
  IdentifierList(FILE *File)//constructor
  {  F=File; }

  GetIdentifierList()
  {
     while(!feof(F)/*... and may be something else..   */)   //пока файл не закончился 
     {
          string  NewId=GetNextIdentifier();
          IdStatistics    *TwinOfNewID=HasThisId(NewId);
          if(TwinOfNewID!=NULL)// если NewId уже есть в списке
             TwinOfNewID->num++;//  увелич. счётчик 
          else
          { // добавляем новый идентификатор    в список
             IdList.push(  ... NewID ,...num=1 ..) 

          }      
     }
  }
  PrintResults(FILE *F_out)//распечатка результатов
  {
    for(I= IdList.begin();I!= IdList.end();I++)
    {
       ... /// use:        (*I).Identifier ,  (*I).num  

    }
  }
};
main()
{
   FILE *F=fopen....;
   IdentifierList  IdList(F);// constructor
   IdList.GetIdentifierList();
//results :
   FILE *out...;
   IdList.PrintResults(out);
}
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
!!!Прошу помощи Определите функцию переставляющую элементы списк antoxaCS2 Lisp 8 06.12.2011 23:42
Организация таблиц идентификаторов. Vovochka Задания за деньги 1 23.11.2011 12:45
Составление томов на HDD Веталь Любые вопросы от новичков 2 05.07.2011 05:24
База данных идентификаторов программы представляет собой список пар imported_pepper Haskell 7 25.11.2010 22:29
Составление графики в С++ SimTiko Вопросы начинающих программистов 7 08.02.2010 09:18
База данных идентификаторов программы kaffetka1841 Haskell 29 17.12.2009 22:51
Составление расписания Маринчик Prolog 1 15.11.2009 22:03
Построить таблицу идентификаторов lena74 Вопросы начинающих программистов 3 18.06.2007 19:21
Программа на составление упорядоченного списка идентификаторов в С++ Spoke Вопросы начинающих программистов 5 20.02.2007 09:37
Какие есть библиотеки для генерации идентификаторов c++ Мультиплатформенные библиотеки 2 24.08.2004 15:06
КАК УЗНАТЬ, КАКОЙ ПУНКТ ВЫБРАН В РАСКРЫВАЮШЕМСЯ СПИСК? el-niko PHP 2 08.06.2004 23:35



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов