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

Как лучше сделать. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделить в массиве последовательность чисел и сравнить выделенное с константами http://www.cyberforum.ru/cpp-beginners/thread49213.html
Привет всем! Прошу помощи!:) Существует некий массив (его содержимое динамически меняется),например: unsigned char Name1 ; и константы: unsigned char Name2="abcde"; unsigned char Name3="54321"; пускай в массив записалось следующее: 1234567890abcde0987654321
C++ Ошибка, связанная с массивами Вот такой код для такой задачи: записать в массиве М количество положительных элементов каждого столбца матрицы A(K,L). #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> int **ReadMatrixFromFile(int &K, int &L); int **CreateMatrix(const int K, const int L); void FreeMatrix(int **X, const int L); void CountPositiveElementsIn(int **X, const int K, const int L,... http://www.cyberforum.ru/cpp-beginners/thread49195.html
Работа с файлами. Язык С C++
существует такой код int c; FILE *f=fopen("C:/test.txt", "r"); c=getc(f); char a;
C++ Расшифровать цикл
Здравствуйте! Помогите,если кто может, понять вот этот кусок кода,что он делает,желательно чтоб было понятно. for(j = 0; j < 10; j++) if(sqrs ==i) break; из вот этого исходника:
C++ ++N http://www.cyberforum.ru/cpp-beginners/thread49185.html
в чем отличие ++а от а++?
C++ Использование toupper() Не знаю почему, но код не хочет работать, вроде уже всё прописал что нужно. Программа должна выдать на экран фразу: украина - лучшая страна в мире с большой буквы все символы. Во исходник простой программы: #include <iostream> #include <cctype> #include <cstring> using namespace std; int main() подробнее

Показать сообщение отдельно
АНК
124 / 115 / 2
Регистрация: 27.02.2007
Сообщений: 291
03.09.2009, 10:51     Как лучше сделать.
Я предложил бы такое решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool getbit(unsigned char * ar, int x, int y);
void __fastcall TTestForm::Button1Click(TObject *Sender)
{
  unsigned char* I = new unsigned char [60000]; // т.е. 600 строк по 100 байтов
  bool btn = getbit(I, 333, 444);
}
 
bool getbit(unsigned char * ar, int x, int y)
{
  int i_byte = x/8; // какой байт в строке
  int i_pos = x%8;  // позиция точки в байте
  // маска выделения нужного бита
  unsigned char msk = 1;
  if(i_pos != 0) msk <<= i_pos;
 
  int index = y*100 + i_byte; // адрес байта в массиве
  return (ar[index] & msk) != 0;
}
Ну, конечно, надо бы вставить проверку для x и y на не превышение размера.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru