Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2015, 14:44   #1
Евгений2122
Новичок
Джуниор
 
Регистрация: 17.05.2015
Сообщений: 3
По умолчанию Перевод программы с Pascal на С++

Здравствуйте! Помогите, пожалуйста перевести программу с Pascal на С++. С++ - плохо знаю, ток изучаю.
Задание:
Задана матрица (двумерный массив) A размером N x М , состоящая из
действительных элементов. Числа M и N вводятся с клавиатуры. Для задания
исходной матрицы предусмотреть ввод с клавиатуры или ввод с помощью датчика
случайных чисел. Где это необходимо ввести квадратную матрицу. Во всех
вариантах вывести исходную матрицу в общепринятом виде и необходимые
результаты работы программы.
Сформировать вектор из сумм элементов строк и найти их среднее
геомтрическое. Упорядочить вектор по возрастанию. Вывести на экран
полученный вектор и среднее.

Последний раз редактировалось Евгений2122; 17.05.2015 в 14:49.
Евгений2122 вне форума Ответить с цитированием
Старый 17.05.2015, 14:45   #2
Евгений2122
Новичок
Джуниор
 
Регистрация: 17.05.2015
Сообщений: 3
По умолчанию

На Pascal:
Код:
uses crt;
const nmax=10; mmax=10;
var
a:array [1..nmax,1..mmax] of integer;
s:array [1..nmax] of integer;
i,j,n,m,r:integer;
p:longint;

procedure sort_mas;
var i,j,c:integer;
begin
   for i:=1 to n-1 do
   for j:=i+1 to n do
   if s[i]>s[j] then
   begin
      c:=s[i];
      s[i]:=s[j];
      s[j]:=c;
   end;
 end;
begin
randomize;
repeat
clrscr;
writeln('Skolko strok? Ne bolshe ',nmax);
readln(n);
writeln('Skolko stolbcov? Ne bolshe ',mmax);
readln(m);
until (n<=nmax) and (m<=mmax) and (n>0) and (m>0);
writeln;
writeln('Budet matrica ',n,' na ',m);
writeln('Nazhmite 1 esli vvodim sami ');
writeln('Nazhmite 2 esli Random ');
writeln('Nazhmite 0 chobi vyiti iz programmy ');

case readkey of
'1':
     begin
     writeln;
     for i:=1 to n do
     for j:=1 to m do
     begin
     write('A[',i,',',j,']=');
     readln(a[i,j]);
     end;
     end;
'2':
     begin
     writeln;
     writeln('Random ot 0 do ?');
     readln(r);
     for i:=1 to n do
     for j:=1 to m do
     a[i,j]:=random(r);
     end;
'0':   exit;
end;
     writeln;
     writeln('Poluchilas matrica:');
     for i:=1 to n do
     begin
          for j:=1 to m do
          write(a[i,j]:3);
     writeln;
     end;
     
writeln('Summa strok:');
     for i:=1 to n do
     begin
          for j:=1 to m do
          s[i]:=s[i]+a[i,j];
     writeln('Summa ',i,' stroki - ',s[i]:4);
     end;

 writeln('Sortiruem massiv summ strok po vozrastaniu:');
 sort_mas;
 for i:=1 to n do
write(s[i]:3);
writeln;
p:=1;
for i:=1 to n do
p:=p*s[i];
if p>0 then writeln ('Sredmee geometricheskoe massiva summ =',exp(1/n*ln(p)):0:4) else
writeln('Error');
readkey;
end.

Последний раз редактировалось Stilet; 17.05.2015 в 15:12.
Евгений2122 вне форума Ответить с цитированием
Старый 17.05.2015, 14:47   #3
Евгений2122
Новичок
Джуниор
 
Регистрация: 17.05.2015
Сообщений: 3
По умолчанию

На С++ дошел до суммы строк, а дальше не получается:
Код:
#include "iostream"
#include <ctime>  
#include <vector>
#include<iterator>
 
#include "iomanip"
 
using namespace std;
 
int main()
{   
 setlocale(LC_ALL,"Rus");
 srand(time(0)); // генерация случайных чисел 
 int N,M,vibor,Max=-1000;
 cout<<"Введите кол-во строк в матрице N=";
 cin>>N;
 cout<<"\nВведите кол-во столбцов в матрице M=";
 cin>>M;
 // объявление двумерного динамического массива
 float **ptrarray = new float* [N];      // строки в массиве   
  for (int count = 0; count < N; count++)        
    ptrarray[count] = new float [M];    //  столбцы 
 cout<<"\nВведите 0 если хотите вручную заполнить матрицу\n"
       "или цифру 1 если хотите авто заполнние\n"
       "Выбор:";
 cin>>vibor;
  if(vibor!=0)
   {
    for (int i = 0; i < N; i++)     
     for (int j = 0; j < M; j++)             
         ptrarray[i][j]=rand() % 100;
   }
  else
   {
       cout<<"\nЗаполняйте матрицу.\n";
     for (int i = 0; i < N; i++)     
      for (int j = 0; j < M; j++)
        { cout<<"элемент:["<<i<<"]["<<j<<"]=";
          cin>>ptrarray[i][j];}
   }
  cout<<"\nВаша матрица.\n";
   for (int i = 0; i < N; i++)  {   
      for (int j = 0; j < M; j++)
          cout<<setw(3)<<ptrarray[i][j];
      cout<<endl;}
cout<<endl<<endl;
   int *a=new int[N];                    //Буферный массив
for (int i = 0; i < N; i++) 
{a[i]=-1000;}
for (int k = 0;  k< N+1; k++){
     for (int i = 0; i < N; i++)  
         for (int j = 0; j < k;j++)
           {  
               if(ptrarray[i][j]>a[j])
                 {
                    a[j]=ptrarray[i][j];
                 }
           }
}    
 
vector<int> my_vector;   //создаем вектор
//vector<int>::iterator the_iterator;
cout<<"Вектор из суммы элементов строк:\n";



 system("pause");
 return 0;
}

Последний раз редактировалось Stilet; 17.05.2015 в 15:12.
Евгений2122 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы с Pascal в C+ Бахтияр Оралов Паскаль, Turbo Pascal, PascalABC.NET 1 03.04.2015 14:35
Перевод программы из Pascal в C++ pikemes Помощь студентам 5 29.05.2013 18:10
Перевод программы с Pascal на С++ vova287 Помощь студентам 0 05.02.2012 22:06
Перевод программы Pascal на С++ Каtерина Помощь студентам 2 01.02.2012 22:13
Перевод программы с Pascal в C++ GoodSpirit Помощь студентам 4 19.05.2010 18:04