Предмет: Информатика
ГДЗ Учебник по Информатике 8 класс Босова

Решение заданий к параграфу 3.4 «Программирование разветвляющихся алгоритмов» | Информатика 8 класс Босова


Задание 2. Как на языке Паскаль записывается полное и неполное ветвление?

Полное ветвление (Выполняются действия как для ветка «да», так и для ветки «нет»):
if <условие> then <оператор_1> else <оператор_2>

Неполное ветвление (Выполнение действия только для ветки «да»):
if <условие> then <оператор>


Задание 3. Является ли условным оператором следующая последовательность символов?

а) if x<y then x:=0 else read (y) – ✅ ДА является

б) if x>=y then x:=0; y:=0 else write (z) – НЕ является
Верный вариант: if x>=y then begin x:=0; y:=0 end else write (z)

в) if x<y<z then a:=a+1 – НЕ является
Верный вариант: if (x<y) and (y<z) then a:=a+1


Задание 4. Что такое составной оператор? Для чего он используется в условном операторе?

Составным оператором является конструкция вида:

begin <последовательность операторов> end

которая может стоять в условном операторе и после then и после else. 
Такая конструкция используется тогда, когда нужно выполнить последовательность из нескольких операторов.


Задание 5. Используя составной оператор, упростите следующий фрагмент программы:
if a>b then c:=1;
if a>b then d:=2;
if a<=b then c:=3;
if a<=b then d:=4

if a>b then begin c:=1; d:=2 end else begin c:=3; d:=4 end


Задание 6. Дано натуральное трехзначное число. Напишите программу, которая определяет:

а) есть ли среди цифр данного числа одинаковые;

program z_6a;
var num, a, b, c: integer; //Исходные данные
BEGIN
  write ('Введите трёхзначное число: ');
  read (num);
  a:= num div 100; num:=num-100*a;
  b:= num div 10; num:=num-10*b;
  c:= num;
  if (a=b) or (a=c) or (b=c) then
    write ('Есть одинаковые цифры')
    else
    write ('Нет одинаковых цифр')
END.

б) является ли данное число «перевертышем», то есть числом, десятичная запись которого читается одинаково слева направо и справа налево.

program z_6b;
var num, a, b, c: integer; //Исходные данные
BEGIN
  write ('Введите трёхзначное число: ');
  read (num);
  a:= num div 100; num:=num-100*a;
  b:= num div 10; num:=num-10*b;
  c:= num;
  if a=c then
    write ('Перевертыш')
    else
    write ('НЕ перевертыш')
END.

Задание 7. Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.

Программа будет запрашивать координаты двух точек. Следующим её шагом будет определение расстояния от начала координат до точек. Треугольник прямоугольный, координаты точки равны двум ее катетам. По теореме Пифагора найдем гипотенузы двух треугольников и сравним их. Чем меньше гипотенуза, тем ближе точка находится к началу координат.

program z_7;
var xA, yA, xB, yB: integer; A, B: real;
BEGIN
  writeln ('Координаты 1-ой точки: ');
  write ('x=');
  read (xA);
  write ('y=');
  read (yA);
  writeln ('Координаты 2-ой точки: ');
  write ('x=');
  read (xB);
  write ('y=');
  read (yB);
  A:=sqrt(sqr(xA)+sqr(yA));
  B:=sqrt(sqr(xB)+sqr(yB));
  if A=B then
    write ('Точки равноудалены')
    else if A>B then
    write ('2-я точка ближе')
    else 
      write ('1-я точка ближе')
END.

Задание 8. Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).

program z_8;
var a, b, c: integer;
BEGIN
  write ('a>>');
  readln(a);
  write ('b>>');
  readln(b);
  write ('c>>');
  readln(c);
  //Проверяем, существует ли такой треугольник
  if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then begin  
  if (a=b) and (a=c) and (b=c) then writeln ('Треугольник равносторонний')
  else if (a<>b) and (a<>c) and (b<>c) then writeln('Треугольник разносторонний')
  else writeln ('Треугольник равнобедренный');
  end
  else
    writeln ('Треугольник со сторонами ', a,', ', b,', ', c,' не существует');
END.

Задание 9. Имеются данные о количестве полных лет трех призеров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призера.

program z_9;
var a, b, c: integer;
BEGIN
  write ('Возраст первого призёра: ');
  readln(a);
  write ('Возраст второго призёра: ');
  readln(b);
  write ('Возраст третьего призёра: ');
  readln(c);
  if a<b then
    if a<c then write ('1-й призёр самый младший')
    else write ('3-й призёр самый младший')
    else
    if b<c then write ('2-й призёр самый младший')
    else write ('3-й призёр самый младший')
END.

Задание 10. Напишите программу, определяющую, лежит ли точка A на прямой y=kx+l, над ней или под ней.

Сначала вводим данные для переменных: k, l, xA, yA (два последних это координаты точки A). Затем в уравнение y=kx+l подставим вместо «x» значение переменной xA и найдем значение «y» при заданной xA. Далее мы сравниваем значение «y» и «yB» и делаем вывод, где находится точка относительно прямой, на ней, над ней или под ней.

program z_10;
var y, k, l, xA, yA: integer;
BEGIN
  write ('k>>'); read(k);
  write ('l>>'); read (l);
  write ('xA>>'); read(xA); 
  write ('yA>>'); read(yA);
  y:= k*xA+l;
  if yA=y then writeln('Точка лежит НА прямой')
  else if yA>y then writeln('Точка лежит НАД прямой')
  else writeln('Точка лежит ПОД прямой')
END.

Задание 11. Напишите программу, которая производит обмен значений числовых переменных x и y, если x больше y.

program z_11;
var x, y, t: integer;
BEGIN
  write ('x>>'); readln(x);
  write ('y>>'); readln (y);
  if x>y then begin
    t:=x;
    x:=y;
    y:=t;
  end;
  writeln ('x=', x, '; y=', y)
END.

Задание 12. Дан условный оператор:
if a<5 then c:=1
else if a>5 then c:=2
else c:=3
Какое значение имеет переменная «a», если в результате выполнения условного оператора переменной «c» присваивается значение 3?

В нашем случае сработало третье условие. В первой условии значение переменной «a» меньше 5, а во втором больше 5. Значит переменная «а» равна 5.

Ответ: a=5


Задание 13. Напишите программу, вычисляющую значение функции:

program z_13;
var x, y: integer;
BEGIN
  write ('x>>'); readln(x);
  if x<0 then y:=-1
  else if x=0 then y:=0
  else y:=1;
  writeln ('y=', y)
END.

Задание 14. Составьте программу для решения задачи №21 к параграфу 2.4 (определение дня недели).

program z_14;
var chislo: integer; y: string;
BEGIN
  writeln('Введите число января 2011 года:');
  readln(chislo);
  writeln (chislo, ' января 2011 года: ');
  chislo:=chislo mod 7;
  if chislo=3 then y:=('Понедельник');
  if chislo=4 then y:=('Вторник');
  if chislo=5 then y:=('Среда');
  if chislo=6 then y:=('Четверг');
  if chislo=0 then y:=('Пятница');
  if chislo=1 then y:=('Суббота');
  if chislo=2 then y:=('Воскресенье');
  writeln (y)
END.

Задание 15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введенным координатам двух полей (k, l) и (m, n) определяет, имеют ли эти поля один цвет.

program z_15;
var k, l, m, n: integer;
BEGIN
  writeln('Координаты 1-го поля:');
  readln (k, l);
  writeln('Координаты 2-го поля:');
  readln (m, n);
  if (k+l) mod 2 = (m+n) mod 2
  then writeln ('Поля одного цвета')
  else writeln ('Поля разного цвета')
END.

Сумма координат соседних (т.е. имеющих общую сторону) полей на шахматной доске отличается на 1. Следовательно, если сумма координат некоторого поля является четным числом, то сумма координат всех его соседних полей будет нечетным числом и наоборот. Вместе с тем соседние поля всегда имеют разный цвет.


Задание 16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а – случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.

program z_16;
var a, b: integer;
BEGIN
  randomize;
  a:=random(100);
  writeln ('Дополните до 100 число ', a);
  readln (b);
  if a+b=100 then writeln ('Молодец!')
  else writeln ('Ошибка!')
END.

Решение заданий из учебника Информатика 8 класс Босова, параграф 3.4 Программирование разветвляющихся алгоритмов. Условный оператор, составной оператор, многообразие способов записи ветвлений, многообразие способов записи ветвлений.

Поделиться
Выберите параграф или тестовое задание:

Глава 1. Математические основы информатики

1.1 Системы счисления 1.2 Представление чисел в компьютере 1.3 Элементы теории множеств и комбинаторики 1.4 Элементы алгебры логики

Глава 2. Основы алгоритмизации

2.1 Алгоритмы и исполнители 2.2 Способы записи алгоритмов 2.3 Объекты алгоритмов 2.4 Основные алгоритмические конструкции

Глава 3. Начала программирования

3.1 Общие сведения о языке программирования Паскаль 3.2 Организация ввода и вывода данных 3.3 Программирование линейных алгоритмов 3.4 Программирование разветвляющихся алгоритмов 3.5 Программирование циклических алгоритмов

Интерактивные тесты из Электронного приложения к учебнику «Информатика» для 8 класса (https://lbz.ru/metodist/authors/informatika/3/eor8.php)

§ 1.1§ 1.2§ 1.3§ 1.4Глава 1§ 2.1§ 2.2§ 2.3§ 2.4Глава 2§ 3.1§ 3.2§ 3.3§ 3.4§ 3.5Глава 3