Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 688

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
кто сможет помогите пожалуйста решить лаб. заранее благодарю
1) удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки.
2) вывести второе слово в исходной строке.
3) ввести строку. найти длину самого короткого слова.

lexa3581 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: lexa3581 (статус: Посетитель)
Вопрос отправлен: 26 января 2010, 19:45
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Мережников Андрей

Здравствуйте, lexa3581!
по первому вопросу смотри приложение. по 2 и 3 - необходимо уточнение - что является разделителем слов - только пробел или учитывать все знаки препинания?

Приложение:
  1. var L,M:integer;
  2. s:string[255];
  3.  
  4. .....
  5. .....
  6. L:=length(s) div 2;
  7. M:=length(s) mod 2;
  8. if M=0
  9. then s:=copy(s,1,L-1)+copy(s,L+2,L-1)
  10. else s:=copy(s,1,L)+copy(s,L+1,L);


Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 26 января 2010, 20:48
Оценка за ответ: 5

Комментарий к оценке: спасибо за 1 задание, а 2 и 3 учитывать только пробелы.

Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 27 января 2010, 05:28; участников в обсуждении: 1.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 26 января 2010, 20:50 [#1]:

строку после else надо подправить так: ...+copy(s,L+2,L);

26 января 2010, 22:04: Вопрос перемещён из тематического раздела Pascal » Программирование на Pascal в раздел Лабораторный практикум » Pascal модератором Ерёмин А.А.

Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 января 2010, 05:23 [#2]:

тогда второе задание можно сделать так (поиск второго слова):
var i:integer;
s:string[255];

....
....
i:=pos(' ',s);
if i>0
then begin
s:=copy(s,i+1,length(s)-i);
i:=pos(' ',s);
if i>0
then s:=copy(s,1,i-1);
//можно вставить проверку, чтобы s не состояла из одних пробелов
writeln(s);
end
else writeln('второго слова нет');
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 27 января 2010, 05:28 [#3]:

По третьему заданию - тоже все просто:
var i,mm:integer;
s:string[255];
....
....
mm:=length(s);
while length(s)>0
do begin
i:=pos(' ',s);
if i>0
then s:=copy(s,i+1,length(s)-i)
else begin
i:=length(s);
s:='';
end
if mm>i
then mm:=i;
end;
//после цикла в mm - длина самого короткого слова

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.02 сек.