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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, существует ли покрытие C' из C мощности не более K http://www.cyberforum.ru/cpp-beginners/thread880640.html
УСЛОВИЕ. Задано семейство C подмножеств конечного множества S и положительное целое число K <= |C|. ВОПРОС. Существует ли покрытие C' из C мощности не более K? Иными словами, существует ли в C...
C++ Курсовая по САОДу Вот такое вот задание у меня... Постановка задачи Хранящуюся в файле базу данных загрузить в оперативную память компьютера и построить индексный массив, упорядочивающий данные в... http://www.cyberforum.ru/cpp-beginners/thread880628.html
C++ IEEE 754 абсолютная ошибка
Народ подскажи как считать абсолютную ошибку у чисел. В частности хотел бы пример для числа 3F800000
Формула! C++
Помогите написать формулу , не пойму как , просто новичек =) w=|cosx-cosy|^(1+2sin^2y)(1+z+z^2/2+z^3/3+z^4/3) моя запись этой формулы : gamma = abs pow(cos (x) + cos...
C++ Вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами http://www.cyberforum.ru/cpp-beginners/thread880605.html
#include "stdafx.h" #include <conio.h> const int N=4; int main() { int mas={1, 2,3,4,}; bool flag1=0, flag2=0, flag3=0; int p_proizv1=0, p_proizv2=0, proizv1=0, proizv2=0; int...
C++ Как на с++ оформить формулу: (y2-y1)/(x2-x1) (mod M) Как на с++ оформить формулу: (y2-y1)/(x2-x1) (mod M) При том желательно не выполнять деления ... За ранее спасибо! подробнее

Показать сообщение отдельно
ksuha94
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 9

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

27.05.2013, 15:56. Просмотров 395. Ответов 0
Метки (Все метки)

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. {конец основной программы}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru