Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2010, 05:04   #1
hewlett
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 29
По умолчанию Строки. Турбо-Паскаль.

Помогите решить:
1.Дана строка. Заменить все символы 'о' на 'а'
2.Определить, является ли заданная строка палиндромом (пример палиндрома:'А РОЗА УПАЛА НА ЛАПУ АЗОРА')
3.Дан текст из n (n<256) литер. Напечатать только строчные русские буквы, входящие в этот текст. Указание: Использовать множество.
4.Строка символов представляет собой текст, слова в котором разделены одним или более пробелами. Преобразовать эту строку так, чтобы все слова разделились ровно одним пробелом, а ведущие и хвостовые пробелы отсутствовали.
5.Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы "b".
6.Дана строка, состоящая из нескольких слов, между соседними словами не менее одного пробела, за последним словом - точка. Найти все слова, содержащие подстроку "рок".
7.Заданы два слова. Определить, можно ли получить второе слово из первого удалением некоторых его символов.
8.Перевести число, записанное римскими цифрами (для их записи используются латинские буквы I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000), в его десятичное представление.
hewlett вне форума Ответить с цитированием
Старый 05.03.2010, 06:06   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Цитата:
1.Дана строка. Заменить все символы 'о' на 'а'
Код:
for i:=1 to length(s) do
if s[i]='o' then s[i]:=a;
Цитата:
2.Определить, является ли заданная строка палиндромом (пример палиндрома:'А РОЗА УПАЛА НА ЛАПУ АЗОРА')
Код:
for i:=1 to length(s) do
if s[i]:=' ' then s[i]:='';
k:=length(s);
p:=true;
for i:=1 to k div 2 do
if  s[i]<>s[k-i+1] then begin p:=false;break;end;
if p then writeln('yes')
else writeln('no');
Цитата:
3.Дан текст из n (n<256) литер. Напечатать только строчные русские буквы, входящие в этот текст.
Код:
for i:=1 to length(s) do
if s[i] in ['а'..'п','р'..'я'] then write(s[i],' ':3);
Цитата:
4.Строка символов представляет собой текст, слова в котором разделены одним или более пробелами. Преобразовать эту строку так, чтобы все слова разделились ровно одним пробелом, а ведущие и хвостовые пробелы отсутствовали.
Код:
while pos('  ',s)<>0 do
    delete(s,pos('  ',s),1);
  while s[1]=' ' do
     delete(s,1,1);
  while s[length(s)]=' ' do
     delete(s,length(s),1);
Цитата:
5.Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы "b".
Код:
c:=0;
for i:=2 to length(s) do
if (s[i]:=b) and (s[i-1]=' ') then inc(c)
if s[1]:=b then inc(c);
Цитата:
6.Дана строка, состоящая из нескольких слов, между соседними словами не менее одного пробела, за последним словом - точка. Найти все слова, содержащие подстроку "рок".
Код:
sub:='';
  k:=0;
  c:=0;
  for I := 1 to length(s)  do
   if (s[i]=' ') and (sub<>'') then begin inc(k); a[k]:=sub;sub:='';end
   else if s[i]<>' '  then sub:=sub+s[i];
  if sub<>'' then begin inc(k);a[k]:=sub; end;
  for i := 1 to k do
  if pos('pok',a[i]) then writeln(a[i]);
Цитата:
8.Перевести число, записанное римскими цифрами (для их записи используются латинские буквы I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000), в его десятичное представление.
Код:
k:=0;
  for I := 1 to length(s) do
   case s[i] of
     'I':inc(k,1);
     'V':inc(k,5);
     'X':inc(k,10);
     'L':inc(k,50);
     'C':inc(k,100);
     'D':inc(k,500);
     'M':inc(k,1000);
  end;

Последний раз редактировалось Google2010; 05.03.2010 в 06:39.
Google2010 вне форума Ответить с цитированием
Старый 05.03.2010, 20:54   #3
hewlett
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 29
По умолчанию

upupupupup
hewlett вне форума Ответить с цитированием
Старый 06.03.2010, 05:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от hewlett
upupupupup
лучше бы Большое спасибо господину Google2010 сказали! ;(

И ещё, "помогите решить" - это значит, что Вы пытаетесь решить и у Вас что-то не получается.
А так это называется - "сделайте за меня". И вообще-то это такое обычно попадает во фриланс, где вам всё решат (но за деньги).


Цитата:
8.Перевести число, записанное римскими цифрами (для их записи используются латинские буквы I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000), в его десятичное представление.
взял задачу из своего архива (хотя уже публиковал здесь на форуме этот же исходник, можно и продублировать )
Код:
{Перевод из арабской в римскую систему и наоборот

Алгоритм весьма прост и извлекается непосредственно из исходника.
}

{ Copyright MM Andrew Usachov }

const

  R: array[1..13] of string[2] =
  ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');

  A: array[1..13] of Integer =
  (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);

function Roman(N: Integer): string;
var Result: string;
  i: Integer;
begin
  Result := '';
  i := 13;
  while N > 0 do
  begin
    while A[i] > N do Dec(i);
    Result := Result + R[i];
    Dec(N, A[i]);
  end;

  Roman := Result;

end;

function Arabic(S: string): Integer;
var Result: Integer;
  i, p: Integer;
begin
  Arabic := -1;
  Result := 0;
  i := 13;
  p := 1;
  while p <= Length(S) do
  begin
    while Copy(S, p, Length(R[i])) <> R[i] do
    begin
      Dec(i);
      if i = 0 then Exit;
    end;
    Result := Result + A[i];
    p := p + Length(R[i]);
  end;
  if Roman(Result) = S then Arabic := Result
end;

var N, Err: Integer;
  S: string;
begin
  repeat
    ReadLn(S);
    if S = '' then Break;
    Val(S, N, Err);
    if Err = 0 then
      WriteLn(Roman(N))
    else
      WriteLn(Arabic(S));
  until false;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
турбо паскаль glavad Помощь студентам 2 14.12.2009 21:36
Турбо паскаль Ильшатиккк Фриланс 14 16.09.2009 11:57
Турбо паскаль Gabi Помощь студентам 2 24.12.2008 22:18
Турбо Паскаль Jondeer Помощь студентам 5 27.10.2007 17:19