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

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

toxa777 01.03.2012 19:36

Двумерные массивы
 
1.Дан двумерный массив. Найти номера последних положительных элементов каждой строки.
2.Дан двумерный массив. Вставьте первую строку между средними строками.
3.Для каждого из пяти автобусных маршрутов известно количество проданных билетов на каждый из семи рейсов. В каждом автобусе K мест. Какие из рейсов на каждом маршруте надо исключить из расписания, чтобы маршруты стали рентабельными. (Маршрут является рентабельным, если общее число проданных на него билетов превосходит 75% от общего числа мест во всех автобусах маршрута).

Vladimir_S 01.03.2012 19:57

Подождите чуток, экстрасенсы в сентябре обещали заглянуть, тогда и узнаем насчет языка программирования. Ничего, полгода быстро пролетят.

toxa777 01.03.2012 20:41

Паскаль=):tehnari_ru_203:

Vladimir_S 02.03.2012 10:34

Цитата:

Сообщение от toxa777 (Сообщение 692258)
Паскаль=):tehnari_ru_203:

Ну тогда-то что... Пожалуйста:
Код:

Var
 M:Array[1..9,1..12] of Integer;
 i,j,j_pos:Byte;
Begin
 Randomize;
 Writeln('Initial array:');
 For i:=1 to 9 do
  begin
  For j:=1 to 12 do
    begin
    M[i,j]:=50-Random(100);
    write(M[i,j]:4);
    end;
  writeln;
  end;
 writeln;
 writeln('Numbers of last positive elements:');
 For i:=1 to 9 do
  begin
  write(i,' line:  ');
  j_pos:=0;
  For j:=1 to 12 do
    if M[i,j]>0 then j_pos:=j;
  If j_pos=0 then
    writeln('no')
  else
    writeln(j_pos:2);
  end;
 readln
End.

Код:

Type
 Vector=Array[1..12] of Byte;
Var
 M:Array[1..7] of Vector;
 D:Vector;
 i,j:Byte;
Begin
 Randomize;
 Writeln('Initial array:');
 For i:=1 to 7 do
  begin
  For j:=1 to 12 do
    begin
    M[i][j]:=Random(100);
    write(M[i][j]:4);
    end;
  writeln;
  end;
 writeln;
 D:=M[1];
 For i:=2 to 4 do
  M[i-1]:=M[i];
 M[4]:=D;
 Writeln('Changed array:');
 For i:=1 to 7 do
  begin
  For j:=1 to 12 do
    write(M[i][j]:4);
  writeln;
  end;
 readln
End.

Код:

Type
 Run=Array[1..7] of Byte;
Const
 K=40;
Var
 Tickets:Array[1..5] of Run;
 Tick,Num_of_Run:Run;
 i,j,d:Byte;
 Sum_expect,Sum,m:Word;
Begin
 Randomize;
 Writeln('Tickets sold:');
 For i:=1 to 5 do
  begin
  For j:=1 to 7 do
    begin
    Tickets[i][j]:=Random(K+1);
    write(Tickets[i][j]:4);
    end;
  writeln;
  end;
 writeln;
 Writeln('Runs to be excluded:');
 For i:=1 to 5 do
  Begin
  For j:=1 to 7 do Num_of_Run[j]:=j;
  write('Rout N',i,': ');
  for m:=1 to 7 do
    for j:=1 to 7-m do
    if Tickets[i][j]>Tickets[i][j+1] then
      begin
      d:=Tickets[i][j+1];
      Tickets[i][j+1]:=Tickets[i][j];
      Tickets[i][j]:=d;
      d:=Num_of_Run[j+1];
      Num_of_Run[j+1]:=Num_of_Run[j];
      Num_of_Run[j]:=d;
      end;
  m:=0;
  Repeat
    Sum:=0;
    Inc(m);
    Sum_expect:=(7-m+1)*K;
    for j:=m to 7 do Inc(Sum,Tickets[i,j]);
    If Sum/Sum_expect<=0.75 then
    if m=1 then write(Num_of_Run[m])
    else write(', ',Num_of_Run[m]);
  Until (Sum/Sum_expect>0.75) or (m=7);
  Writeln;
  End;
 Readln
End.



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

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