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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 15:41   #1
siner
Пользователь
 
Регистрация: 05.11.2012
Сообщений: 15
Радость небольшая доработка

Код:
uses crt;
const nmax=20;
type mas=array [1..nmax] of real;
     mtr=array[1..nmax] of mas;
var x:mtr;
    y:byte;
procedure sort(l,r:integer);
var i,j,m: integer;
    x1:real;
    y1:mas;
begin
  i:=l;
  j:=r;
  m:=round ((l+r)/2);
  x1:=x[m][y];
  repeat
    while x[i][y]>x1 do i:=i+1;
    while x[j][y]<x1 do j:=j-1;
    if i<=j then
     begin
      y1:=x[i];
      x[i]:=x[j];
      x[j]:=y1;
      i:=i+1;
      j:=j-1;
     end;
  until i>j;
  if l<j then sort(l,j);
  if i<r then sort(i,r);
end;
var n,m,i,j:integer;
begin
clrscr;
randomize;
repeat
write('Введите количество строк: ');
readln(n);
until n in [1..nmax];
repeat
write('Введите количество столбцов: ');
readln(m);
until m in [1..nmax];
repeat
write('Введите номер столбца от 1 до ',m,': ');
readln(y);
until y in [1..m];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    x[i][j]:=10*random;
    write(x[i][j]:5:1);
   end;
  writeln;
 end;
writeln;
sort(1,n);
writeln('Отсортированная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(x[i][j]:5:1);
  writeln;
  end;
end.
Подскажите, пожалуйста, как сделать ввод элементов исходной матрицы не рандомным, а с клавиатуры?
siner вне форума Ответить с цитированием
Старый 05.11.2012, 16:02   #2
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Как то так
Код:
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
   read(number);    //обьявить надо number
    x[i][j]:=number;
    write(x[i][j]:5:1);
   end;
  writeln;
kuba1981 вне форума Ответить с цитированием
Старый 05.11.2012, 16:06   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вместо:
Цитата:
Код:
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    x[i][j]:=10*random;
    write(x[i][j]:5:1);
   end;
  writeln;
 end;
напишите, например, так:
Код:
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    Write('Введите элемент ',i,' ',j,' : ');
    Readln(x[i][j]);
   end;
 end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая проблемка. Dark Shadow Общие вопросы C/C++ 3 30.03.2012 15:18
Небольшая программка на с++ lunarkiller Общие вопросы C/C++ 3 22.12.2011 18:06
Проблемка небольшая ChocoPie Помощь студентам 3 15.12.2011 19:25
Небольшая задачка по СИ Wadroz Помощь студентам 1 29.10.2008 21:01