1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
program lab; uses crt; const n = 20; var j,i, min1,min2:integer; s: real; A:array[1..5,1..5] of real; begin clrscr; min1:= 1; min2:= 1; for i:=1 to 5 do begin for j:=1 to 5 do begin gotoxy(2,2); writeln('BbeDite element massiva ',i,'x',j); gotoxy(4+j*2,4+i); readln(A[i,j]); { TyT MbI BBODuM MACCuB } if A[i,j] < A[min1,min2] then begin min1 := i; A[min1,min2]:= A[i,j]; {HAshli minimal'nuu stro4ku i min element} end; end; end; for i := 1 to 5 do begin for j:= 1 to 5 do begin A[min1,j] := A[min1,j]/A[min1,min2]; {Stroku podelili na min !!! } gotoxy(35,2); writeln('poluchen massiv '); gotoxy(35+i*2,4+j); writeln('',A[i,j] :4 :0); end; end; readln; end.
ты просьбы и вопросы игнорируешь? ну что ж... пожалуйста. только непохоже, что ты
Цитата
хочу стать программером
иначе бы слушал, что говорят, и пытался исправлять
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Я просто не понимаю чего от меня хотят!!! Мисс_граффити...
program lab; uses crt; var j, i, min1,min2:integer; g,k, s: real; A:array[1..5,1..5] of real; begin clrscr; A[min1,min2]:=A[i,j]; for i:=1 to 5 do begin for j:=1 to 5 do begin gotoxy(2,2); writeln('BвeDite element massiva ',i,'x',j); gotoxy(4+j*2,4+i); readln(A[i,j]);{ Вводим массив } if A[i,j] < A[min1,min2] then begin A[min1,min2] := A[i,j]; {Тут вроде находится минимум} min1 := i; end; end; end; k:=A[i,j]/A[min1,min2]; for i:= 1 to 5 do begin for j:= 1 to 5 do begin if i=min1 then A[i,j] :=k; gotoxy(35,2); writeln('Массив готов '); gotoxy(35+i*2,4+j); writeln(A[i,j] :4 :0); end; end; readln; end.
от тебя хотят нормального форматирования. то есть твоя программа должна выглядеть например так:
clrscr; A[min1,min2]:=A[i,j]; for i:=1 to 5 do begin for j:=1 to 5 do begin gotoxy(2,2); writeln('BвeDite element massiva ',i,'x',j); gotoxy(4+j*2,4+i); readln(A[i,j]);{ Вводим массив } if A[i,j] < A[min1,min2] then begin A[min1,min2] := A[i,j]; {Тут вроде находится минимум} min1 := i; end; end; end;
чтобы было видно, какой begin с каким end связан отредактируй, пожалуйста, свои сообщения, приведя в порядок ВСЮ программу (не только показанный мной фрагмент): не надо каждый раз приводить один и тот же код без изменений.
кроме того, обрати внимание на фрагменты, которые я процитировала на прошлой странице. объясни, пожалуйста, зачем выполнять эти шаманские действия? у тебя перед глазами пример работы с одномерным массивом... разберись, где что чему присваивается.
понимаешь, мне не сложно написать за тебя эту программу - но ведь от этого никому не будет пользы....
Сообщение отредактировано: мисс_граффити -
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Я понял. Постараюсь нормально писать... А одномерный пример, я пробовал переделывать у меня не получается. Пожалуйста сделай плиз, мне к понедельнику надо уже программу показывать, да еще и отчет делать!!!!
А ты понял, что там происходит в одномерном примере? По-моему, нет. То есть абсолютно не разобрался, где что запоминаем и что чему присваиваем.
Смотри: в этой программе тебе нужно знать строку, в которой находится минимум (ее потом делить надо), и чему он равен. Можно запоминать строку и значение, но [на мой взгляд] логичнее строку и столбец. Для этого нам понадобится 2 переменные. кроме того, нам нужны счетчик по строкам/столбцам и сам массив.
var i,j,mini,minj: byte; A: array [1..5,1..5] of real;
Сначала предположим, что самый маленький - первый элемент.
mini:=1; minj:=1;
После этого начинаем заполнение и поиск... Заполнять массив и искать минимум можно одновременно.
for i:=1 to 5 do {для каждой строки} for j:=1 to 5 do {для каждого столбца} begin readln(A[i,j]); {ввели элемент} if A[i,j]<A[mini,minj] then {если он меньше минимального} begin mini:=i; {запомнили номер строки} minj:=j; {запомнили номер столбца} end; end;
обрати внимание: элементы массива мы не меняем (кроме ввода с клавиатуры)!!! никаких
A[min1,min2]:=A[i,j];
(тем более ДО заполнения массива).
В итоге мы знаем, в где находится минимальный элемент (всегда сможем к нему обратиться), и знаем строку, в которой он находится.
Доделывай...
Сообщение отредактировано: мисс_граффити -
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Вроде все написал правильно. А на экран выводит только столбец!!!! почему????
program lab; uses crt; var j, i, min1, min2: byte; A:array[1..5,1..5] of real; begin clrscr; min1:=1; min2:=1; for i:=1 to 5 do for j:=1 to 5 do begin gotoxy(2,2); writeln('BbeDite element massiva ',i,'x',j); gotoxy(4+j*2,4+i); readln(A[i,j]);{ TyT MbI BBODuM MACCuB } if A[i,j] < A[min1,min2] then begin min1 := i; {Hawli minimal'nuu stro4ku i min element} min2 := j; end; end; for i := 1 to 5 do for j := 1 to 5 do begin if i=min1 then A[i,j]:=A[i,j]/A[min1,min2]; gotoxy(35,2); writeln('poluchen massiv '); gotoxy(35+j*2,4+i); writeln(A[i,j] :4 :0); end; readkey; end.
for i := 1 to 5 do for j := 1 to 5 do begin if i=min1 then A[i,j]:=A[i,j]/A[min1,min2];
gotoxy(35+j*5, 4+i); write(A[i, j] :4 :0); end;
?
Но у тебя в коде есть еще одна проблема: как только ты разделишь сам минимальный элемент на себя же - все остальные элементы этой строки не изменятся, т.к. новое значение A[min1, min2] будет равно 1, а не то, что было раньше... Так что тебе придется запоминать все-таки значение минимума, а не только его индексы...
То есть, после миниму в строке он не делит!!! (((((
Вот текст программы который получился
program lab; uses crt; var j, i, min1, min2: byte; A:array[1..5,1..5] of real; begin clrscr; min1:=1; min2:=1; for i:=1 to 5 do for j:=1 to 5 do begin gotoxy(2,2); writeln('BbeDite element massiva ',i,'x',j); gotoxy(4+j*5,4+i); readln(A[i,j]);{ TyT MbI BBODuM MACCuB } if A[i,j] < A[min1,min2] then begin min1 := i; {Hawli minimal'nuu stro4ku i min element} min2 := j; A[min1,min2]:=A[i,j]; end; end; gotoxy(35,2); write('poluchen massiv '); for i := 1 to 5 do for j := 1 to 5 do begin if i=min1 then A[i,j]:=A[i,j]/A[min1,min2]; gotoxy(35+j*5, 4+i); write(A[i, j] :4 :0); end; readkey; end.