IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача на матрицу, помогите исправить
-Rudolf-
сообщение 4.12.2005 11:20
Сообщение #1


Гость






"Дана вещественная матрица размером 7x7, все элементы которой различны. Найти скалярное произведение строки, на которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.". Я так решил эту задачу:
Код

Program L7;
Const N=7;
type mas=array[1..N,1..N] of real;
    masmin=array[1..N] of real;
    masmax=array[1..N] of real;

var matr:mas;
   str:masmax;
   stolb:masmin;
   i,j,k,l:integer;
   min,max,rez,proizv:real;
Begin
    for i:=1 to N do
     begin
       for j:=1 to N do
       matr[i,j]:=random(300);
     end;
    for i:=1 to N do
     begin
       for j:=1 to N do
       write(matr[i,j]:2:0,' ');
       writeln;
       writeln;
     end;
    min:=matr[1,1];
    for i:=1 to N do
     begin
       for j:=1 to N do
       if matr[i,j]<min then  
                                      begin
                                          min:=matr[i,j];
                                          k:=j;
                                      end;
     end;
    writeln(k);
    writeln(min:2:0);
    for i:=1 to N do
     begin
       stolb[i]:=matr[i,k];
       write(stolb[i]:3:0);
     end;
    writeln;
    writeln;
    max:=matr[1,1];
    for i:=1 to N do
     begin
       for j:=1 to N do
         if matr[i,j]>max then
                                       begin
                                           max:=matr[i,j];
                                           l:=i;
                                       end;
     end;
    for j:=1 to N do
     begin
       str[j]:=matr[l,j];
       write(str[j]:3:0);
     end;
    writeln(max:2:0);
    For i:=1 to N do
     begin
           proizv:=stolb[i]*str[i];
           rez:=rez+proizv;
           writeln(rez:2:0);
     end;

    readln
end.

но преподаватель сказал, что можно обойтись меньшим числом массивов. Если кто знает как подскажите PLIZ.
P.S. Я так понял, что надо задать массив массива.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 11:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"