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

Перевести код нахождения скалярного произведения строки и столбца из паскаля в си++ - C++

Восстановить пароль Регистрация
 
ksuha94
 Аватар для ksuha94
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 9
27.05.2013, 15:56     Перевести код нахождения скалярного произведения строки и столбца из паскаля в си++ #1
1.Матрица А(n?n) просматривается сверху вниз про строкам. Найти скалярное произведение строки и столбца, соответствующих строке с первым найденным отрицательным элементом и последним нулевым.
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
{Краткое описание программы: сначала вводится размер и элементы матрицы. Для поиска нужных нам элементов и номеров соответствующих им строк проходим по матрице построчно сверху вниз и ищем нужные нам элементы, при удачном поиске запоминаем номера строк, на которых они находятся. Если таких элементов нет, то выдается соответствующее сообщение. Иначе выдается посчитанное скалярное произведение}
 
program scalyar;
{описание типов,переменных и пр.}
const N_max=1000; {предельный размер матрицы, наша матрица имеет размер в пределах этого числа}
type mat=array [1..N_max,1..N_max] of real;
var N,i,j,i_str,j_str:integer; {N-размерность матрицы, i и j - вспомогательные переменные, i_str,j_str - найденные номера нужных нам строк}
    a: mat; {сама матрица}
    priznak: boolean; {переменная-признак}
 
begin {начало основной программы}
 
{определяем размер нашей матрицы}
write ('Введите размер вашей матрицы N (<1000):');
readln (N);
 
{Вводим матрицу}
for i:=1 to N Do
 for j:=1 to N Do
   readln (a[i,j]);
 
{просматриваем матрицу по строкам сверху вниз и находим 1-й отрицательный элемент и номер его строки}
i_str:=0; {начальное состояние номера строки (если он так и останется равным 0, то это значит, что отрицательных элементов в матрице нет)}
i:=1, j:=1; {начальные номера строки и столбца}
priznak:=false; {пока ничего не нашли}
while i<=N Do 
  begin 
    while (j<=N) and (priznak=false) Do      
      begin 
    if a[i,j]<0 then begin
               i_str:=i; {если нашли отрицательный элемент, то запоминаем номер строки, где он находится}
               priznak:=true; {это значит, что найденный нами отрицательный элемент - первый, и поиск прекращаем}
               j:=j+1 {переходим на следующий элемент в строке}
             end
    else j:=j+1; {переходим на следующий элемент в строке}
      end;
    i:=i+1 {переходим на следующую строку}
  end;
 
{просматриваем матрицу по строкам сверху вниз и находим последний нулевой элемент и номер его строки}
j_str:=0; {начальное состояние номера строки (если он так и останется равным 0, то это значит, что нулевых элементов в матрице нет)}
i:=1, j:=1; {начальные номера строки и столбца}
while i<=N Do 
  begin 
    while j<=N Do        
      begin 
    if a[i,j]=0 then begin
               j_str:=i; {если нашли нулевой элемент, то запоминаем номер строки, где он находится}
               j:=j+1 {переходим на следующий элемент в строке}
             end
    else j:=j+1; {переходим на следующий элемент в строке}
      end;
    i:=i+1 {переходим на следующую строку}
  end;
 
{проверяем, нашли ли мы нужные элементы}
 
if i_str=0 then writeln ('Отрицательных элементов в матрице нет') 
    else if j_str=0 then writeln ('Нулевых элементов в матрице нет')
        else {что-то все-таки нашли, считаем скалярное произведение}
          begin 
            Scal:=0;
            for i:=1 to N Do
            Scal:= Scal+a[i_str,i]*a[i,j_str];
            writeln ('Скалярное произведение =', Scal)
          end
 
end. {конец основной программы}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 15:56     Перевести код нахождения скалярного произведения строки и столбца из паскаля в си++
Посмотрите здесь:

C++ Перевести код с Паскаля на С++
C++ Перевести код паскаля в с++
C++ Перевести код с паскаля на C++
C++ Перевести код из Паскаля в С++
перевести небольшой код с паскаля на с C++
C++ Перевести код с Паскаля на С++
Код для нахождения определителя матрицы N на N исключением строки и столбца C++
Необходимо перевести код с паскаля на С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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