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

64-строка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменить одну функцию http://www.cyberforum.ru/cpp-beginners/thread735334.html
нужно сделать без учета високосного года! #include "Date.h" #include <stdexcept> #include <stdio.h> // конструктор по умолчанию Date::Date(): day(1), month(1), year(MIN_YEAR)
C++ Сервер рассылки файлов Здравствуйте не знал куда обратится, но думаю что попал туда) Есть задание создать сервер рассылки фалов с архитектурой клиент-сервер не знаю как осуществить но есть два кода клиент и сервер, но как дальше делать не знаю подскажите пожалуйста клиент client.c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> http://www.cyberforum.ru/cpp-beginners/thread735332.html
C++ Создание числового массива
Необходимо создать числовой массив A. Значение N константа. Необходимо заменить каждый отрицательный элемент средним арифметическим положительных элементов. Выдать на экран содержимое измененного массива. Заранее спасибо.
Найти наибольшее из нечетных и количество четных чисел C++
В последовательности а1 … аn найти наибольшее из нечетных и количество четных чисел. я в ней затруднился)
C++ Быстрая сортировка http://www.cyberforum.ru/cpp-beginners/thread735303.html
При попытке использовать на массиве, выдает: "Qs.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB "Qs.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB "Qs.exe": Загружено: "C:\Windows\System32\KernelBase.dll", Невозможно найти или открыть файл PDB" В чем я не прав? #include "stdafx.h" #include <stdlib.h>...
C++ Структура данных очередь Здравствуйте, нужно написать программу, для работы со структурой данных очередь предложений, при этом надо чтобы предложения состояли из односвязного списка слов. Нужные операции добавить в очередь, очистить, проверка на пустоту, изменить значение элемента в начале очереди подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.12.2012, 18:05     64-строка
Цитата Сообщение от Adm!n Посмотреть сообщение
Т.е. я введу с клавиатуры число, оно разобьется на два поля,с которыми можно проводить традиционные операции?так?
Ну типа того.
Вот вам пример. Немного отличается от вашего задания, но думаю поправить осилите.
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <string>
#include <algorithm>
 
/**
 * ÁèòîâГ*Гї ñòðîêГ* ïðåäñòГ*âëÿåò ñîáîé ïîñëåäîâГ*òåëüГ*îñòü ГЎГЁГІ.
 * Г’Г*ГЄГ*Гї ñòðêòóðГ* Г¤Г*Г*Г*ûõ ïîìîãГ*ГҐГІ ïðåäñòГ*âëÿòü Г¬Г*îæåñòâГ* èëè Г°Г*áîòГ*ГІГј
 * Г± ГЎГЁГ*Г*Г°Г*ûìè Г¤Г*Г*Г*ûìè.
 * ÝëåìåГ*ГІГ» ГЎГЁГ*Г*Г°Г*îé ñòðîêè Г*óìåðóþòñÿ ïîäðÿä îò Г*óëÿ Г±ГЇГ°Г*ГўГ* Г*Г*ëåâî.
 */
class BitString {
 public:
  explicit BitString(size_t size) : size(size), sizeInBytes((size - 1) / 8 + 1),
    data(new unsigned char[sizeInBytes]) {
    clear();
  }
  BitString(size_t size, unsigned long value) : size(size),
    sizeInBytes((size - 1) / 8 + 1), data(new unsigned char[sizeInBytes]) {
    setLongValue(value);
  }
  BitString(const BitString &other) : size(other.size),
    sizeInBytes((size - 1) / 8 + 1), data(NULL) {
    copyFrom(other);
  }
  virtual ~BitString() {
    delete [] data;
  }
  void copyFrom(const BitString &other) {
    delete [] data;
    size = other.size;
    sizeInBytes = (size - 1) / 8 + 1;
    data = new unsigned char[sizeInBytes];
    for (int i = 0; i < sizeInBytes; ++i)
      data[i] = other.data[i];
    
  }
  size_t getSizeInBytes() const { 
    return sizeInBytes;
  }
  size_t getSize() const {
    return size; 
  }
  void setLongValue(unsigned long value) {
    clear();
    int i = 0;
    for (int i = 0; value > 0; value >>= 1, ++i)
      if (value & 1) setBit(i);
  }
  std::string toString() const {
    std::string result;
    for (int i = 0; i < getSizeInBytes(); ++i) {
      result += charToBin(data[i]);
    }
    return result;
  }
  void clear() {
    for (int i = 0; i < getSizeInBytes(); ++i) {
      data[i] = 0;
    }
  }
  void setBit(size_t i) {
    data[sizeInBytes - 1 - (i >> 3)] |= (1 << (i & 7));
  }
  bool getBit(size_t i) const {
    return data[sizeInBytes - 1 - (i >> 4)] & (1 << (i & 7)) != 0;
  }
  BitString &operator=(const BitString &other) {
    if (this != &other) {
      copyFrom(other);
    }
    return *this;
  }
 
  friend BitString operator&(const BitString &a, const BitString &b) {
    const BitString &smaller = a.getSize() > b.getSize() ? b : a;
    const BitString &larger = a.getSize() > b.getSize() ? a : b;
    BitString result(larger);
    for (int i = smaller.getSizeInBytes() - 1; i >=0; --i)
      result.data[i] &= smaller.data[i];
    return result;
  }
  friend BitString operator|(const BitString &a, const BitString &b) {
    const BitString &smaller = a.getSize() > b.getSize() ? b : a;
    const BitString &larger = a.getSize() > b.getSize() ? a : b;
    BitString result(larger);
    for (int i = smaller.getSizeInBytes() - 1; i >=0; --i)
      result.data[i] |= smaller.data[i];
    return result;
  }
  friend BitString operator^(const BitString &a, const BitString &b) {
    const BitString &smaller = a.getSize() > b.getSize() ? b : a;
    const BitString &larger = a.getSize() > b.getSize() ? a : b;
    BitString result(larger);
    for (int i = smaller.getSizeInBytes() - 1; i >=0; --i)
      result.data[i] ^= smaller.data[i];
    return result;
  }
  friend BitString operator!(const BitString &a) {
    BitString result(a.getSize());
    for (int i = a.getSizeInBytes() - 1; i >=0; --i)
      result.data[i] = ~a.data[i];
    return result;
  }
 
 private:
  static std::string charToBin(unsigned char value) {
    char result[] = "00000000";
    int i = 7;
    while (value > 0) {
      result[i--] = '0' + (value & 1);
      value >>= 1;
    }
    return result;
  }
  size_t size, sizeInBytes;
  unsigned char *data;
};
 
std::ostream &operator<<(std::ostream &stream, const BitString &bs) {
  return stream << bs.toString();
};
 
 
int main(int argc, char *argv[]) {
  BitString a(64, 0xF0F0F0F0), b(64, 0x00FF00FF);
  
  std::cout << a << std::endl << b << std::endl << (a & b) << std::endl << std::endl;
  std::cout << a << std::endl << b << std::endl << !(a & b) << std::endl << std::endl;
  std::cout << a << std::endl << b << std::endl << (a ^ b) << std::endl << std::endl;
  std::cout << a << std::endl << b << std::endl << (a | b) << std::endl << std::endl;
  
  std::cin.get();
  return 0;
}
 
Текущее время: 17:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru