Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Код:

// Дана последовательность строк. Найти количество строк, содержащих данную подстроку.
// После каждой такой строки вставить двоеточие.
// Удалить три элемента после первой найденой строки.
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* вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:59.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru