Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Решение задач со строками.


Автор: Летиция 12.3.2010, 22:57
Нужно решить две задачи в Делфи, 1 курс.

1. Дана строка, состоящая из русских слов, разделённых пробелами (одним или несколькими). Определить количество слов, которые содержат ровно три буквы "а".

2. Дан текстовый файл, каждая строка которого изображает целое число, дополненное слева и справа несколькими пробелами. Вывести сумму этих чисел и их количество.

Автор: Proxin 12.3.2010, 23:55
ви-таки совсем все лекции проспали?

Автор: Летиция 13.3.2010, 00:08
Если бы проспала - было бы не так обидно.

Автор: kami 13.3.2010, 00:19
Применят ли модераторы ко мне санкции или нет за это сообщение - не знаю, но не высказать не могу.
Цитата(Летиция @  12.3.2010,  22:57 Найти цитируемый пост)
Нужно решить две задачи в Делфи

Нужно - решайте.
Ни "заранее спасибо", ни "помогите пожалуйста" - сухая четкая постановка задачи. РЕШИТЬ! НУЖНО! Кстати, даже не пояснено - кому нужно?
И Вы, Летиция, похоже даже не сомневаетесь, что Ваша задача моментально принята к исполнению ?

Автор: Данкинг 13.3.2010, 00:24
Цитата(Летиция @  12.3.2010,  22:57 Найти цитируемый пост)
Нужно решить две задачи в Делфи, 1 курс.

Нужно? Нужно - решай, кто мешает? smile 

Первую задачу сделал, извиняюсь за некоторую кривизну, но суть должна быть понятна:

Код

function TForm1.getwordnum(slovo,razd,nomer: string): string;
var i,c,int1,int2:integer;
res,ss:string;
begin
result:=slovo;
if (length(trim(slovo))=0) or (length(trim(razd))<>1)then exit;
slovo:=trim(razd)+trim(slovo)+trim(razd);
c:=0;
int1:=0;
int2:=0;
for i:=1 to length(slovo) do
 begin
  ss:=copy(slovo,i,1);
  if ss=razd then
    begin
     inc(c);
     if c=strtoint(nomer) then int1:=i;
     if c=strtoint(nomer)+1 then int2:=i;
    end;
 end;
result:=copy(slovo,int1+1,int2-int1-1);
end;


procedure TForm1.Button1Click(Sender: TObject);
var s:string;
slovo:string;
i,j,aaa,total:integer;
begin
 s:='Это тестовааая строкааа,      в натуре';
 listbox1.Clear;
 while pos('  ',s)<>0 do s:=stringreplace(s,'  ',' ',[rfReplaceAll]);
 s:=trim(s);
 total:=0;
 for i:=1 to length(s) do
  if s[i]=' ' then inc(total);
 s:=stringreplace(s,' ','@',[rfReplaceAll]);
 for i:=1 to total+1 do
  begin
   slovo:=getwordnum(s,'@',inttostr(i));
   aaa:=0;
    for j:=1 to length(slovo) do
     if slovo[j]='а' then inc(aaa);
  if aaa=3 then listbox1.Items.Add(slovo);
  end;
end;


Добавлено через 45 секунд
kami, опередил.

Добавлено через 2 минуты и 27 секунд
Цитата(kami @  13.3.2010,  00:19 Найти цитируемый пост)
И Вы, Летиция, похоже даже не сомневаетесь, что Ваша задача моментально принята к исполнению ? 

Дык, конечно: я вместо того, чтобы поиграть в "Midtown madness", наваял этот вот код. smile 

Автор: Летиция 13.3.2010, 09:14
Я вообще не думала, моментально сделают или нет. Мне без разницы как-то было.
Данкинг, большое спасибо!!!

Автор: THandle 13.3.2010, 10:05
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Frees 14.3.2010, 00:08
ОФФ
Данкинг, поощряешь бездельников


Автор: Данкинг 14.3.2010, 00:57
Цитата(Frees @  14.3.2010,  00:08 Найти цитируемый пост)
поощряешь бездельников

Кстати, нет: обычно матерю. smile Видимо, настроение хорошее было. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)