Current time: 11.04.2024, 16:21 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
нужна помощь по программированию
Author Message
ZVS Offline

Posts: 500
Post: #16

А чего qsort не использовал для сортировки?
29.09.2010 02:00
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16467
Post: #17

Смысл был ознакомиться с языком и работой со ссылками и указателями. Решил сделать алгоритм сортировки строк. Естественно, стандартная библиотека скорее всего содержит почти все привычные функции.
Добавлено:
Кое-что пока не ясно. Создал .h-файл без .cpp-аналога, подключил его, но компилятор в упор его не видит:
#include <GeneralUnit.h>
...
4 C:\Dev-Cpp\Examples\Hello\Hello.cpp GeneralUnit.h: No such file or directory.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.09.2010 02:07
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #18

Тогда по мелочи еще пара вопросов.
1. Зачем менять указатели, если if (strcmp(Arr[LeftInd], MiddleItem) == 0), просто лень отделить было?
2. Зачем скобки в вызовах типа SortStrArr(&Arr[0], (RightInd + 1)); на всякий случай?
Добавлено:
(29.09.2010 02:07)Berserker Wrote:  Кое-что пока не ясно. Создал .h-файл без .cpp-аналога, подключил его, но компилятор в упор его не видит:
#include <GeneralUnit.h>
...
А если так:
#include "GeneralUnit.h"
(This post was last modified: 29.09.2010 02:17 by ZVS.)
29.09.2010 02:16
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16467
Post: #19

Quote:1. Зачем менять указатели, если if (strcmp(Arr[LeftInd], MiddleItem) == 0), просто лень отделить было?
Машинально при правке поставил. Первоначально было > 0.

Quote:2. Зачем скобки в вызовах типа SortStrArr(&Arr[0], (RightInd + 1)); на всякий случай?
Логически выделил. Зрительно проще воспринимаю выражения так.

Хочу попробовать с классами поработать, написать аналог строк в Делфи со всякими умными фишками, но пока не понимаю, могут ли существовать заголовочные файлы без cpp-аналогов или пусть даже пустой плюсовый файл, но обязателен?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.09.2010 02:20
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #20

Ясный перец могут. Они вообще никак не связаны для компилятора. Плюсовый фай абсолютно не обязателен.
29.09.2010 02:23
Find all posts by this user Quote this message in a reply
Bourn Offline

Posts: 189
Post: #21

почитай про темплейты - очень полезно 118
29.09.2010 02:25
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #22

Не путай его. Пусть вначале просто с классами разберется. Шаблоны - это следующий шаг.
29.09.2010 02:26
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16467
Post: #23

Quote:Ясный перец могут. Они вообще никак не связаны для компилятора. Плюсовый фай абсолютно не обязателен.
Я так и думал, спасибо.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.09.2010 02:30
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #24

Ну попробовал?
29.09.2010 02:31
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16467
Post: #25

Да. BloodShed Dev-C++ (включает в себя gcc с mingw) пишет, что без понятия, где файл. Добавил директорию проекта в список подключаемых. Нулевой эффект. Не принимает файл "GeneralUnit.h" хоть убей, а StringUnit.cpp нормально включается в проект.
Добавлено:
Code:
Êîìïèëÿòîð: Default compiler
Building Makefile: "C:\Dev-Cpp\Examples\Hello\Makefile.win"
Âûïîëíåíèå  make...
make.exe -f "C:\Dev-Cpp\Examples\Hello\Makefile.win" all
g++.exe -D__DEBUG__ -c Hello.cpp -o Hello.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"    -g3

Hello.cpp:4:25: GeneralUnit.h: No such file or directory
Hello.cpp:6: error: `pointer' does not name a type
Hello.cpp:8: error: variable or field `ExchangeStrs' declared void
Hello.cpp:8: error: `pchar' was not declared in this scope
Hello.cpp:8: error: `StrA' was not declared in this scope
Hello.cpp:8: error: `pchar' was not declared in this scope
Hello.cpp:8: error: `StrB' was not declared in this scope

Hello.cpp:9: error: initializer expression list treated as compound expression

Hello.cpp:9: error: expected `,' or `;' before '{' token
Hello.cpp:15: error: variable or field `SortStrArr' declared void
Hello.cpp:15: error: `pchar' was not declared in this scope
Hello.cpp:15: error: expected primary-expression before "int"
Hello.cpp:16: error: initializer expression list treated as compound expression
Hello.cpp:16: error: expected `,' or `;' before '{' token
Hello.cpp:50: error: `pchar' has not been declared
Hello.cpp:51: error: ISO C++ forbids declaration of `args' with no type
Hello.cpp: In function `int main(int, int*)':
Hello.cpp:53: error: `pchar' undeclared (first use this function)
Hello.cpp:53: error: (Each undeclared identifier is reported only once for each function it appears in.)
Hello.cpp:53: error: expected `;' before "strs"
Hello.cpp:54: error: `strs' undeclared (first use this function)
Hello.cpp:54: error: `SortStrArr' cannot be used as a function

make.exe: *** [Hello.o] Error 1


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.09.2010 02:40
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #26

Ну попробуй включить с полным путем. Если заработает ищи настройки умолчательного пути к каталогу инклудов. Если нет - выброси свой dev-c++
Добавлено:
По правилам C++ при включении файла в "" он ищется в папке текущего проекта, а в <> ищется в каталоге стандартной библиотеки.
P.S. Ты бы лучше начало файла Hello.cpp поместил, а не полный лог.
P.S.S.
И какая из этих
-I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"
-I"C:/Dev-Cpp/include/c++/3.4.2/backward"
-I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"
-I"C:/Dev-Cpp/include/c++/3.4.2"
-I"C:/Dev-Cpp/include"
    директория твоего проекта?
(This post was last modified: 29.09.2010 02:51 by ZVS.)
29.09.2010 02:44
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16467
Post: #27

Quote:По правилам C++ при включении файла в "" он ищется в папке текущего проекта, а в <> ищется в каталоге стандартной библиотеки.
Сменил кавычки - ок.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.09.2010 02:51
Find all posts by this user Quote this message in a reply
Bourn Offline

Posts: 189
Post: #28

MSVC компилер - не найдет разницы между
#include <GeneralUnit.h>
#include "GeneralUnit.h"
хотя стоит придерживаться классики
29.09.2010 13:20
Find all posts by this user Quote this message in a reply
ZVS Offline

Posts: 500
Post: #29

Вообще разница есть. Если совсем точно по стандарту, то "" вначале должен искаться в текущей папке и если не находится, то в системной, а <> наоборот в системной и если нет, то в текущей.
Поэтому кажется, что разницы нет. Но она есть. Создай в папке проекта stdio.h и посмотри какой файл будет включаться в <stdio.h> и "stdio.h". Сделано это, чтобы можно было в частности временно для проекта подменять стандартные библиотеки, не трогая оригинальные библиотечные файлы.
Кстати раньше MSVC не поддерживал стандарт полностью и искал только так как я написал раньше.
30.09.2010 00:35
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1210
Post: #30

Тема вроде подходящая, хотел спросить:
Может кто подсказать хорошую обучалку по с++?
То бишь проверенную, надежную.

Буду благодарен.


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
(This post was last modified: 17.02.2011 21:43 by packa.)
17.02.2011 21:43
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group