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

Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) - C++

Восстановить пароль Регистрация
 
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 76
23.02.2014, 01:38     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #1
Помогите пожалуйста перевести из Pascal в С++
Задан текст, в который входят только цифры и буквы. Определить, является ли этот текст шестнадцатеричной записью числа, кратного 5.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
b:set of char;
a:string;
c,sum,i,f:integer;
begin
 b:=['0'..'9','A'..'F'];
 readln (a);
 for i:=1 to length(a) do
  if  not(a[i] in b) then f:=1;
 if f=0 then begin
 for i:=1 to length(a) do
   begin
   c:= ord(a[i]);
   if c>57 then c:=c-55 else c:=c-48;
   sum:=sum+c;
   end;
if sum mod 5=0 then writeln('yes')else f:=1;
end;
if f=1 then writeln('no');
readln;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 01:38     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++)
Посмотрите здесь:

C++ Текст является десятичной записью числа, кратного 9
C++ Определить, является ли текст десятичной записью числа, кратного 9
ООП. Определить, является ли текст десятичной записью числа, кратного 4 C++
C++ Строки: является ли текст записью десятичного числа, кратного 4
Определить, является ли текст двоичной записью числа кратного 6 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sashaa355
7 / 3 / 1
Регистрация: 23.02.2014
Сообщений: 18
23.02.2014, 02:16     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main(int argc, char** argv) {
    string input;
    int sum;
    cin >> input;
    /*Проверяем ASCII код 48-57 = 0-9 , код 65-70 = A..F*/     
    for (int i = 0; i < input.length(); i++){
        if (!(((input[i] > 47) && (input[i] < 58)) || ((input[i] > 64) && (input[i] < 71)))) {
            cout << "Entered sentence is not hexadecimal" << endl;
            return 0;
        }
        else
            sum += input[i];
    }
    if ((sum % 5) == 0)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}
Я изменил реализацию , т.к. посчитал так проще
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 76
23.02.2014, 09:47  [ТС]     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #3
Выдает ошибки:
Ошибка 1 error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует) 8
3 IntelliSense: отсутствует оператор ">>", соответствующий этим операндам 9
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
23.02.2014, 10:13     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
 int main ()
 {
     std::ios::sync_with_stdio(false);
     int num;
     std::cin >> std::hex >> num;
     std::cout << std::boolalpha << (1 == std::cin.rdbuf()->in_avail() && 0 == num % 5) << '\n';
     return 0;
 }
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 76
23.02.2014, 10:59  [ТС]     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #5
А с ошибками в программе можете пожалуйста помочь
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
23.02.2014, 11:08     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #6
подключи хедер string
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 76
23.02.2014, 14:18  [ТС]     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #7
Выдает ошибку
Миниатюры
Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++)  
sashaa355
7 / 3 / 1
Регистрация: 23.02.2014
Сообщений: 18
23.02.2014, 14:44     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #8
Попробуй
int sum;
заменить на
int sum = 0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 22:35     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++)
Еще ссылки по теме:

C++ Определить, является ли текст десятичной записью числа, кратного 5
C++ Проверить, является ли текст десятичной записью числа, кратного 5
C++ Определить, является ли текст десятичной записью числа, кратного 5

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

Или воспользуйтесь поиском по форуму:
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 76
06.03.2014, 22:35  [ТС]     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) #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
#include <iostream>
#include<stdio.h>
#include<string>
 
using namespace std;
 
int main(int argc, char** argv) {
    string input;
    int sum=0;
    cin >> input;
    /*Проверяем ASCII код 48-57 = 0-9 , код 65-70 = A..F*/     
    for (int i = 0; i < input.length(); i++){
        if (!(((input[i] > 47) && (input[i] < 58)) || ((input[i] > 64) && (input[i] < 71)))) {
            cout << "Entered sentence is not hexadecimal" << endl;
            system("PAUSE");
            return 0;
        }
        else
            sum += input[i];
    }
    if ((sum % 5) == 0)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    system("PAUSE");
    return 0;
}
Помогите добавить в программу перевод из шестнадцатеричной системе исчисления в десятичную

Добавлено через 6 часов 29 минут
Никто не знает как перевести из шестнадцатеричной в десятичную в данной программе?
Yandex
Объявления
06.03.2014, 22:35     Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++)
Ответ Создать тему
Опции темы

Текущее время: 02:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru