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

Перевести с паскаля - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана матрица, состоящая из М строк и N столбцов http://www.cyberforum.ru/cpp-beginners/thread1039121.html
Дана матрица А, состоящая из М строк и N столбцов. Элементами матрицы являются натуральные числа. Вывести на экран количество элементов матрицы А, которые представлены возрастающей...
C++ потоки, мьютекс и семафор Вот задание: Выполнить индивидуальное задание параллельным алгоритмом (обязательно использовать для разграничения общих ресурсов мьютексы или семафоры, события, критически секции, таймеры);... http://www.cyberforum.ru/cpp-beginners/thread1039117.html
Ошибка в работе программы C++
При выполнении программы: int main() { setlocale (LC_ALL,".1251"); FILE *fin = fopen("input.txt", "r"); FILE *fout = fopen("output.txt", "w"); const int max=150; char * str=new...
C++ сортировка одномерного массива
Удалить из массива первую двойку смежных чисел, произведение которых равно К-му числу, К задается. Например: массив: 4 2 5 2 4 8 4, число к=5( получаем элемент x ) вывод: 5 2 4 8 4. Что у меня...
C++ Статический массив - динамическое выделение памяти!? http://www.cyberforum.ru/cpp-beginners/thread1039096.html
int n; cin >> n; int wtf; почему данная конструкция правильно работает? Это же статический массив?! или при таком использовании он является динамическим??:)
C++ Некорректно работает функция рандомайз при заполнении массива Задача - внести случайные числа в динамический массив. Проблема - почему-то при первом запуске программы в первый элемент массива вносится огромное число (хотя диапазон чисел в random (100)), при... подробнее

Показать сообщение отдельно
Slowpok
4 / 4 / 0
Регистрация: 03.01.2012
Сообщений: 112

Перевести с паскаля - C++

12.12.2013, 20:10. Просмотров 139. Ответов 0
Метки (Все метки)

Добрый день, помогите пожалуйста перевести с паскаля на С++.


Условие: Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы (оформит ьв виде процедуры)
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
uses crt;
const nmax=20;
type mtr=array[1..nmax,1..nmax] of integer;
function summa(a:mtr;n:integer):integer;
var i,j,k,p,s:integer;
begin
k:=0;
for j:=1 to n do
 begin
  p:=0;
  i:=0;
  while(i<=n)and(p=0) do
  if a[i,j]<0 then p:=1
  else i:=i+1;
  if p=0 then
   begin
    k:=1;
    s:=0;
    for i:=1 to n do
    s:=s+a[i,j];
    writeln('Сумма в столбце ',j,'=',s);
   end;
 end;
if k=0 then writeln('Нет столбцов без отрицательных элементов');
summa:=k;
end;
 
procedure min(a:mtr;n:integer;var mn:integer);
var i,j,l,sum:integer;
begin
{минимальная сумма из всех диагоналей }
mn:=abs(a[1,1]);
for i:=n-1 downto -n+1 do
 begin
  {сумма на диагонали, отстоящей на i от побочной }
  sum:=0;
  for j:=1 to n do
  if (j-i>0) and (j-i<=n) then sum:=sum+abs(a[j-i,n-j+1]);
  if sum<mn then mn:=sum;
 end;
writeln('Минимальная сумма модулей на диагоналях, параллельных побочной=',mn);
end;
var a:mtr;
    n,i,j,k,mn:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-3+random(20);
    write(a[i,j]:3);
   end;
  writeln;
 end;
k:=summa(a,n);
min(a,n,mn);
readln
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru