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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2013, 17:59   #1
Юлия67
 
Регистрация: 07.03.2013
Сообщений: 8
Восклицание Поменять местами столбцы с максимальным и минимальным элементами

Поменять местами столбцы с максимальным и минимальным элементами. Дана матрица А размера n*m, где n,m<=15. Элементы матрицы – целые случайные числа из диапазона [0, 10*N]. Оформить преобразование матриц в виде функции или процедуры и записать в файл исходную и преобразованную матрицы. Просмотреть файл.
Юлия67 вне форума Ответить с цитированием
Старый 10.03.2013, 18:19   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,299
По умолчанию

Хорошая учебная задачка. Что у Вас не получается?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.03.2013, 18:47   #3
Юлия67
 
Регистрация: 07.03.2013
Сообщений: 8
По умолчанию

Код:
Program lora_z4;
Uses Crt;
Var A:array [1..15,1..15] of real;
i,j,n,k_max,k_min:integer;
max,min,B:real;
Begin
ClrScr;
Write('Vvedite n (<=15) ');
Readln(n);

for i:=1 to n do
for j:=1 to n do
A[i,j]:=i*j*sin(0.5*i*j);

for i:=1 to n do
Begin
for j:=1 to n do
Write(A[i,j]:6:1);
Writeln;
End;

min:=(A[1,1]);
k_min:=1;
for i:=1 to n do
for j:=1 to n do
if min>(A[i,j]) then
Begin
min:=(A[i,j]);
k_min:=j;
End;

max:=(A[1,1]);
k_max:=1;
for i:=1 to n do
for j:=1 to n do
if max<(A[i,j]) then
Begin
max:=(A[i,j]);
k_max:=j;
End;

Writeln;
Writeln;
Writeln('min = ',min:5:1,' k_min = ',k_min);
Writeln('max = ',max:5:1,' k_max = ',k_max);

for i:=1 to n do
Begin
B:=A[i,k_max];
A[i,k_max]:=A[i,k_min];
A[i,k_min]:=B;
End;

Writeln;
Writeln;
for i:=1 to n do
Begin
for j:=1 to n do
Write(A[i,j]:6:1);
Writeln;
End;

ReadKey;
End.

ну вот в принципе программа есть, но она не в виде функции вроде бы оформлена, и задание про записать в файл вообще не понятно)


_________________
По правилам форума код должен оформлять с помощью тегов!
Используйте форматирование с помощью тегов [CODE] .. [ /CODE]
(кнопочка на панели форматирования # )

Модератор

Последний раз редактировалось Serge_Bliznykov; 10.03.2013 в 19:04.
Юлия67 вне форума Ответить с цитированием
Старый 10.03.2013, 19:34   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в принципе, программа не ваша и, более того, она не соответствует вашему заданию. (у Вас матрица должна быть не n x n, а n x m, матрица должна быть целочисленного типа,а не вещественного, заполняться не по формуле, а случайными числами.
всё, что Вы можете взять из данной чужой программы, это только поиск столбцов с минимальным/максимальным элементами и перестановку их местами...

а вынести часть кода в процедуру/функцию - это очень просто...
Главное, Вам как программисту, выбрать, какие процедуры (или функции) должны быть и ЧТО именно должно в них делаться...
если доводить ситуацию до абсурда, то можно ПОЛНОСТЬЮ весь код программы вынести в процедуру и главной программе только её вызывать..
Код:
Program lora_z4;
Uses Crt;

procedure DoMatr;
  const MaxSize = 15;
  Var A:array [1..MaxSize,1..MaxSize] of integer;
       i,j,n,m,B, k_max,k_min:integer;
  begin
     Write('Vvedite n (<=15) ');
     Readln(n);
     Write('Vvedite m (<=15) ');
     Readln(m);

     for i:=1 to n do
        for j:=1 to m do
          A[i,j]:= random(10*N+1);
  
     .....
   WriteLn('Press any key to exit...');
   ReadKey;
   Readln;
end; {конец процедуры i*j*sin(0.5*i*j)}
  
{главная программа}
Begin
     ClrScr;
     Randomize;

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить элементы в массиве, стоящие между максимальным и минимальным элементами Tkas Помощь студентам 0 04.03.2012 16:50
Является ли последовательность арифметической, заключенной между минимальным и максимальным элементами NeRRouZ Помощь студентам 2 12.11.2011 18:38
Массив целых чисел делится на три части двумя элементами: максимальным и минимальным (Delphi) eva-2030 Помощь студентам 6 15.05.2011 22:16
Поменять местами строку с минимальным и максимальным элементами deathz0r Помощь студентам 0 05.06.2010 17:33
в двухмерном массиве поменять местами столбцы с максимальным и минимальным элементами Лёха Помощь студентам 5 18.12.2007 18:12