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

Из кода Pascal в код C++ - C++

Восстановить пароль Регистрация
 
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 131
30.01.2014, 22:32     Из кода Pascal в код C++ #1
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Var A:array[1..20,1..20] of byte;
    i,j,n:byte;
Begin
    write('N = ');readln(n);
    For i:=1 to n do
     For j:=i to n do
      A[i,j]:=j-i+1;
    For i:=1 to n do
    Begin
      For j:=1 to n do
       write(A[i,j]:4);
      writeln;
    End;
    readln;
End.
Необходим код на С++
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 22:32     Из кода Pascal в код C++
Посмотрите здесь:

Портация кода Pascal C++
Сделать с кода Pascal код C++ C++
C++ Перевод кода из Pascal в Си++
C++ Перевод кода из Pascal в C++
C++ Перевод кода с Pascal
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
k1-801
 Аватар для k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
30.01.2014, 22:41     Из кода Pascal в код C++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вроде как-то так, разве что не будет нажатия ENTER требовать.
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>
using namespace std;
 
int a[21][21],i,j,n;
 
int main()
{
 cout<<"N = ";
 cin>>n;
 for(i=1;i<=n;i++)
 {
  for(j=i;j<=n;j++)
  {
   a[i][j]=j-i+1;
  }
 }
 for(i=1;i<=n;i++)
 {
  for(j=1;j<=n;j++)
  {
   cout<<a[i][j]/4;
  }
  cout<<endl;
 }
 return 0;
}
Мог опечататься.
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 131
30.01.2014, 22:48  [ТС]     Из кода Pascal в код C++ #3
Мог опечататься.
Этот код должен выводить массив вида:

1 2 3 … n-2 n-1 n
0 1 2 … n-3 n-2 n-1
0 0 1 … n-4 n-3 n-2
……………………………..
0 0 0 … 0 0 1

В паскале этот код выводит, а в с++ нет, и в твоем переводе он тоже не выводик как нужно, можешь помочь?

Добавлено через 3 минуты
Цитата Сообщение от k1-801 Посмотреть сообщение
C++
1
2
3
  {
   cout<<a[i][j]/4;
  }
Должно вот так быть:
C++
1
2
3
  {
   cout<<a[i][j];
  }
Ты /4 ненужный написал.

Всеровно, спасибо большое, помог!
k1-801
 Аватар для k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
30.01.2014, 22:51     Из кода Pascal в код C++ #4
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Этот код должен выводить массив вида:

1 2 3 … n-2 n-1 n
0 1 2 … n-3 n-2 n-1
0 0 1 … n-4 n-3 n-2
……………………………..
0 0 0 … 0 0 1

В паскале этот код выводит, а в с++ нет, и в твоем переводе он тоже не выводик как нужно, можешь помочь?

Добавлено через 3 минуты


Должно вот так быть:
C++
1
2
3
  {
   cout<<a[i][j];
  }
Ты /4 ненужный написал.

Всеровно, спасибо большое, помог!
В коде на паскале идёт A[i,j]:4, я понял что ":" обозначает деление. Видимо, ошибся. Ладно. Пожалуйста.
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 131
30.01.2014, 22:55  [ТС]     Из кода Pascal в код C++ #5
Цитата Сообщение от k1-801 Посмотреть сообщение
В коде на паскале идёт A[i,j]:4, я понял что ":" обозначает деление. Видимо, ошибся. Ладно. Пожалуйста.
В паскале :4 означает кол-во символов при выводе)
some_name
Вежливость-главное оружие
 Аватар для some_name
219 / 219 / 55
Регистрация: 19.02.2013
Сообщений: 1,419
30.01.2014, 23:00     Из кода Pascal в код C++ #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main()
{
    int A[20][20], i, j, n;
 
    std::cout<<"Write N = "; std::cin>>n;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++) std::cout<<(A[i][j] = j - i + 1)<<"  ";     
        std::cout<<std::endl;
    }
 
    return 0;
}
k1-801
 Аватар для k1-801
4 / 4 / 2
Регистрация: 07.01.2013
Сообщений: 135
30.01.2014, 23:05     Из кода Pascal в код C++ #7
Цитата Сообщение от Revolver19931 Посмотреть сообщение
В паскале :4 означает кол-во символов при выводе)
Ух ты, интересно... А, да, надо тогда что-то вроде cout.precision(4); дописать куда-нибудь сразу после ввода.
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 131
30.01.2014, 23:11  [ТС]     Из кода Pascal в код C++ #8
Цитата Сообщение от k1-801 Посмотреть сообщение
Ух ты, интересно... А, да, надо тогда что-то вроде cout.precision(4); дописать куда-нибудь сразу после ввода.
Спасибо огромное.

Может сможешь помочь еще с этими темами?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 00:28     Из кода Pascal в код C++
Еще ссылки по теме:

C++ Перевод кода с Pascal
C++ Перевод кода с Pascal
Трансляция кода Pascal в C++ C++

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

Или воспользуйтесь поиском по форуму:
some_name
Вежливость-главное оружие
 Аватар для some_name
219 / 219 / 55
Регистрация: 19.02.2013
Сообщений: 1,419
31.01.2014, 00:28     Из кода Pascal в код C++ #9
Цитата Сообщение от Revolver19931 Посмотреть сообщение
Может сможешь помочь еще с этими темами?
Написать функцию, для поиска максимального элемента в указанной строке двумерного массива. Сдвинуть в двумерном массиве все строке циклически вправо н
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
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include<iostream>
#include<iomanip>
 
using namespace std;
//создает матрицу размер size
int** matrix_constructor(int size)
{
    int** matrix_new = new int* [size]; 
    for (int i = 0; i < size; ++i) matrix_new[i] = new int[size];
    return matrix_new;
}
//удаляем матрицу
void matrix_destructor(int** matrix, int size)
{   
    for (int i = 0; i < size; ++i) delete[] matrix[i];
    delete[] matrix;  
}
//заполняет матрицу : если random_fill == true - случайно, иначе вводит ручками
void matrix_fill(int** matrix, int size, bool random_fill = true)
{
    if(random_fill) 
    {
        srand((unsigned)time(NULL));
        for (int i = 0; i < size; ++i)
            for (int j = 0; j < size; ++j)
            {
                int temp = matrix[i][j] = rand() % 80 + 10; 
                if(temp > 70) matrix[i][j] = 0;
                else matrix[i][j] = temp;
            }
    }
    else
    {
        for(int i = 0; i < size; ++i)
        {
            for(int j = 0; j < size; ++j)
            {
                cout<<"Enter {"<<i<<":"<<j<<"}"<<"element"; cin>>matrix[i][j];
            }
            cout<<endl;
        }
    }
}
//печатаем матрицу
void matrix_print(int** matrix, int size)
{
    for (int i = 0; i < size; ++i)
    {
        for (int j = 0; j < size; ++j) cout<<matrix[i][j]<<" ";     
        cout<<endl;
    }
    cout<<endl;
}
 
void matrix_copy(int** orignal, int** copy, int size)
{
    for (int i = 0; i < size; ++i)  
        for (int j = 0; j < size; ++j)
            copy[i][j] = orignal[i][j];
}
//первый пункт задания
void matrix_task1(int** matrix, int size)
{   
    cout<<"Task 1"<<endl;
 
    int** copy = matrix_constructor(size);//делаем копию
    matrix_copy(matrix, copy, size);//матрицы
 
    int number_row;
    cout<<"Enter number of row : "; cin>>number_row;
 
    int max = copy[number_row - 1][0];
    for (int i = 1; i < size; ++i)
        if(copy[number_row - 1][i] > max) 
            max = copy[number_row - 1][i];
 
    cout<<"Maximal number of "<<number_row<<" row "<<max<<endl;
    max = max % size;   
    cout<<"Offset on "<<max<<endl;
 
    for (int i = 0; i < size; ++i)
    {
        for (int j = 0; j < size - max; j++)
            copy[i][j + max] = copy[i][j];
        for (int j = 0; j < max; j++)
            copy[i][j] = 0;
    }
    matrix_print(copy, size);
    matrix_destructor(copy, size);
}
 
//второй пункт задания
void matrix_task2(int** matrix, int size)
{
    cout<<"Task 2"<<endl;
 
    int average = 0;
 
    for (int i = 0; i < size; ++i)
        average += matrix[i][0];
    average /= size;
 
    cout<<"Average "<<average<<endl;
 
    for (int i = 0; i < size; ++i)
    {
        int counter = 0;
        for (int j = 0; j < size; ++j)
            if(matrix[i][j] > average) ++counter;
        cout<<"Number of elements > average("<<average<<") : "<<counter<<endl;
    }
}
 
int main()
{
    int size;
    int** matrix;
 
    cout<<"Matrix size : "; cin>>size;
 
    matrix = matrix_constructor(size);
    matrix_fill(matrix, size);
    matrix_print(matrix, size);
    matrix_task1(matrix, size);   
    matrix_task2(matrix, size);   
    matrix_destructor(matrix, size);
 
    getchar(); getchar();
 
    return 0;
}


Из кода Pascal в код C++
Yandex
Объявления
31.01.2014, 00:28     Из кода Pascal в код C++
Ответ Создать тему
Опции темы

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