Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 6

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

03.06.2015, 20:10. Показов 610. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2015, 20:10
Ответы с готовыми решениями:

Перевести из паскаля в С
Условие: Постройте массив p=2,p,...,p, где p=2, p=3, ..., p - n-е простое число uses crt; const maxn = 100; var a: array of...

Перевести с Паскаля на C++
надо перевести с паскаля на c++ var i,adrs:integer; a:arrayof integer; begin //... for i:=1 to 15 do if a=0 then ...

Перевести с Паскаля на Си
uses crt; var a,n:Longint; b:boolean; begin clrscr; write('a=');readln(a); n:=2; while a&gt;0 do begin b:=true;

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.06.2015, 21:18
Массивы индексируются с нуля, соответственно и циклы должны быть от нуля до размер-1.
0
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 6
03.06.2015, 21:42  [ТС]
Всё,ненадо сам решил

Добавлено через 49 секунд
косяк был в модуле числа, там у меня же дробные числа а я делал как целочисленное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2015, 21:42
Помогаю со студенческими работами здесь

перевести из паскаля в с++
var B: String; N, L, Count: Integer; begin Writeln('Введите целое число: '); Readln(N); Str(N, B); ...

Перевести из паскаля на с++
program laba3; var n, i: integer; a, y: real; begin writeln ('Введите n'); ...

Перевести из паскаля в C++
Перегнать из паскаля в C++. Заранее благодарю. условие: Вводится последовательность вещественных чисел, оканчивающаяся нулём, и...

перевести из паскаля в с++
program spektr; uses crt; type vect=arrayof integer; var f,g:vect; j,i,n:integer; BEGIN clrscr; write('n=');...

Перевести с Паскаля на C++
как заменить этот же код на С++ ?? const nmax = 100; type arr = array of real; var a:arr; i,j,n,imax,jmax:integer; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru