Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
1

переделать программу Pascal -> C++ (Восстановить исходную матрицу и напечатать ее по строкам)

17.02.2013, 10:11. Показов 1809. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
с паскаля на с++...буду очень признателен. вот текст задачи. Квадратная матрица, симметричная относительно главной диагонали, задана своим верхним треугольником в виде одномерного массива. Восстановить исходную матрицу и напечатать ее по строкам.
Под директивой iostream

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
uses
   crt;
 
const
   nmax = 20; 
 
var
   b: array [1..(nmax * (nmax + 1) ) div 2] of integer; 
   a: array[1..nmax, 1..nmax] of integer; 
   n, i, j, k: integer; 
 
begin
   clrscr;
   randomize;
   repeat 
      write('Pasмep матрицы до ,nmax, n=');
      readln(n); 
   until n in [1..nmax]; 
   writeln('Элементы верхней орeyгoльНoй матрицы:'); 
   for i := 1 to (n * (n + 1)) div 2 do 
   begin
      b[i] := random(50);
      write(b[i]:4); 
   end; 
   writeln;
   writeln; 
   writeln(' Исходная матрица:');
   k := 0;
   for i := 1 to n do 
      for j := i to n do 
      begin
         k := k + 1;
         a[i, j] := b[k]; 
         a[j, i] := b[k]; 
      end; 
   for i := 1 to n do 
   begin
      for j := 1 to n do
         write(a[i, j]:4);
      writeln;
   end; 
   readln;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2013, 10:11
Ответы с готовыми решениями:

Восстановить исходную матрицу и напечатать по строкам
Задание: Квадратная матрица, симметричная относительно главной диагонали, задана верхним...

Восстановить исходную матрицу и напечатать по строкам
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в...

Восстановить исходную матрицу и напечатать по строкам
Квадратная матрица, симметричная относительно главной диагонали, заданна верхним треугольником в...

Восстановить исходную матрицу и напечатать ее в общепринятом виде
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в...

2
41 / 41 / 36
Регистрация: 23.11.2006
Сообщений: 153
17.02.2013, 17:49 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
#include <iostream.h>
#include <conio.h>
#include <stdlib.h> 
#include <math.h> 
 
int main()
{
 int i, n, j, s, k; 
 int nmax; 
 s=20;  
 nmax = ((s*(s+1))/2); 
 int mas[nmax]; 
 int mas2[nmax][nmax]; 
 // âîçìîæíà Ôóíêöèÿ ïîâòîðà
 cout << "Ðàçìåð ìàòðèöû äî "<<nmax<<"n= "; 
 cin>>n;
 cout <<"\n"; 
 //
 cout <<"Ýëåìåíòû âåðõíåé òðåóãîëüíîé ìàòðèöû "; 
 j= ((n*(n+1))/2); 
 for (i=1; i<=j; i++) 
  { 
     mas[i] = (rand() % 50+1);  
     cout<<mas[i]<<" ";       
           }
  cout<<"\n";
  cout<<"\n"; 
  cout<<"Èñõîäíàÿ ìàòðèöà "; 
  k=0;
  for (i=0;i<=n;i++) 
   { 
    for(j=i;j<=n;j++) 
     { 
      k=k+1; 
      mas2[i][j]=mas[k];
      mas2[j][i]=mas[k]; 
      }
    }
   for(i=0;i<=n;i++)
    { 
     for(j=i;j<=n;j++)
      { 
       cout<<mas2[i][j]<<" ";
       }
      cout<<"\n"; 
     } 
     getch();
return 0;
}
0
2 / 2 / 1
Регистрация: 22.11.2012
Сообщений: 99
18.02.2013, 15:17  [ТС] 3
Спасибо, сейчас попробую

Добавлено через 4 минуты
HackSign, ммм...работает на малых значениях, больше 13 выдает ошибку....и в исходной матрице пишет мусор.

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 <iostream.h>
#include <conio.h>
#include <stdlib.h> 
#include <math.h> 
#include <clocale>
 
int main()
{
 setlocale(LC_ALL, "rus");
 int i, n, j, s, k; 
 int nmax; 
 s=20;  
 nmax = ((s*(s+1))/2); 
 int mas[nmax]; 
 int mas2[nmax][nmax]; 
 // возможна Функция повтора
 cout << "Размер матрицы до "<<nmax<<"  n= "; 
 cin>>n;
 cout <<"\n"; 
 //
 cout <<"Элементы верхней треугольной матрицы "; 
 j= ((n*(n+1))/2); 
 for (i=1; i<=j; i++) 
  { 
     mas[i] = (rand() % 50+1);  
     cout<<mas[i]<<" ";       
           }
  cout<<"\n";
  cout<<"\n"; 
  cout<<"Исходная матрица "; 
  k=0;
  for (i=0;i<=n;i++) 
   { 
    for(j=i;j<=n;j++) 
     { 
      k=k+1; 
      mas2[i][j]=mas[k];
      mas2[j][i]=mas[k]; 
      }
    }
   for(i=0;i<=n;i++)
    { 
     for(j=i;j<=n;j++)
      { 
       cout<<mas2[i][j]<<" ";
       }
      cout<<"\n"; 
     } 
     getch();
return 0;
}
0
18.02.2013, 15:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2013, 15:17
Помогаю со студенческими работами здесь

Массив: Условия ввода: по столбцам, Условия вывода: по строкам в виде таблицы. Написать исходную матрицу и вывод массива по строкам.
Есть массив B размерностью 5x5, тип данных real, Условия ввода: по столбцам, Условия вывода: по...

Восстановить исходную матрицу
Написать программу, которая восстанавливает исходную матрицу и выводит ее на экран в общепринятом...

Pascal Преобразовать исходную матрицу и вывести на дисплей
дана матрица D (8*8 ), элементами которой являются целые числа. преобразовать исходную матрицу D...

Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива.Восстановить исходную матрицу
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru