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

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

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

> Задача на строки
AlonZo
сообщение 12.10.2007 7:18
Сообщение #1


Новичок
*

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

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


Задача такая: найти наиболее часто встречающуюся букву в конце слов и эти слова вывести на экран.
Не использовать процедуры и функции, буду благодарен за помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 11)
мисс_граффити
сообщение 12.10.2007 8:19
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


1. Где у слова начинается конец? Или речь только про последнюю букву?
2. Что пробовал делать, что вызвало затруднения?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AlonZo
сообщение 12.10.2007 17:18
Сообщение #3


Новичок
*

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

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


1. Речь идет о последней букве в каждом слове.
2. Сам не понял как делать, но мне кое-что написали, но в коде есть проблема:
Код
var
  delimiters : set of char = [' ', ',', '.']; {сдесь пишет мол точку с запятой нужно поставить}
  inputString : string;
  i, inStrLen : integer;
  symbols : array [0..255] of integer;

begin
  write('write text here : ');
  readln(inputString);
  for i:=0 to 255 do symbols[i]:=0;

  i:=2;
  inStrLen := Length(inputString);
  while i <= inStrLen do
  begin
    if inputString[i] in delimiters then
       if not (inputString[i-1] in delimiters) then
          inc(symbols[ORD(inputString[i-1])]);
    inc(i);
  end;

  if not (inputString[inStrLen] in delimiters) then
     inc(symbols[ORD(inputString[inStrLen])]);

  inStrLen := 0;
  for i:=0 to 255 do
    if symbols[inStrLen] < symbols[i] then
       inStrLen := i;

  if inStrLen > 0 then
     writeln('Symbol is "' + CHR(inStrLen) + '"')
  else writeln('Error. Input data invalid.');

  readln;

end.

А в целом код правильный?

Сообщение отредактировано: AlonZo - 12.10.2007 17:20
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 12.10.2007 18:01
Сообщение #4


Гость






Цитата
{сдесь пишет мол точку с запятой нужно поставить}
Чтоб не писал - поменяй Var на Const ...
 К началу страницы 
+ Ответить 
AlonZo
сообщение 12.10.2007 18:54
Сообщение #5


Новичок
*

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

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


Все, спасибо за помощь, теперь все работает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
alter
сообщение 9.11.2007 16:20
Сообщение #6


Новичок
*

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

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


!help.gif Помогите пожалуйста решить такую задачу:

Из заданного предложения выбрать и вывести на экран только те символы, которые встречаются в нем только один раз( в том порядке, в котором они встречаются в тексте). Вывести на экран исходную символьную строку.

Заранее благодарен!

Сообщение отредактировано: alter - 9.11.2007 16:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.11.2007 16:36
Сообщение #7


Гость






Так пойдет?

var
s: string;
were, all: string;
i: integer;

begin
s := 'this is a very simple test...';
were := ''; all := '';

for i := 1 to length(s) do begin
if pos(s[i], were) = 0 then begin
were := were + s[i];
all := all + s[i];
end
else delete(all, pos(s[i], all), 1);
end;

writeln('s = ', s, ' -> ', all);
end.

 К началу страницы 
+ Ответить 
alter
сообщение 11.11.2007 12:20
Сообщение #8


Новичок
*

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

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


Цитата(volvo @ 9.11.2007 16:36) *

Так пойдет?

var
s: string;
were, all: string;
i: integer;

begin
s := 'this is a very simple test...';
were := ''; all := '';

for i := 1 to length(s) do begin
if pos(s[i], were) = 0 then begin
were := were + s[i];
all := all + s[i];
end
else delete(all, pos(s[i], all), 1);
end;

writeln('s = ', s, ' -> ', all);
end.



Чтото не работает!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.11.2007 12:26
Сообщение #9


Гость






А я не принимаю ответ "что-то не работает". Потому что могу сказать: "а у меня - работает". Принимается только ОБОСНОВАННАЯ претензия - что ты думаешь, что должно вывестись, и что вывелось (и почему, ты думаешь, это неправильно)...
 К началу страницы 
+ Ответить 
alter
сообщение 11.11.2007 12:28
Сообщение #10


Новичок
*

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

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


Цитата(volvo @ 11.11.2007 12:26) *

А я не принимаю ответ "что-то не работает". Потому что могу сказать: "а у меня - работает". Принимается только ОБОСНОВАННАЯ претензия - что ты думаешь, что должно вывестись, и что вывелось (и почему, ты думаешь, это неправильно)...

Подожди пожалуйста! Через 5 минут дам точный ответ!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.11.2007 12:33
Сообщение #11


Гость






Ясно... 32-битные компиляторы по другому со строками работают... Опять сам же и попался на этом blink.gif

Вот так работает под Turbo Pascal:

var
s: string;
were, all: string;
i: integer;

begin
s := 'this is a very simple test...';
were := ''; all := '';

for i := 1 to length(s) do begin
if pos(s[i], were) = 0 then begin
were := were + s[i];
all := all + s[i];
end
else
if pos(s[i], all) > 0 then { <--- Вот это добавь !!! }
delete(all, pos(s[i], all), 1);
end;

writeln('s = ', s, ' -> ', all);
end.

 К началу страницы 
+ Ответить 
alter
сообщение 11.11.2007 13:10
Сообщение #12


Новичок
*

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

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


Цитата(volvo @ 11.11.2007 12:33) *

Ясно... 32-битные компиляторы по другому со строками работают... Опять сам же и попался на этом blink.gif

Вот так работает под Turbo Pascal:

var
s: string;
were, all: string;
i: integer;

begin
s := 'this is a very simple test...';
were := ''; all := '';

for i := 1 to length(s) do begin
if pos(s[i], were) = 0 then begin
were := were + s[i];
all := all + s[i];
end
else
if pos(s[i], all) > 0 then { <--- Вот это добавь !!! }
delete(all, pos(s[i], all), 1);
end;

writeln('s = ', s, ' -> ', all);
end.



СПС!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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