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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
mexmet20
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 16
#1

Работа с битами И Работа с символьными данными - C++

22.05.2011, 16:33. Просмотров 1924. Ответов 12
Метки нет (Все метки)

1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с наименьшим кодом 6-й бит - нулем.
Вывести исходную последовательность, ее восьмеричные коды; пребразованную последовательность и ее восьмеричные коды.

2. Прочитать из файла строку символов. В этой строке подсчитать, сколько символов стоят перед символом ?, все последующие заменить символами !. Новую строку не создавать. Вывести исходную и преобразованную строки.

Если сможете помощь помогите пожалуста!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hanamphong
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 5
23.05.2011, 20:46     Работа с битами И Работа с символьными данными #2
помогите^^

Добавлено через 4 часа 45 минут
никто может решить эту задачу???

Добавлено через 7 часов 59 минут
пожалуйста! мне надо скоро!
Aneron
157 / 156 / 12
Регистрация: 20.04.2010
Сообщений: 570
23.05.2011, 20:59     Работа с битами И Работа с символьными данными #3
геморно.однако
hanamphong
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 5
25.05.2011, 00:22     Работа с битами И Работа с символьными данными #4
где хороший програмист?
^^
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
25.05.2011, 00:48     Работа с битами И Работа с символьными данными #5
Цитата Сообщение от mexmet20 Посмотреть сообщение
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с наименьшим кодом 6-й бит - нулем.
Вывести исходную последовательность, ее восьмеричные коды; пребразованную последовательность и ее восьмеричные коды.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
typedef unsigned char byte;                       // просто для удобства
const byte bit5 = 0x10;
const byte bit6 = 0x20;
byte symbols[8]={0};
int i = 0; 
byte Max = symbols[0]; int kMax = 0;
byte Min  = symbols[0]; int kMin = 0;
while(i < 8)             // Max и Min вычислять необязательно --
{ if (symbols[i] > Max)     { Max = symbols[i]; kMax = i; } 
  else if(symbols[i] < Min) { Min = symbols[i]; int kMin = 0; }
}
for(int i = 0; i < 8; ++i) cout << symbols[i] << '-' << oct << int(symbols[i]) << endl;
simbol[kMax] = simbol[kMax] | bit5;
simbol[kMax] = simbol[kMax] | ~bit6;
for(int i = 0; i < 8; ++i) cout << symbols[i] << '-' << oct << int(symbols[i]) << endl;
Как-то так...
Только ввода - нет.
hanamphong
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 5
25.05.2011, 18:59     Работа с битами И Работа с символьными данными #6
thank.еще одно задание помогите................

2. Прочитать из файла строку символов. В этой строке подсчитать, сколько символов стоят перед символом ?, все последующие заменить символами !. Новую строку не создавать. Вывести исходную и преобразованную строки.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
25.05.2011, 19:16     Работа с битами И Работа с символьными данными #7
Чтение из файла прикручивай сам:
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
#include <iostream>
#include <string>
#include <algorithm>
 
int main(int argc, char* argv[])
{
    if(argc != 2)
    {
    std::cerr << "Usage: " << *argv << " LINE" << std::endl;
    return -1;
    }
    
    std::string string(argv[1]);
 
    size_t cnt = string.find('?');
 
    if(cnt == std::string::npos)
    std::cout << "No occurence of character `?' in line: " << string << std::endl;
    else
    {
    std::fill(string.begin() + cnt + 1, string.end(), '!');
    std::cout << "Count of characters before `?': " << cnt << std::endl
          << "Processed line: " << string << std::endl;
    }
        
    return 0;
}
hanamphong
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 5
25.05.2011, 22:10     Работа с битами И Работа с символьными данными #8
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
typedef unsigned char byte;                       // просто для удобства
const byte bit5 = 0x10;
const byte bit6 = 0x20;
byte symbols[8]={0};
int i = 0; 
byte Max = symbols[0]; int kMax = 0;
byte Min  = symbols[0]; int kMin = 0;
while(i < 8)             // Max и Min вычислять необязательно --
{ if (symbols[i] > Max)     { Max = symbols[i]; kMax = i; } 
  else if(symbols[i] < Min) { Min = symbols[i]; int kMin = 0; }
}
for(int i = 0; i < 8; ++i) cout << symbols[i] << '-' << oct << int(symbols[i]) << endl;
simbol[kMax] = simbol[kMax] | bit5;
simbol[kMax] = simbol[kMax] | ~bit6;
for(int i = 0; i < 8; ++i) cout << symbols[i] << '-' << oct << int(symbols[i]) << endl;
Как-то так...
Только ввода - нет.
hix....не работает^^

Добавлено через 4 минуты
Цитата Сообщение от Nameless One Посмотреть сообщение
Чтение из файла прикручивай сам:
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
#include <iostream>
#include <string>
#include <algorithm>
 
int main(int argc, char* argv[])
{
    if(argc != 2)
    {
    std::cerr << "Usage: " << *argv << " LINE" << std::endl;
    return -1;
    }
    
    std::string string(argv[1]);
 
    size_t cnt = string.find('?');
 
    if(cnt == std::string::npos)
    std::cout << "No occurence of character `?' in line: " << string << std::endl;
    else
    {
    std::fill(string.begin() + cnt + 1, string.end(), '!');
    std::cout << "Count of characters before `?': " << cnt << std::endl
          << "Processed line: " << string << std::endl;
    }
        
    return 0;
}
я не учился до четения из фаилов .поэтому я не мог закончить зту задачу.она не работает.пожалуста .дайте мне полное решение.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
25.05.2011, 22:13     Работа с битами И Работа с символьными данными #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
#include <stdio.h>
 
#define SETBIT(x, nbit)   (x | nbit)
#define UNSETBIT(x, nbit) (x & (x ^ nbit))
 
int main()
{
   int x = 0;
 
   x = SETBIT(x, 1);
   printf("%d ", x);
 
   x = SETBIT(x, 2);
   printf("%d ", x);
   
   x = UNSETBIT(x, 2);
   printf("%d ", x);
   
   x = UNSETBIT(x, 1);
   printf("%d ", x);
   
   x = UNSETBIT(x, 2);
   printf("%d ", x);
}
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
26.05.2011, 04:38     Работа с битами И Работа с символьными данными #10
Цитата Сообщение от hanamphong Посмотреть сообщение
я не учился до четения из фаилов .поэтому я не мог закончить зту задачу.она не работает.пожалуста .дайте мне полное решение.
Цитата Сообщение от hanamphong Посмотреть сообщение
2. Прочитать из файла строку символов. В этой строке подсчитать, сколько символов стоят перед символом ?, все последующие заменить символами !. Новую строку не создавать. Вывести исходную и преобразованную строки.
Если бы тебя не учили работать с файлами, то тебе никто бы такое задание не дал.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
26.05.2011, 05:07     Работа с битами И Работа с символьными данными #11
Цитата Сообщение от mexmet20 Посмотреть сообщение
1. Ввести 8 символов. В символе с наибольшим кодом заменить 5-й бит единицей, а в символе с наименьшим кодом 6-й бит - нулем.
Вывести исходную последовательность, ее восьмеричные коды; пребразованную последовательность и ее восьмеричные коды.

2. Прочитать из файла строку символов. В этой строке подсчитать, сколько символов стоят перед символом ?, все последующие заменить символами !. Новую строку не создавать. Вывести исходную и преобразованную строки.

Если сможете помощь помогите пожалуста!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        int max, min;
    max = _getch();
 
    _asm
    {
            xor eax, eax
            mov eax, max
            mov ecx, 00000005h
            bts eax, ecx
            mov max, eax
    }
        
        _asm
    {
            xor eax, eax
            mov eax, min
            mov ecx, 00000006h
            btr eax, ecx
            mov min, eax
    }
hanamphong
0 / 0 / 0
Регистрация: 23.05.2011
Сообщений: 5
26.05.2011, 19:53     Работа с битами И Работа с символьными данными #12
Цитата Сообщение от Nameless One Посмотреть сообщение
Если бы тебя не учили работать с файлами, то тебе никто бы такое задание не дал.

вы понимаете . у меня лекция и пратика разные.на лекции я не учился с фаилами но преподаватель на практика дал мне такое задание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 23:18     Работа с битами И Работа с символьными данными
Еще ссылки по теме:
Работа с битами C++
C++ Работа с битами
Работа с битами. C++
C++ Работа с битами
работа с битами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
26.05.2011, 23:18     Работа с битами И Работа с символьными данными #13
Цитата Сообщение от hanamphong Посмотреть сообщение
вы понимаете . у меня лекция и пратика разные.на лекции я не учился с фаилами но преподаватель на практика дал мне такое задание.
А книжки на что? Книжки надо читать!
И ты не сказал, что не работает с битами-то?
Yandex
Объявления
26.05.2011, 23:18     Работа с битами И Работа с символьными данными
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru