|
Вопрос # 3 688/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
кто сможет помогите пожалуйста решить лаб. заранее благодарю
1) удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки.
2) вывести второе слово в исходной строке.
3) ввести строку. найти длину самого короткого слова.
 |
Вопрос задал: lexa3581 (статус: Посетитель)
Вопрос отправлен: 26 января 2010, 19:45
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Мережников Андрей
Здравствуйте, lexa3581!
по первому вопросу смотри приложение. по 2 и 3 - необходимо уточнение - что является разделителем слов - только пробел или учитывать все знаки препинания?
Приложение: Переключить в обычный режим- var L,M:integer;
- s:string[255];
-
- .....
- .....
- L:=length(s) div 2;
- M:=length(s) mod 2;
- if M=0
- then s:=copy(s,1,L-1)+copy(s,L+2,L-1)
- 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 - длина самого короткого слова
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|