ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

13.01.2009, 22:09
|
|
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме: 2418438
Репутация:
93
|
|
Сообщение от eiti
можешь объяснить? что это std::iter_swap( i, i + 1 ); и это ( *(i + 1) < *i )
Код:
#include <algorithm>
template< typename Iterator >
void bubble_sort( Iterator First, Iterator Last )
{
while( First < --Last )
for( Iterator i = First; i < Last; ++i )
if ( *(i + 1) < *i )
std::iter_swap( i, i + 1 );
}
ето С++, тут
смотри та которая на С, сча набросаю твою задачку))
|
|
|

14.01.2009, 17:07
|
|
Новичок
Регистрация: 09.11.2008
Сообщений: 15
Провел на форуме: 59870
Репутация:
16
|
|
Сообщение от eiti
составьте код на с++ . дан линейный массив, надо выстроить элементы по возрастанию
у меня уже каша  . алгортм то хоть правильно набросал?
Выглядит примерно так:
Код:
# include <iostream>
# include <cstdio>
using namespace std;
int main(){
cout << "Введите размерность массива\n";
int n=0; //переменная хранящая размерность массива
cin >> n;
int array[n];
for (int i=0;i<n;i++){ //начали заполнять массив
cout << "Введите значение элемента №" <<i <<endl;
cin >> array[i];
} //заполнение массива закончено
int temp; //переменная для временного хранения значений
for (int i=0; i<n; i++){ //здесь массивы сортируются
for (int j=1; j<n-i; j++){
if (array[j-1]>array[j]) {temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;};
}
} //закончили сортровать массив
//вывод отсортированного массива
for (int i=0;i<n;i++){
cout << "Элемент массива №";
cout<< i << " = " << array[i]<<endl;
}
system ("pause");
return 0;
}
|
|
|

13.01.2009, 21:29
|
|
Познающий
Регистрация: 22.12.2008
Сообщений: 82
Провел на форуме: 107509
Репутация:
6
|
|
Здравствуйте господа Ачатовцы , у меня возникла такая проблема .
Перехожу с Delphi на C++ , юзаю Borland C++ иногда Dev C++.
Я хочу вывести в messagebox текст и переменую , в таком случии я бы написал на Delphi так
Showmessage('Text'+peremenia+'text') как мне оргонизвать это в BC++ ?
и еще
также я хочу зделать вроде такого Showmessage('TEXT'+#$0D,#$0A);
в BC++ пробывал MessageBox(NULL,"text"char*(0x0D,0x0A), "Example",MB_OK | MB_ICONEXCLAMATION);
не получилось =(
Помогите решить пробему =)
Зарание Спосибо !!!
Последний раз редактировалось Fl0dER; 13.01.2009 в 21:40..
|
|
|

13.01.2009, 21:56
|
|
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме: 2418438
Репутация:
93
|
|
Сообщение от Fl0dER
Здравствуйте господа Ачатовцы , у меня возникла такая проблема .
Перехожу с Delphi на C++ , юзаю Borland C++ иногда Dev C++.
Я хочу вывести в messagebox текст и переменую , в таком случии я бы написал на Delphi так
Showmessage('Text'+peremenia+'text') как мне оргонизвать это в BC++ ?
и еще
также я хочу зделать вроде такого Showmessage('TEXT'+#$0D,#$0A);
в BC++ пробывал MessageBox(NULL,"text"char*(0x0D,0x0A), "Example",MB_OK | MB_ICONEXCLAMATION);
не получилось =(
Помогите решить пробему =)
Зарание Спосибо !!!
MessageBox(0,_T("ЕТО ДОЛЖНО РАБОТАТЬ!!! НАПИШИ ЧТО ПИШЕТ КОМПИЛЯТОР!!"),0,MB_OK);
|
|
|

13.01.2009, 22:15
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Fl0dER
Форматируй вывод в буфер с помощью ws_printf:
TCHAR szSomeBuffer[1024] = {0};
INT nSomeVar = 10;
wsprintf(szSomeBuffer, "Значение переменной = %d\r\n.", nSomeVar);
MessageBox(NULL, szSomeBuffer, "Example", MB_OK | MB_ICONEXCLAMATION);
|
|
|

14.01.2009, 16:34
|
|
Познающий
Регистрация: 22.12.2008
Сообщений: 82
Провел на форуме: 107509
Репутация:
6
|
|
Сообщение от groundhog
Fl0dER
Форматируй вывод в буфер с помощью ws_printf:
TCHAR szSomeBuffer[1024] = {0};
INT nSomeVar = 10;
wsprintf(szSomeBuffer, "Значение переменной = %d\r\n.", nSomeVar);
MessageBox(NULL, szSomeBuffer, "Example", MB_OK | MB_ICONEXCLAMATION);
А как заюзать переменую с текстом а не именно Integer ?
|
|
|

14.01.2009, 17:51
|
|
Новичок
Регистрация: 10.01.2009
Сообщений: 3
Провел на форуме: 21694
Репутация:
1
|
|
в разделе сортировки будет правильнее так:
for(int i =0; i<n; i++)
for(int j=i; j<n; j++)
if(array[i]<array[j])
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
что-то вроде этого. если сортировка не в ту сторону, поменяй < на >
|
|
|

14.01.2009, 19:26
|
|
Новичок
Регистрация: 09.11.2008
Сообщений: 15
Провел на форуме: 59870
Репутация:
16
|
|
Сообщение от oneofnamers
в разделе сортировки будет правильнее так:
for(int i =0; i<n; i++)
for(int j=i; j<n; j++)
if(array[i]<array[j])
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
что-то вроде этого. если сортировка не в ту сторону, поменяй < на >
Оно вроде бы и хорошо, но при моем варианте сортировка идет быстрее, так как выполняется меньше внутренних циклов. Это буде видно если ввести дополнительные переменные показывающие сколько и каких циклов было выполнено. Вот мой вариант
Код:
for (int i=0, Kolco=0; i<n; i++,Kolco++){
for (int j=1, Kolco2=0; j<n-i; j++,Kolco2++){
if (array[j-1]>array[j]) {temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;};
cout<< "!!!!!!!!! Kolco2=" <<Kolco2<<endl;
}
cout <<"!!!!!! Kolco ="<< Kolco<<endl;
}
и твой (если отредактировать):
Код:
for(int i =0, Kolco=0; i<n; i++,Kolco++){
for(int j=i, Kolco2=0; j<n; j++,Kolco2++){
if(array[i]<array[j])
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
};
cout <<"!!!!!! Kolco2 ="<< Kolco2<<endl;
}
cout<< "!!!!!!!!! Kolco=" <<Kolco<<endl;
}
И что бы не было сомнений проверять рекомендую на одинаковых входных данных
|
|
|

14.01.2009, 19:56
|
|
Новичок
Регистрация: 07.01.2009
Сообщений: 10
Провел на форуме: 22534
Репутация:
7
|
|
привет. вообщем я новичок в С++, компилирую когда в Code:Bloks 8 а когда не получаетца что нибудь здесь, тогда перехожу на Visual 2008 Pro, да.... такое бывает.
Вообщем учусь по книге, дошол до создания классов в отдельных файлах Headers files, с расширением .h, hpp, так вот создаю значит отдельно файл .cpp и отдельно класс в headers files, даю одинаковые имена и классу, и имени файла, сохраняю, в .cpp файле с помощью #include в вставляю <имя_файла.h>, делаю как в книге написано. И всеравно в обоих компилятарах при компиляции выдает сообщение что ненайден файл или папка с имя_файл.h и процесс тормозится. не пойму по какому пути нада сохранять созданный файл с расширением .h, что бы компилятор его видел. вродебы находица все в одной папке с .cpp файлом и нифига не пашет. Вкниге ответы не нашел.
|
|
|

14.01.2009, 20:09
|
|
Постоянный
Регистрация: 23.11.2007
Сообщений: 342
Провел на форуме: 1215706
Репутация:
310
|
|
Сообщение от iffan
привет. вообщем я новичок в С++, компилирую когда в Code:Bloks 8 а когда не получаетца что нибудь здесь, тогда перехожу на Visual 2008 Pro, да.... такое бывает.
Вообщем учусь по книге, дошол до создания классов в отдельных файлах Headers files, с расширением .h, hpp, так вот создаю значит отдельно файл .cpp и отдельно класс в headers files, даю одинаковые имена и классу, и имени файла, сохраняю, в .cpp файле с помощью #include в вставляю <имя_файла.h>, делаю как в книге написано. И всеравно в обоих компилятарах при компиляции выдает сообщение что ненайден файл или папка с имя_файл.h и процесс тормозится. не пойму по какому пути нада сохранять созданный файл с расширением .h, что бы компилятор его видел. вродебы находица все в одной папке с .cpp файлом и нифига не пашет. Вкниге ответы не нашел.
<> для стандартных файлов инклудов, "" для локальных файлов 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|