Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035

Перевод из Qbasic в C++

08.09.2011, 22:26. Показов 1732. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот что пока вышло:
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
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
void main()
{               
        char u[]="0123456789ABCDEF";
        char a[512];
        cout << "vvedite vvedite chislo: "; 
        cin >> a;
        int q=0,p=0;
        cout << "vvedite vvedite q: ";
        cin >> q;
        cout << "vvedite vvedite p: ";
        cin >> p;
        int len=strlen(a);
        len-=1;
        double r=0,z=0,j=0;
        while(len>=0)
    {
        for (int i=0; i<16;i++)
        {               
        if (toupper(a[len])==u[i]) j=i;
        }
        int g = pow(q,r);
        z += j * g;
        r += 1;
        len-=1;
        }
        int h=z;
    string x="";
        while (h>0)
    {
        char m= u[h%p];
    x+=m;
        h/=p;
        }
    reverse(x.begin(), x.end());
    cout << x;
        cout << endl;
        system("pause");
}
проверьте код, подскажите что исправить...
P.S. c++ ток на днях начал изучать

прога на qbasic:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
CLS: u$ = "0123456789ABCDEF"
INPUT "vvedite chislo"; a$: INPUT "vvedite q"; q: INPUT "vvedite p"; p
FOR i = LEN(a$) TO 1 STEP -1: j = INSTR(u$, UCASE$(MID$(a$, i, 1))) - 1
    z = z + j * q ^ r: r = r + 1
NEXT
DO
    c$ = MID$(u$, (z MOD p) + 1, 1) + c$: z = z \ p
LOOP UNTIL z = 0
PRINT STRING$(80, 196); c$
Добавлено через 22 минуты
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
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
void main()
{               
        char u[]="0123456789ABCDEF";
        char a[512];
        cout << "vvedite vvedite chislo: "; 
        cin >> a;
        int q=0,p=0;
        cout << "vvedite vvedite q: ";
        cin >> q;
        cout << "vvedite vvedite p: ";
        cin >> p;
        int len=strlen(a);
        len-=1;
        double r=0,z=0,j=0;
        while(len>=0)
        {
        for (int i=0; i<16;i++)
        {               
        if (toupper(a[len])==u[i]) j=i;
        }
        int g = pow(q,r);
        z += j * g;
        r += 1;
        len-=1;
                }
        int h=z;
        string x="";
        while (h>0)
        {
        char m= u[h%p];
        x+=m;
        h/=p;
                }
        reverse(x.begin(), x.end());
    char k=196;     
    for (int i=0;i<80;i++)  cout << k;
        cout << x << endl << endl;
    system("pause");
}
Добавлено через 3 часа 10 минут
Можно ли с string работать по символьно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2011, 22:26
Ответы с готовыми решениями:

Перевод с QBasic в С/С++
Есть программа для QBasic, она нужна в С/С++ RANDOMIZE TIMER CLS DIM k(5) k(1) = 0 k(2) = 0 К(3) = 0 k(4) = 0

Перевод программы из QBasic в C/C++
Перевод программы из QBasic в C/C++: CLS INPUT st$ stn$ = &quot;&quot; INPUT s11$ INPUT s12$ k1 = LEN(st$) k2 = LEN(s11$) i = 1 ...

Перевод программы из qbasic в С++
помогите перевести программу из Qbasic на С++ значение n = 3 OPEN &quot;input7.TXT&quot; FOR INPUT AS #1 INPUT #1, N FOR i = 0 TO N ...

8
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.09.2011, 22:49
Цитата Сообщение от softmob Посмотреть сообщение
Можно ли с string работать по символьно?
Конечно.
C++
1
2
std::string str = "abcdef";
std::cout << str[0];
1
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
09.09.2011, 02:53
лучше написали бы что должна делать программа а то ничерта не ясно, а знатоков бейсика по видимому не много тут
тогда и проверить можно будет...
а то гадать, например, что вот это и зачем как-то не очень
C++
1
2
3
4
        int g = pow(q,r);
        z += j * g;
        r += 1;
        len-=1;
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
09.09.2011, 12:55  [ТС]
программа для перевода из одной системы счисления в другую. (основания от 2 до 16)
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
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
void main()
{                
        string u="0123456789ABCDEF", a,x="";
        int q=0,p=0;
        double z=0, r=0,j=0;
        cout << "vvedite vvedite chislo: "; 
        cin >> a;      
        cout << "vvedite vvedite q: ";
        cin >> q;
        cout << "vvedite vvedite p: ";
        cin >> p;
        int len=a.length();
        len-=1;        
        while(len>=0)
        {
        for (int i=0; i<16;i++)
        {               
        if (toupper(a[len])==u[i]) j=i;
                }
        z += j * pow(q,r);
        r += 1;
        len-=1;
                }
        int h=z;
        while (h>0)
        {
        x+= u[h%p];
        h/=p;
                 }
        reverse(x.begin(), x.end());                  
        for (int i=0;i<80;i++)  {char k=196; cout << k;}
        cout << x << endl << endl;
        system("pause");
}
Добавлено через 3 часа 50 минут
Как правильно распечатать ascii символы? На char k=#символа; cout << k; ругается во время проверки...
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
09.09.2011, 15:05
ну скорей всего ругается на выход за границы знакового байта. сделай char беззнаковым (unsigned) тогда не будет.
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
09.09.2011, 17:36  [ТС]
спс, теперь не ругается... какие есть замечания по самому коду?
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
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
void main()
{                
        string u="0123456789ABCDEF", a,x="";
        int q=0,p=0;
        double z=0, r=0,j=0;
        cout << "vvedite vvedite chislo: "; 
        cin >> a;      
        cout << "vvedite vvedite q: ";
        cin >> q;
        cout << "vvedite vvedite p: ";
        cin >> p;
        int len=a.length();
        len-=1;        
        while(len>=0)
        {
        for (int i=0; i<16;i++)
        {               
        if (toupper(a[len])==u[i]) j=i;
                }
        z += j * pow(q,r);
        r += 1;
        len-=1;
                }
        int h=(int)z;
        while (h>0)
        {
        x+= u[h%p];
        h/=p;
                 }
        reverse(x.begin(), x.end());  
        unsigned char k=196;               
        for (int i=0;i<80;i++)  { cout << k;}
        cout << x << endl << endl;
        system("pause");
}
0
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
10.09.2011, 03:09
Цитата Сообщение от softmob Посмотреть сообщение
какие есть замечания по самому коду?
Посмотри, может тебе так больше понравится:

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
#include <iostream>
#include <ostream>
#include <string>
#include <algorithm>
#include <locale>
 
using namespace std;
 
template <typename T>
T input(string const & message, T const & def)
{
    T var(def);
    cout << message << ": ";
    cin >> var;
    return var;
}
 
int main()
{
    locale defloc;
    string u("0123456789ABCDEF");
 
    string a = input("vvedite chislo", string());
    int q = input("vvedite q", 0);
    int p = input("vvedite p", 0);
 
    int z = 0;
    for (size_t i = 0; i != a.size(); ++i)
    z += z * p + u.find(toupper(a[i], defloc));
 
    string c;
    for (; z > 0; z /= p)
    c += u[z % p];
    reverse(c.begin(), c.end());
 
    cout << string(80, '\xc4') << endl
         << c << endl;
}
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
10.09.2011, 21:20  [ТС]
да так по лучше, но ошибка была, не правильно в десятичную систему переводило. исправил, теперь вроде норм работает
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
#include <iostream>
#include <ostream>
#include <string>
#include <algorithm>
#include <locale>
 
using namespace std;
 
template <typename T>
T input(string const & message, T const & def)
{
    T var(def);
    cout << message << ": ";
    cin >> var;
    return var;
}
 
void main()
{
    locale defloc;
    string u("0123456789ABCDEF"); 
    string a = input("vvedite chislo", string());
    string c;
    int q = input("vvedite q", 0);
    int p = input("vvedite p", 0);  
    unsigned long long int f=1,z=0; 
   
    for (int len=a.size()-1; len>=0;len-=1)
    {
        z += f*u.find(toupper(a[len], defloc));
    f*=q;   
    }
      
        for (; z > 0; z /= p) c += u[z % p];
 
    reverse(c.begin(), c.end()); 
    cout << string(80, '\xc4') <<  c << endl;
    system("pause");
}
Добавлено через 9 часов 10 минут
доделал прогу, теперь переводит и дробные числа..
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
#include <iostream>
#include <ostream>
#include <string>
#include <algorithm>
#include <locale>
#include <math.h>
#include <sstream>
 
using namespace std;
 
template <typename T>
T input(string const & message, T const & def)
{
    T var(def);
    cout << message << ": ";
    cin >> var;
    return var;
}
 
void main()
{
    locale defloc;
    string u("0123456789ABCDEF"); 
    string a = input("vvedite chislo", string());
    string c,w;
    int q = input("vvedite q", 0);
    int p = input("vvedite p", 0);      
    unsigned long long int z=0; 
    if (a.find(',')!=-1) a[a.find(',')]='.';
    int k=a.find('.'), r = (a.size() - k-1),l=0;
    if (k==-1) 
        r=0;
    else
        {r*=-1;
        a=a.erase(k, 1);
        }
    long double d=0, f=pow((double)q,r);
    
        for (int len=a.size()-1; len>=0;len-=1)
        {
        if (r>=0)
        z += f*u.find(toupper(a[len], defloc));
        else
            d += f*u.find(toupper(a[len], defloc));
        f*=q;
            r+=1; 
        }   
        
    for (; z > 0; z /= p) c += u[z % p];
        
    do
    {
    l+=1;
    if ( l>20 ) break;
    d*=p;
    w+=u[(int)d];
    ostringstream ost;
        ost << d;
        string s_d = ost.str();
        s_d='0'+s_d.erase(0, s_d.find('.'));
    d=stod(s_d);
    }
    while((d>0)); 
           
    reverse(c.begin(), c.end()); 
    cout << string(80, '\xc4') <<  c << '.'<<w<< endl;
    system("pause");
}
0
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
11.09.2011, 00:01
Цитата Сообщение от softmob Посмотреть сообщение
да так по лучше, но ошибка была, не правильно в десятичную систему переводило. исправил, теперь вроде норм работает
Молодец
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2011, 00:01
Помогаю со студенческими работами здесь

Перевод с qbasic на Pascal
Здравствуйте! Я написал программу для qBasic. Помогите пожалуйста переписать её для Pascal. Заранее спасибо. CLS OPEN...

Перевод из QBasic в VB.NET
Здраствуйте, дали задание перевести программу на VB.net вот исходник (это часть кода): N=12: M=0 32 DIM MES(12),X(372) 33 DATA...

Перевод с Borland Pascal на QBasic
Переведите, пожалуйста, на Basic. Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме 2, 3...

Перевод кода Fortran в QBasic
Здравствуйте. Подскажите пожалуйста как правильно будет перевести данный код из Fortran в QBasic. Код Fortran: 205 K=0 DO 10...

Перевод из Visual Basic в qBasic
Sub My() Dim i As Integer, summ As Single, t As Single Dim x As Integer, f As Boolean t = CSng(InputBox(&quot;vvedite&quot;)) summ = 0 i...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru