Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль, двумерный массив (http://www.tehnari.ru/f41/t49374/)

павля 24.03.2011 21:10

Паскаль, двумерный массив
 
дана целочисленная прямоугольная матрица. Определить:
1)количество строк, которые содержат хотя бы один нулевой элемент;
2)номер столбца, в котором находится самая длинная серия одинаковых элементов. (с использованием двухмерного массива)...

помогите пожалуйста:tehnari_ru_942:

Vladimir_S 24.03.2011 23:28

Цитата:

Сообщение от павля (Сообщение 491362)
дана целочисленная прямоугольная матрица. Определить:
1)количество строк, которые содержат хотя бы один нулевой элемент;
2)номер столбца, в котором находится самая длинная серия одинаковых элементов. (с использованием двухмерного массива)...

помогите пожалуйста:tehnari_ru_942:

Извольте. Хотя мне кажется, Вам проще было бы самой написать программу, чем в моей разбираться. Там, в задании, пункт 2 несколько заковыристый.
Код:

CONST
 N=10;
Var
 A,B:ARRAY[1..N,1..N] of BYTE;
 C:ARRAY[1..N] of BYTE;
 bu:Boolean;
 Nzer_ln,A_old,A_new,Max_C,Jmax:BYTE;
 i,j,k,m:Integer;
 Med:Real;
BEGIN
 Randomize;
 For i:=1 to N do
  begin
  For j:=1 to N do
    begin
    A[i,j]:=Random(10);
    Write(A[i,j]:3);
    end;
  WriteLn;
  end;
 WriteLn;
 Nzer_ln:=0;
 For i:=1 to N do
  begin
  bu:=false;
  j:=0;
  repeat
    Inc(j);
    If A[i,j]=0 then bu:=true;
  until bu or (j=N);
  If bu then Inc(Nzer_ln);
  end;
 WriteLn('Number of lines, containing zero, is ',Nzer_ln);
 WriteLn;

 For i:=1 to N do
  For j:=1 to N do
  B[i,j]:=0;

 For j:=1 to N do
  begin
  k:=0;
  i:=1;
  A_old:=A[1,j];
  repeat
    m:=0;
    repeat
    Inc(i);
    Inc(m);
    A_new:=A[i,j];
    until (A_new<>A_old) or (i=N);
    Inc(k);
    B[k,j]:=m;
    If (A_new<>A_old) and (i=N) then
    begin
      Inc(k);
      B[k,j]:=1;
    end;
    If i<N then  A_old:=A_new;
  until i=N;
  end;

 For j:=1 to N do
  begin
  C[j]:=B[1,j];
  For i:=2 to N do if B[i,j]>C[j] then C[j]:=B[i,j];
  end;

 Jmax:=1;
 Max_C:=C[1];
 For j:=2 to N do
  if C[j]>Max_C then
  begin
    Jmax:=j;
    Max_C:=C[j];
  end;

 WriteLn('Number of column, containing the longest (',Max_C,') series is ',Jmax);

 ReadLn;
END.


павля 24.03.2011 23:41

спасибки...тольк..эт нормальнинько что она большая такая?:(...хмь...

Vladimir_S 25.03.2011 09:35

Цитата:

Сообщение от павля (Сообщение 491542)
спасибки...тольк..эт нормальнинько что она большая такая?:(...хмь...

Ну так за чем дело стало? Оптимизируйте! :D:D:D


Часовой пояс GMT +4, время: 04:53.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.