Форум программистов, компьютерный форум CyberForum.ru

Бинарный поиск в бинарном файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считать русские и английские символы с консоли http://www.cyberforum.ru/cpp-beginners/thread1057548.html
Собственно как? Нужно читать путь до каталога, который может содержать русские и английские символы. Повсеместно использую wchar_t, читаю строчку так: wchar_t str; fgetws(str, 1024, stdin); name.assign(str); name - wstring, однако по прежнему не читаются русские символы.. Как быть? (приходится использовать str потому, что могут быть пробелы) В настройках проекта стоит unicode. Добавлено...
C++ Использование процедур для обработки массивов Составить процедуру подсчета количества элементов одномерного массива А, значения которых лежат в пределах от p до q. С помощью этой процедуры подсчитать количество таких элементов дня каждой строки матрицы В. http://www.cyberforum.ru/cpp-beginners/thread1057543.html
C++ Процедуры и функции
Составить подпрограмму упорядочения элементов одномерного массива по убыванию их значений методом выбора максимального элемента, используя подпрограмму нахождения номера максимального элемента в последовательности чисел. Упорядочить по убыванию массивы Х и Y. Помогите пожалуйста
C++ адаптивный метод случайного поиска
Адаптивным методом случайного поиска, нужна помощь(( вообще не понимаю f({x}_{1},{x}_{2})=({x}_{2}-{x}_{1}^{2})^2+(1-{x}_{1})^2\rightarrow min
C++ Получить новую матрицу, переставляя ее блоки крест-накрест http://www.cyberforum.ru/cpp-beginners/thread1057529.html
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки n*n крест-накрест. Помогите пожалуйста.
C++ Технические средства Нужно создать программу которая бы выводила на экран информацию о подключенной клавиатуре, информацию об операционной системе, и объем памяти (ОЗУ, количество жестих дисков, внешних накопителей) подробнее

Показать сообщение отдельно
DrG
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 7
26.12.2013, 14:28     Бинарный поиск в бинарном файле
Здравствуйте, помогите решить проблему. Написал программу для нахождения числа бинарным поиском и перебором в бинарном файле. Программа, вроде, работает. То есть выводит в конце то, что надо, но когда пытаюсь открыть созданный бинарный файл через TextEdit (ОС MacOS 10.9) выдает то, что на скриншоте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <locale>
#include <fstream>
using namespace std;
ofstream bin("/Users/GlebShipilov/Desktop/бинарный файл.bin",ios::binary);
ifstream dat("/Users/GlebShipilov/Desktop/бинарный файл.bin",ios::binary);
void perebor(int pm, int pa[1000],int px)
{
    int k=0,i;
    for(i=0;i<pm;i++)
    {
        if (pa[i]!=px)
            k++;
        else
            cout<<"Кол-во шагов перебором: "<<k<<endl;
    }
    
}
void binar(int n, int parray[1000], int y)
{
    int s;
    int l=0;
    int a=0;
    int b=n;
    {
        while(parray[s]!=y)
        {
            s=(a+b)/2;
            if(y==parray[s])
            {
                l++;
            }
            else if (y<parray[s])
            {
                b=s;
                l++;
            }
            else if (y>parray[s])
            {
                a=s;
                l++;
            }
        }
    }
    cout<<"Кол-во шагов бинарным поиском "<<l;
}
class poisk
{
protected:
    int array[1000],i,m,j,x;
public:
    void getData()
    {
        cout<<"Введите кол-во элементов"<<endl;
        cin>>m;
        for (i=0;i<m;i++)
        {
            array[i]=rand()%1001;
        }
        for (i=0;i<m;i++)
            for(j=0;j<m-i-1;j++)
                if(array[j]>array[j+1])
                    swap(array[j],array[j+1]);
    }
    void showData()
    {
        for(i=0;i<m;i++)
            cout<<array[i]<<" ";
        cout<<endl<<"Введите число, которое хотите найти "<<endl;
        cin>>x;
        perebor(m, array, x);
        binar(m, array, x);
    }
};
int main()
{
    setlocale(LC_ALL, "");
    poisk search;
    search.getData();
    bin.write((char*)(&search), sizeof(search));
    dat.read((char*)(&search), sizeof(search));
    search.showData();
    return 0;
}
Миниатюры
Бинарный поиск в бинарном файле  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru