Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите. Warning при компиляции, виснет программа при запуске.

75K
07 ноября 2011 года
Zinnyr
2 / / 07.11.2011
Visual C++ 6 версии
Мне нужно создать программу для быстрого последовательного поиска.
Суть метода:
Cоздаётся фиктивная запись в конце файла (A [ N+1] ) равная искомому элементу. Последовательно перебираются все элементы массива, если на каком-то шаге цикла обнаруживается, что искомый элемент найден, то происходит выход из цикла, и переход к условию i < N+1. Если условие выполняется , то искомый элемент присутствует в массиве, иначе элемента нет.
Файлы самой программы
http://narod.ru/disk/30758019001/search.rar.html

Header (searchDlg.h) программы
 
Код:
protected:
        HICON m_hIcon;
    int *pInt; //Динамический массив
        int IntNum; // Счетчик в операторах циклов для обработки масства


В программе 3 кнопки

1) Кнопка Сгенерировать массив (ошибка в D:\УГАТУ\2 курс\МП и ПА\курсач\Создание\search\searchDlg.cpp(221) : warning C4018: '<' : signed/unsigned mismatch , 21 строка)

Код:
//получаем введенное пользователем имя файла в переменную m_FileName
UpdateData(1);
//если пользователь не ввел имя файла,
//то присваиваем переменной m_FileName значение по умолчанию
if (m_FileName.IsEmpty()) m_FileName = "Поиск";
 
CStdioFile m_File; //создаем объект класса CStdioFile
 
// если возникла ошибка открытия файла, то об этом будет сообщено
// пользователю и завершено выполнение функции
if      ( !m_File.Open(m_FileName+CString(".txt"),
        CFile::modeCreate | CFile::modeWrite | CFile::typeText) )  
{MessageBox("(!) Ошибка открытия файла", "Информация", MB_ICONEXCLAMATION);
  return;
}
 
CString str;
// в цикле генерируем m_NUM псевдослучайных чисел, максимальное
// значение генерируемого числа также равно m_NUM
for (int n=0; n < m_NUM; n++)
{ // генерируем псевдослучайное число, конвертируем его в строку,
// помещаем в переменную str
str.Format("%i\n", m_NUM * rand());
m_File.WriteString(str); // записываем переменную str в файл
}
 
// удаляем и обнуляем результаты предыдущих чтений из файла и
// сортировок
m_DATABOX.ResetContent();
// очищаем поле вывода времени поиска
m_SEARCHTIME.Empty();
 
// выводим в элементы диалога приложения значения по умолчанию,
// содержащиеся в связанных с ними переменных
UpdateData(0);
 
//закрываем файл, сообщаем об успешной генерации последовательности чисел
m_File.Close();
MessageBox("Файл сгенерирован успешно.", "Информация", MB_ICONINFORMATION);


2) и еще ошибка на кнопке поиск (при ее нажатии программа зависает)
D:\УГАТУ\2 курс\МП и ПА\курсач\Создание\search\searchDlg.cpp(313) : warning C4018: '!=' : signed/unsigned mismatch , 12 строка
D:\УГАТУ\2 курс\МП и ПА\курсач\Создание\search\searchDlg.cpp(315) : warning C4018: '<' : signed/unsigned mismatch 17 строка

Код:
if ((pInt == NULL)||(IntNum<1))
        {MessageBox("Искать нечего","Информация", MB_ICONINFORMATION);
        return;
        };
 
 
 int i=1;
// Фиктивную запись массива приравниваем к искомому элементу
 pInt[m_NUM+1]=m_search;
//Ищем искомую запись
while (pInt != m_search);
 i++;
/* Когда нашли запись (а найдем мы ее во всяком случае, так как прировняли к фиктивной записи
m_NUM+1 смотрим условие, если искомый элемент найден в нашем массиве, то УСПЕШНО, если же
найден в фиктивной записи то НЕ УСПЕШНО) */
 if (m_NUM < IntNum+1) MessageBox("(!) Файл найден", "Информация", MB_ICONEXCLAMATION);
 MessageBox("(!) Файл не найден", "Информация", MB_ICONEXCLAMATION);
11
07 ноября 2011 года
oxotnik333
2.9K / / 03.08.2007
А отладчиком не пробовал посмотреть в каком цикле виснет?
ЗЫ: на ворнинги можно забить или поставить везде unsigned int i = ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог