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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2012, 10:00   #1
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
По умолчанию Проверка

1)Сформировать и вывести матрицу А(10,10),элементы которой заданы произвольно,кроме элементов,расположенных в заштрихованной области (рис.) и равных нулю.

2)Вывести элементы и номер столбца, содержащего наибольшее количество нулей.


Найдите ошибку в программе пожалуйста.

Код:
 program massiv;
 uses crt;
type mas= array[1..10,1..10] of integer;
var
j,i,max,nmax,n:integer;
a: mas;
s:array[1..10] of integer;
ss:integer;
BEGIN
randomize;
clrscr;
writeln('reschenie zada4i na massivbI  ');
writeln('---------------------------');
 writeln('slu4aynbIy massiv bez nuley');
 for i:=1 to 10 do  begin
  for j:=1 to 10 do begin
  a[i,j]:=random(11)-5;
 write(a[i,j]:4);
                     end;
           writeln; end;
 for i:=1 to 5 do  begin
  for j:=1 to i do begin
   a[i,j]:=0;
     end;
      end;
  writeln;
   for j:=1 to 5 do  begin
  for i:=6 to 11-j do begin
   a[i,j]:=0;
       end;
     writeln;
     end;
      writeln('sformirovannbIy massiv ');
    for i:=1 to 10 do  begin
  for j:=1 to 10 do begin
  a[i,j]:=random(11)-5;
 write(a[i,j]:4);
                     end;
           writeln; end;
       writeln;
          writeln('kol-wo nuley po stolbcam ');
   for j:=1 to 10 do  begin
   s[j]:=0;
   for i:=1 to 10 do
    if a[i,j]=0 then s[j]:=s[j]+1;
     write(s[j]:4);
                     end;
    writeln;
    max:=s[1];nmax:=1;
   for i:=2 to 10 do
    if s[i] > max then begin
      max:=s[i]; nmax:=i;  end;
       writeln('nomer stolbca  ',nmax);
         writeln('soder#imoe stolbca  ',nmax);
          for i:=1 to 10 do   write(s[j]:4);
          writeln;
  writeln('konec zada4i ');
 readln;
END.
Изображения
Тип файла: jpg рис.jpg (4.8 Кб, 130 просмотров)
KIRILOW вне форума Ответить с цитированием
Старый 12.12.2012, 10:37   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

До ошибки пока не дошли, но вот как можно реализовать заполнение покороче:

Код:
 
for i:=1 to 5 do
  for j:=1 to 10 do
    if J<=i then a[i,j]:=0 else a[i,j]:=random(11)-5;
for i:=6 to 10 do
  for j:=1 to 10 do
    if j<=(11-i) then a[i,j]:=0 else a[i,j]:=random(11)-5;
Элементарная логика подсказывает, что наибольшее количество нулей будет в первом столбце - 10.

А ошибки я что-то не вижу, вроде все правильно. Хотя код так структурирован, что читать невозможно
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.12.2012, 10:45   #3
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
По умолчанию

А как полностью программа пишется?(если можно код)
KIRILOW вне форума Ответить с цитированием
Старый 12.12.2012, 11:06   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
begin
clrscr;
randomize;
for i:=1 to 5 do
  for j:=1 to 10 do
    if J<=i then a[i,j]:=0 else a[i,j]:=random(11)-5;
for i:=6 to 10 do
  for j:=1 to 10 do
    if j<=(11-i) then a[i,j]:=0 else a[i,j]:=random(11)-5;
WriteLn(1);
For j:=1 to 10 do Write(a[1,j],' ');
WriteLn;
for i:=2 to 10 do begin
  s[i]:=0;
  for j:=1 to 10 do
    if a[i,j]=0 then inc(s[i]);
  if s[i]>=10 then begin
    WriteLn(s[i]);
    for j:=1 to 10 do write (a[i,j],' ');
    WriteLn;
  end;
end;
end.
Как-то так. Переменные объявлять не стал - они все из Вашего кода. Программа работает исходя из того, что в первом столбце уже максимальное число нулей
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.12.2012, 11:14   #5
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
По умолчанию

Большое спасибо!!!
KIRILOW вне форума Ответить с цитированием
Старый 12.12.2012, 11:18   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Программа работает исходя из того, что в первом столбце уже максимальное число нулей
Однако исходя из собственного замечания, вынужден заметить, что либо вопрос поставлен изначально не совсем корректно, либо передан сюда в искаженной (или неполной) форме... Либо какой-то другой подвох имеется.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.12.2012, 15:54   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
 uses crt;
const n=5;
var i,j:integer;
a:array[1..n,1..n] of integer;
begin
clrscr;
for i:=1 to n do begin
for j:=1 to n do begin
if (i=j) and (i <=n div 2) then
a[i,j]:=0
else
if (i>=j) and (j<=n-i+1 div 2+1) then
a[i,j]:=0
else a[i,j]:=random(n)+1;
write (a[i,j]:4);
end;
writeln;
end;
end.
Цитата:
0 5 3 1 1
0 0 3 1 2
0 0 0 3 1
0 0 4 1 3
0 4 3 1 2
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 19.12.2012, 11:44   #8
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
По умолчанию

Это только под цифрой 1. А под цифрой два?
KIRILOW вне форума Ответить с цитированием
Старый 19.12.2012, 11:49   #9
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
А под цифрой два?
а чего его искать то
Код:
writeln(1);
и усе
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка if ViktorQQQ PHP 2 22.11.2011 23:44
Проверка AleX_zZ Помощь студентам 3 06.06.2011 09:38
excel.Проверка VBA и проверка функции Будда Помощь студентам 0 14.04.2011 21:10
Проверка veter48 Visual C++ 14 29.08.2010 15:28
Проверка Манжосов Денис :) Общие вопросы Delphi 4 17.10.2008 16:27