Нужен совет, какие БД в связке с С++ сейчас популярны ? Закончил изучение языка куда дальше двигаться незнаю, решил взять БД+C++ думаю это всегда пригодится? )) Боюсь вы ошибаетесь. Что значит закончил изучать С++? Прочитали 1 книгу? Опыт, практика есть? Советую пописать что-то простое, а потом сложнее, сложнее, а уже когда совсем будет все супер(например свое какое-нибудь полезное приложение), учите БД. Например тот же MySQL. Извините, если вы гуру в С++, тогда я ошибся. Просто звучит смешно .
SQL язык запросов примерно везде одинаков. Так что бери любую реляционную БД и практикуйся. Благо БД не много
помогите решить пожалуйста такую задачу, а то ничего в голову не лезет) Имеется матрица (n*m) заполненная 1 и 0. Единицы - это острова, а нули - море. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Найти количество островов. Могут быть "гнутые" и "дырявые" острова.
самое простое что пришло в голову это решение этой задачи с помощью 2 дополнительных матриц: 1-ая матрица имеет следующие состояние ячейки 0 и 1 просто дублируют значения в исходной матрице, да еще 0 значит не обрабатывать эту ячейку она не является частью острова, 2 - кадидат на матрицу у которого обработаны все соседи, 3 - кадидат на матрицу у которого обработаны не все соседи. 2-ая матрица (строкового типа) содержит для единичных элементов имя родителя (начало острова имеет родителя себя) пример 1 0 0 1 1 1 0 0 0 2-ая матрица имеет вид 0;0 0 0 0;0 0;0 1;1 0 0 0 ну и переменной для определения состояния программы true - в поисках начала острова false - обработка острова Обрабатываться должны все элементы исходного массива, началом острова может быть только элемент у которого значения исходной и 1-ой матрицы равны 1, а 2-ой - 0. Так же можно попробывать это: Ищем первую попавшуюся единицу и запускаем процесс, который удалит остров (содержащий данную единицу) с поля. После удаления острова увеличиваем счётчик и ищем слудующую единицу и т.д. Удалять острова можо на оргинальном массиве, а можно и сделать копию Рекурсивная процедура удаления выглядит примерно так: Code: int a[10][10]; // <--- наш массив // Удаление острова, содержащего поле x, y void delete_island (int x, y) { // Для внутреннего контроля (чтобы убедиться, что мы всё делаем правильно) if (a[x][y] != 1) abort (); // Сразу сотрём данную точку, чтобы повторно сюда не зайти и не зациклиться a[x][y] = 0; // Обходим четырёх соседей данной точки, учитывая границы поля // Предполагая, что координаты соседа x1, y1, нужно на каждого // соседа запутить код if (a[x1][y1] == 1) delete_island (x1, y1); } Возможны горизонтальные, вертикальные и смешанные комбинации. Для решения задачи при нахождении единицы следует просмотреть область вокруг неё. Так как область может быть замкнутая при обходе следует заносить координаты единиц в список единиц для конкретного острова и общий список единиц. Список единиц представляют собой пару (x,y). При нахождении тупикового вариант следует откатываться назад для поиска другого пути.
Возможны горизонтальные, вертикальные и смешанные комбинации. Для решения задачи при нахождении единицы следует просмотреть область вокруг неё. Так как область может быть замкнутая при обходе следует заносить координаты единиц в список единиц для конкретного острова и общий список единиц. Список единиц представляют собой пару (x,y). При нахождении тупикового вариант следует откатываться назад для поиска другого пути.
нужно в консоль выводить некоторый данные красочно, в разных цветах. При это нужно поле консоли постоянно обновлять новыми данными, не в нис продолжать, а именно убирать стары и показывать новые. Нужно это сделать желательно для меня кроссплатформенно. Или же придется и для винды и для линя делать ручками. Трабла в том что я вообще не знаю как это делать как хоть это называется когда мне в консоли нужно сделать одну строчку красной другую зеленой... пляс цвет текста тоже желательно иметь возможность задавать. кажись нашел: http://filonenko-mikhail.blogspot.com/2010/04/blog-post.html Как можно заполнить все строку консоли ? ну типо сделать выравнивание по правому краю. Вот предположим это окно консоли |_____________________________________| мне нужно что бы текст был расположен вот так |некоторый текст_______________что то еще| для этого по иде нужно после первой строки задать выравнивание через setw... но каую длину указывать ? что бы вплотную прижаться к правой границе ?
Ubuntu 10.04 x86_64 IDE Code::Blocks из репов. Создаю проект, выбираю язык "С", пишу код, начинаю компилить - пишет g++ not found. Решил проблему так: Вопрос: Почему нужен был g++? Я ведь на Си писал. Сообственно код проги: Code: #include <stdio.h> #define LOWER 0 #define UPPER 300 #define STEP 20 int main() { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf("3%d %6.1f\n", fahr, (5.0/9,0)*(fahr-32)); return 0; }
cupper, кажется, стандартные размеры 25(высота) на 80(ширина), ещё со времён dos'а. Jakeroid, думаю, это настрйока в IDE. И скорее, даже, самоуправство, если расширение у файла .cpp, а не .c то используется g++, иначе cc(с compiler).
да ты я смотрю шутник ты бы мне еще предложил бы реверснуть виндовс что бы узнать как он с консолью работает )) под win да, а вот под линь то нет. GRRRL Power так же я почти уверен что в приведеном терисе нету заморочек с определение размеров консоли, там все стандартно скорее всего.
Там размер консоли меняется (не 80x25, как сказали выше) и создаются две страницы консоли, которые меняются. Я не шутник, потому что там исходники есть вообще-то.
да видел я что они есть. Эту сурово ради столь не значительной проблемки разбирать все приложение. Но на крайний случай придется. то что условная компиляция это само собой. За ссылки спасибо, где то уже натыкался на системные переменный консоли COLUMN и LINE, надо будет повнимательней посмотреть.
подскажите пожалуйста, почему может вылетать такая ошибка при компиляции программы на асм: fatal error: Can't open file 'c'. у меня прописано так: include c:/masm32/include/user32.inc
все равно такое же( вчера тоже проблемы были с линковкой, с трудом благодаря тов. DooD слинковал, а сегодня вот опять( оно скомпилилось потом через консоль, но вот так: polink srcfile.obj rsrc.res ошибок не выдает, но меню все равно в проге нет( в гугле пытался искать, но не нашел ЗЫ: упс, походу не в ту тему отписался)
Попробуй указывать относительные пути, или, если файл в папке include просто Code: include user32.inc А, может быть, меню не правильно оформлено?! Оконная процедура неверно обрабатывает сообщения?!
Дана последовательности чисел. Надо найти наименьшее. Попытался но программа почему то выдаёт 0 вместо 2. Вот код, что не так: Code: #include <cstdio> #include <cstdlib> #include <iostream> using namespace std; int main () { char stroka[]="78392"; int min=0; for (int i=0;i<4;i++) { if (stroka[i]<min) { min=stroka[i]; } } cout << min; system("pause"); return 0; }
или так: Code: int main() { char stroka[]= "78392"; char charN[2]; charN[0] = stroka[0]; // одно число charN[1] = 0; // завершаем строку, чтобы atoi не преобразовал лишнего int min = atoi(charN); for (int i=0;i<=4;i++) { charN[0] = stroka[i]; int curent = atoi(charN); if (curent<min) min=curent; } cout << min << endl; system("pause"); return 0; } или так: Code: int main() { char stroka[]= "78392"; int min = stroka[0]-48; for (int i=0;i<=4;i++) if (stroka[i]-48<min) min=stroka[i]-48; cout << min << endl; system("pause"); return 0; } Обои варианты работают. Минус 48 в втором, потому что код символа цифры семь = 55 Соответственно 55-48=7 С остальными цифрами так же.