Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> алфавитный порядок, при выводе информации 
:(
    Опции темы
TOREN
Дата 1.2.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



дана структура с элементами TOVAR, MAGAZIN, STOIMOST. задача вывести всю информаци, размещенную в алфавитном порядке под названием товаров. как это можно реализовать?
PM MAIL   Вверх
archimed7592
Дата 1.2.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(TOREN @  1.2.2008,  22:23 Найти цитируемый пост)
как это можно реализовать? 

Отсортировать по имени товара и вывести smile.
Проблема, надо понимать с первым(сортировкой)? В любом случае покажи какой-нибудь исходный код от которого можно будет "плясать".


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TOREN
Дата 1.2.2008, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



вот исходный код
Код

#include<stdio.h>
struct prise
{
char tovar[30];
char mag[30];
float stoim;
};
void main()
{
struct prise spisok[2];
int i, m=0;
char p[30];
for(i=0; i<2; i++)
{
printf("Vvedite nazvanie tovara\n");
scanf("%s", spisok[i].tovar);
printf("Vvedite nazvanie magazina\n");
scanf("%s", spisok[i].mag);
printf("Vvedite stoimost tovara\n");
scanf("%f", &spisok[i].stoim);
}


printf("\n___________________________________\n");
printf("| TOVAR  |  MAGAZIN  |  STOIMOST   |\n");
for(i=0; i<2; i++)
{
printf("\n|%s;    %s;       %f; ", spisok[i].tovar, spisok[i].mag, spisok[i].stoim);
}

printf ("\n \n Poisk.\n Vvedite nazvanie tovara: ");
scanf ("%s", p);
     for (i=0;i<2;i++)
          {
          if (strcmp(p,spisok[i].tovar) == 0)
               {
               m=m+1;
               printf ("\n______________________________________\n");
               
               printf ("Tovar  :  %s \n",spisok[i].tovar);
               printf ("Magazin :  %s \n",spisok[i].mag);
           printf ("Stoimost: %f \n", spisok[i].stoim);
     
      } }
if (m==0)
printf ("Netu takogo tovara!");


}

сортировку нужно сделать в этой части, т.е. при выводе информации
Код

printf("\n___________________________________\n");
printf("| TOVAR  |  MAGAZIN  |  STOIMOST   |\n");
for(i=0; i<2; i++)
{
printf("\n|%s;    %s;       %f; ", spisok[i].tovar, spisok[i].mag, spisok[i].stoim);
}


PM MAIL   Вверх
new_web
Дата 2.2.2008, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Елси, это работа с базами данных,  и приложение должно иметь оконный интерфейс, то в DataBaseDestop нужно создать вторичный индекс для требуемой таблицы
Архангельский это советует делать так
...раздел в выпадающем списке свойств таблицы: Secondary Indexes —
вторичные индексы. Этот раздел позволяет создать необходимые для дальнейшей
работы вторичные индексы (первичный индекс создается по ключевым полям).

//редактировано мной
Имя индекса         Поля
TovarIndex            TOVAR

Чтобы создать новый вторичный индекс, нажмите кнопку Define — опреде-
лить. Откроется диалоговое окно. В его левом окне
Fields содержится список доступных полей, в правом окне Indexed fields вы можете
подобрать и упорядочить список полей, включаемых в индекс. Для переноса поля
из левого окна в правое надо выделить интересующее вас поле или группу полей и
нажать кнопку со стрелкой вправо. Стрелками Change order (изменить последова-
тельность) можно изменить порядок следования полей в индексе.
........
Выделите
на форме компонент Tablel. В Инспекторе Объектов вы увидите среди прочих
свойства IndexName и IndexFieldName. Первое из них содержит выпадающий
список индексов, созданных для вашей таблицы. Выберите, например, индекс TovarIndex,
и увидите, что записи окажутся упорядоченными по алфавиту, поскольку в этот
индекс включено TOVAR
Альтернативный вариант индексации предоставляет свойство IndexFieldName. В нем
просто перечислены предусмотренные комбинации полей и вы можете выбрать не-
обходимую, если забыли, что обозначают имена индексов.


 smile  в билдере работает!

Добавлено через 14 минут и 41 секунду
Цитата(TOREN @ 1.2.2008,  23:43)

сортировку нужно сделать в этой части, т.е. при выводе информации
Код

printf("\n___________________________________\n");
printf("| TOVAR  |  MAGAZIN  |  STOIMOST   |\n");
for(i=0; i<2; i++)
{
printf("\n|%s;    %s;       %f; ", spisok[i].tovar, spisok[i].mag, spisok[i].stoim);
}


Я уже видел на форумах вопрос о сортировке, даже сам когда-то сделал что-то подобное. но не помню где,...
Недавно, вчера, пробовал написать цикл сравнения с элементами массива char[32] , елементы которого иинициализированы алфавитом, но. запутался, я со строкой мутил, она у меня никак пустой не хотела ставать, зависала, попустился...
там простой цыкл, но...если бы увидел smile   - понял бы, в голове не вижу smile 

PM MAIL   Вверх
archimed7592
Дата 2.2.2008, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



TOREN, ок, что знаешь про сортировку? Почитай здесь: http://algolist.manual.ru/sort/index.php
Цитата(TOREN @  1.2.2008,  23:43 Найти цитируемый пост)
сортировку нужно сделать в этой части, т.е. при выводе информации

Отлично, я теперь знаю что тебе надо. Теперь расскажи с какой проблемой ты столкнулся, когда пытался сделать то, что тебе надо.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TOREN
Дата 2.2.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



Цитата(new_web @  2.2.2008,  00:02 Найти цитируемый пост)
Елси, это работа с базами данных,  и приложение должно иметь оконный интерфейс, то в DataBaseDestop нужно создать вторичный индекс для требуемой таблицы

нет, это не работа с БД, и не имеет оконный интерфейс, это просто C#.

Цитата(archimed7592 @  2.2.2008,  00:50 Найти цитируемый пост)
Отлично, я теперь знаю что тебе надо. Теперь расскажи с какой проблемой ты столкнулся, когда пытался сделать то, что тебе надо.

я попросту не могу реализовать эту сортировку на практике

Цитата(archimed7592 @  2.2.2008,  00:50 Найти цитируемый пост)
 что знаешь про сортировку? Почитай здесь: http://algolist.manual.ru/sort/index.php

почитал, пока не очень помогло..
PM MAIL   Вверх
archimed7592
Дата 2.2.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(TOREN @  2.2.2008,  12:54 Найти цитируемый пост)
это просто C#.

Уважаемый, какой же это С#? smile

Цитата(TOREN @  2.2.2008,  12:54 Найти цитируемый пост)

я попросту не могу реализовать эту сортировку на практике

Хорошо, сортировкой называется переставление местами элементов(массива или ещё чего-то) с той целью, чтобы в итоге все элементы были упорядочены(по некоторой ф-ции сравнения). Возьмём, к примеру сортировку пузырьком(без каких-либо оптимизаций):
Код

N - количество элементов
для I от 1 до N
{
    для J от 1 до N
    {
         если J-ый элемент должен стоять перед I-ым элементом, то
         {
             переставить местами I-ый и J-ый элементы
         }
    }
}

Теперь два вопроса:
1. Понятно ли тебе как(или почему) будет работать этот алгоритм сортировки?
2. С какой именно частью алгоритма у тебя трудности в реализации?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TOREN
Дата 2.2.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



Цитата(archimed7592 @  2.2.2008,  13:33 Найти цитируемый пост)
Уважаемый, какой же это С#

а что это?

Цитата(archimed7592 @  2.2.2008,  13:33 Найти цитируемый пост)
Теперь два вопроса:1. Понятно ли тебе как(или почему) будет работать этот алгоритм сортировки?2. С какой именно частью алгоритма у тебя трудности в реализации?

я не понимаю как мне сравнивать буквы? как мне написать, что если первая буква в слове "Б", а в следующем слове первая буква "А", то поменять их местами?
вы не могли бы реализовать на пратике код?
PM MAIL   Вверх
archimed7592
Дата 2.2.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(TOREN @  2.2.2008,  21:07 Найти цитируемый пост)
а что это?

Приведённый кусок кода - Си. На крайняк С++.
Создавая тему неужели не заметил, что раздел называется С++ для новичков? smile
По C# есть отдельный набор разделов(.NET).


Цитата(TOREN @  2.2.2008,  21:07 Найти цитируемый пост)
я не понимаю как мне сравнивать буквы? как мне написать, что если первая буква в слове "Б", а в следующем слове первая буква "А", то поменять их местами?
вы не могли бы реализовать на пратике код? 

Вот это предложение должно было содержаться в первом посте... называется "правильно сформулировать вопрос" smile.
Если сформулировать его ещё правильней, то получиться что-то вроде "как сравнить две строки?".
Ответ: ф-ция strcmp(s1, s2) из string.h возвращает отрицательное число, если s1 < s2, положительное, если s1 > s2 и 0, если s1 == s2.
Теперь сам термин "строка1 меньше строки2": он означает, что первый символ строки1 на котором начинается её отличие от строки2 меньше, чем онный из строки2. На примере:
абвгд
абвде
Жирным выделены эти самые символы. 'г' меньше 'д' т.к. ('г' - 'д' < 0).

Это сообщение отредактировал(а) archimed7592 - 2.2.2008, 21:26


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TOREN
Дата 3.2.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



archimed7592, вы не могли бы привести готовую часть кода для реализации сортировки?
PM MAIL   Вверх
archimed7592
Дата 3.2.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(TOREN @  3.2.2008,  20:12 Найти цитируемый пост)
archimed7592, вы не могли бы привести готовую часть кода для реализации сортировки? 

Могли бы, только делать этого я не буду smile.
Если тебе чего-то непонятно - я постараюсь объяснить. Если тебе лень разбираться - go в Центр Помощи - там тебе датут готовый код, но там ты вряд ли чему-то научишься.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TOREN
Дата 3.2.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.10.2007

Репутация: нет
Всего: нет



archimed7592, просто я привык разбираться на практике, точнее на уже готовом.
В любом случае, спасибо. Буду вникать. Позже отпишу в данной теме
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1004 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.