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

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

Войти
Регистрация
Восстановить пароль
 
=IS=
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 12
#1

перевод в C++ из Pascal - C++

23.05.2012, 10:57. Просмотров 1444. Ответов 2
Метки нет (Все метки)

Кому не сложно переведите пожалуйста программу в С++. Она готова и полностью рабочая.
вот на всякий случай сама задача:
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны 0, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0(числу очков, набранных в игре: 2- выигрыш, 1-ничья, 0-проигрыш). а)найти число команд,имеющих больше побед,чем поражений b)определить номера команд,прошедших чемпионат без поражений. c)выяснить,имеется ли хотя вы одна команда,выигравшая более половины игр.

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
program tablica;
uses crt;
const n=3;
var
A:array[1..n,1..n] of integer;
i,j,win,lose,draw,k,t: integer;
{---------------------------------------------------------------------------}
procedure input;
BEGIN
  for i:=1 to n do
  begin
    for j:=1 to n do
     begin
      write ('A[',i,',',j,']=');
      readln(A[i,j]);
     end;
  end;
END;
{---------------------------------------------------------------------------}
procedure varA;
BEGIN
win:=0; lose:=0; draw:=0; k:=0;t:=0;
  begin
  for i:=1 to n do
    begin
    for j:=1 to n do
     begin
      if A[i,j]=2 then win:=win+1;
      if A[i,j]=1 then draw:=draw+1;
      if ((i<>j) and  (A[i,j]=0)) then lose:=lose+1;
     end;
    if win>lose then k:=k+1;{uslovie varianta a}
    if win>(n/2) then t:=t+1;{uslovie varianta c}
    writeln('komanda',i,'=',win,'/',draw,'/',lose);{vivod rezultatov komandi}
    if lose=0 then writeln('u komandi',' ',i,' ','net porazhenii'); {uslovie i vivod varianta b}
    win:=0; lose:=0; draw:=0; writeln(' ');
    end;
  end;
if k>0 then writeln('kol-vo komand win>lose -',k)
       else writeln('net komand win>(lose)');
if t>0 then writeln('kol-vo komand win>(n/2) -',t)
       else writeln('net komand win>(n/2)');
END;
{----------------------------------------------------------------------------}
BEGIN
clrscr;
input;
varA;
readln;
END.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 10:57     перевод в C++ из Pascal
Посмотрите здесь:

C++ Перевод из pascal в С
C++ Перевод из Pascal в C++
Перевод из Pascal в С++ C++
Перевод из Pascal в C++ C++
Перевод с Pascal на С++ C++
C++ Перевод с Pascal на С++
C++ Перевод с Pascal на С++
C++ Перевод из Pascal на C++
Перевод из Pascal в C++ C++
C++ Перевод с pascal на c++
Перевод с Pascal на Си++ C++
C++ Перевод с pascal на С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1088 / 498 / 102
Регистрация: 02.08.2011
Сообщений: 2,479
23.05.2012, 12:56     перевод в C++ из 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
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
#include <stdlib.h>
#include <iostream.h>
   const int N=3;
   int A[N][N]={0,};
   int i,j,win,lose,draw,k,t;
 
   void input()
    {
      for (i=0;i<N;i++)
       for (int j=0;j<N;j++)
       {
    cout<<"A["<<i+1<<","<<j+1<<"]  ";
    cin>>A[i][j];
       }
    }
 
    void vara()
    {
      win=0;lose=0;draw=0;k=0; t=0;
       {
    for (i=0;i<N;i++)
     {
      for (j=0;j<N;j++)
       {
        if (A[i][j]==2) win=win+1;
        else if (A[i][j]==1) draw=draw+1;
        else if ((i!=j)&&(A[i][j]==0)) lose=lose+1;
       }
       if (win>lose) k=k+1;
       if (win>(N/2)) t=t+1;
        cout<<"komanda "<<i+1<<" = "<<win<<"/"<<draw<<"/"<<lose<<"\n";
       if (lose==0) cout<<"u komandi "<<i+1<<" net porazeniy"<<"\n";
        win=0;lose=0;draw=0;cout<<"\n";
     }
       }
       if (k>0) cout<<"kol-vo komand win>lose "<<k<<"\n";
       else cout<<"net komand win>lose";
       if (t>0) cout<<"kol-vo komand win>(n/2)  "<<t<<"\n";
       else cout<<"net komand win>(n/2)";
    }
 
void main()
{
 system("CLS");
  input();
  vara();
  cout<<"\n";
 system("PAUSE");
 return;
 
}
Миниатюры
перевод в C++ из Pascal  
Like_society
0 / 0 / 0
Регистрация: 19.01.2017
Сообщений: 96
25.01.2017, 13:20     перевод в C++ из Pascal #3
Задан массив А[1..5,1..5]. Получить из него новый массив путем деления элементов каждой из строк первого массива на элемент этой строки, что стоит по левой диагонали.
program a1;
uses crt;
var
a: array [1..8] of integer;
i,col: integer;
begin
clrscr;
randomize;
for i:=1 to 8 do
begin
a[i]:=random(21)-10;
write(a[i],' ');
if a[i]<0 then inc(col);
end;
writeln;
writeln('col<0=',col);
readkey;
end. Переведите пожалуйста в C++

Добавлено через 42 минуты
Задан массив А[1..5,1..5]. Получить из него новый массив путем деления элементов каждой из строк первого массива на элемент этой строки, что стоит по левой диагонали
uses crt;
type mas = array[1..100,1..100] of real;
var A,B: mas;
i,j: integer;
begin clrscr;
randomize;
writeln('ГЊГ*Г±Г±ГЁГў В№1: ');
for i:=1 to 5 do begin {ГѓГҐГ*åðèðóåì ïåðâûé Г¬Г*Г±Г±ГЁГў}
for j:=1 to 5 do begin
A[i,j]:=random(100);
write(A[i,j]:6:2);
end;
writeln;
end;
writeln; writeln('ГЊГ*Г±Г±ГЁГў В№2: ');
for i:=1 to 5 do begin {ÑÎçäГ*ГҐГ¬ âòîðîé Г¬Г*Г±Г±ГЁГў}
for j:=1 to 5 do begin
B[i,j]:=A[i,j]/A[i,i];
write(B[i,j]:6:2);
end;
writeln;
end;
readkey end.
Yandex
Объявления
25.01.2017, 13:20     перевод в C++ из Pascal
Ответ Создать тему
Опции темы

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