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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 16:24   #1
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию Не могу отладить программу

-1 7 12 8
-1 3 -4 4
3 2 -1 4
Поменять местами минимальный из положительных элементов матрицы и максимальный элемент 3-го столбца.

Код:
program lab5;
uses crt;
var
a:array [1..3,1..4] of real;
i,j,n,k,r:integer;c, min,max: real;
fr, fw: text;
begin
assign (fr,'c:\games\dan5.pas');
reset(fr);
assign (fw,'c:\games\res5_lis.pas');
rewrite (fw);
for i:=1 to 3 do
begin
for j:=1 to 4 do
read (fr,a[i,j]);
readln (fr, a[i,j]);
end;
writeln (fw,'isx mas A');
for i:=1 to 3 do
begin
for j:=1 to 4 do
write (fw, a[i,j]:6:1);
writeln(fw);
end;
min:=a[1,1];
for i:=1 to 3 do
for j:=1 to 4 do
if(a[i,j]>0)and(a[i,j]<=min) then
begin
min:=a[i,j];
k:=i;
n:=j;
end;
max:=a[1,3];
for i:=1 to 3  do
if a[i,j]>=max then
begin
max:=a[i,3];
r:=i;
end;
c:=a[k,n];
a[k,n]:=a[r,3];
a[r,3]:=c;
writeln(fw);
writeln (fw,'new mas A');
for i:=1 to 3 do
begin
for j:=1 to 4 do
write (fw, a[i,j]:6:1);
writeln(fw);
end;
close (fr);
close (fw);
end.

Последний раз редактировалось Poma][a; 20.05.2015 в 17:04.
Anya Lis вне форума Ответить с цитированием
Старый 20.05.2015, 22:33   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Неформатированный код тяжело читать и воспринимать. Скажи, что не получается?
FPaul вне форума Ответить с цитированием
Старый 20.05.2015, 22:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да там в коде куча мелких косячков/бажков!
Хотя, подход годный, направление решения верное.
Реализация чуток подкачала.

я бы попробовал так записать решение:
Код:
program lab5;
uses crt;
var
  a: array[1..3, 1..4] of real;
  c: real;
  i, j : integer;
  minPosI, minPosJ, maxIndexInColumn3: integer;
  fr, fw: text;
begin
  assign(fr, 'с:\games\dan5.txt');
  reset(fr);
  assign(fw, 'с:\games\res5_lis.txt');
  rewrite(fw);
  for i := 1 to 3 do
  begin
    for j := 1 to 4 do
      read(fr, a[i, j]);
    readln(fr);
  end;
  close(fr);
  writeln(fw, 'isx mas A');
  for i := 1 to 3 do
  begin
    for j := 1 to 4 do
      write(fw, a[i, j]:6:1);
    writeln(fw);
  end;
  minPosI := -1; minPosJ := -1;
  for i := 1 to 3 do
    for j := 1 to 4 do
      if (a[i, j] > 0) then
       if minPosI<0 then begin
         minPosI := i;
         minPosJ := j
       end
       else
         if a[i,j]<a[minPosI, minPosJ] then begin
           minPosI := i;
           minPosJ := j
       end;
       
  maxIndexInColumn3 := 1;
  for i := 1 to 3 do
    if a[i, 3] >= a[maxIndexInColumn3, 3] then maxIndexInColumn3 := i;
    
  if minPosI<0 then WriteLn('net polojiotelnyh chisel v matrice!')
  else begin
    c := a[minPosI, minPosJ];
    a[minPosI, minPosJ] := a[maxIndexInColumn3, 3];
    a[maxIndexInColumn3, 3] := c
  end;
  writeln(fw);
  writeln(fw, 'new mas A');
  for i := 1 to 3 do
  begin
    for j := 1 to 4 do
      write(fw, a[i, j]:6:1);
    writeln(fw);
  end;
  close(fw);
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.05.2015, 09:39   #4
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию

вылетат, не заработав. если вызвать черный экран, то хочет что бы ввели что то
Anya Lis вне форума Ответить с цитированием
Старый 22.05.2015, 11:00   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а файл 'с:\games\dan5.txt' есть?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.05.2015, 14:03   #6
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию

есть, не могу понять почему не работает все равно(
Anya Lis вне форума Ответить с цитированием
Старый 24.05.2015, 00:01   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мне отсюда тоже не видно, что у Вас там не работает!

Попробуйте в отладчике пошагово пройтись, хотя бы определитесь, с какой строкой возникают проблемы!

У Вас вообще какой компилятор/IDE Паскаля?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.05.2015, 20:55   #8
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию

а как найти этот отладчик? фри паскаль у меня
Anya Lis вне форума Ответить с цитированием
Старый 24.05.2015, 23:44   #9
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

За небольшим исключением он идентичен TurboPascal. Можно поискать в сети "отладчик TurboPascal", почитать статью volvo.
В нём не действуют спецификации типов переменных, но можно выкрутиться и без них.

Последний раз редактировалось FPaul; 24.05.2015 в 23:46.
FPaul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно отладить программу на С# p1nok1o Фриланс 6 05.06.2014 22:56
отладить программу Антонова Евгения Помощь студентам 2 29.04.2010 23:50
Помогите отладить программу. TheKnyazz Паскаль, Turbo Pascal, PascalABC.NET 21 26.11.2008 17:51