Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
assasin21rus
2 / 2 / 1
Регистрация: 02.04.2014
Сообщений: 93
#1

Перевод кода с Pascal - C++

02.07.2014, 08:38. Просмотров 589. Ответов 16
Метки нет (Все метки)

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
uses crt;
const n = 17;
var
    arr: array[1..n] of integer;
    sum: integer;
    i: byte;
    k,d,e: integer;
 
begin
 
    sum := 0;
    for i := 1 to n do
    begin
        arr[i]:=random(90)+10;
        write (arr[i],' ');
     end;
    for i := 1 to n do
    begin
        d:=arr[i] div 10;
        e:=arr[i] mod 10;
        sum:=sum+d+e;
     end;
    writeln;
    writeln ('sum = ', sum);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2014, 08:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод кода с Pascal (C++):

Перевод кода из pascal в c++ - C++
Помогите пожалуйста перевести на c++ Program bukv; Uses crt; Const g: array of char=('а','е','и','о','у','ы','э','ю','я'); Var i,j:...

Перевод кода с Pascal - C++
var k,n,m:integer; x,s,p,t:real; begin repeat write('x<>0 x=');{х в знаменателе, исключаем заведомое деление на 0} readln(x);...

Перевод кода из Pascal в С++ - C++
Люди добрые прошу помочь в переписи кода из Pascal в С++, помогите пожалуйста !:cry: function st2(k:integer): integer; var j, rez:...

Перевод кода с Pascal - C++
var k,i,n,c:integer; p,w:real; begin write('k>-3 k='); readln(k); w:=0; c:=1; for i:=-3 to k do begin ...

Перевод кода с Pascal - C++
Const n=5;m=10; var b:arrayof integer; i,j,k,buf,l:integer; begin for i:=1 to n do begin writeln; ...

перевод кода из Pascal в C++ - C++
помогите, пожалуйста, перевести этот код в C++ :impossible: program chisla; uses Crt; const n = 5; var y: real; flag:...

16
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
02.07.2014, 11:22 #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
24
25
26
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    const int n=17;
    int arr[n];
    int i,k,d,e,sum;
    
    sum=0;
    for(i=0;i<n;i++)
    {
        arr[i]=rand()%90+10;
        cout<<arr[i]<<" ";
    }
    for(i=0;i<n;i++)
    {
        d=arr[i]/10;
        e=arr[i]%10;
        sum=sum+d+e;
    }
    cout<<endl;
    cout<<"sum= "<<sum<<endl;
 
    return 0;
}
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
02.07.2014, 11:29 #3
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
#include <math>
#include <iostream>
#include <stdlib>
 
int main()
{
const n = 17;
 
int arr[n];
int sum;
char i;
int k,d,e;
 
 
    sum = 0;
    for( i=0; i<n; i++ )
      {
      arr[i] = rand()%90 + 10;
      std::cout << arr[i] << ' ';
      }
    for( i=0; i<n; i++ )
      {
      d = arr[i] / 10;
      e = arr[i] % 10;
      sum += d + e;
      }
    std::cout << std::endl;
    std::cout << "sum = " << sum;
 
 
std::cin.ignore(2);
return 0;
}
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.07.2014, 12:17 #4
assasin21rus, у Вас что ни тема, то перевод с Паскаля ... пора бы уже основные концепции перевода освоить.

BatonPro, имхо не следует переводить код "один к одному", а по возможности учесть особенности C++. В частности:
1. Инициализировать переменные сразу при определении (например sum в 8 и 10 строках).
2. Переменную цикла всё же лучше задать локальной в самом цикле, т.е.
C++
1
for( int i=0; ...
3. То же самое относится к переменным d,e. Которые тоже следовало разместить только в том блоке, где они используются.
4. Переменная k вообще не используется. Нужно убрать.
5. А икремент суммы можно заимствовать из варианта SatanaXIII
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
02.07.2014, 14:37 #5
Цитата Сообщение от Tulosba Посмотреть сообщение
А икремент суммы можно заимствовать из варианта SatanaXIII
Это наоборот мой косяк. Машинально переписал. Ведь так же, согласитесь, нагляднее будет для человека несведущего в плюсах понять какие функции отвечают за какие.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.07.2014, 14:43 #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Ведь так же, согласитесь, нагляднее будет для человека несведущего в плюсах понять какие функции отвечают за какие.
Это если этот человек заинтересован в обучении, а ему, скорее всего, нужно просто лабу сдать. И он не шарит ни в паскале, ни в плюсах.
0
Новичок
Модератор
1261 / 809 / 182
Регистрация: 17.07.2012
Сообщений: 4,289
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 14:45 #7
Объясните новичку, почему в коде никто не писал
C++
1
srand(time(NULL));
?
0
JavaUser
70 / 70 / 15
Регистрация: 06.10.2013
Сообщений: 309
02.07.2014, 15:00 #8
Цитата Сообщение от Новичок Посмотреть сообщение
C++
1
srand(time(NULL));
Для генерации псевдослучайных чисел используется функция rand(). Она генерирует числа на основе базы. Если базу не менять, последовательность псевдослучайных чисел будет одна и та же. Для установки базы генератора псевдослучайных чисел служит функция srand(). Ее аргумент - и есть значение базы. Сочетание srand(time(NULL)) устанавливает в качестве базы текущее время. Этот прием часто используется для того, чтобы при разных запусках генератора псевдослучайных чисел была всякий раз разная база и, соответственно, разный ряд получаемых значений
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
02.07.2014, 15:03 #9
Tulosba, ну мож кому-нибудь пригодится на будущее. А если ему не надо, то данный код и так вполне работоспособный вариант. Взятки гладки.

Новичок, ровно потому же, о чем мы с Tulosba разговариваем.
0
Новичок
Модератор
1261 / 809 / 182
Регистрация: 17.07.2012
Сообщений: 4,289
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 15:04 #10
JavaUser, я это знаю. Но меня удивляет, что никто этого в коде не написал. Вот я и спрашиваю, так можно(т.е не писать srand(time(NULL)) )?

Добавлено через 30 секунд
SatanaXIII, т.е вы машинально переписывали и забыли?
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,186
02.07.2014, 15:05 #11
JavaUser,
Новичок спрашивал не что такое srand(), а почему никто его не применил
Цитата Сообщение от Новичок Посмотреть сообщение
почему в коде никто не писал
отвечаю, а потому что на программах такого уровня, нафиг не нужно
сдал-отвалил
0
Новичок
Модератор
1261 / 809 / 182
Регистрация: 17.07.2012
Сообщений: 4,289
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 15:07 #12
ValeryS, все ясно! Просто новички могут смотреть посты для примера и не правильно поймут.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
02.07.2014, 15:19 #13
Цитата Сообщение от Новичок Посмотреть сообщение
Просто новички могут смотреть посты для примера и не правильно поймут
А "новички" это не только пользователи с ником Новичок, но и кто-то ещё?
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,549
Завершенные тесты: 1
02.07.2014, 15:19 #14
Цитата Сообщение от ValeryS Посмотреть сообщение
отвечаю, а потому что на программах такого уровня, нафиг не нужно
Да ну нет. Просто в исходном коде я не увидел функции randomize, чтобы подменить ее соответствующей сишной.
Новичок, это же просто, можно сказать, машинный перевод, а не какой-нибудь реинженеринг.
0
Новичок
Модератор
1261 / 809 / 182
Регистрация: 17.07.2012
Сообщений: 4,289
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 15:22 #15
Tulosba, это я и другие новички.
0
02.07.2014, 15:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 15:22
Привет! Вот еще темы с ответами:

Перевод кода с Pascal - C++
uses crt,graphABC; function y(x:real):real; begin if x&lt;0 then y:=1+sqrt(abs(cos(x*x+1))) else if x&lt;=1 then y:=-2*x-sqr(sin(x)) ...

Перевод кода из Pascal/VB в C++ - C++
Помогите пожалуйста перевести код в С++. Сдавать уже скоро, и я никак не приложу ума как это все сотворить в С++ uses crt; ...

Перевод кода из Pascal в Си++ - C++
Type ST = Record Num: Integer; Name: String; Fak: String; Group: String; Angl: Integer; Physic: Integer; var Table: Array ...

Перевод кода с Pascal - C++
const p=1; const x=2.1; var t,a,b,y:real; begin write('t='); readln(t); b:=sin(p*p)+Power(x,3); a:=Power(exp(1),...


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

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

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