Объясните , что значит в этой программе "n", а что "k". Задача по которой написала: Дана последовательность чисел, сначала вводятся количество цифр, а затем сами числа. Найти в этой последовательности максимальное число кратное 3.
Dim msg As String msg = InputBox("Введите строку") Dim s As Integer
If msg.IndexOf("K") > -1 Then s += 1 If msg.IndexOf("E") > -1 Then s += 1 If msg.IndexOf("Y") > -1 Then s += 1 If s = 3 Then MsgBox("YES") Else MsgBox("NO")
Pascal.
program chislo; var x : integer; msg : string; begin write('Введите строку: '); readln(msg); if pos(msg,'K')>0 then X:=X+1; if pos(msg,'E')>0 then X:=X+1; if pos(msg,'Y')>0 then X:=X+1; if (x=3) then writeln('YES') else writeln('NO') end.
Мы ищем максимальное число, кратное 3. Но в данной программе нет проверки на максимальное число.
Если мы введём кратные числа трём в таком порядке: 24,9,3,
то мы получим ответ 3. Но оно не будет максимальным кратным, т.к 24 должно быть максимальным.
Внёс изменения в программу, добавив переменную max, которая не использовалась.
var n,k,max:integer;
begin
k := 0;
repeat
write('Введите числа: ');
readln(n);
if (n mod 3=0) and (n>max) then
k := n;
max:=n
until n=0;
writeln('Максимальное число кратное 3: ', k);
end.
n - вводимые числа, которые проверяются на кратность 3.
k - переменная, в которую записывается число n, которое кратное 3.
max - записывает в себя максимальное число, кратное трём. В дальнейшем, чтоб цикл не допускал кратные числа n, которые меньше max.