Пожалуйста, и c постусловием, и с предусловием.
Sub slot()
Dim c As Double
Dim c1 As Double
Dim c2 As Double
Dim c3 As Double
Dim z As Integer
Dim b As Integer
Dim T As Integer
Dim n As Integer
n = 100 ' nado golov
c = 100 ' vsego deneg
c1 = 10 ' za bika
c2 = 5 'za korovy
c3 = 0.5 'za telenka
z = 0
Do
b = 0
Do While b <= c / c2
T = 0
Do While T <= c / c3
If z + b + T = n Then
If z * c1 + b * c2 + T * c3 = c Then
MsgBox ("bikov: " & z & "korov: " & b & "Teliat: " & T)
End If
End If
T = T + 1
Loop
b = b + 1
Loop
z = z + 1
Loop Until z > c / c1
End Sub
Ответ:
766
Объяснение:
Количество символов, которое кодируется первым байтом -
так как единственная комбинация, не кодирующая ничего уникального - 11111111. Такая же ситуация со вторым байтом - 255 символов.
Третим байтом можно закодировать 256 символов, так как нет ограничения на существование нуля в нем.
Итого
вот код:
uses crt;
var a:array[1..10] of real;
i:integer;
begin
for i:=1 to 10 do
begin
a[i]:=random*9 - 4;
end;
for i:=3 to 7 do
begin
writeln('a[',i,']=',a[i]:0:2);
end;
writeln('Press enter');
readln;
end.
Пояснения:
у тебя в условии промежуток [4,5) означает что 5 нельзя включать (скорее всего ошибка).
Есл это не ошибка переписывания условия , то добавляется еще одна линия, и программа получается:
uses crt;
var a:array[1..10] of real;
i:integer;
begin
randomize;
for i:=1 to 10 do
begin
a[i]:=random*9 - 4;
if(a[i]=5) then a[i]:=4.9999;
end;
for i:=3 to 7 do
begin
writeln('a[',i,']=',a[i]:0:2);
end;
writeln('Press enter');
readln;
end.
Обрати внимание, я еще добавил randomize; команду - она гарантирует, что случайные числа будут именно случайными
Возможно западает какая-нибудь клавиша на клавиатуре или мышке (если были механические повреждения или что-нибудь проливали). Либо может кто-то шутить, подключившись через программу удаленного управления, например.