Контактные данные

Ваш E-mail:

Сообщение

Электронная почта: aleksagolovin@yandex.ru

Сайт: http://александр-головин.рф

Телефон: 89081203770

Ответы на вопросы

Вопрос №1
Не могу правильно решать задания №10 из 1 части.

Ответ

Это задания по обработке массивов. Массивы обрабатываются с помощью "циклов" и "ветвления". В фрагменте программы, представленном выше, создается целочисленный массив из 10 элементов с именем Dat. Числа вводятся в массив путем присваивания. В цикле (на рисунке обведен зеленой рамкой) осуществляется сравнение элементов массива с переменной m. Если элемент массива больше m (Dat(k)>m), то m присваивает его значение. После того, как в цикле переберутся все элементы массива, переменная m станет равна наибольшему из них. Таким образом, в данной программе ищется максимальный элемент массива.
В таким заданиях надо определить тип массива (числовой, текстовый и др.), переменную, которая выводится в качестве ответа, ее начальное значение. Важно понять операции, производимые с массивом.
Также можно найти минимальный элемент массива. На бейсике это будет так:
m=Dat(1)
for k=1 to 10
if Dat(k)< m then m=Dat(k)
next k
print m
А вот в следующей программе ищется минимальный элемент массива, но выводится не его значение, а индекс (номер элемента). В результате будет выведено число 9 (номер минимального элемента)

DIM Dat(10) AS INTEGER
DIM k,m,n AS INTEGER
Dat(1)=16
Dat(2)=20
Dat(3)=20
Dat(4)=41
Dat(5)=14
Dat(6)=21
Dat(7)=28
Dat(8)=53
Dat(9)=12
Dat(10)=35
m = 100
FOR  к=1  TO  10
IF  Dat(k) <  m  THEN
m = Dat(k)
n =  к
ENDIF 
NEXT  к 
PRINT n
В программе ниже подсчитывается число элементов массива, знчения которых меньше или равны m (т.е. 20). В результате будет число 5.
DIM Dat(10) AS INTEGER
DIM k,m,n AS INTEGER
Dat(1)=16
Dat(2)=20
Dat(3)=20
Dat(4)=41
Dat(5)=14
Dat(6)=21
Dat(7)=28
Dat(8)=53
Dat(9)=12
Dat(10)=35
m = 20
n=0
FOR  к=1  TO  10
IF  Dat(k) <=  m  THEN
n = n+1
ENDIF 
NEXT  к 
PRINT n

Вопрос №2
Помогите с решением заданий второй части ОГЭ по информатике. Например:
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число — минимальное число, кратное 7.

Ответ

Количество чисел в последовательности известно, поэтому можно применить цикл с заданным числом повторений. Числа кратные 3 выбираем с помощью "ветвления" и функции "Остаток - mod". Если остаток при делении на 3 равен 0, то число является кратным 3. Здесь же выбираем минимальное число. Получается сложное условие с логической связкой and ("И"-логическое умножение).
if (b mod 3=0) and (b < min) then min:=b.
Это выражение буквально можно прочитать так: Если остаток при делении на 3 равен 0 и b меньше минимального, то минимальное равно b.

program oge5_1; {Поиск минимального числа кратного 3}
var i,a,b,min: integer;
begin
min:=30000;
readln(a); {Ввод количества чисел в последовательности с клавиатуры}
for i:=1 to a do
begin
readln(b); {Ввод  чисел с клавиатуры}
if (b <= 30000)and(b > 0) then
begin
{Выбор чисел кратных трем и поиск минимального}
if (b mod 3=0) and (b < min) then min:=b; 
end
else
begin
writeln ('Введите число больше 0, но не больше 30000');
readln(b);
end;
end;
writeln ('min=',min);
end.