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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 21:21   #1
maps
Новичок
Джуниор
 
Регистрация: 22.01.2012
Сообщений: 1
Вопрос Исправьте задачи.Паскаль

Пожалуйста помогите с этими двумя задачами:
В первой задаче мне нужно чтобы была главная диагональ,а не побочная:
Код:
Program bek11;
uses crt;
var n,m,i,j,imnv,jmnv,imnn,jmnn:integer;
a,b:array [1..10,1..10] of integer;
begin
clrscr;
write('m=');readln(m);
write('n=');readln(n);
imnv:=0;jmnv:=0;imnn:=0;jmnn:=0;
for i:=1 to m do
for j:=1 to n do
 begin
  gotoxy(6*j+6,i+8);
  readln(a[i,j]);
  if (j>i)  then
   begin
    imnv:=i;
    jmnv:=j;
   end;
   if (j<i) then
   begin
   imnn:=i;
   jmnn:=j;
  end;
 end;
 begin
 for i:=1 to m-1 do
 for j:=1 to n-i do
 if (a[i,j]<a[imnv,jmnv]) then
  begin
  imnv:=i;
  jmnv:=j;
 end;
 for i:=2 to m do
 for j:=n-i+2 to n do
 if (a[i,j]<a[imnn,jmnn]) then
  begin
  imnn:=i;
  jmnn:=j;
  end;
 writeln('min vishe pobochnoi=',a[imnv,jmnv]);
 writeln('min nishe pobochnoi=',a[imnn,jmnn]);
 writeln('matriza posle obmena min elementov:');
 for i:=1 to m do
  begin
   for j:=1 to n do
    begin
     if (i=imnv) and (j=jmnv) then b[i,j]:=a[imnv,jmnv]
     else if (i=imnn) and (j=jmnn) then b[i,j]:=a[imnn,jmnn]
     else b[i,j]:=a[i,j];
     write(b[i,j]:5);
    end;
   writeln;
  end;
  end;
readkey;
end.
Вторая задача на сортировку.Все работает,только загвоздка в том что,у меня сначала выводятся все четные элементы по возрастанию и уже после них все остальные элементы(нечетные),а мне нужно чтобы нечетные элементы так и остались на своих местах,например вводим матрицу:
5 7 -4 -8
6 99 44 1
-10 5 2 7
Должна получиться матрица:
5 7 -10 -8
-4 99 2 1
6 5 40 7

Код:
program beksortirovka;
uses crt;

var matr:array[0..10,0..10] of integer;
    tmp:array[0..10*10] of integer;
    i,j,w:integer;
    t:boolean;
    m, n:integer;

begin
clrscr;
writeln('vvedite m:');
read(m);
writeln('vvedite n:');
read(n);
writeln('original matr');
writeln;
for i:=0 to m-1 do begin
 for j:=0 to n-1 do begin
  gotoxy(6*j+6,i+8);
  read(matr[i][j]);
  tmp[i*n+j]:= matr[i][j];
  end;
  writeln;
end;
writeln;
t:=true;
while t do begin
 t:=false;
 for i:=0 to m*n-2 do
  if odd(tmp[i]) and not odd(tmp[i+1]) then begin
   w:=tmp[i+1];
   tmp[i+1]:=tmp[i];
   tmp[i]:=w;
   t:=true;
  end
  else
  if (i>0) and odd(tmp[i-1]) and (not odd(tmp[i])) then begin
   w:=tmp[i];
   tmp[i]:=tmp[i-1];
   tmp[i-1]:=w;
   t:=true;
   end
   else
   if (not odd(tmp[i])) and (not odd(tmp[i+1])) and (tmp[i+1]<tmp[i]) then begin
   w:=tmp[i+1];
   tmp[i+1]:=tmp[i];
   tmp[i]:=w;
   t:=true;
   end;
  end;
 writeln;
 writeln('sorted matr');
 for i:=0 to m*n-1 do begin
  if i mod n=0 then
   writeln;
   write(tmp[i],' ');
   end;
  readkey;
  end.
Заранее спасибо)
maps вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль с наработками, программа не идет,исправьте кто сможет.. newlife Помощь студентам 6 06.05.2010 23:17
паскаль...2 задачи... Оксаночка:) Помощь студентам 6 20.04.2009 02:05
сомнение в правильности решения задачи(( исправьте если не правильно что то) пжл durachok) Помощь студентам 3 25.12.2008 21:17
Исправьте ошибку в Паскаль!! W_P Паскаль, Turbo Pascal, PascalABC.NET 8 17.03.2008 11:35
Исправьте ошибку в Паскаль!! W_P Помощь студентам 1 16.03.2008 18:29