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

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

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

> Строки
сообщение
Сообщение #1


Новичок
*

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

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


Помогите пожалуйста отладить программу, задача такая:

Вводится текст.
Создается новый массив подстрок, выделяется из каждой строки подстроки:
Разделенные более чем тремя знаками звездочка <*>.Среди выделенных подстрок находится подстрока:
Cодержащая минимальное число латинских букв.

Неполадка заключается в том что программа формирует и выводит массив строк даже, если символа звездочка нет или меньше 3х...

Вот код программы:

 

Program StringAnalyz;

uses crt;

var
f :text;
s :string;
substrings :array [0..200] of string;
i,j,min,minindex,counter,lettercode:integer;

Begin
clrscr;
writeln('Создать новый массив подстрок, выделив из каждой строки подстроки:');
writeln('Разделенные более чем тремя знаками звездочка <*>.');
writeln('Среди выделенных подстрок найти подстроку:');
writeln('Содержащую минимальное число латинских букв.');

assign(f,'swop.tmp');
rewrite(f);
Writeln ('Введите текст:');
readln (s);
i:=0;
while not(s='') do
begin
writeln(f,s);
while pos('****',s)>0 do
begin
if length(copy(s,1,pos('****',s)-1))>0 then
begin
substrings[i]:=copy(s,1,pos('****',s)-1);
i:=i+1;
end;
delete(s,1,pos('****',s)+2);
while copy(s,1,1)='*' do delete (s,1,1);
end;
if length(s)>0 then
begin
substrings[i]:=s;
i:=i+1;
end;
readln (s);
end;
close(f);

writeln('Подстроки:');
min:=length(substrings[0]);
for j:=0 to i-1 do
begin
writeln(substrings[j]);
counter:=0;
for i:=1 to length(substrings[j]) do
begin
lettercode:=ord((substrings[j])[i]);
if ((lettercode>64) and (lettercode<98))or((lettercode>89) and (lettercode<123)) then counter:=counter+1;
end;
if counter<min then
begin
min:=counter;
minindex:=j;
end;
end;

writeln;
writeln('Строка содержащая минимальное кол-во латинских букв:');
writeln(substrings[minindex],' (',min,' латинских букв)');
writeln;
writeln('Нажмите любую клавишу для завершения работы...');
while not keypressed do;
End.




Сообщение отредактировано: КириллV -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Perl. Just code it!
******

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

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


update

изивиняюсь, вопрос неверный задал. В общем разделитель - последователность символов '*' в количестве 4 и более, так ?



Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
КириллV   Строки   16.01.2008 17:57
klem4   приведи пару примеров входных/выходных данных нап…   16.01.2008 22:16
КириллV   входные данные: qwerty***123456 выходные: qwerty**…   16.01.2008 23:16
feniks25   несколько строк, конечно не помешают по условию в …   16.01.2008 23:19
klem4   update изивиняюсь, вопрос неверный задал. В общем…   16.01.2008 23:27
КириллV   [color=red][b]update изивиняюсь, вопрос неверный…   17.01.2008 0:35
klem4   проверь вот это: uses crt; const max_sequence:…   17.01.2008 1:40
КириллV   проверь вот это: uses crt; const max_sequence…   17.01.2008 2:51
feniks25   Народ, не пойму где глюк! если раскоментироват…   17.01.2008 2:36
Yevgeny   Если раскоментить {else count:=0;}, то тогда у вет…   17.01.2008 2:45
feniks25   Если раскоментить {else count:=0;}, то тогда у ве…   17.01.2008 2:54
klem4   а вот вранья не надо, моя программа проходит _все_…   17.01.2008 13:17
КириллV   а вот вранья не надо, моя программа проходит _все…   17.01.2008 21:36
feniks25   Закончил я свой код. Боже, какое ламерство, стольк…   17.01.2008 15:01


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

 





- Текстовая версия 17.01.2021 6:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name