Вариант 2 Самостоятельная работа 23 ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
1. Для каждой записи в левом столбце подберите соответствующее ей составное условие из правого столбца.
2. Квадраты при игре в крестики-нолики пронумерованы, как показано на рисунке:
1 2 3
4 5 6
7 8 9
Заданы номера трёх квадратов: N1, N2, N3, причём N1 < N2 < N3. Напишите программу, проверяющую, лежат ли квадраты на одной горизонтали.
var
N1, N2, N3: integer;
begin
write('Введи N1 < N2 < N3 > > ‘);
readln(N1, N2, N3);
if(N1 mod 3 = 1) and (N2-N1 = 1)and (N3-N2=1)
then writeln(‘На одной горизонтали’)
else writeln(‘Не на одной горизонтали’)
end.
Окно вывода:
Введи N1 < N2 < N3 > > 1 8 9
Не на одной горизонтали
Введи N1 < N2 < N3 > > 7 8 9
На одной горизонтали
Для издания 2025 года:
3. Дополнительное задание. На изучаемом языке программирования запишите программу преобразования исходных данных в соответствии с алгоритмом, представленным блок-схемой.
Паскаль
var
a: integer;
begin
write(‘Введи целое число a > > ‘);
readln(a);
if a > 0 then a := a + 1
else if a=0 then a:=18 else a:=a-6;
writeln(‘a= ‘, a);
end.
Python
print(‘Введи a > > ‘)
a=int(input())
if (a > 0):
a+=1
else:
if a==0: a=18
else: a=a-6
print(‘a=’,a)
Для издания 2018 года:
3. Сколько ошибок допущено в программе?
program zadacha;
var a: integer;
begin
writein(‘введите целое число а ‘)
readln(а);
if а > 0 then а:=а+1;
writein(‘Полученное число ‘ а)
end.
Найдите все ошибки и исправьте их. Опишите на естественном языке или с помощью блок-схемы алгоритм преобразования исходных данных, используемый в данной программе.
var
a: integer;
begin
write(‘Введи целое число a > > ‘);
readln(a);
if a > 0 then
a := a +1;
writeln(‘Полученное число ‘,a);
end.
Ошибка: нет запятой в выводе результата после пояснения.
Если число положительное, его значение увеличивается на 1, в противном случае не изменяется.
Выполнение
1. Соответствие условий:
| Левый столбец | Правый столбец |
|---|---|
| x кратно 5 | x mod 5 = 0 |
| 2 < x < 5 | (x > 2) and (x < 5) |
| x ∈ [−10; 10] | (x >= −10) and (x <= 10) |
2. Квадраты лежат на одной горизонтали, если номера идут подряд и первый номер в строке имеет остаток 1 при делении на 3:
var
N1, N2, N3: integer;
begin
write(‘Введи N1<N2<N3>>’);
readln(N1, N2, N3);
if (N1 mod 3 = 1) and (N2 — N1 = 1) and (N3 — N2 = 1)
then writeln(‘На одной горизонтали’)
else writeln(‘Не на одной горизонтали’);
end.
Проверка:
- $$1, 8, 9$$ — не на одной горизонтали;
- $$7, 8, 9$$ — на одной горизонтали.
3. Для издания 2025 года программа преобразует число так:
- если $$a > 0$$, то $$a := a + 1$$;
- если $$a = 0$$, то $$a := 18$$;
- если $$a < 0$$, то $$a := a — 6$$.
var
a: integer;
begin
write(‘Введи целое число a >>’);
readln(a);
if a > 0 then
a := a + 1
else if a = 0 then
a := 18
else
a := a — 6;
writeln(‘a = ‘, a);
end.
Примеры:
| Входные данные | Выходные данные |
|---|---|
| $$-10$$ | $$-16$$ |
| $$0$$ | $$18$$ |
| $$10$$ | $$11$$ |
Для издания 2018 года в программе допущены ошибки:
- неверно написано writein вместо writeln;
- в записи readln(а) и далее используется русская буква а вместо латинской a;
- после if a > 0 then стоит лишняя точка с запятой;
- в строке вывода пропущена запятая: нужно writeln(‘Полученное число ‘, a).
Исправленная программа:
var
a: integer;
begin
write(‘Введи целое число a >>’);
readln(a);
if a > 0 then
a := a + 1;
writeln(‘Полученное число ‘, a);
end.
Алгоритм: если число положительное, его значение увеличивается на 1, в противном случае не изменяется.
Примеры:
| Входные данные | Выходные данные |
|---|---|
| $$-10$$ | $$-10$$ |
| $$0$$ | $$0$$ |
| $$10$$ | $$11$$ |