Полное ветвление: if логическое выражение then оператор else оператор;
Неполное ветвление: if логическое выражение then оператор;
Если ветвления вложенные и среди них есть неполные, надо помнить, что каждое else связывается с ближайшим предшествующим ему if, не имеющем else. Например, рассмотрим конструкцию if a>b then if c=d then x:=1 else x:=2; Без упомянутого правила неясно, что имелось в виду: if a>b then if c=d then x:=1 else x:=2; или же if a>b then if c=d then x:=1 else x:=2; Знание правила позволяет разрешить вопрос: имеется в виду первый вариант. А если нужно получить второй - к нашим услугам блок: if a>b then begin if c=d then x:=1 end else x:=2;
6) Если Андрей не живет в Витебске (по пункту 2), то Андрей не может быть химиком (по пункту 5) 7) Тот, кто в Минске - физик, т.к. он не может быть математиком (по пункту 3) и химиком (по пункту 5) 8) Следовательно, Иван - не физик (по пункту 1) 9) Т.к. и Андрей не физик (по пункту 4), то физик - Борис, и живет он в Минске (по нашему выводу из пункта 7) 10) Андрей живет в Харькове, т.к. Борис в Минске (по нашему пункту 9) и т.к. Андрей не может жить в Витебске (пункт 2) 11) Значит, Ивану остается только Витебск, следовательно он - химик (по пункту 5) 12) Андрею достается математика (исходя из всех умозаключений)
Итог: Борис - физик - Минск Андрей - математик - Харьков Иван - химик - Витебск
Объяснение:
const
x = 10;
var
a: array[1..x, 1..x] of integer;
g, k, i, j, sum_g, sum_k: integer;
begin
writeln('Введите номер строки в диапазоне от 0 до ', x, ': ');
readln(k);
writeln('Введите номер стобца в диапазоне от 0 до ', x, ': ');
readln(g);
if (k < 1) or (k > x) or (g < 1) or (g > x) then
writeln('Вы ввели некорректное число!')
else
begin
writeln('Матрица:');
for i := 1 to x do
begin
for j := 1 to x do
begin
a[i, j] := random(0, 9);
if (i = k) then sum_k += a[i, j];
if (j = g) then sum_g += a[i, j];
write(a[i, j], ' ');
end;
writeln;
end;
writeln('Сумма ', k, '-ой строки: ', sum_k);
writeln('Сумма ', g, '-го стобца: ', sum_g);
end;
end.