• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нужна помощь с отладкой

billchester

Новые
Регистрация
11 Апр 2011
Сообщения
14
Реакции
0
Баллы
0
Нужна помощь с отладкой

посмотрите прогу, не понимаю че ей не хватает

Соседями элемента Aij в матрице назовем элементы Akl, где i - 1 ≤ k ≤ i + 1, j - 1 ≤l≤j+1, (k, l) ≠ (i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 х 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.

program f1;
uses crt;
const c=10;
type matrica=array[1..c,1..c] of real;
var a,b:matrica;
n:integer;


procedure vvod(n1:integer; a1:matrica);
var i,j:integer;
begin
randomize;
for i:=1 to n1 do
for j:=1 to n1 do
a1[i,j]:=200*random-100;
end;
procedure vuvod(n1:integer; a1:matrica);
var i,j:integer;
begin
for i:=1 to n1 do
begin
for j:=1 to n1 do
write(a1[i,j]:7:2);
writeln;
end;
end;

procedure postroit(n1:integer; a1:matrica; var b1:matrica);
var i,j,k,l,kol_vo:integer;
begin
for i:=1 to n1 do
for j:=1 to n1 do
begin
b1[i,j]:=0;
kol_vo:=0;
for k:=i-1 to i+1 do
if(k>0) and (k<=n1) then
for l:=j-1 to j+1 do if (l>0) and (l<=n1) then
if(k<>i) or(l<>j) then begin
b1[i,j]:=b1[i,j]+a1[k,l];
kol_vo:=kol_vo+1;
end;
b1[i,j]:=b1[i,j]/kol_vo;
end;
end;
function summa(n1:integer; a1:matrica):real;
var i,j:integer;
s:real;
begin
s:=0;
for i:=1 to n1 do
for j:=1 to i-1 do
s:=s+abs(a1[i,j]);
summa:=s;
end;
begin
clrscr;
writeln('VVedite razmer matrici');
repeat
write ('n= ');
readln(n);
until(n>1) and (n<=c);
clrscr;
writeln('Dana Matrica A:');
vvod(n,a);
vuvod(n,a);
writeln('Polu4eHa matrica B:');
postroit(n,a,b);
vuvod(n,b);
writeln('Otvet: summa= ', summa(n,b):7:2);
readln;
end.



и проверьте эту пожалуйста


Задача 2.
1. Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке
2. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента



Код программы

program dz6_2;
uses crt;
const
max=10;
type
mas=array[1..max,1..max] of integer;
var
nmax,mmax:integer;
m:mas;
i,j:integer;
procedure otr(var m:mas);
var
found:boolean;
d,t:integer;
nom:integer;
begin
d:=0;
t:=0;
nom:=0;
for j:=1 to mmax do
begin
d:=d+t;
found:=false;
for i:=1 to nmax do
if m[i,j]<0 then
begin
found:=true;
end
else nom:=j;
if (found=false) and (d=0) then
begin
t:=1;
writeln('Nomer pervogo stolbca bez otricatelnih chisel = ',nom);
end;
end;
if (t=0) then writeln('Vo vsex stolbax est otricatelnie chisla');
end;
begin
clrscr;
repeat
writeln('BBedite razmer matrix ');
write('n=');
readln(nmax);
write('m=');
readln(mmax);
if (nmax<=0) or (nmax>max) or (mmax<=0) or (mmax>max) then
writeln('Nevernii razmer matrix');
until (nmax>0) and (nmax<=max) and (mmax>0) and (mmax<=max);
for i:=1 to nmax do
for j:=1 to nmax do
begin
write ('[',i,';',j,']=');
readln(m[i,j]);
end;
for i:=1 to nmax do
begin
for j:=1 to mmax do
write (m[i,j],' ');
writeln;
end;
otr(m);
readln;
end.
 
все равно что не то, не могу понять.
 
все равно что не то, не могу понять.
Что именно "не то"? Я проверил на матрице 2х2 - всё работает, как часы в ломбарде. Если, конечно, var вставить, куда сказано.

Сейчас проверил для матрицы 3х3 - безупречно!
 
блин капец, а я мучился переставлял все эти процедуры=)
спасибо=)
 
а задача 2 правильная?
 
а задача 2 правильная?
Не знаю, не смотрел. И честно говоря, не собираюсь.
Понимаете, мы, конечно, готовы помочь конкретно разобраться с проблемой, найти ошибку и т.д., но это не значит, что на нас следует перекладывать черновую работу по тестированию и отладке программ. Вы уж как-нибудь сами...
 
Назад
Сверху