Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 09.05.2011, 14:42   #1 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужна помощь с отладкой

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

Соседями элемента 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.
billchester вне форума   Ответить с цитированием

Старый 09.05.2011, 14:42
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблему будет решать проще, если набраться информации из похожих топиков

Нужна помощь по МК
Как согнуть лист?

Старый 09.05.2011, 18:41   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от billchester Посмотреть сообщение
посмотрите прогу, не понимаю че ей не хватает
Ей не хватает var перед a1 в параметрах процедуры vvod. В остальном - всё правильно.
Vladimir_S вне форума   Ответить с цитированием
Старый 09.05.2011, 19:12   #3 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

все равно что не то, не могу понять.
billchester вне форума   Ответить с цитированием
Старый 09.05.2011, 19:16   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от billchester Посмотреть сообщение
все равно что не то, не могу понять.
Что именно "не то"? Я проверил на матрице 2х2 - всё работает, как часы в ломбарде. Если, конечно, var вставить, куда сказано.

Сейчас проверил для матрицы 3х3 - безупречно!
Vladimir_S вне форума   Ответить с цитированием
Старый 09.05.2011, 19:41   #5 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

блин капец, а я мучился переставлял все эти процедуры=)
спасибо=)
billchester вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 09.05.2011, 19:44   #6 (permalink)
billchester
Member
 
Регистрация: 11.04.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а задача 2 правильная?
billchester вне форума   Ответить с цитированием
Старый 09.05.2011, 19:47   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от billchester Посмотреть сообщение
а задача 2 правильная?
Не знаю, не смотрел. И честно говоря, не собираюсь.
Понимаете, мы, конечно, готовы помочь конкретно разобраться с проблемой, найти ошибку и т.д., но это не значит, что на нас следует перекладывать черновую работу по тестированию и отладке программ. Вы уж как-нибудь сами...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:04.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.