скрин
Объяснение:
7.
пока условие i <= 6 истинное (да) цикл выполняет действия:
S = S + i
i = i + 1
когда условие i <= 6 становится ложным (нет) цикл прекращается
S = 0 i = 0
i <= 6 (0 <= 6, да)
S = 0 + 0 = 0
i = 0 + 1 = 1
S = 0 i = 1
i <= 6 (1 <= 6, да)
S = 0 + 1 = 1
i = 1 + 1 = 2
S = 1 i = 2
i <= 6 (2 <= 6, да)
S = 1 + 2 = 3
i = 2 + 1 = 3
S = 3 i = 3
i <= 6 (3 <= 6, да)
S = 3 + 3 = 6
i = 3 + 1 = 4
S = 6 i = 4
i <= 6 (4 <= 6, да)
S = 6 + 4 = 10
i = 4 + 1 = 5
S = 10 i = 5
i <= 6 (5 <= 6, да)
S = 10 + 5 = 15
i = 5 + 1 = 6
S = 15 i = 6
i <= 6 (6 <= 6, да)
S = 15 + 6 = 21
i = 6 + 1 = 7
S = 21 i = 7
i <= 6 (7 <= 6, нет) - цикл прекращается
8.
цикл выполняет действия:
P = P * i
i = i + 2 (шаг равен 2 по условию)
пока условие i <= n истинное (да)
когда условие i <= n становится ложным (нет) цикл прекращается
n = 5 i = 1 P = 1
P = 1 * 1 = 1
i = 1 + 2 = 3
i <= n (3 <= 5 да)
n = 5 i = 3 P = 1
P = 1 * 3 = 3
i = 3 + 2 = 5
i <= n (5 <= 5 да)
n = 5 i = 5 P = 3
P = 3 * 5 = 15
i = 5 + 2 = 7
i <= n (7 <= 5 нет) - цикл прекращается
n = 5 i = 7 P = 15
Это без использования файлов
var spisok:array [word] of string; {объявляем массив для хранения фамилий}
n,i,k:word; {n - количество фамилий,i - вс переменная, k - количество фамилий в списке равных 8 или 9 буквам}
begin
write('Введите количество фамилий в списке n = ');readln(n);
for i:=1 to n do begin
write('Введите фамилию ',i,' :');
readln(spisok[i]);
if (length(spisok[i])=9) or (length(spisok[i])=8) then inc(k); {inc(k) - это тоже самое ,что k:=k+1; }
end;
writeln('Количество фамилий в списке состоящих из 8 или 9 букв = ',k);
end.
П.С. если вам потребуется,обработка конкретно через фаил напишите мне, так как в условии вы не указали точно через что!