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

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

Восстановить пароль Регистрация
 
assasin21rus
2 / 2 / 1
Регистрация: 02.04.2014
Сообщений: 86
02.07.2014, 08:38     Перевод кода с Pascal #1
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.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2014, 08:38     Перевод кода с Pascal
Посмотрите здесь:

C++ Перевод кода из Pascal/VB в C++
C++ Перевод кода из Pascal в C++
C++ Перевод кода из Pascal в С++
C++ Перевод кода с Pascal на С++
C++ Перевод кода с Pascal
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
02.07.2014, 11:22     Перевод кода с Pascal #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;
}
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.07.2014, 11:29     Перевод кода с Pascal #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;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.07.2014, 12:17     Перевод кода с Pascal #4
assasin21rus, у Вас что ни тема, то перевод с Паскаля ... пора бы уже основные концепции перевода освоить.

BatonPro, имхо не следует переводить код "один к одному", а по возможности учесть особенности C++. В частности:
1. Инициализировать переменные сразу при определении (например sum в 8 и 10 строках).
2. Переменную цикла всё же лучше задать локальной в самом цикле, т.е.
C++
1
for( int i=0; ...
3. То же самое относится к переменным d,e. Которые тоже следовало разместить только в том блоке, где они используются.
4. Переменная k вообще не используется. Нужно убрать.
5. А икремент суммы можно заимствовать из варианта SatanaXIII
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.07.2014, 14:37     Перевод кода с Pascal #5
Цитата Сообщение от Tulosba Посмотреть сообщение
А икремент суммы можно заимствовать из варианта SatanaXIII
Это наоборот мой косяк. Машинально переписал. Ведь так же, согласитесь, нагляднее будет для человека несведущего в плюсах понять какие функции отвечают за какие.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.07.2014, 14:43     Перевод кода с Pascal #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Ведь так же, согласитесь, нагляднее будет для человека несведущего в плюсах понять какие функции отвечают за какие.
Это если этот человек заинтересован в обучении, а ему, скорее всего, нужно просто лабу сдать. И он не шарит ни в паскале, ни в плюсах.
Новичок
Модератор
 Аватар для Новичок
1141 / 712 / 148
Регистрация: 17.07.2012
Сообщений: 4,044
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 14:45     Перевод кода с Pascal #7
Объясните новичку, почему в коде никто не писал
C++
1
srand(time(NULL));
?
JavaUser
68 / 68 / 15
Регистрация: 06.10.2013
Сообщений: 302
02.07.2014, 15:00     Перевод кода с Pascal #8
Цитата Сообщение от Новичок Посмотреть сообщение
C++
1
srand(time(NULL));
Для генерации псевдослучайных чисел используется функция rand(). Она генерирует числа на основе базы. Если базу не менять, последовательность псевдослучайных чисел будет одна и та же. Для установки базы генератора псевдослучайных чисел служит функция srand(). Ее аргумент - и есть значение базы. Сочетание srand(time(NULL)) устанавливает в качестве базы текущее время. Этот прием часто используется для того, чтобы при разных запусках генератора псевдослучайных чисел была всякий раз разная база и, соответственно, разный ряд получаемых значений
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.07.2014, 15:03     Перевод кода с Pascal #9
Tulosba, ну мож кому-нибудь пригодится на будущее. А если ему не надо, то данный код и так вполне работоспособный вариант. Взятки гладки.

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

Добавлено через 30 секунд
SatanaXIII, т.е вы машинально переписывали и забыли?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
02.07.2014, 15:05     Перевод кода с Pascal #11
JavaUser,
Новичок спрашивал не что такое srand(), а почему никто его не применил
Цитата Сообщение от Новичок Посмотреть сообщение
почему в коде никто не писал
отвечаю, а потому что на программах такого уровня, нафиг не нужно
сдал-отвалил
Новичок
Модератор
 Аватар для Новичок
1141 / 712 / 148
Регистрация: 17.07.2012
Сообщений: 4,044
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 15:07     Перевод кода с Pascal #12
ValeryS, все ясно! Просто новички могут смотреть посты для примера и не правильно поймут.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
02.07.2014, 15:19     Перевод кода с Pascal #13
Цитата Сообщение от Новичок Посмотреть сообщение
Просто новички могут смотреть посты для примера и не правильно поймут
А "новички" это не только пользователи с ником Новичок, но и кто-то ещё?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.07.2014, 15:19     Перевод кода с Pascal #14
Цитата Сообщение от ValeryS Посмотреть сообщение
отвечаю, а потому что на программах такого уровня, нафиг не нужно
Да ну нет. Просто в исходном коде я не увидел функции randomize, чтобы подменить ее соответствующей сишной.
Новичок, это же просто, можно сказать, машинный перевод, а не какой-нибудь реинженеринг.
Новичок
Модератор
 Аватар для Новичок
1141 / 712 / 148
Регистрация: 17.07.2012
Сообщений: 4,044
Записей в блоге: 1
Завершенные тесты: 2
02.07.2014, 15:22     Перевод кода с Pascal #15
Tulosba, это я и другие новички.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
02.07.2014, 15:23     Перевод кода с Pascal #16
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Просто в исходном коде я не увидел функции randomize,
вот я и говорю
Цитата Сообщение от ValeryS Посмотреть сообщение
на программах такого уровня, нафиг не нужно
даже в исходнике не настраивали генератор
кстати, иногда srand() и вреден
при отладке лучше его выключать, а то трудно анализировать код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 15:32     Перевод кода с Pascal
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.07.2014, 15:32     Перевод кода с Pascal #17
Цитата Сообщение от ValeryS Посмотреть сообщение
при отладке лучше его выключать, а то трудно анализировать код
Это факт. Хотя можно просто засевать его какой-нибудь константой.
На этот счет, вертаясь к теме тс, в паскале нагляднее было: кто догадается, что s в srand означает seed? А вот в паскакале была даже специально обученная переменная - RandSeed.
Yandex
Объявления
02.07.2014, 15:32     Перевод кода с Pascal
Ответ Создать тему
Опции темы

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