Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37

Простой алгоритм с использованием C++ Builder

17.11.2015, 21:10. Показов 2085. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть задания
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки,с которой оно начинается.

Нашел схожую тему с реализацией этой программы с использованием delphi
Вывести на экран порядковый номер слова максимальной длины
Кому не сложно,переделайте алгоритм на c++ builder в оконный режим и объясните как он работает,буду очень благодарен.

Готовую прогру на delphi прикрепил.
Вложения
Тип файла: 7z Задание.7z (150.7 Кб, 6 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2015, 21:10
Ответы с готовыми решениями:

Рисование простеньких рисунков в C++ Builder с использованием OnPaint, а так же с использованием мыши
нужен рабочий код рисунка любого(только чтоб не кубики и эллипсы одни) на C++ Builder с использование OnPaint, т.е. чтобы он...

пример простой процедуры на Builder
поделитесь кто нить простым примером простой процедуры, а то на С++ незнаю как правильно, у меня в проге будет поддержка языков, и когда...

С++ Builder RAD Studio простой калькулятор
Всем привет, через 12 часов экзамен по программированию, а тему с формами не успел закрепить) Суть вопроса: делаю обычный калькулятор, не...

11
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37
17.11.2015, 22:01  [ТС]
переделайте на c++
Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
var s,s1:string;
    n,i,j,k,max,imx,ns:integer;
begin
s:=Edit1.Text;
n:=length(s);
k:=0;//всего слов
max:=0;//макс длина
ns:=0; //номер мксимального
imx:=0;//начало максимального
i:=1;
while i<=n do
if(s[i]<>' ')and((i=1)or(s[i-1]=' ')) then
 begin
  k:=k+1;
  s1:='';
  j:=i;
  while(j<=n)and(s[j]<>' ') do
   begin
    s1:=s1+s[j];
    j:=j+1;
   end;
  if length(s1)>max then
   begin
    max:=length(s1);
    imx:=i;
    ns:=k;
   end;
  i:=i+length(s1);
 end
else i:=i+1;
Edit2.Text:='Порядковый номер слова максимальной длины= '+
             IntToStr(ns)+' номер позиции его начала= '+
             IntToStr(imx);
 
end;
Добавлено через 5 минут
Помогите,исправьте ошибки и реализуйте оконный вид :0

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
 TObject) procedure TForm1->Button1Click(Sender;
string { s,s1;
int         n,i,j,k,max,imx,ns;
  
s= Edit1->Text;
n= length(s);
k= 0;//всего слов
max= 0;//макс длина
ns= 0; //номер мксимального
imx= 0;//начало максимального
i= 1;
while( i<==n)
if(s[i]!=" ")and((i=1)or(s[i-1]=" ")) then
  { 
  k= k+1;
  s1= "";
  j= i;
  while(j<==n)&& (s[j]!=" ") do
    { 
    s1= s1+s[j];
    j= j+1;
    } 
  if(length(s1)>max   )
    { 
    max= length(s1);
    imx= i;
    ns= k;
    } 
  i= i+length(s1);
 }  
else i= i+1;
Edit2->Text= "Порядковый номер слова максимальной длины= "+
             IntToStr(ns)+" номер позиции его начала= "+
             IntToStr(imx);
 
 }
0
17.11.2015, 22:05

Не по теме:

Так ты только что написал удалить тему :)

0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37
17.11.2015, 22:40  [ТС]

Не по теме:

удалить дубликат



Добавлено через 29 минут
Вот,нашел схожий алгоритм реализованный в консольном виде,объясните сам алгоритм и когд и реализуйте в оконном виде с использованием c++ Builder,буду очень благодарен
http://codepad.org/Fk40EnLt
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.11.2015, 10:46
Лучший ответ Сообщение было отмечено Aureal3D как решение

Решение

Цитата Сообщение от Aureal3D Посмотреть сообщение
Суть задания
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки,с которой оно начинается.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int nomWrd, nomPoz, wmax=0 ;
   TStringList *StList1 = new TStringList;
   StList1->CommaText = Edit1->Text;
   for(int i=0;i<StList1->Count;i++)
     if(StList1->Strings[i].Length() > wmax)
       { nomWrd = i; wmax=StList1->Strings[i].Length(); }
   nomPoz = Edit1->Text.Pos(StList1->Strings[nomWrd]);
   Label1->Caption = "Порядковый номер слова: "+IntToStr(nomWrd+1);
   Label2->Caption = "Номер позиции слова: "+IntToStr(nomPoz);
}
- на форме - поле Edit, кнопка и две надписи (Label); в поле Edit находится текст из нескольких слов; при нажатии на кнопку запускается ее обработчик (см. выше). StringList - это список, при обработке по CommaText он формируется из текста в эдите, разделяя фрагменты по пробелу или запятой (если есть). Далее в цикле по количеству слов в списке сравнивается длина слова (.Length() ) с рабочей переменной и в случае, если длина больше, запоминается эта новая длина (в этой же переменной) и номер счетчика цикла (порядковый номер слова, начиная с нуля). Номер позиции слова в общей строке эдит1 - это функция .Pos().
Вложения
Тип файла: zip 59.ZIP (193.3 Кб, 8 просмотров)
1
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37
18.11.2015, 23:34  [ТС]
Благодарю,но в архиве что ты прикрепил совсем другая прога,интересует именно на исходники поглядеть,объяснил более-менее доступно,благодарю.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.11.2015, 00:06
Цитата Сообщение от Aureal3D Посмотреть сообщение
в архиве что ты прикрепил совсем другая прога
??! ...переведи, чтоб я понял.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37
19.11.2015, 20:29  [ТС]
C++
1
TStringList *StList1 = new TStringList;
Что делает эта строка?

Добавлено через 1 минуту
В том архиве,который ты прикрепил к своему ответу лежит прога не к этой теме,а написанная совсем по другому заданию(исходники от другой проги,exe от нужной)
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
19.11.2015, 20:36
Цитата Сообщение от Aureal3D Посмотреть сообщение
Что делает эта строка?
создает объект класса TStringList
вот, правда, не мешало бы его в конце обработчика удалить...
C++
1
delete StList1;
Добавлено через 1 минуту
Цитата Сообщение от Aureal3D Посмотреть сообщение
интересует именно на исходники поглядеть
Дык весь "исходник" перед тобой...
1
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 37
19.11.2015, 20:47  [ТС]
C++
1
for(int i=0;i<StList1->Count;i++)
Что это за строка?К чему этот цикл?
C++
1
{ nomWrd = i; wmax=StList1->Strings[i].Length(); }
И еще вот это
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.11.2015, 21:34
Цитата Сообщение от D1973 Посмотреть сообщение
вот, правда, не мешало бы его в конце обработчика удалить...
D1973, вы правы, как всегда.
Цитата Сообщение от Aureal3D Посмотреть сообщение
Что это за строка?К чему этот цикл?
- это цикл поиска среди всех слов предложения самого длинного. Если строка "Маша мыла раму во вторник", то список StList1, полученный из этой строки, выглядит так:
Маша
мыла
раму
во
вторник
.. StList1->Count дает число строк в списке (слов в предложении).
StList1->Strings[i].Length() - это дает (возвращает по научному) количество букв в i-ой строке списка.
0
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 22
25.11.2015, 20:12
Извините, а не могли бы вы помочь мне с похожей задачей, только в моем случае будет произвольная строка длиной до 80 символов и он должен разбивать ее по словам и самое длинное слово выводить на печать

Добавлено через 3 минуты
Цитата Сообщение от nick42 Посмотреть сообщение
D1973, вы правы, как всегда.
- это цикл поиска среди всех слов предложения самого длинного. Если строка "Маша мыла раму во вторник", то список StList1, полученный из этой строки, выглядит так:
Маша
мыла
раму
во
вторник
.. StList1->Count дает число строк в списке (слов в предложении).
StList1->Strings[i].Length() - это дает (возвращает по научному) количество букв в i-ой строке списка.
словам и самое длинное слово выводить на печать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2015, 20:12
Помогаю со студенческими работами здесь

Простой фильтр с использованием MMX.
Всем привет. В общем выкладываю небольшой пример кода. Возможно кому-нибудь пригодится. Простейший фильтр для работы с...

Простой пример с использованием оператора out
Пожалуйста напишите простой пример с использованием оператора out

Простой алгоритм
Во втором архиве - программа. В первом - файлы, которые нужно визуализировать. Итак, расшифровка... var x,y,i:integer; ...

Простой алгоритм
Всем привет, недавно задался вопросом как прописать в bat файле алгоритм, чтоб запустилась программа, все что вывелось в ее окне выделилось...

Простой алгоритм.
не получается алгоритм вычисления вида треугольника (вводишь 3 числа, а программа должна определить существует ли треугольник и его вид) ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru