Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 08:51   #1
VNS
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 11
По умолчанию Составить подпрограмму определения номеров строк матрицы с минимальной и максимальной характеристиками

Всем привет
Помогите пожалуйста со следующей задачей,долгое время уже думаю и все не могу понять как делается..

Вот текст задачи:

Составить подпрограмму определения номеров строк матрицы с минимальной и максимальной характеристиками. Для вычисления характеристики использовать подпрограмму-функцию. В качестве характеристики расмотреть следующие величины:
а) среднее арифмитическое элементов каждой строки матрицы;
б) число положительных элементов в строке.
Поменять местами строки с максимальной и минимальной характеристиками типа
а) в заданной в матрице А
б) в заданной матрице В


Вот что я уже сделал: (ммаксимальныю и минимальную характеристику находит, а вот как Поменять местами строки с максимальной и минимальной характеристиками я не знаю)

program pr11;
type mas=array [1..3,1..3] of integer;
mas2=array [1..3] of integer;
var
i,j,l,a: integer;
srar,k,max_sym,max_srar,min_sym,min _srar,c:real;
x:mas;
y:mas2;
procedure strk(y:mas2; var c,srar:real);
var
l:integer;k:real;
begin
k:=0;
l:=0;
for j:=1 to 3 do
if y[j]<>0 then
begin
l:=l+y[j];
k:=k+1;
end;
srar:=l/k;
c:=0;
for j:=1 to 3 do
if y[j]>0 then c:=c+y[j];
end;

begin
writeln('Vvedite massiv: ');
for i:=1 to 3 do
for j:=1 to 3 do
readln(x[i,j]);
max_sym:=-1000;
max_srar:=-1000;
min_sym:=1000;
min_srar:=1000;
for i:=1 to 3 do
begin
for j:=1 to 3 do y[j]:=x[i,j];
strk(y,c,srar);
if (c>max_sym) and (srar>max_srar) then
begin
max_sym:=c;
max_srar:=srar;
end;
if (c<min_sym) and (srar<min_srar) then
begin
min_sym:=c;
min_srar:=srar;
end;
end;
writeln ('max_sym=',max_sym:8:3,'max_srar=' ,max_srar:8:3,'min_sym=',min_sym:8: 3,'min_srar=',min_srar:8:3);
readln;
end.

Пожалуйста помогите!!!!!!

Надеюсь кто нибудь мне поможет)))Заранее спасибо
VNS вне форума Ответить с цитированием
Старый 13.12.2009, 08:56   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Зачем кросспостить то7
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 13.12.2009, 09:36   #3
VNS
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 11
По умолчанию

Да потому что ни у кого нет никакой реакции, я же не всю задачу прошу помочь, а только малую часть, а никто помогать не хочет(((
VNS вне форума Ответить с цитированием
Старый 13.12.2009, 09:38   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

я же -тебе -в твоей же теме ответил!
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 13.12.2009, 09:41   #5
VNS
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от IT-man Посмотреть сообщение
Зачем кросспостить то7
вот это ответ?))
хороший ответ)
VNS вне форума Ответить с цитированием
Старый 13.12.2009, 09:44   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

По ссылочке в посте №4 сходи или в свою тему загляни в разделе "Паскаль"!
Или на тот форум , где ты под ником HaTaLLIa числишься в свою темку
А по уму -тебе тут никто ничем не обязан и ничего не должен
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 13.12.2009 в 09:47.
IT-man вне форума Ответить с цитированием
Старый 13.12.2009, 09:49   #7
VNS
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 11
По умолчанию

а все увидел)спасибо)
только вот объясни пожалуйста как запоминать максимальную и минимальную строку???просто я запоминал переменную новую вводил, но почему то нифига он строки не менял((
VNS вне форума Ответить с цитированием
Старый 13.12.2009, 09:57   #8
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
б) число положительных элементов в строке.
Код:
var imin,imax:integer;
min,max:integer;
count:integer;
...
begin
min:=0;
for i:=1 to 3 do
if a[1,i]>0 then inc(min);
max:=min;
imin:=1;
imax:=1;
for i:=2 to 3 do begin
count:=0;
for j:=1 to 3 do 
if a[i,j]>0 then inc(count);
if count>max then begin max:=count;imax:=i;end;
if count<min then begin min:=count;imin:=i;end;
end;
// в imin- содержится № строки с мин х-кой
 // в imax- содержится № строки с макс х-кой
....
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 13.12.2009, 10:17   #9
VNS
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 11
По умолчанию

ну вот такой вот код у меня получился...посмотри пожалуйста что не так:
1. он почему то вывводит одинаковые максимальные и минимальные значения
2.вроде строки не меняет, надо навернео вывод сделать, а как это хз(

program pr11;
type mas=array [1..3,1..3] of integer;
mas2=array [1..3] of integer;
var
tmp:integer;
imin,imax:integer;
min,max:integer;
count:integer;
i,j,l,a: integer;
srar,k,max_sym,max_srar,min_sym,min _srar,c:real;
x:mas;
y:mas2;
procedure strk(y:mas2; var c,srar:real);
var
l:integer;k:real;
begin
k:=0;
l:=0;
for j:=1 to 3 do
if y[j]<>0 then
begin
l:=l+y[j];
k:=k+1;
end;
srar:=l/k;
c:=0;
for j:=1 to 3 do
if y[j]>0 then c:=c+y[j];
end;

begin
writeln('Vvedite massiv: ');
for i:=1 to 3 do
for j:=1 to 3 do
readln(x[i,j]);
max_sym:=-1000;
max_srar:=-1000;
min_sym:=1000;
min_srar:=1000;
for i:=1 to 3 do
begin
for j:=1 to 3 do y[j]:=x[i,j];
strk(y,c,srar);

begin
min:=0;
for i:=1 to 3 do
if x[1,i]>0 then inc(min);
max:=min;
imin:=1;
imax:=1;
for i:=2 to 3 do begin
count:=0;
for j:=1 to 3 do
if x[i,j]>0 then inc(count);
if count>max then begin max:=count;imax:=i;end;
if count<min then begin min:=count;imin:=i;end;
end;
for i:=1 to 3 do
tmp:=x[imax,i];
x[imax,i]:=x[imin,i];
x[imin,i]:=tmp;
end;

for i:=1 to 3 do

if (c>max_sym) and (srar>max_srar) then
begin
max_sym:=c;
max_srar:=srar;
end;
if (c<min_sym) and (srar<min_srar) then
begin
min_sym:=c;
min_srar:=srar;
end;
end;
writeln ('max_sym=',max_sym:8:3,'max_srar=' ,max_srar:8:3,'min_sym=',min_sym:8: 3,'min_srar=',min_srar:8:3);
readln;

end.
VNS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить подпрограмму определения номеров строк матрицы с минимальной и максимальной характеристиками VNS Помощь студентам 0 08.12.2009 17:53
Составить подпрограмму определения номеров строк матрицы с минимальной и максимальной характеристиками VNS Помощь студентам 0 05.12.2009 20:34
Составить подпрограмму для получения обратной матрицы Astis Паскаль, Turbo Pascal, PascalABC.NET 0 01.05.2009 18:52