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

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

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

 
 Ответить  Открыть новую тему 
> Строки
Pautina
сообщение 17.05.2007 17:27
Сообщение #1


Новичок
*

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

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


Помогите, что-то не получается. Программа должна находить в заданном наборе слово максимальной длины, а выводится длина всех символов
СПАСИБО!


Прикрепленные файлы
Прикрепленный файл  Z5.PAS ( 861 байт ) Кол-во скачиваний: 163
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 18.05.2007 18:11
Сообщение #2


Новичок
*

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

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


Посмотрите, пожалуйста, программу.. Никак не могу найти в чем моя ошибка..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nikita182
сообщение 19.05.2007 13:19
Сообщение #3


Пионер
**

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

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


я с бодуном сижу)) не стал ошибку искать. мой вариант:


uses crt;

var
i : integer;
s : string;
n : integer;
max : integer;
smax : string;

begin
clrscr;
writeln ('vvodi');
readln (s);
n := 0;
max := 0;
for i := 1 to length(s) do begin
if s[i] <> ' ' then
n := n + 1;
if (s[i] = ' ') or (i = length(s)) then
if n > max then begin
max := n;
smax := copy (s, i - n, n + 1);
n := 0;
end;
end;
writeln ('maximalnoe - ', smax);

readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Айра
сообщение 19.05.2007 14:37
Сообщение #4


Профи
****

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

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


Цитата
не стал ошибку искать. мой вариант:

Введи "4444 22 333" и посмотри, что она выдаст smile.gif
Вот мой вариант:
uses wincrt;
var s,word: string;
max,p: integer;
begin
writeln ('введите строку');
readln (s);
max:=0;
repeat
begin
p:=pos(' ',s);
if p=0 then
begin
if length(s)>max then
begin
max:=length(s);
word:=copy(s,1,length(s));
end;
delete(s,1,max);
end
else if (p-1)>max then
begin
max:=p-1;
word:=copy(s,1,p-1);
delete(s,1,p);
end
else if ((p-1)<max) or ((p-1)=max) then delete(s,1,p);
end;
until length(s)=0;
writeln('Максимальная длина слова: ',max,'');
writeln('Самое длинное слово: ',word,'');
end.


1.p.s. Почему-то кажется, что можно сделать по-проще..
2.p.s. Ой.. нашла и у себя ошибку wink.gif, если в строке есть одинаковые по длине слова, то зависает, сейчас исправлю..
3.p.s. Исправила smile.gif

Сообщение отредактировано: Айра - 19.05.2007 14:47
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nikita182
сообщение 19.05.2007 14:41
Сообщение #5


Пионер
**

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

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


ну сказал же что с бодуна..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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