Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 17:20   #1
fleur*
 
Регистрация: 27.04.2012
Сообщений: 8
Вопрос Разработать программу формирования из заданной последовательности одноправленного списка в куче

дана последовательность строк. найти количество строк, содержащих данную подстроку. перед каждой такой строкой вставить двоеточие. удалить три элемента после первой найденной строки

О_О
fleur* вне форума Ответить с цитированием
Старый 09.06.2012, 03:49   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от fleur* Посмотреть сообщение
О_О
Цветочек, а как у тебя с наработками по этому вопросу?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 09.06.2012, 07:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
дана последовательность строк.
Как дана?
Цитата:
найти количество строк
Это делается функцией pos(подстрока, строка), которая дает 0 если строка не найдена
Цитата:
перед каждой такой строкой вставить двоеточие.
Допустим s - найденная строка s:=':'+s; даст двоеточие в начале строки
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2012, 21:08   #4
fleur*
 
Регистрация: 27.04.2012
Сообщений: 8
По умолчанию

Цитата:
Цветочек, а как у тебя с наработками по этому вопросу?
наработок нет. динамические структуры это ужас для меня. не птоонятно(((((((

Последний раз редактировалось Stilet; 09.06.2012 в 21:27.
fleur* вне форума Ответить с цитированием
Старый 09.06.2012, 21:27   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Какие еще динамические?
Откуда тут динамика? Строки в Паскале это образмеренный массив символов, нет в них динамики никакой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2012, 21:31   #6
fleur*
 
Регистрация: 27.04.2012
Сообщений: 8
По умолчанию

фиг его знает. типа это из темы "ссылки. динамические переменные и структуры".

Разработать программу формирования из заданной последовательности одноправленного списка в куче... ну и задание это...((
fleur* вне форума Ответить с цитированием
Старый 10.06.2012, 07:42   #7
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Какие еще динамические?
Откуда тут динамика? Строки в Паскале это образмеренный массив символов, нет в них динамики никакой.
Стилет, прочти заголовок темы.. ))
Я тоже не одобряю, когда задание пишут в такой форме: заголовок один, тема совсем другая. Но в данном случае, похоже, заголовок кагбэ дополняет тему (хотя все равно лучше было сказать все явно - нужели не понятно, Флер, что это в твоих интересах?? не поймут - не ответят..)

Иными словами, заданную последовательность (думаю, со стандартного ввода или из файла) нужно ввести именно в СПИСОК, а потом все требуемые действия (поиск, удаление элементов, редактирование) производить с НИМ.

Флер, как бы ты ими не ужасалась, лично я пальцем не пошевелю без того, чтоб ты показала хоть какой-то минимум сделанного.. А тогда поговорим конкретно на конкретные темы -- ссылки, списки и т.п.
Успехов тебе.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 11.06.2012, 19:08   #8
fleur*
 
Регистрация: 27.04.2012
Сообщений: 8
Восклицание

Код:
// Дана последовательность строк. Найти количество строк, содержащих данную подстроку.
// После каждой такой строки вставить двоеточие.
// Удалить три элемента после первой найденой строки.
const dvt : string = ':';
type Uk = ^Elem;
Elem = Record
s : string;
next : Uk;
end;
var p,q,y: Uk;
i,n,k,kls:byte;
pds : string;
//-------------------------------------------------------------------------------
begin
writeln('Введите n: ');
readln(n);
new(p); new(q);
p^.next:=q;
writeln('Последовательность: ');
for i:= 1 to n do begin
readln(q^.s);
new(y);
q^.next:=y;
y^.next:=nil;
q:=y;
end;
//-------------------------------------------------------------------------------
writeln('Введите искомую подстроку:');
readln(pds);
// Подсчитываем количество строк с данной подстрокой и вставляем мосле таких строк ':'
q := p^.next;
y := q;
kls := 0;
while (q^.next<>nil) do begin
y := q;
if (pos(pds,q^.s) <> 0) then begin
inc(kls);
new(q);
q^.s := dvt;
q^.next := y^.next;
y^.next := q;
end;
q := q^.next;
end;
//------------------удаление элементов-------------------------------
// удаление трёх элементов после первой найденой подстроки
q := p^.next;
while (q <> nil) and (pos(pds,q^.s) = 0) do begin
y := q;
q := q^.next;
end;
k := 0;
while (q^.next <> nil) and (k <> 3) do begin
y^.next := q^.next;
dispose(y);
q := q^.next;
inc(k);
end;

//-------------------------------------------------------------------
writeln('Воличество строк с подстрокой: ',kls);
// вывод на экран новой последовательности
writeln('Новая последовательность:');
q := p^.next;
repeat
write(q^.s,' ');
q := q^.next;
until(q^.next =nil);
readln;
end.




не получается удалить 3 элемента... может посмотрите что не так?



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.06.2012 в 23:01.
fleur* вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать алгоритм и составить программу для решения задачи. Длину последовательности задать димон4ик_ Помощь студентам 0 18.10.2011 10:55
Разработать алгоритм и составить программу для решения задачи. Длину последовательности задать димон4ик_ Помощь студентам 2 18.10.2011 09:39
Макрос для формирования списка OscarWilde Microsoft Office Excel 5 26.12.2010 15:27
Разработать процедуру формирования рисунка MaxMelnikov Помощь студентам 2 25.02.2009 22:00
разработать алгоритм и программу нисходящим способом,предполагая заданной матрицу из 5 строк и 5 столбцов Shuma Помощь студентам 2 28.11.2008 20:27