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

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

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

> Символы
gyrosa
сообщение 28.11.2007 19:55
Сообщение #1





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

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


Помогите пожалуйста решить задачку!!! Только прошли тему, а въехать не получается, но на неделе надо сдать! очень прошу, буду благодарна smile.gif give_rose.gif


В символьной матрице MT(K,L), K≤10, L≤18 в каждой строке определить наибольшую длину небуквенной серии (в строке может быть несколько небуквенных серий). Вывести исходную матрицу и рядом с каждой строкой – полученные значения длин серий. Преобразовать матрицу так, чтобы ее строки располагались в порядке возрастания длин небуквенных серий. Дополнительных матриц не использовать. Вывести преобразованную матрицу. Небуквенная серия – последовательность небуквенных символов, ограниченная буквенными символами или началом (концом) строки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 28.11.2007 20:30
Сообщение #2


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

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

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


uses crt;

const
N = 10;
M = 18;

type
TSymbMatrix = array [1..N, 1..M] of Char;

procedure Create(var mx: TSymbMatrix);
var
i, j: Byte;
begin
randomize;
for i := 1 to n do
for j := 1 to m do
mx[i, j] := chr(48 + random(75));
end;

function GetMaxSeqLen(const mx: TSymbMatrix; const row: Byte): Byte;
var
len, max_len, i: Byte;
begin
max_len := 0;

i := 1;

while (i <= m) do begin
while (i <= m) and (upcase(mx[row, i]) in ['A'..'Z']) do
inc(i);
if i <= m then begin
len := 0;
while (i <= m) and not (upcase(mx[row, i]) in ['A'..'Z']) do begin
inc(i);
inc(len);
end;
if len > max_len then
max_len := len;
end;
end;

GetMaxSeqLen := max_len;
end;

procedure Print(const mx: TSymbMatrix);
var
i, j: Byte;
begin
writeln;
for i := 1 to n do begin
writeln;
for j := 1 to m do begin
if upcase(mx[i, j]) in ['A'..'Z'] then TextColor(White) else TextColor(LightRed);
write(mx[i, j]:2);
end;
TextColor(Green); write(GetMaxSeqLen(mx, i):4);
end;
end;

procedure SwapRows(var mx: TSymbMatrix; const row_a, row_b: Byte);
var
i: Byte;
temp: Char;
begin
for i := 1 to m do begin
temp := mx[row_a, i];
mx[row_a, i] := mx[row_b, i];
mx[row_b, i] := temp;
end;
end;

procedure Sort(var mx: TSymbMatrix);
var
i, j: Byte;
begin
for i := n downto 2 do
for j := 1 to i - 1 do
if not(GetMaxSeqLen(mx, j) <= GetMaxSeqLen(mx, j + 1)) then
SwapRows(mx, j, j + 1);
end;

var
sMx: TSymbMatrix;
begin
clrscr;

Create(sMx);
Print(sMx);

Sort(sMx);
Print(sMx);

readln;
end.


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


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





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

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


Огромное спасибо!!! но маленький ворос, у меня не пашет модуль crt..его надо создать или измениить прогу?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 29.11.2007 10:16
Сообщение #4


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

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

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


Цитата(gyrosa @ 28.11.2007 21:33) *

у меня не пашет модуль crt..его надо создать или измениить прогу?

Создать его будет непросто... smile.gif
Если убрать (закомментировать) все вызовы TextColor (их там типа три штуки) и ClrScr, то можно убрать CRT вообще. Правда, такого блистательного вида (которым всегда отличаются проги klem4 smile.gif) уже не будет, увы..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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