|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.12.2009, 08:51 | #1 |
Пользователь
Регистрация: 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. Пожалуйста помогите!!!!!! Надеюсь кто нибудь мне поможет)))Заранее спасибо |
13.12.2009, 08:56 | #2 | |
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
Зачем кросспостить то7
Цитата:
|
|
13.12.2009, 09:36 | #3 |
Пользователь
Регистрация: 22.11.2009
Сообщений: 11
|
Да потому что ни у кого нет никакой реакции, я же не всю задачу прошу помочь, а только малую часть, а никто помогать не хочет(((
|
13.12.2009, 09:38 | #4 | |
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
Цитата:
|
|
13.12.2009, 09:41 | #5 |
Пользователь
Регистрация: 22.11.2009
Сообщений: 11
|
|
13.12.2009, 09:44 | #6 | |
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
По ссылочке в посте №4 сходи или в свою тему загляни в разделе "Паскаль"!
Или на тот форум , где ты под ником HaTaLLIa числишься в свою темку А по уму -тебе тут никто ничем не обязан и ничего не должен Цитата:
Последний раз редактировалось IT-man; 13.12.2009 в 09:47. |
|
13.12.2009, 09:49 | #7 |
Пользователь
Регистрация: 22.11.2009
Сообщений: 11
|
а все увидел)спасибо)
только вот объясни пожалуйста как запоминать максимальную и минимальную строку???просто я запоминал переменную новую вводил, но почему то нифига он строки не менял(( |
13.12.2009, 09:57 | #8 | ||
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
Цитата:
Код:
Цитата:
|
||
13.12.2009, 10:17 | #9 |
Пользователь
Регистрация: 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 | Помощь студентам | 0 | 08.12.2009 17:53 |
Составить подпрограмму определения номеров строк матрицы с минимальной и максимальной характеристиками | VNS | Помощь студентам | 0 | 05.12.2009 20:34 |
Составить подпрограмму для получения обратной матрицы | Astis | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 01.05.2009 18:52 |