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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 22:45   #1
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию Строки, слова....

Ребята, помогите с этими заданиями... Не могу разобраться...

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

2. Если длина слова больше 8 символов, то сформировать из него два слова: в одно записать последние 8 символов, а в другое - остальные, дополняя его до 8 символов знаками "%".
eragon_ua вне форума Ответить с цитированием
Старый 21.03.2011, 00:43   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

2.
Код:
var
  s, s1, s2: string;

begin
  readln(s);
  if length(s) > 8 then begin
    s1 := copy(s, length(s) - 7, 8);
    delete(s, length(s) - 7, 8);
    while length(s) <> 8 do
      s := s + '%';
    s2 := s;
    writeln(s1);
    writeln(s2);
  end
  else writeln('мньше 8 символов');
end.
unbanned вне форума Ответить с цитированием
Старый 21.03.2011, 02:24   #3
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

1. В коде небольшой комментарий
Код:
var
  Text: string;
  min, max, p: integer;
  change: boolean;
begin
  // Наше предложение
  Text := 'Строка с текстом.';

  // Заменяем последнюю точку на пробел
  text[Length(text)] := ' ';
  
  min := length(text);
  max := 0;

  {
    Находим все слова (пробелы)
  }
  while Pos(' ', Text) <> 0 do
  begin
    p := Pos(' ', Text) -1;
    if p < min then
       min := p;
    if p > max then
      max := p;
    Delete(Text, 1, p+1);
  end;
  
  WriteLn('Минимальное: ',min);
  WriteLn('Максимальное: ',max);
end.

Последний раз редактировалось kangreon; 21.03.2011 в 02:40. Причина: Переделал :)
kangreon вне форума Ответить с цитированием
Старый 21.03.2011, 22:14   #4
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию

Спасибо. Буду разбираться....
eragon_ua вне форума Ответить с цитированием
Старый 22.03.2011, 18:03   #5
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от kangreon Посмотреть сообщение
1. В коде небольшой комментарий
Код:
var
  Text: string;
  min, max, p: integer;
  change: boolean;
begin
  // Наше предложение
  Text := 'Строка с текстом.';

  // Заменяем последнюю точку на пробел
  text[Length(text)] := ' ';
  
  min := length(text);
  max := 0;

  {
    Находим все слова (пробелы)
  }
  while Pos(' ', Text) <> 0 do
  begin
    p := Pos(' ', Text) -1;
    if p < min then
       min := p;
    if p > max then
      max := p;
    Delete(Text, 1, p+1);
  end;
  
  WriteLn('Минимальное: ',min);
  WriteLn('Максимальное: ',max);
end.


Только программка у меня не работает....=(
eragon_ua вне форума Ответить с цитированием
Старый 28.03.2011, 22:26   #6
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию

Ребята..... ау..
eragon_ua вне форума Ответить с цитированием
Старый 29.03.2011, 11:20   #7
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от eragon_ua Посмотреть сообщение
Только программка у меня не работает....=(
Что там может не работать
код благополучно компилируется, программа выполняет поставленную задачу. Возможно у вас компилятор нерабочий.(проверьте)
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 29.03.2011, 21:45   #8
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию

Код:
Program lab;
var
  Text: string;
  min, max, p: integer;
  change: boolean;
begin

  Text := 'Stroka s textom.';


  text[Length(text)] := ' ';

  min := length(text);
  max := 0;


  while Pos(' ', Text) <> 0 do
  begin
    p := Pos(' ', Text) -1;
    if p < min then
       min := p;
    if p > max then
      max := p;
    Delete(Text, 1, p+1);
  end;

  WriteLn('Minimalnoe: ',min);
  WriteLn('Maximalnoe: ',max);
end.


Мне пишет :

Максимальное : 6
Минимальное : 1

P.S. Если это что-то у меня с руками, то строго не судите и не ругайте... Я новичок в этом деле.. =)

Последний раз редактировалось eragon_ua; 29.03.2011 в 21:50.
eragon_ua вне форума Ответить с цитированием
Старый 29.03.2011, 22:18   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

*wall*
s t r o k a
1 2 3 4 5 6
s
1
t e x t o m
1 2 3 4 5 6

может ты не так считаешь, конечно, но у меня счет сводится к тому, что слово с максимальным количеством букв имеет 6 символов, а с минимальным - 1 , ну хотя тебе это, наверное, ничего не говорит... у тебя же программка не работает

Последний раз редактировалось phomm; 29.03.2011 в 22:21.
phomm вне форума Ответить с цитированием
Старый 29.03.2011, 22:20   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
'Stroka s textom.'

Максимальное : 6
Минимальное : 1
ну правильно.
слово максимальной длины 6 букв. (Stroka)
слово минимальной длины - 1 буква (s)


ДОБАВЛЕНО
сорри, когда писал, ещё ответ phomm не видел.. Поэтому повторил (по сути) его сообщение!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена строки (слова) ps10n1ck Общие вопросы C/C++ 4 29.10.2010 21:22
Строки и слова: Паскаль Gray_Jagger Помощь студентам 8 06.04.2010 18:04
удаление СЛОВА из строки LER44IKK Помощь студентам 5 20.11.2009 18:13
Слова и строки в Delphi... Zibiv Помощь студентам 26 16.12.2008 15:57
Перенести слова из массива в строки Xardas Паскаль, Turbo Pascal, PascalABC.NET 2 04.05.2008 12:34