Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.03.2012
Сообщений: 10

Не правильно работает программа про матрицы

31.03.2012, 22:51. Показов 676. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести квадратные матрицы X1, X2 . Матрицу у которой над побочной диагональю окажется больше чётных элементов транспонировать. Матрицы вывести до и после преобразования. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,Name), Vivod2m(A,N,Name); а также функцию ChetNadPob(A,N):byte – количество чётных над побочной диагональю; и процедуру Transp(A,N) –
транспонирование матрицы). В итоге программа работает, только в конце, независимо от кол-ва чётных элементов в 1ой матрице, транспонируется вторая. Подскажите, где ошибся, ибо я все варианты (на мой взгляд) перебрал.

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
69
70
71
72
73
74
75
program GlobalSubPr;
type matr=array[1..20,1..20] of integer;
var X1,X2,at:matr;
N1,N2:byte;
max1,max2,max3,MinOfMax,MaxOfMax:integer;
sr1,sr2:integer;
// ввод двумерного массива
procedure Vvod2m(var A:matr; var N:byte; Name:string);
var i,j:byte;
begin
writeLn('вводите массив ', Name,':');
write('размерность массива N=');
readLn(N);
for i:=1 to N do
for j:=1 to N do
begin
write(Name,'[',i,',',j,']=');
readLn(A[i,j]);
end;
end;
// вывод двумерного массива
procedure Vivod2m(const A:matr; const N:byte; Name:string);
var i,j:byte;
begin
writeLn('выводим массив ', Name,':');
for i:=1 to N do
begin
for j:=1 to N do
write(A[i,j]:5);
writeLn;
end;
end;
// кол-во чётных над побочной
function ChetNadPob(A:matr;N:byte):byte;
var i,j,k:byte; sr:integer;
begin
sr:=0;
k:=1;
for i:=1 to N-k do
begin
for j:=1 to N-k do
if A[i,j] mod 2=0 then
sr:=sr+1;
k:=k+1;
end;
writeln('кол-во чётн: ',sr);
end;
//транспонирование
procedure Transp(a:matr; n:byte);
var i,j:byte;
    at:matr;
begin
writeln('Транспонированиеэ');
for i:= 1 to n do
for j:=1 to n do
at[i,j]:=A[j,i];
Vivod2m(at,n,'X'); writeln;
end;
//собственно тело проги,ога
begin
// вводим массивы
Vvod2m(X1,N1,'X1');
Vvod2m(X2,N2,'X2');
// выводим массивы до преобразования
Vivod2m(X1,N1,'X1');
Vivod2m(X2,N2,'X2');
// кол-во чётных над побочной
sr1:=ChetNadPob(X1,N1);
sr2:=ChetNadPob(X2,N2);
//не знаю куда сунуть, но не здесь это должно быть
if  sr1>sr2 then
Transp(X1,N1)
else
Transp(X2,N2)
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2012, 22:51
Ответы с готовыми решениями:

программа табулирования правильно не работает
Я составил программу, а она, начиная с х=1,6 выдает у= NAN. Почему? program tab; const h=0.1; var x,y: real; begin x:=1; while...

Скажите, пожалуйста, программа правильно работает?
Это метод Ньютона,не знаю как его проверить.( Program Project122; var a,b,eps,dx,x:real; i,Kmax: integer; Label...

Поиск мин элемента в строке матрицы и приращение элементов в строке к нему (программа работает не правильно)
Есть матрица и функции поиска минимального элемента в строке и приращение элементов в строке к нему. но программа работает не правильно......

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
01.04.2012, 10:53
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program GlobalSubPr;
uses crt;
const nmax=20;
type matr=array[1..nmax,1..nmax] of integer;
// ввод двумерного массива
procedure Vvod2m(var A:matr; var N:byte; Name:string);
var i,j:byte;
begin
writeLn('вводите массив ', Name,':');
repeat
write('размерность массива до ',nmax,' N=');
readLn(N);
until  N in [1..nmax];
for i:=1 to N do
for j:=1 to N do
 begin
  write(Name,'[',i,',',j,']=');
  readLn(A[i,j]);
 end;
clrscr;
end;
// вывод двумерного массива
procedure Vivod2m(A:matr; N:byte; Name:string);
var i,j:byte;
begin
writeLn('выводим массив ', Name,':');
for i:=1 to N do
 begin
  for j:=1 to N do
  write(A[i,j]:5);
  writeLn;
 end;
end;
// кол-во чётных над побочной
function ChetNadPob(A:matr;N:byte):byte;
var i,j:byte; sr:integer;
begin
sr:=0;
for i:=1 to N-1 do
for j:=1 to N-i do
if A[i,j] mod 2=0 then
sr:=sr+1;
ChetNadPob:=sr;//вот здесь была ошибка, нужно присвоить значение функции
writeln('кол-во чётн: ',sr);
end;
//транспонирование
procedure Transp(var a:matr; n:byte);
var i,j:byte;
    x:integer;
begin
for i:=2 to n do
for j:=i+1 to i-1 do
 begin
  x:=a[i,j];
  a[i,j]:=a[j,i];
  a[j,i]:=x;
 end;
end;
//собственно тело проги
var X1,X2,at:matr;
    N1,N2:byte;
    sr1,sr2:integer;
begin
// вводим массивы
Vvod2m(X1,N1,'X1');
Vvod2m(X2,N2,'X2');
// выводим массивы до преобразования
Vivod2m(X1,N1,'X1');
sr1:=ChetNadPob(X1,N1);
Vivod2m(X2,N2,'X2');
sr2:=ChetNadPob(X2,N2);
//не знаю куда сунуть, но не здесь это должно быть
if  sr1>sr2 then
 begin
  Transp(X1,N1);
  Vivod2m(X1,N1,'X1 транспонированный');
 end
else
 begin
  Transp(X2,N2);
  Vivod2m(X2,N2,'X2 транспонированный');
 end;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2012, 10:53
Помогаю со студенческими работами здесь

Программа про счастливые билеты. Не работает.
#include "stdafx.h" #include <iostream> #include <clocale> using namespace std; void Input(int &N1, int &N2) { cout <<...

Программа про файл. Почти готова, но не работает
Программа считывает файл, в котором написаны цифры и находит или не находит последовательность цифр которые ввел пользователь. Почему она...

Программа из методички про наследование - не работает код
В методичке приведён такой код в качестве примера к главе про Наследование. Задание там такое: Но код не работает, и не...

Программа работает не правильно
Задача:Найти среди 10 русских существительных отглагольные(типа хождение) и вывести их. AnsiString A; AnsiString B; int C; int...

Не работает правильно программа
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru