Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.06.2011, 12:40
ivanenkova ivanenkova вне форума
Прохожий
 
Регистрация: 15.06.2011
Сообщения: 1
Репутация: 10
По умолчанию работа со строковыми переменными

1 заменить "о" на "а"
2 определить количество цифр в тексте, подсчитать их сумму
3 удалить все цифры из текста
4 подсчитать количество (суммарное вхождение букв "м" и "н"), стоящих на нечетных позициях

Ответить с цитированием
  #2  
Старый 15.06.2011, 13:06
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
  i:Integer;
  S,S1:String;
  SumChisel,SumBukvMH:Integer;
begin
SumChisel:=0;
SumBukvMH:=0;
S1:='';
S:='Это 1 исходный текст для выполнения 4 задий';
Edit1.Text:=S; //только для наглядности
for i:=1 to Length(S) do
  begin
    if (LowerCase(S[i])='o') or (LowerCase(S[i])='о') then
      S[i]:='a';
    if (S[i]<>'0') and (S[i]<>'1') and (S[i]<>'2') and (S[i]<>'3') and (S[i]<>'4')and
    (S[i]<>'5') and (S[i]<>'6') and (S[i]<>'7') and (S[i]<>'8') and (S[i]<>'9') then
      S1:=S1+S[i]
      else SumChisel:=SumChisel+StrToInt(S[i]);
    if (LowerCase(S[i])='н') or (LowerCase(S[i])='м') and (i mod 2 <> 0) then
      SumBukvMH:=SumBukvMH+1;
  end;
S:=S1;
Edit2.Text:=S;
Label1.Caption:='Сумма чисел = '+ IntToStr(SumChisel);
Label2.Caption:='Сумма букв "н" и "м" = '+ IntToStr(SumBukvMH);
end;
Ответить с цитированием
  #3  
Старый 15.06.2011, 13:51
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

4 задач - 4 функции
Код:
function Replace_a_To_o(value: String): String;
begin
  Result := StringReplace(Value, 'а', 'о', [rfReplaceAll, rfIgnoreCase]);
end;

function Digets_Count_and_Sum(Value: String; var Sum: Integer): Integer;
var
  i: Integer;
begin
  Result := 0;
  Sum := 0;
  for i := 1 to Length(Value) then
  if Value[i] in ['0'..'9'] then 
  begin
    Inc(Result);
    Inc(Sum, StrToInt(Value[i]));
  end;
end;

function Delete_Digets(Value: String): String;
var
  i: Integer;
begin
  Result := '';
  for i := 1 to Length(Value) do
  if not (Value[i] in ['0'..'9']) then Result := Result + Value[i];
end;

function Count_m_And_n(Value: String): Integer;
var
  i: Integer;
begin
  Result := 0;
  for i := 1 to Length(Value) do
  if (AnsiLowerCase(Value[i]) in ['м', 'н']) and odd(i) then
  Inc(Result);
end;
4 задачи - одно решение:
Код:
var
  i, c1, c2, s: integer;
  Value, tmp: String;
begin
  ...blah-blah-blah... 
  tmp := '';
  c1 := 0;
  c2 := 0;
  s := 0;
  for i := 1 to Length(Value) do
  case Value[i] of
  'o':      tmp := tmp + 'a';
  '0'..'9': begin
               Inc(c1);
               Inc(s, StrToInt(Value[i]));
            end;
  'м'..'н': if Odd(i) then Inc(c2);
  else     tmp := tmp + Value[i];
  end;
  Value := tmp;
end;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.

Последний раз редактировалось dr. F.I.N., 15.06.2011 в 17:13.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter