Задача 1.
Dim M, N, J, I As Integer
' По числу клеток на каждой стороне шахматной доски, номерам ряда, столбца и цвета клетки определить, клеток какого цвета больше
M = Val(InputBox("Сколько клеток на одной стороне доски?"))
N = Val(InputBox("Сколько клеток на второй стороне доски?"))
I = Val(InputBox("В каком ряду находится клетка?"))
J = Val(InputBox("В каком столбце находится эта клетка"))
C = Val(InputBox("Какой цвет этой клетки? Белый - 1, чёрный - 0"))
M1 = Int(M / 2) * 2
N1 = Int(N / 2) * 2
I1 = Int(I / 2) * 2
J1 = Int(J / 2) * 2
'Если на каждой стороне чётное количество клеток, белых и чёрных клеток поровну
If M = M1 Or N = N1 Then
Print "Белых и чёрных клеток поровну, equal"
Else
'Если номер ряда и номер столбца чётные, такой цвет будет и в первом углу
'Значит, клеток такого цвета будет больше.
If I = I1 And J = J1 Then
If C = 1 Then
Print "Больше белых клеток, white"
Else
Print "Больше чёрных клеток, black"
End If
End If
'Если номер ряда чётный, а столбец нечётный, в углу будет клетка другого цвета
'Значит, клеток другого цвета будет больше.
If I = I1 And J J1 Then
If C = 1 Then
Print "Больше чёрных клеток, black"
Else
Print "Больше белых клеток, white"
End If
End If
'Если номер ряда нечётный, а столбец чётный, в углу будет клетка другого цвета
If I I1 And J = J1 Then
If C = 1 Then
Print "Больше чёрных клеток, black"
Else
Print "Больше белых клеток, white"
End If
End If
'Если номер ряда нечётный, и столбец нечётный, в углу будет клетка этого цвета
If I I1 And J J1 Then
If C = 1 Then
Print "Больше белых клеток, white"
Else
Print "Больше чёрных клеток, black"
End If
End If
End If
Задача 2.
На столе лежат N монеток. Некоторые из них лежат вверх номиналом, другие гербом. Определите число монеток, которые лежат вверх номиналом.
Формат входных данных
В компьютер сначала ввести число всех монеток N, затем ввести для каждой монеты 1, если монетка лежит вверх номиналом или 0, если монетка лежит вверх гербом.
Решение:
Dim A(), S As Integer
' Вводим число монет и задаём массив А() из стольких элементов
N=Val(InputBox(“Сколько всего монет”))
ReDim M(N)
‘ Вводим номиналы
For I = 1 To N
A(I)= Val(InputBox(“Введите 1 или 0 ”))
Next I
' переменной S присваиваем значение 0
S=0
For I=1 To N
If A(I)=1 Then
‘ если элемент массива равен 1, к переменной S прибавляем 1
S=S+1
Next I
Print “Монет номиналом вверх”, S
Задача 3. (Об изобретателе шахмат).
N = Val(InputBox("Введите число клеток на одной стороне доски"))
V = N * N
S = 0
K = 1
For I = 1 To V
S = S + K
K = K * 2
Next I
Print S
End Sub
Пример программы на языке Паскаль:
Задача 4.
Program Falsh;
{Из нескольких монет одна фальшивая. Найти её номер.}
uses crt; {*для удобства ввода данных*}
const n=5; {*переменной n обозначаем количество монет*}
var i: integer;
Min, Max, Raz : real;
var m: array [1..n] of real;
begin
for I:=1 to n do
begin
writeln ('сколько составляет вес',i,'монеты');
read(m[i])
end;
if m[1]=m[2] then begin
for i:=3 to n do
begin
If m[1]m[i] then writeln ('номер фальшивой', i);
If m[i]фальшивая легче остальных');
If m[i]m[1] then writeln ('фальшивая тяжелее остальных')
end
end
else begin
if m[1]=m[3] then begin
writeln ('номер фальшивой 2');
if m[2]фальшивая легче остальных')
else writeln ('фальшивая тяжелее остальных');
end
else begin
writeln ('номер фальшивой 1');
if m[1]
else writeln ('фальшивая тяжелее остальных')
end
end
end.