![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет.
Пожалуйста, кому не сложно, помогите со следующими заданиями: #1 Цитата:
#2 Цитата:
#3 Цитата:
Это оставшиеся какие у меня сделать не получилось, как ни пытался. А завтра сдавать :-\ Очень прошу помочь! Заранее благодарю. |
|
#2
|
|||
|
|||
|
1. Обычная задача на массив.
Код:
var
Places : Array[1..30,1..25] Of Integer;
function FreeInRow(ARow : Integer) : Integer;
var
I : Integer;
begin
Result := 25;
For I := 1 To 25 Do
Result := Result - Places[ARow,I];
end;
function FreeTotal : Integer;
var
I : Integer;
begin
Result := 0;
For I := 1 To 30 Do
Result := Result + FreeInRow(I);
end;
function BusyInRow(ARow : Integer) : Integer;
begin
Result := 25 - FreeInRow(ARow);
end;
function BusyTotal : Integer;
begin
Result := 25 * 30 - FreeTotal;
end;
function UnwantedRow : Integer;
var
I : Integer;
N : Integer;
begin
N := 0;
Result := 0;
For I := 1 To 30 Do
If N > FreeInRow(I) Then
Begin
Result := I;
N := FreeInRow(I);
End;
end;
function MaxFreeLineInRow(ARow : Integer) : Integer;
var
I : Integer;
F : Integer;
begin
Result := 0;
F := 0;
I := 1;
While I <= 25 Do
Begin
Case Places[ARow,I] Of
0 : Inc(F);
1 :
Begin
If Result < F Then Result := F;
F := 0;
End;
End;
Inc(I);
End;
end;
function GetMaxLineRow : Integer;
var
I : Integer;
N : Integer;
begin
Result := 0;
N := 0;
For I := 1 To 30 Do
If N < MaxFreeLineInRow(I) Then
Begin
N := MaxFreeLineInRow(I);
Result := I;
End;
end;
function GetMaxLineNumber : Integer;
var
I : Integer;
N : Integer;
begin
Result := 0;
For I := 1 To 30 Do
If Result < MaxFreeLineInRow(I) Then
Begin
Result := MaxFreeLineInRow(I);
End;
end;Набора этих функций достаточно что бы решить первую задачу полностью. Извини, над другими просто лень думать... |
|
#3
|
|||
|
|||
|
Благодарю, с первым разобрался. А со вторым можете помочь кто-нибудь?
|