Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 494

/ вопрос открыт /

Здравствуйте, эксперты!
Я хочу узнать как можно создать список, добавить новый элемент к нему и удалить элемент.

Aristotel Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Aristotel (статус: Посетитель)
Вопрос отправлен: 12 июля 2011, 11:03
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Gooddy

Здравствуйте, Aristotel!
Отвечаю на вопрос так, как написано в условии. Т.к. небыло пояснений буду считать, что нужен список строк, например:
1. "Вася"
2. "Петя"
3. "Григорий"

Тут есть два варианта - использовать TStrings, или TList. TList помощнеее, но сложнее для пономания и использования, так что приведу пример с TStringList.

См. приложение.

Приложение:
  1. var
  2.  
  3.  
  4. begin
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. end;
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  


Ответ отправил: Gooddy (статус: 3-ий класс)
Время отправки: 12 июля 2011, 14:23
Оценка за ответ: 4

Комментарий к оценке: А можно как-то найти заданный элемент в списке и удалить его?

Мини-форум вопроса

Всего сообщений: 100; последнее сообщение — 15 июля 2011, 14:41; участников в обсуждении: 7.

Страницы: [« Предыдущая] [1] [2] [3] [4] [5]

Aristotel

Aristotel (статус: Посетитель), 13 июля 2011, 13:05 [#81]:

Щас попробую
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 13:12 [#82]:

Цитата (Aristotel):

Щас попробую

Может скажешь уже, для чего нужна такая программа и как она должна работать, а? Может я напишу тебе её за полчаса и закроем этот вопрос? А то мне работать надо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Aristotel

Aristotel (статус: Посетитель), 13 июля 2011, 13:14 [#83]:

Короче List := TStringList.Create(); нужно поместить сразу после Implementation ?
Aristotel

Aristotel (статус: Посетитель), 13 июля 2011, 13:15 [#84]:

Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 13:23 [#85]:

Цитата (Aristotel):

Короче List := TStringList.Create(); нужно поместить сразу после Implementation ?

Ааааааааааа, мама, роди меня обратно!!!!!1111

Цитата (Aristotel):

Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент

Я от тебя КОГДА-НИБУДЬ добьюсь информации про ТИП ЭЛЕМЕНТОВ списка????!!!!111 Что за элементы должны составлять список: строки, числа, объекты или что-то другое?

И самое главное: для чего нужна эта программа, какой у неё практический смысл?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 13 июля 2011, 13:24 [#86]:

-_-

Кидаешь на форму компонент TListBox

А добавить, удалить элемент также как для TStringList.
Чисти код! Чисти код! Чисти код!
Aristotel

Aristotel (статус: Посетитель), 13 июля 2011, 13:36 [#87]:

Вот программа которую мне нужно переделать на Delphi сам решай какой тип элементов:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <malloc.h>
#define QUE struct que /* tip dannih */
QUE
{
int info;
QUE *next;
};
void insert(QUE **q, int item);
void display(QUE * q);
QUE * create_list();
QUE *q=NULL; /* ob'yavlenie spiska */
/* ======= funktsiya vivoda spiska ====== */
void display(QUE * q)
{QUE * current = q;
printf("\nLIST=");
if (current)
{
while(current)
{printf("%d-->", current->info);
current = current ->next;
}
printf("NULL");
}
else
printf("pustoy");
printf("\n");
}
/* ====== funktsiya sozdaniya spiska ====== */
QUE * create_list()
{QUE * list=NULL;
int done=1, info, c;
printf("Creation of list:\n");
while(done)
{printf("Add new element? (Y/N)");
c=getch();
c=toupper(c);
switch(c)
{case 'Y':printf("\n Element=");
scanf("%d", &info);
insert(&q, info);
break;
case 'N': done=0;
break;
}
}
return (list);
}
/* === funktsiya dobavleniya elementa k spisku === */
void insert (QUE **q, int item)
{
QUE *current=*q;
QUE *previous=0;
QUE *new_node;
while(current)
{
previous=current;
current=current->next;
}
new_node=(QUE*) malloc (sizeof (QUE));
new_node->info=item;
if (previous)
{
new_node->next=previous->next;
previous->next=new_node;
}
else
{
*q=new_node;
(*q)->next=0;
}
}
// Функция исключения
QUE* Delete (QUE **q, int item)
{
QUE * current = *q; // Входной список
QUE * new_node = NULL; // Наш новый список
while(current) // Проходим по всему списку
{
if(current->info == item) // Если находим наш элемент
{
current = current ->next; // Перемещаемся на следующий
} else // иначе
{
insert(&new_node, current->info); // Вставляем элемент текущего списка в наш новый
current = current ->next; // перемещаемся дальше
}
}
return new_node; // возвращаем наш новый список
}
/* ====== glavnaya funktsiya ====== */
int main()
{
create_list();
display(q);
printf("\n");
display(Delete(&q, 1));
getch();
return 0;
}
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 13:37 [#88]:

Цитата (Gooddy):

Кидаешь на форму компонент TListBox
А добавить, удалить элемент также как для TStringList.

Сишный исходник видал? Там никаких листбоксов нету, а список самодельный.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Aristotel

Aristotel (статус: Посетитель), 13 июля 2011, 13:38 [#89]:

А практический смысл как ты написал-мне нужно её сдать-вот и всё
Gooddy

Gooddy (статус: 3-ий класс), 13 июля 2011, 13:46 [#90]:

"Сишный исходник видал?"

"Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"

"Кидаешь на форму компонент TListBox"
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 13:54 [#91]:

Цитата (Aristotel):

Вот программа которую мне нужно переделать на Delphi сам решай какой тип элементов:

#define QUE struct que /* тип элемента списка */
QUE
{
  int info; // хранимые данные элемента - целое число со знаком
  QUE *next; // ссылка на следующий элемент списка
};

Цитата (Aristotel):

А практический смысл как ты написал-мне нужно её сдать-вот и всё


И причём тут TStringList? Препод потребует, чтобы ты сделал список сам, а не пользовался стандартными классами delphi (а ты даже этого не можешь).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 13:56 [#92]:

Цитата (Gooddy):

"Сишный исходник видал?"

"Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"

"Кидаешь на форму компонент TListBox"

Ну и что всё это значит?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 13 июля 2011, 14:31 [#93]:

Ты спрашиваешь видел ли я сишный исходник. Я сказал что он тут не причём, а Аристотелю нужна прога "Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент".

А на текст "Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"

Я отвечаю:

"Кидаешь на форму компонент TListBox"
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 13 июля 2011, 14:47 [#94]:

Цитата (Gooddy):

"Кидаешь на форму компонент TListBox"

Ну напиши тогда ему прогу с TListBox, пусть попробует сдать. Такая прога пишется за 10 минут с перекуром.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 13 июля 2011, 16:37 [#95]:

Ща сделаю что-нибудь за 30 секунд.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 13 июля 2011, 16:44 [#96]:

Дарю.
http://depositfiles.com/files/vf9k71m0r
Чисти код! Чисти код! Чисти код!
Aristotel

Aristotel (статус: Посетитель), 15 июля 2011, 13:27 [#97]:

Уважаемый экспертный народ, мне кроме удаления заданного элемента ещё нужно вставить элемент по индексу, вывести элемент по индексу, удалить элемент по индексу
min@y™

min@y™ (статус: Доктор наук), 15 июля 2011, 13:40 [#98]:

Цитата (Aristotel):

Уважаемый экспертный народ, мне кроме удаления заданного элемента ещё нужно вставить элемент по индексу, вывести элемент по индексу, удалить элемент по индексу

А что, вариант с TListBox тебе подошёл?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 15 июля 2011, 14:20 [#99]:

min@y™: :C
Короче как всегда пару однострочечных кнопок индивид наклепать не может.
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 15 июля 2011, 14:41 [#100]:

Цитата (Gooddy):

Короче как всегда пару однострочечных кнопок индивид наклепать не может.

Ну дык доделай, раз начал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [« Предыдущая] [1] [2] [3] [4] [5]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 17:40
Выполнено за 0.04 сек.