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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 12:26   #1
Егор93
 
Регистрация: 02.12.2010
Сообщений: 5
Смущение Задачи со строками

1. Дана строка символов. Заменить все пробелы в заданной строке точками и запятыми поочередно.
2. Дана строка символов. Изменить строку: во всех словах, имеющих нечетное количество символов, средний символ удалить.

Вот первая программа в конце не хочет заменять последовательность символов ...... на .,.,.,
PHP код:
Program P4;
uses crt;
var 
k,s:string;
i,j:integer;
begin
j
:=0;
writeln('Stroka');read(s);
for 
i:=1 to length(s) do
if (
s[i]=' 'then
begin
 s
[i]:='.';
 
j:=j+1;
 
k[j]:=s[i];
 
end;
 
write('Kol-vo probelov=');
 
writeln(j);
for 
j:=1 to j do
write(k[j]);
writeln;
begin
if k[j]='.' then
for j:=1 to j  do
k[2*j]:=',';
for 
j:=1 to j do
write(k[j]);
writeln;
for 
i:=1 to length(s) do
begin
for j:=1 to j do
if 
s[i]='.' then s[i]:=k[j];
end;end;
for 
i:=1 to length(s) do
write(s[i]);
readln;
end
Вот часть второй программы, я смог только написать чтобы удалялся средний элемен в 1 слове а не в каждом слове(кол-во букв нечетное) в строк
PHP код:
program P5;
uses crt;
var 
kinteger;
    
st:string;
begin
  clrscr
;
  
write('st= ');readln(st);
  
k:= length(st);
  if 
k mod 2=1 then
  delete
(st,k div 2+1,1);
  
writeln(st);
  
readln;
end
Кто может помогите пожалуйста, заранее благодарен.
Егор93 вне форума Ответить с цитированием
Старый 28.01.2011, 16:23   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

1
Код:
var s:string;c:char;i:integer;
begin
read(s);
c:='.';
for i:=1 to length(s) do
if s[i]=' ' then
begin
s[i]:=c;
if c='.' then c:=','
else c:='.';
end;
write(s);
end.
2
Код:
var s,s1:string;c:char;i:integer;
buf:string;
begin
readln(s);
S:=s+' ';
buf:='';
for i:=1 to length(s) do
if s[i]=' ' then
begin
 s1:=s1+s[i];
 if odd(length(buf)) then delete(buf,length(buf) div 2+1,1);
 s1:=s1+buf; buf:='';
end
else buf:=buf+s[i];
s:=s1;
writeln(s);
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.01.2011, 22:16   #3
Егор93
 
Регистрация: 02.12.2010
Сообщений: 5
По умолчанию

Спасибо огромное
Егор93 вне форума Ответить с цитированием
Старый 13.03.2011, 15:09   #4
olegozavr
 
Регистрация: 18.01.2011
Сообщений: 4
По умолчанию

Не могли бы вы объяснить сей код. Никак не могу сообразить по какому принципу он работает. Заранее спасибо.

Код:
var
  s, s1: string;c: char;i: integer;
  buf: string;

begin
  readln(s);
  S := s + ' ';
  buf := '';
  for i := 1 to length(s) do
    if s[i] = ' ' then
    begin
      s1 := s1 + s[i];
      if odd(length(buf)) then delete(buf, length(buf) div 2 + 1, 1);
      s1 := s1 + buf; buf := '';
    end
    else buf := buf + s[i];
  s := s1;
  writeln(s);
end.
olegozavr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работы со строками 2 задачи!! vit1990 Помощь студентам 24 29.01.2011 00:18
Работа со строками (2 задачи, Pascal) J78 Помощь студентам 3 13.12.2010 13:44
Задачи в делфи. информационная модель задачи. @leks@ Помощь студентам 2 17.10.2010 19:15
Pascal. Задачи со строками blondinochka Помощь студентам 1 19.05.2009 15:58