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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2010, 13:36   #1
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию Паскаль, матрица.

Подскажите , как посчитать количество единиц вверх от заполняемого элемента по текущему столбцу и вниз от заполняемого элемента по предыдущему столбцу.
Например:
0 0 1
0 0 _
0 1
0 0
Итого две единицы.
ai\ekcah^p вне форума Ответить с цитированием
Старый 28.02.2010, 14:20   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

два цикла
1. запоминаем, где мы сейчас находимся i - столбец, j - строка
по предыдущему вниз, значит, столбец будет статическим (i - 1), делаем цикл по строкам (n = j), сравниваем в цикле элементы массива с единицей и инкрементируем какую-нибудь переменную под это дело, например, inc(k)
2. то же самое, только используем статический столбец i и в цикле по строкам пишем вместо to downto, сравниваем элементы, делаем инкремент k

ограничением цикла используем размерность массива
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 28.02.2010, 14:32   #3
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию

Посмотрите, немогу понять как проверить, есть ли у компьютера возможность подключиться.Неправильный результата выдает(
Прога еще недоконца написана, тока до того как мы проверяем условие где 1 ,а где 0.

Каждый элемент текущего столбца (состояние системы в текущий момент времени) заполняем по следующему алгоритму:
– генерируем случайное число xÎ [0,1];
– если в предыдущем столбце этой строки стоит 0 (компьютер не в сети), проверяем, будет ли он подключаться к сети в текущий момент времени следующим образом:
если (– интенсивность подключения i-го компьютера), то считаем, что компьютер пытается подключиться к сети, и увеличиваем счётчик обращений. Теперь надо проверить, есть ли у компьютера возможность подключиться, т.е. есть ли к текущему моменту свободный канал. Для этого надо посчитать количество единиц вверх от заполняемого элемента по текущему столбцу и вниз от заполняемого элемента по предыдущему столбцу.

Код:
Program komp_otkaz;

uses crt;
const
  num_komp:array[1..4] of string = ('1-uy komp    ' ,'2-oy komp    ','3-iy komp    ','5-uy komp    ');
  l:array[1..4] of real =(5.33,6.83,11.17,8.5);
  mu:array[1..4] of real =(1.15,1.34,1.33,1.12);
type matr=array[1..100,1..100] of byte;
var
i,j,n,m,sum_obr,sum_otkaz,t,k:integer;
x:matr;

{------------------ vvod sostoyaniya kanala ----------------------}

Procedure vvod_sostoyaniya;

var
  step:real;
  i,j:integer;

  vremya:array[1..20] of real;
begin
  textcolor(10);
  step:=0;
  write('Vremya ->>   ');
  for i:=1 to 10 do
  begin
    vremya[i]:=step;
    write(' ',vremya[i]:1:2,' ');
    step:=step+0.05;
  end;
  writeln(#13#10);
  textcolor(15);
end;


{--------------------------osnovnaya chasty---------------------------------}
begin
  clrscr;
  randomize;
  textcolor(15);
  writeln('            ========== Veroyatnosty otkaza ============',#13#10);
  writeln('najmite -->>> "Enter"',#13#10#13#10);
  readln;
  m:=10;
  n:=4;
  sum_obr:=0;
  sum_otkaz:=0;
  vvod_sostoyaniya;

  for i:=1 to n do
  begin
    textcolor(10);
    write(num_komp[i]);
    textcolor(15);
     write('  ');
    for j:=1 to 1 do
    begin
      x[i,j]:=0;
      write(x[i,j]);
    end;
    for j:=2 to m do
    begin

      x[i,j]:=random(2); {--------generiruem sluchaynoe chislo------------}

      if (x[i,j]<=l[i]*(0.05)) and (x[i,j-1]=0) then
      begin
        sum_obr:=sum_obr+1;
        {x[i,j]:=1;}
        {write(x[i,j]:6);}
      {end
      else
      begin}
        for t:=i-1 downto 1 do
        begin
          if x[t,j]=1 then
            begin
              x[i,j]:=0;
              sum_otkaz:=sum_otkaz+1;

            end
           else
           x[i,j]:=1;

        end;
        write(x[i,j]:6);


       end
      else if (x[i,j]>l[i]*(0.05)) then
      begin
        x[i,j]:=0;
        write(x[i,j]:6);
      end;
    end;


    writeln;
    writeln;
  end;
  writeln('setchik obraweniy = ',sum_obr);
   writeln('setchik otkazov = ',sum_otkaz);
  write(#13#10#13#10#13#10,'Programma rabotu zakonchila,dlya vyhoda najmite -->>> "Enter"');
  readln;
end.

Последний раз редактировалось ai\ekcah^p; 28.02.2010 в 14:37.
ai\ekcah^p вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, матрица валёна Помощь студентам 4 28.01.2010 15:34
Паскаль - Матрица Dog Помощь студентам 2 02.10.2009 10:09
матрица паскаль telle Помощь студентам 2 28.05.2009 01:01
Матрица (Паскаль) Freia Помощь студентам 2 19.12.2008 21:37
Паскаль. Матрица delphin100 Помощь студентам 3 19.11.2007 21:43