Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 31.05.2011
Сообщений: 11
1

Определить, используются ли в тексте программы слова

17.10.2011, 10:53. Показов 795. Ответов 1
Метки нет (Все метки)

текстовый файл на языке С++ выбирается через окно диалога и загружается в объект типа TMemo и/или создается/редактируется в объекте типа TMemo.
Необходимо определить, используются ли в тексте программы слова, выражения или символы, указанные в вариантах и соответствующие правилам синтаксиса языка С++, подсчитать их общее количество и указать номера строк, в которых они обнаружены оператор цикла do while и знаки математических операций / и *.

Добавлено через 38 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     if (OpenDialog1 -> Execute())
        {       Memo1->Lines->Clear();
                fn = OpenDialog1 -> FileName;
                Memo1 -> Lines -> LoadFromFile(fn);
 
 
        }        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int dowhile,i,j,kom,,zve,dowhile1,kom1,zve1;
char a;
AnsiString str,str1;
dowhile=0;
kom=0;
zve=0;
 
 
AnsiString dowhile11;
AnsiString kom11;
AnsiString zve11;
 
 
char *  strstr(const char *, const char *);
for(i=0;i<Memo1->Lines->Count;i++)
{
dowhile1=0;
kom1=0;
zve1=0;
 
 
str=Memo1->Lines->Strings[i];
if (str.Length()>=7 )
{
   for (j=1;j<str.Length();j++)
   {
        if ((str[j]=='f')&& (str[j+1]=='c')&& (str[j+2]=='l')&&(str[j+3]=='o')&&(str[j+4]=='s')&&(str[j+5]=='e')&&(str[j+6]==' '))
                if ((j==1)||(str[j-1]==' ')||(str[j-1]==';'))
                        if ((j==1)||(str[j+6]==' '))
                        {
                                dowhile++ ;
                                dowhile1++;
                        }
 
   }
}
 
 
 
 
     if (str.Length()>=6 )
     {
                for (j=1;j<str.Length();j++)
                {
                        if ((str[j]=='f')&& (str[j+1]=='o')&& (str[j+2]=='p')&&(str[j+3]=='e')&&(str[j+4]=='n')&&(str[j+5]==' '))
 
                                if ((j==1)||(str[j-1]==' ')||(str[j-1]==';'))
 
                                       // if ((str.Length()>=5)||(str[j+5]==' '))
                                        {
                                                kom++ ;
                                                kom1++;
                                        }
 
                }
      }
 
 
 
 
 if (str.Length()>=3 )
 {
          for (j=1;j<str.Length();j++)
          {
                        if ((str[j]=='/')&& (str[j+1]=='/')&& (str[j+2]==' '))
 
                                if ((j==1)||(str[j-1]==' ')||(str[j-1]==';')){
                                        if ((str.Length()>=2)||(str[j+2]==' '))
                                        {
                                                zve++ ;
                                                zve1++;
                                        }
          }
 }
 
 if (dowhile1>0)  dowhile11+=IntToStr(i)+" -> "+IntToStr(dowhile1)+" raz ";
   if (kom1>0)  kom11+=IntToStr(i)+" -> "+IntToStr(kom1)+" raz ";
  if (zve1>0)  zve11+=IntToStr(i)+" -> "+IntToStr(zve1)+" raz ";
 
  }              }
Memo2->Clear();
 
 
 
 
Memo2->Lines->Add(AnsiString("Îïåðàòîð dowhile íàéäåí::"));
Memo2->Lines->Add(IntToStr (dowhile));
Memo2->Lines->Add(AnsiString("Îïåðàòîð dowhile íàéäåí â ñòðîêàõ:"));
Memo2->Lines->Add(dowhile11);
Memo2->Lines->Add(AnsiString("Çíàêè êîìåíòàðèåâ íàéäåíû::"));
Memo2->Lines->Add(IntToStr (kom));
Memo2->Lines->Add(AnsiString("Çíàêè êîìåíòàðèåâ íàéäåíû â ñòðîêàõ:"));
Memo2->Lines->Add(kom11);
Memo2->Lines->Add(AnsiString("Çíàê * íàéäåí:"));
Memo2->Lines->Add(IntToStr (zve));
Memo2->Lines->Add(AnsiString("Çíàê * íàéäåí â ñòðîêàõ:"));
Memo2->Lines->Add(zve11);
 
 
 
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
Вот мой вариант,но пишет что не правильно.

Добавлено через 1 минуту
всё,исправил,тему можно удалять
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2011, 10:53
Ответы с готовыми решениями:

Определить количество повторений в тексте заданного слова. Считать, что слова в тексте отделены друг от друга
1)В строке удалить введённое буквосочетание. 2)Определить количество повторений в тексте заданного...

Определить самое длинное слово в тексте. Считать, что слова в тексте отделены друг от друга одним пробелом
Определить самое длинное слово в тексте. Считать, что слова в тексте отделены друг от друга одним...

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

Слова на букву "А" в тексте переписать в обратном порядке, определить количество предложений в тексте
Как решить задачу на с++? В тексте все слова, начинающиеся на букву 'A', переписать в обратном...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
1
LK
Заблокирован
17.10.2011, 12:14 2
а что было-то ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2011, 12:14

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Приписать слева к слову Х те буквы слова Y, что используются при написании слова Х
Помогите пожалуйста!!! Есть код: public static void main(String args) { Scanner sc = new...

Составьте программу, приписывающую к слову X те буква слова Y, что используются при написания слова X
2 Составьте программу, приписывающую к слову X те буква слова Y, что используются при написания...

Составьте программу подсчета гласных букв слова x, что используются при написании слова z
Помогите решить задачку) 2. Составьте программу подсчета гласных букв слова x, что используются...

Определить номер слова в тексте
Определить номер слова, в котором больше всего букв &quot;а&quot; Текст произвольный


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.