IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Язык Паскаль, Тип данных - строки
Archon
сообщение 2.11.2010 4:50
Сообщение #21


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Такое впечатление, что это программа не твоя, а товарища с похожим заданием. norespect.gif
Цитата
А программу подредактировать поможешь?
Подредактировать? Легко. Добавь в неё две фигурные скобки:
Program stroka1;
uses crt;
var s,s1,s2,s3:string;
i,j,k:byte;
c:char;
begin
clrscr;
writeln('Введите 1 предложение:');
readln(s);
s:=' '+s;
i:=1;
s2:='';
while i<=length(s) do
if (s[i]<>' ')and(s[i-1]=' ') then
begin
j:=i;
s1:='';
while(j<=length(s)){and(s[j]<>' ')} do
begin
s1:=s1+s[j];
j:=j+1;
end;
c:=s1[1];
s3:=copy(s1,2,length(s1)-1);
for k:=length(s3)downto 1 do
if s3[k]=c then delete(s3,k,1);
s2:=s2+s1[1]+s3;
i:=i+length(s1);
end
else
begin
s2:=s2+s[i];
i:=i+1;
end;
delete(s2,1,1);
write(s2);
readln
end.



--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 2.11.2010 6:15
Сообщение #22


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Мужики, вы чего? shok.gif Оборзели слегка? Или забыли как сами начинали? А может, это новый способ заигрывать девочкой?.. Вы как будете первачку 1+2 объяснять - с помощью Додекиндовых сечений или все же на яблоках?? blink.gif
Да, уважаемые Действительные Члены Младшей Группы Детского Сада (ДЧМГДС), вас нельзя и на несколько часов оставить без внимания..

2 TarasBer: буду понижать репу за всякие O(n) не по делу - флуд! Даже хуже - пудришь мозги начинающим.. !nono.gif

Провинциалка, вот вся твоя задача:
var
s: string;
i: integer;

begin
Write('Введите строку: ');
ReadLn(s);
for i:=Length(s) downto 1 do if s[i]=s[1] then Delete(s,i,1);
WriteLn(s);
ReadLn
end.

Если нужно удалять независимо от регистра (большая/маленькая буква), то главный цикл замени на такой:
  for i:=Length(s) downto 1 do if UpCase(s[i])=UpCase(s[1]) then Delete(s,i,1); 

Задавай вопросы, если что-то неясно.

Если возможна ситуация, что первый символ - не буква (например: "Эй!"- крикнул он. Первый символ - кавычка), и надо ее обрабатывать, то нужно добавить поиск первой буквы. Мне почему-то кажется, что это тебе пока не надо (спроси препа). Если окажется, что надо - скажи, обсудим.

Пиши на том, что есть, никто тебя не перетягивает на Delphi. Pascal/Delphi - это просто название опции в выпадающем меню, которую тебе надо выбрать. Поскольку подсветка синтаксиса языкозависима, то и несколько опций на выбор. Опция Pascal/Delphi означает, что ты хочешь использовать вариант подсветки для языка Pascal или Delphi. То есть числа, строки, комментарии и т.п. будут выделены другим цветом (приглядись к программке в этом посте). Понятно? И прочти же, наконец, правила! И всего форума, и этого раздела (вверху этой страницы, п.2)

Успехов тебе.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 2.11.2010 10:15
Сообщение #23


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> for i:=Length(s) downto 1 do if UpCase(s[i])=UpCase(s[1]) then Delete(s,i,1);

Ну ей может, такое и покатит. А вот Unconnectedу уже так писать неприлично.

> Даже хуже - пудришь мозги начинающим..

А вот Unconnected уже не начинающий, а всё ещё думает, что Delete работает мгновенно.
Надо всех учить.

Так что надо давно пора в FAQ добавить алгоритм удаления из массива элемента по признаку. Или он там уже есть?

Спойлер (Показать/Скрыть)


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 2.11.2010 10:33
Сообщение #24


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 2.11.2010 10:15) *
Считаешь нужным - жми минус, делов то.
Дык - немного не хватало! Вот теперь все в порядке )). А Unconnected тут совершенно ни при чем.

Все, джентльмены, кончаем флуд.
Помогаем даме.
smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 3.11.2010 19:39
Сообщение #25


Гость






Извините, я тут немного припозднилась - то лекции, то проблемы. Мне понравилось всё, что тут обсуждалось. И вариант:
var
s: string;
i: integer;

begin
Write('Введите строку: ');
ReadLn(s);
for i:=Length(s) downto 1 do if s[i]=s[1] then Delete(s,i,1);
WriteLn(s);
ReadLn
end.
меня даже больше чем устраивает!!! Огромнейшее спасибо всем, кто принимал участие в этом нелёгком общении.
(Такое впечатление что на форуме настоящие АКУЛЫ своего дела. Честь и хвала профессионалам!)
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 15:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"