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

Перевести из паскаля в c++

03.06.2015, 20:10. Просмотров 247. Ответов 2
Метки нет (Все метки)

собственно вот паскалевский код, тут через файлы. На с++ надо через ввод/вывод.
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
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
var N:integer;
    E:integer;
    En1,En2:integer;
    EnX:real;
    matrix:array[0..10000,0..10000] of real;
    f1,f2:text;
    i,j:integer;
    temp:integer;
    L:array[1..100] of real;
    res:boolean;
begin
res:=true;
Assign(f1,'a.in');
Reset(f1);
//
Readln(f1,N,E);
//
for i:=1 to N do
    for j:=1 to N do
             matrix[i,j]:=-1;
//
for i:=1 to E do
    begin
        Readln(f1,En1,En2,EnX);
        if En1>En2 then
            begin
                temp:=En1;
                En1:=En2;
                En2:=temp;
            end;
        matrix[En1,En2]:=EnX;
        if (En1=En2) and (matrix[En1,En2]<>0) then res:=False;
    end;
//
Close(f1);
//
for i:=0 to N do
    for j:=0 to N do
        begin
            if (matrix[i,j]=-1) and (matrix[i,j-1]<>-1) and (matrix[i-1,j]<>-1) and (matrix[i,j-1]<>0) and (matrix[i-1,j]<>0)  then
                matrix[i,j]:=abs(matrix[i+1,j+1]-matrix[i+1,j]);
            if (matrix[i,j]<>-1) and (matrix[i,j+1]<>-1) and (matrix[i+1,j]<>-1)and (matrix[i+1,j]<>0) and (matrix[i,j+1]<>0) then
                matrix[i,j]:=matrix[i,j+1]+matrix[i+1,j];
            if (matrix[i,j]=-1) and (matrix[i,j+1]<>-1) and(matrix[i,j+1]<>0) and (matrix[i-1,j+1]<>-1)and (matrix[i-1,j+1]<>0) then
                matrix[i,j]:=abs(matrix[i,j+1]-matrix[i-1,j+1]);
            if (matrix[i,j]<>-1) and (matrix[i,j]<>0) and (matrix[i-1,j]<>-1)and(matrix[i-1,j]<>0) and (matrix[i-1,j+1]<>-1)and(matrix[i-1,j+1]<>0) and(matrix[i,j+1]<>-1) and (matrix[i,j+1]<>0) then
                matrix[i,j]:=Abs(matrix[i-1,j]-matrix[i,j+1])+matrix[i-1,j+1];
            if (matrix[i,j]=-1) and(matrix[i-1,j]<>0) and(matrix[i-1,j]<>-1) and(matrix[i-1,j-1]<>-1) and(matrix[i-1,j-1]<>0) then
                matrix[i,j]:=Abs(matrix[i-1,j-1]-matrix[i-1,j]);
            if (matrix[i,j]=-1) and(matrix[i-1,j-1]<>-1) and(matrix[i-1,j]<>-1) and(matrix[i-1,j-1]<>0) and(matrix[i-1,j]<>0) then
                matrix[i,j]:=abs(matrix[i-1,j-1]-matrix[i-1,j]);
        end;
//
//for i:=1 to N do
//  for j:=1 to N do
      //  if (matrix[i,j]<matrix[i,j+1]) and (matrix[i,j+1]<>-1) and (matrix[i,j+1]<>0) then
      //      res:=false;
for i:=1 to N-1 do
        begin 
            L[i]:=matrix[i,i+1];
            if L[i]<0 then res:=false;
        end;
 
//------------------------------------Отладка,выводим матрицу...................................
for i:=1 to N do
    begin
    writeln;
    for j:=1 to N do
        Write(matrix[i,j]:0:3,' ');
    end;
//............................................................................
Assign(f2,'a.out');
Rewrite(f2);
//
if res=true then
    begin 
        writeln(f2,'1');
        for i:=1 to N-1 do
            write(f2,L[i]:0:3,' ');
    end
    else writeln(f2,'2'); 
//
Close(f2);
end.
а вот c++ код который я сделал
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
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main(){
  int N,E,En1,En2,i,j,temp;
  float EnX;
  bool res;
  float matrix[100][100];
  float L[100];
  
  cin>>N>>E;
  
  res=true;
  
  for (i=1;i<=N;i++)
    for (j=1;j<=N;j++)
             matrix[i][j]=-1;
  
  
for(i = 1; i <=E; i++)
    {
        cin>>En1>>En2>>EnX;
        if (En1>En2)
        {
                temp=En1;
                En1=En2;
                En2=temp;
        }
        matrix[En1][En2]=EnX;
        if ((En1==En2) && (matrix[En1][En2] != 0)){
                 res=false;
        }
   }
 
 
 for (i=0;i<=N;i++)
    for (j=0;j<=N;j++)
        {
            if ((matrix[i][j]==-1) && (matrix[i][j-1]!=-1) && (matrix[i-1][j]!=-1) && (matrix[i][j-1]!=0) && (matrix[i-1][j]!=0))  
                matrix[i][j]=abs(matrix[i+1][j+1]-matrix[i+1][j]);
            if ((matrix[i][j]!=-1) && (matrix[i][j+1]!=-1) && (matrix[i+1][j]!=-1) && (matrix[i+1][j]!=0) && (matrix[i][j+1]!=0)) 
                matrix[i][j]=matrix[i][j+1]+matrix[i+1][j];
            if ((matrix[i][j]==-1) && (matrix[i][j+1]!=-1) &&(matrix[i][j+1]!=0) && (matrix[i-1][j+1]!=-1) && (matrix[i-1][j+1]!=0)) 
                matrix[i][j]=abs(matrix[i][j+1]-matrix[i-1][j+1]);
            if ((matrix[i][j]!=-1) && (matrix[i][j]!=0) and (matrix[i-1][j]!=-1) && (matrix[i-1][j]!=0) && (matrix[i-1][j+1]!=-1) && (matrix[i-1][j+1]!=0) && (matrix[i][j+1]!=-1) && (matrix[i][j+1]!=0))
                matrix[i][j]=abs(matrix[i-1][j]-matrix[i][j+1])+matrix[i-1][j+1];
            if ((matrix[i][j]==-1) && (matrix[i-1][j]!=0) and(matrix[i-1][j]!=-1) && (matrix[i-1][j-1]!=-1) && (matrix[i-1][j-1]!=0)) 
                matrix[i][j]=abs(matrix[i-1][j-1]-matrix[i-1][j]);
            if ((matrix[i][j]==-1) && (matrix[i-1][j-1]!=-1) && (matrix[i-1][j]!=-1) && (matrix[i-1][j-1]!=0) && (matrix[i-1][j]!=0)) 
                matrix[i][j]=abs(matrix[i-1][j-1]-matrix[i-1][j]);
    }
        
for (i=1;i<N-1;i++)
   { 
            L[i]=matrix[i][i+1];
            if (L[i]<0){
              res=false; 
            }
   }
 
 
//------------------------------------ÄåáГ*ГЈ Г¬Г*òðèöû...................................
for (i=1;i<=N;i++){
    cout<<endl;
    for (j=1;j<=N;j++){
        cout<<matrix[i][j]<<" ";
    }
}
//............................................................................
 
 cout<<endl;
   
if (res==true)
    { 
        cout<<"1"<<endl;
        for (i=1;i<N;i++){    
            cout.precision(3);    
            cout<<L[i]<<" ";
        }
    }
    else cout<<"2"; 
   
    
    getch();
    return 0;
            
}
но он что-то не работает как мне надо на с++. На паскале чики-пуки.

Для теста значения:
Вводим
3 2
1 2 1.250
3 1 3
Получаем
1
1.250 1.750
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2015, 20:10
Ответы с готовыми решениями:

Перевести из паскаля в C++
Перегнать из паскаля в C++. Заранее благодарю. условие: Вводится...

Перевести с паскаля на С++
Program p1; Var x,i,n:integer; Begin Write ('n= '); Read (n); x:=10;...

Перевести с Паскаля на C++
как заменить этот же код на С++ ?? const nmax = 100; type arr = array of...

Перевести из паскаля в С
Условие: Постройте массив p=2,p,...,p, где p=2, p=3, ..., p - n-е простое число...

Перевести из Паскаля в с++
Народ помогите код переделать в с++ пожалуууууууууйста var i, j, k:...

2
nmcf
6399 / 5661 / 2580
Регистрация: 14.04.2014
Сообщений: 23,961
03.06.2015, 21:18 2
Массивы индексируются с нуля, соответственно и циклы должны быть от нуля до размер-1.
0
Scarlet1
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 6
03.06.2015, 21:42  [ТС] 3
Всё,ненадо сам решил

Добавлено через 49 секунд
косяк был в модуле числа, там у меня же дробные числа а я делал как целочисленное.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 21:42

Перевести с паскаля на С++
Var s,s1:string; i,k:byte; Begin write('Введите строку:...

Перевести с паскаля на C++
помогите перевести с паскаля на C++ , очень надо.:) var n,i,j,k,l:longint;...

C Паскаля перевести в С++
Дана матрица размера M x N. Удалить столбец, содержащий максимальный элемент...


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

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

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