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

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

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

 
 Ответить  Открыть новую тему 
> Напечатать все слова, которые встречаются в ней ровно 1 раз, есть ли оптимальное маленькое решение?
kr3v3tkus
сообщение 19.12.2005 21:28
Сообщение #1


Пионер
**

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

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


Напечатать все слова, которые встречаются в ней ровно 1 раз
не могу решить, тем более рационально(((

я смог решить вот ето:
5. Дана строка, состоящая из слов, разделенных пробелами. Напечатать все слова, отличные от данного.

может можно переделать эту задачку под требуемую?

решение
Код
program lol;
var text,tmp,txt:string;
      i,l:integer;
begin
writeln('vvest1 text');
readln(text);
writeln('vvest1 text dlia ydalen1ya');
readln(txt);
tmp:='';
l:=length(txt);
for i:=1 to length(text) do
if text[i]<>' ' then
  begin
    tmp:=tmp+text[i];
    if txt=tmp then delete(text,i-l,l+1);
  end
else tmp:='';
writeln(text);
readln;
end.


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kr3v3tkus
сообщение 19.12.2005 22:28
Сообщение #2


Пионер
**

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

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


и ещё вопросик
8. Дана строка, состоящая из слов, разделенных пробелами. Напечатать все слова, начинающиеся и заканчивающиеся одной буквой.
подскажите где ошибка а то не работает sad.gif имхо вроде всё сделал sad.gif
Код
program lol;
var text,tmp:string;
i:integer;
begin  
writeln('vvest1 text');  
readln(text);
tmp:='';
for i:=1 to length(text) do  
if text[i]<>' ' then tmp:=tmp+text[i]  
else  
if tmp[i-1]=tmp[i-length(tmp)] then
    begin      
      writeln('slovo ',tmp,' na4inaetsia u okan41vaetsya na ',tmp[1]);      
      tmp:='';
    end;  
readln;  
end.


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2005 22:39
Сообщение #3


Гость






Цитата
вроде всё сделал
Почти все...
Основная ошибка - слово Tmp должно сбрасываться НЕ только тогда, когда его первая и последняя буквы равны, а всегда, когда встречается пробел...
program lol;
var
text,tmp:string;
i:integer;
begin
writeln('vvest1 text');
readln(text);

tmp:='';
for i := 1 to length(text) do
if text[i] <> ' ' then
tmp:=tmp+text[i]
else begin

if tmp[1] = tmp[length(tmp)] then
writeln('slovo ',tmp,' na4inaetsia u okan41vaetsya na ',tmp[1]);
tmp:='';

end;
readln;
end.
 К началу страницы 
+ Ответить 
kr3v3tkus
сообщение 19.12.2005 23:14
Сообщение #4


Пионер
**

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

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


volvo а с первой не помогеш? мне бы хотяб на мыслю наткнуться)


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kr3v3tkus
сообщение 20.12.2005 19:35
Сообщение #5


Пионер
**

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

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


подскажите плз где ошибка? нужно найти минимальное слово

Код
program lol;
var text,tmp,txt:string;    
i,l:integer;  
begin
writeln('vvest1 text');  
readln(text);    
txt:=text;  tmp:='';    
for i:=1 to length(text) do  
if text[1]<>' ' then
  begin
    if text[i]<>' ' then tmp:=tmp+text[i]  
  else  
  begin
    if length(txt)>length(tmp) then
     txt:=tmp;    
     tmp:='';  
  end;  
end;
writeln('samoe malenkoe slovo - ',txt,' , ono sostoit i3 ',length(txt),' bukv');
readln;  
end.


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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