28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
1 | |
Несколько вопросов24.07.2011, 14:50. Показов 2310. Ответов 24
Метки нет (Все метки)
Добрый день. Начал писать одну программу в VS 2008 C++ (консоль) и столкнулся в несколькими проблемами. В общем желательно нужно, чтобы программа при запуске открывалась в окне размерами больше стандартных 80x25. Функция window( int, int, int, int) не работает. Далее в программе будут выводиться длинный список, выходящий за границы по вертикали. Как сделать, чтобы при выводе этого списка консольное окно автоматически не прокручивалось вниз или чтобы в итоге видна была первая строка списка? И последний вопрос: как считать с текстового файла строку в массив символов (строка) до определенного символа (например например считать строку "Hello world!" в один массив до знака перехода на следующую строку)?
0
|
24.07.2011, 14:50 | |
Ответы с готовыми решениями:
24
Несколько вопросов Несколько вопросов Несколько вопросов по указателям. Несколько вопросов к программистам. |
Заблокирован
|
|
24.07.2011, 21:36 | 21 |
Для русского текста не обязательно использовать SetConsoleOutpytCP и т.д. достаочно использовать CharToOem - посмотри этот топик трудности с CharToOem
0
|
Заблокирован
|
|
24.07.2011, 21:55 | 22 |
Надеюсь, вы будите изучать не только, как ими пользоваться, но и как они устроенны.
Я то сам не в теме, но попробую привести простейший пример. допустим, вам задали создать БД, которая умеет хранить ФИО, возвраст, местро проживание, и тп, и должна выполнять быстрый поиск фамилий. Ну... пусть она должна очень быстро вывести на экран всех Ивановых, старше 30 лет. В БД - миллионы данных обо всех жителях города-мегаполиса. Как можно организовать быстрый поиск фамилий в такой БД? Все начинается с формата самих данных. По другому это называют "индексирование данных". А по сути - это просто структура данных. Например, сами данные (фамилии) вы храните в упорядочных массивах. То есть, у вас есть 33 массива. Один массив содержит все фамилии на букву "А", второй - на букву "Б" и тд. А в начале структуры находится так называемая шапка, в которой указаны смещения всех массивов в файле. То есть, если нужно найти всех Ивановых, то БД не нужно будит перебирать всех Авелиев. Она, зная где начинается массив на букву "И" сразу прыгнет к нему. Далее: Этот массив может содержать Ивановых, Игнатовых, и дт. Фамилии в массиве так же упорядочны по второй букве фамилии. А реально массив содержит не сами фамилии, а опять таки смещения на массивы со следующими буквами. То есть, тоже есть своя шапка со смещениями, и БД так же обойдя любых Ибабаевых, прыгнет к Ивановыми. Короче говоря, БД не будит лопатить все фамилии по очереди, пока не откопает всех Ивановых, а по серии прыжков сразу окажется в нужно месте. А кроме того, нет никакого резона хранить все данные в одном мега большом файле. Например, можно хранить в одном файле непосредственно данные, а в другом - все шапки. Если файл с шапками окажется не слишком велик - его можно загрузить в память целиком. Что бы ускорить процесс прыжков от одного массива к другому. Ну и тп. Можно например Ивановых хранить отдельно от Игнатовых. Тогда самих Ивановых будит не так уж и много. И отдельный кусок данных про одних только Ивановых уже не будит весить слишком много. Его вполне можно будит загрузить в память целиком. Я конечно сильно утрирую, настоящие БД гораздо сложнее и хитроумнее, но хоть какое то представление об индексации данных вы должны поиметь. Добавлено через 25 секунд Я с этим уже обжигался. Крайне не рекомендую.
1
|
28 / 28 / 4
Регистрация: 24.07.2011
Сообщений: 171
|
|
24.07.2011, 22:04 [ТС] | 23 |
Вот уж спасибо. Четко и ясно. В принципе не сложно и наверняка поможет разобраться с БД. А то у нас всегда проблема : преподы не особо-то и объясняют. Любимое их выражение "Дома почитаете - разберетесь". В итоге знают программирование только те кто действительно хотят. Благодарю
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
25.07.2011, 08:22 | 25 |
Собственно, подход правильный. Кто действительно ХОЧЕТ, то информацию найдет, прочитает, вопросы задаст. И тем самым преподу видно становится, кого учить НАДО, а кого - бесполезно (ибо сам он нифига не учится,, а только ждет, когда ему в рот положат).
Насчет индексирования БД - читайте о B-деревьях (B - латинское).
0
|
25.07.2011, 08:22 | |
25.07.2011, 08:22 | |
Помогаю со студенческими работами здесь
25
Несколько вопросов по строкам в С Несколько вопросов по извучению C++ Графический редактор. Несколько вопросов Несколько вопросов про массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |