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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2015, 18:53   #1
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
Печаль Подмогните с лабой) компонент TstringList нельзя брать((((

Анкета для опроса населения содержит две группы вопросов. Первая группа содержит сведения о респонденте:
- возраст;
- пол;
- образование (начальное, среднее, высшее).
Вторая группа содержит собственно вопрос анкеты, ответ на который либо ДА, либо НЕТ.
Составить программу, которая:
- обеспечивает начальный ввод анкет и формирует из них линейный список;
- на основе анализа анкет выдает ответы на следующие вопросы:
- сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты;
- сколько женщин моложе 30 лет, имеющих среднее образование, ответили НЕТ на вопрос анкеты; сколько мужчин моложе 25 лет, имеющих начальное образование, ответили ДА на вопрос анкеты
- производит вывод всех анкет и ответов на вопросы.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.
SanekWK вне форума Ответить с цитированием
Старый 22.08.2015, 19:01   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Собственно говоря, а где вообще тут TStringList? тут для ввода проще всего создать отдельную форму, а вывод результатов анализа - куда-угодно

Последний раз редактировалось GreenWizard; 22.08.2015 в 19:05.
GreenWizard вне форума Ответить с цитированием
Старый 22.08.2015, 19:07   #3
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Скорее всего, ScrollBox + фреймы.... но это вряд ли уровень студента
малооблачно со ScrollBox знаком, но его тоже нельзя брать. как я понял преподавателя в основу ложится обычный односвязный список
type
pnode=^node;
node=record
d:word;
s:string;
pnode;


Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Собственно говоря, а где вообще тут TStringList? тут для ввода проще всего создать отдельную форму, а вывод результатов анализа - куда-угодно
Просто со StringList'ом проще. забил его на добавление и всё. Я ей со стрингом в этот же день работу послал, написала вот что нельзя его

на кибер форуме хрень все пишут, может тут чего ясного подскажут

Вот примерный скрин внешнего вида.
Изображения
Тип файла: jpg Безымянный.jpg (28.8 Кб, 177 просмотров)

Последний раз редактировалось Stilet; 22.08.2015 в 19:47.
SanekWK вне форума Ответить с цитированием
Старый 22.08.2015, 19:28   #4
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от SanekWK Посмотреть сообщение
малооблачно со ScrollBox знаком, но его тоже нельзя брать. как я понял преподавателя в основу ложится обычный односвязный список
type
pnode=^node;
node=record
d:word;
s:string;
pnode;
ну реализуй список, в чём беда?
Код:
type 
  pnode=^node;
  node=record
    isWoman: boolean;
    Age: integer;
    Education: Byte;
    Next: pnode;
  end;
и далее функция добавления, уничтожения и "анализа"
GreenWizard вне форума Ответить с цитированием
Старый 22.08.2015, 19:34   #5
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
ну реализуй список, в чём беда?
Код:
type 
  pnode=^node;
  node=record
    isWoman: boolean;
    Age: integer;
    Education: Byte;
    Next: pnode;
  end;
и далее функция добавления, уничтожения и "анализа"
воот это то да. а как анализировать его можно, в учебнике по паскалю нет(
???
SanekWK вне форума Ответить с цитированием
Старый 22.08.2015, 19:43   #6
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Например, это:
Цитата:
Сообщение от SanekWK Посмотреть сообщение
- сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты;
Будет как-то так:
Код:
N := 0;
tmp := Head;
while tmp <> nil do
begin
  if (tmp^.Age > 40) and (tmp^.Education = 3) and (tmp^.Aswer = true) than
    N := N + 1;
  tmp := tmp^.Next;
end;
проходимся от начала до конца и считаем сколько людей подпадает под условие выборки
GreenWizard вне форума Ответить с цитированием
Старый 22.08.2015, 19:47   #7
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Например, это:

Будет как-то так:
Код:
N := 0;
tmp := Head;
while tmp <> nil do
begin
  if (tmp^.Age > 40) and (tmp^.Education = 3) and (tmp^.Aswer = true) than
    N := N + 1;
  tmp := tmp^.Next;
end;
проходимся от начала до конца и считаем сколько людей подпадает под условие выборки
блин огромное спасибо тебе. я вот щас химичу. подскажи вот как записать что либо в этот список
SanekWK вне форума Ответить с цитированием
Старый 22.08.2015, 20:02   #8
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от SanekWK Посмотреть сообщение
блин огромное спасибо тебе. я вот щас химичу. подскажи вот как записать что либо в этот список
1) это реально лучше изучить самостоятельно по книгам т. к. основы основ
2) общая схема: создали узел с инфой -> если список пуст (head = nil), то заменяем новым узлом head, иначе мы идём по списку и ищем первый попавшийся (он единственный) элемент с Next = nil и заменяем nil на новый узел наш т. к. добавляем всё в конец
Есть вариант с добавлением в начало, он проще, но его редко используют и препод может забраковать его
GreenWizard вне форума Ответить с цитированием
Старый 23.08.2015, 18:01   #9
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
1) это реально лучше изучить самостоятельно по книгам т. к. основы основ
2) общая схема: создали узел с инфой -> если список пуст (head = nil), то заменяем новым узлом head, иначе мы идём по списку и ищем первый попавшийся (он единственный) элемент с Next = nil и заменяем nil на новый узел наш т. к. добавляем всё в конец
Есть вариант с добавлением в начало, он проще, но его редко используют и препод может забраковать его
Вот к примеру, я хочу записать значение возраста в список.
Код:
begin
 Val(Edit1.Text,q,code);
 if code=0 then
 begin
 New(next);
 next^.age:=StrToInt(Edit1.text);
 end
else ShowMessage('Çàïîëíèòå âñå ïîëÿ!');

Последний раз редактировалось Stilet; 23.08.2015 в 18:11.
SanekWK вне форума Ответить с цитированием
Старый 23.08.2015, 18:12   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я хочу записать значение возраста в список.
И у тебя это получилось. Твой код записывает значение в список. По крайней мере этот участок кода, что ты выложил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с лабой Rainb0wDash Помощь студентам 9 17.10.2013 15:57
Компонент StringBox: двойной TStringList apromix Компоненты Delphi 0 25.06.2010 23:00