Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
1

Переписал прогу с паскаля на С++.Где ошибка?

06.12.2015, 21:01. Просмотров 759. Ответов 4
Метки нет (Все метки)

На паскале код запускатеся,работает,на Си нет.
Pascal
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
program perevod_in_10;
{перевод в 10-ую целых чисел P<=36}
var
p:integer;{основание СС}
c:integer;{искомое число}
p1,x:longint;{степени числа p, данное число}
i,n:integer;{i- счетчик, n- количество цифр}
begin
writeln('введите число в десятичной системе счисления');
readln(x);
writeln('введите систему счисления <=36');
readln(p);
p1:=1;
n:=0;
while x div p>=p1 do begin
p1:=p1*p; inc(n) end;
for i:=n downto 0 do begin
c:=x div p1;
x:=x mod p1;
p1:=p1 div p;
case c of
0..9:write(c);
else write(chr(c+ord('A')-10))
end{of case}
end;
end.
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 <conio.h>
#include <stdlib.h>
 
using namespace std;
void main()
{
    setlocale(LC_ALL, "Rus");
    int p; //основание сист. счисл.
    int c; //искомое число
    int long long p1, x; //степени числа p,данное число
    int i, n; //i-счетчик,n- количество цифр
    cout << "Введите число в десятичной системе счисления" << endl;
    cin >> x;
    cout << "Введите систему счисления <=36" << endl;
    p1 = 1;
    n = 0;
    while ((x / p) >= p1)
    {
        p1 = p1*p;
        n++;
    }
    for (i = n; i >= 0; i--)
    {
        c = c / p1;
        x = x%p1;
        p1 = p1 / p;
        if (c >= 0 && c <= 9) { cout << c; }  /* здесь не знаю как заменить case из паскаля,подумал что можно усл. оператор*/
        else cout << (char(c + 'A' - 10));
        /*switch (c)
        {
        case 0: case 1: case 2: case 3:
        case 4: case 5: case 6: case 7:
        case 8: case 9: cout << c;
        }*/
        
    }
 
 
 
    _getch();
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2015, 21:01
Ответы с готовыми решениями:

Переписал прогу с С++ на паскаль.Где ошибки?!
Переписал прогу с С++ на паскаль.Где ошибки?! program prost_02; uses crt; var a, b, ch, del,...

Переделать прогу с паскаля в Вижуал
вот прога на Паскале, надо переделать под вижуал... срочно... ...

Необходимо перевести прогу из Паскаля в С++
var n, i, j, sch: longint; fl: boolean; a, b: string; h, g: array of longint; ...

Как передать в прогу обработки ошибок имя проги, где эта ошибка появилась?
Как передать в прогу обработки ошибок имя проги, где эта ошибка появилась?

Переписать прогу с Паскаля в Си
Помогите переписать прогу с непонятного (для меня) Паскаля в понятный Си uses crt; var s:...

4
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
06.12.2015, 21:09 2
Где ввод p?
0..9 правильно заменил.
0
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
06.12.2015, 21:18  [ТС] 3
Вот список ошибок
0
Миниатюры
Переписал прогу с паскаля на С++.Где ошибка?  
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
06.12.2015, 21:28 4
Лучший ответ Сообщение было отмечено Тима как решение

Решение

Я же говорю, добавь ввод p - в Паскале есть, а в C++ ты пропустил.
Переменная c у тебя не инициализирована уже в Паскале - недоработка, или там они нулём инициализируются? Я не помню. Присвой c ноль предварительно.

Добавлено через 1 минуту
C++
1
c = x / p1;
1
Тима
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 74
06.12.2015, 21:28  [ТС] 5
Ошибку нашёл,всё моя невнимательность
0
06.12.2015, 21:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2015, 21:28

переписать прогу с паскаля
uses crt; var a,b,z:real; c:boolean; r:integer; begin clrscr; write('a='); readln(a);...

перевести прогу с паскаля
Помогите пожалуйста перевести на ассемблер. const n = 10; hex: array of char =...

Надо перевести прогу на Си с Паскаля
program qq; uses crt; var s:string; i:integer; begin clrscr; writeln('введите текст');...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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