Сразу же очевидно, что Лена - не дочь А.И. (1) 1. Пусть Анна - дочь А.И.(1), тогда Тома должна была танцевать с ним, но этого не может быть, так как А.И. танцевал с Леной. Значит, Анна - не дочь А.И. 2. Пусть Катя - дочь А.И.(1), тогда Анна танцевала с А.И.(1), но этого также не может быть, так как он танцевал с Леной. Катя - не дочь А.И. Значит, остаётся только один вариант - Тома дочь А.И.(1). Следовательно, В.С.(3) танцевал с Томой. 4. Пусть Катя - дочь В.С.(3), тогда с ним танцевала Анна, но этого не может быть, так как с ним танцевала Тома. 5. Пусть Лена - дочь В.С.(3), но тогда с ней должен был танцевать Ф.П., а это невозможно, так как с Леной танцевал А.И.(1). Следовательно, Анна - дочь В.С.(3). Осталось разобраться с Ф.П. и Г.А. 6. Ф.П.(2) - танцевал с дочерью В.С., значит от танцевал с Анной, т.е. он - отец Кати. 7. Соответственно Г.А. - отец Лены и танцевал с Катей. Пары отец-дочь: 1Т 2К 3А 4Л
1.const N=10; type Vector = array [1..N] of integer; var B: vector; max :integer; procedure IntVector(N: integer; var a: vector); begin for var i := 1 to N do a[i] := random(100); end; procedure OutVector(N: integer; a: vector); begin for var i := 1 to N do begin write(a[i]:5); end; end; procedure Srav (a:vector; N,g:integer); begin g := a[1]; for var i:=1 to N do if (g < a[i]) then g:=a[i]; writeln (g); end; Begin IntVector(N, B); writeln; OutVector(N, B ); writeln; Srav(B,N, max); writeln; End. 2. const N = 10; type Vector = array [1..N] of integer; var B: vector; r,v : real; procedure IntVector(N: integer; var a: vector); begin for var i := 1 to N do a[i] := random(20); end; procedure OutVector(N: integer; a: vector); begin for var i := 1 to N do begin write(a[i]:5); end; end; function srednee(a: vector; N: integer): real; begin for var i := 1 to N do begin result := (result + a[i]); end; end; function kolvo(a: vector; g: real): real; begin for var i := 1 to N do if (a[i] < (srednee(a, N)/10)) then result := result + 1; end; begin IntVector(N, B); writeln; OutVector(N, B ); writeln; writeln ((srednee(B, N)/10):5:3); r := kolvo(B, v); writeln(r); end.
Наша i изначально равна 1, условие звучит как:
Пока i<=12, то...
Обратим внимание, что внутри цикла к нашей i постоянно прибавляется 4.
Чтобы наше условие i<=12 нарушилось, к нашей 1 надо 3 раза добавить число 4, таким образом мы понимаем, что наш цикл выполнится 3 раза.
Запускаем цикл первый раз, до его старта i=1, s=0
s:=s+i - на данный момент s=0, i=1, их и подставляем:
s:=0+1 = 1 - Новое значение s, старое значение мы теряем
i:=i+4 -на данный момент i=1, его и подставляем
i:=1+4=5 - старое значение (1) мы теряем
Завершился первый цикл. Проверяем условие запуска второго цикла: i<=12
5<=12 ? Да. Запускаем цикл:
s:=s+i
s:=1+5=6
i:=i+4
i:=5+4=9
Завершилось второе выполнение цикла.
i<=12?
9<=12? Да. Запускаем цикл:
s:=s+i
s:=6+9=15
i:=i+4
i:=9+4=13
Завершилось третье выполнение цикла.
i<=12?
13<=12? Нет! Цикл не запускается, программа продолжает своё выполнение.
В самом конце программы у нас выводится значение s. Её актуальное значение: 15, что и будет являться ответом.