|
Вопрос # 5 494/ вопрос открыт / |
|
Здравствуйте, эксперты!
Я хочу узнать как можно создать список, добавить новый элемент к нему и удалить элемент.
 |
Вопрос задал: Aristotel (статус: Посетитель)
Вопрос отправлен: 12 июля 2011, 11:03
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Gooddy
Здравствуйте, Aristotel!
Отвечаю на вопрос так, как написано в условии. Т.к. небыло пояснений буду считать, что нужен список строк, например:
1. "Вася"
2. "Петя"
3. "Григорий"
Тут есть два варианта - использовать TStrings, или TList. TList помощнеее, но сложнее для пономания и использования, так что приведу пример с TStringList.
См. приложение.
 |
Ответ отправил: Gooddy (статус: 3-ий класс)
Время отправки: 12 июля 2011, 14:23
Оценка за ответ: 4
Комментарий к оценке: А можно как-то найти заданный элемент в списке и удалить его?
|
Мини-форум вопроса
Всего сообщений: 100; последнее сообщение — 15 июля 2011, 14:41; участников в обсуждении: 7.
Страницы: [« Предыдущая] [1] [2] [3] [4] [5]
|
Aristotel (статус: Посетитель), 13 июля 2011, 13:05 [#81]:
Щас попробую
|
|
min@y™ (статус: Доктор наук), 13 июля 2011, 13:12 [#82]:
Цитата (Aristotel):
Щас попробую
Может скажешь уже, для чего нужна такая программа и как она должна работать, а? Может я напишу тебе её за полчаса и закроем этот вопрос? А то мне работать надо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 13:14 [#83]:
Короче List := TStringList.Create(); нужно поместить сразу после Implementation ?
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 13:15 [#84]:
Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент
|
|
min@y™ (статус: Доктор наук), 13 июля 2011, 13:23 [#85]:
Цитата (Aristotel):
Короче List := TStringList.Create(); нужно поместить сразу после Implementation ?
Ааааааааааа, мама, роди меня обратно!!!!!1111
Цитата (Aristotel):
Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент
Я от тебя КОГДА-НИБУДЬ добьюсь информации про ТИП ЭЛЕМЕНТОВ списка????!!!!111 Что за элементы должны составлять список: строки, числа, объекты или что-то другое?
И самое главное: для чего нужна эта программа, какой у неё практический смысл?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 13:24 [#86]:
-_-
Кидаешь на форму компонент TListBox
А добавить, удалить элемент также как для TStringList.
Чисти код! Чисти код! Чисти код!
|
|
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™ (статус: Доктор наук), 13 июля 2011, 13:37 [#88]:
Цитата (Gooddy):
Кидаешь на форму компонент TListBox
А добавить, удалить элемент также как для TStringList.
Сишный исходник видал? Там никаких листбоксов нету, а список самодельный.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Aristotel (статус: Посетитель), 13 июля 2011, 13:38 [#89]:
А практический смысл как ты написал-мне нужно её сдать-вот и всё
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 13:46 [#90]:
"Сишный исходник видал?"
"Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"
"Кидаешь на форму компонент TListBox"
Чисти код! Чисти код! Чисти код!
|
|
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™ (статус: Доктор наук), 13 июля 2011, 13:56 [#92]:
Цитата (Gooddy):
"Сишный исходник видал?"
"Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"
"Кидаешь на форму компонент TListBox"
Ну и что всё это значит?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 14:31 [#93]:
Ты спрашиваешь видел ли я сишный исходник. Я сказал что он тут не причём, а Аристотелю нужна прога "Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент".
А на текст "Мне эта программа должна создавать список выводить его на экран и удалять заданный элемент"
Я отвечаю:
"Кидаешь на форму компонент TListBox"
Чисти код! Чисти код! Чисти код!
|
|
min@y™ (статус: Доктор наук), 13 июля 2011, 14:47 [#94]:
Цитата (Gooddy):
"Кидаешь на форму компонент TListBox"
Ну напиши тогда ему прогу с TListBox, пусть попробует сдать. Такая прога пишется за 10 минут с перекуром.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 13 июля 2011, 16:37 [#95]:
Ща сделаю что-нибудь за 30 секунд.
Чисти код! Чисти код! Чисти код!
|
|
Aristotel (статус: Посетитель), 15 июля 2011, 13:27 [#97]:
Уважаемый экспертный народ, мне кроме удаления заданного элемента ещё нужно вставить элемент по индексу, вывести элемент по индексу, удалить элемент по индексу
|
|
min@y™ (статус: Доктор наук), 15 июля 2011, 13:40 [#98]:
Цитата (Aristotel):
Уважаемый экспертный народ, мне кроме удаления заданного элемента ещё нужно вставить элемент по индексу, вывести элемент по индексу, удалить элемент по индексу
А что, вариант с TListBox тебе подошёл?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 15 июля 2011, 14:20 [#99]:
min@y™: :C
Короче как всегда пару однострочечных кнопок индивид наклепать не может.
Чисти код! Чисти код! Чисти код!
|
|
min@y™ (статус: Доктор наук), 15 июля 2011, 14:41 [#100]:
Цитата (Gooddy):
Короче как всегда пару однострочечных кнопок индивид наклепать не может.
Ну дык доделай, раз начал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Страницы: [« Предыдущая] [1] [2] [3] [4] [5]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|