| 
| 
 | Вопрос # 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=0then 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 - длина самого короткого слова
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |