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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2009, 07:49   #1
владимир/к.
 
Аватар для владимир/к.
 
Регистрация: 21.01.2009
Сообщений: 6
Вопрос пожалуйста проверьте правильность проги на языке паскаль!

задача:
Дан массив из 4 строк и 4 столбцов.Упорядочить массив по возрастанию произведения элементов столбцов.

вот что я написал:
Код:
program we;
uses crt;
var x:array[1..5,1..4] of real;
j,i,k:integer;
r:real;
begin
writeln('vvedite matrix x');
for I:=1 to 4 do for J:=1 to 4 do read(x[i,j]);
for J:=1 to 4 do begin
x[5,J]:=1;
for i:=1 to 4 do x[5,j]:=x[5,j]*x[i,j];
end;
for i:=1 to 4 do for J:=1 to 4 do
if x[5,j-1]>x[5,j] then for k:=1 to 5 do begin
r:=x[k,j-1];x[k,j-1]:=x[k,j];r:=x[k,j];
end;
for i:=1 to 4 do begin
for J:=1 to 4 do write(x[i,j]:6:3,'');writeln;
readln;
end;
end.
подскажите все ли верно в этой проге???

п.с. мне сказали что она неправильная...

Последний раз редактировалось Stilet; 21.01.2009 в 08:36.
владимир/к. вне форума Ответить с цитированием
Старый 21.01.2009, 08:47   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const m=5;
      n=5;
var a:array [1..m,1..n] of integer;
    b,temp:array[1..n] of integer;
    i,j,k:integer;

begin
randomize;
clrscr;
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(5)+1;
    write(a[i,j]:3);
   end;
   writeln;
 end;
for j:=1 to n do
 begin
  b[j]:=1;
   for i:=1 to m do
    b[j]:=b[j]*a[i,j];
 end;
 
 for i:=2 to n do
  for j:=n downto i do
    if b[j]<b[j-1] then
   begin
     k:=b[j];
     b[j]:=b[j-1];
     b[j-1]:=k;
     for k:=1 to m do
      temp[k]:=a[k,j];
     for k:=1 to m do
      a[k,j]:=a[k,j-1];
     for k:=1 to m do
      a[k,j-1]:=temp[k];
   end;
writeln('==============================');
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
writeln('==============================');
for i:=1 to n do
 write(b[i],' ');
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 21.01.2009, 08:48   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты ее проверь.
Вроде криминала я так на вскидку не вижу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.01.2009, 08:54   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
for i:=1 to 4 do for J:=1 to 4 do
if x[5,j-1]>x[5,j] then for k:=1 to 5 do begin
в цикле j равняется 0

Замени на
Код:
for j:=2 to 4
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте на правильность плиз Agent[PNZ] Помощь студентам 3 11.06.2014 19:50
Проверьте правильность пожалуйста Анжелика Помощь студентам 17 11.01.2009 00:28
Пожалуйста,помогите составить программу задачи на языке Турбо Паскаль-задача на функцию Jan Помощь студентам 1 07.01.2009 19:39
Проверьте правильность Аленушка Помощь студентам 6 07.01.2009 17:07
Прошу помощи. Нада проверить правильность составления проги. И помочь исправить ошибку Ascor Общие вопросы C/C++ 4 03.06.2008 10:54