Ошибка 1. Объявлен массив с типом данных значений string, хотя нужно заполнять массив целыми числами, а потом находить их сумму. Необходимо заменить тип string на integer.
Ошибка 2. Цикл не выполнится ни один раз, т.к. неправильно задан параметр. Необходимо либо написать конструкцию так: For i:=n downto 1 do , либо For i:=1 to n do .
Исправленный код:
Program summa;
Var a: array[1..100] of integer;
i, n: integer;
s: integer;
Begin
Write ('n='); Readln (n);
For i:=1 to n do
begin
write ('введите число');
readln (a[i]);
s:=s+a[i];
end;
writeln('сумма элементов равна ',s);
End.
1. Можем написать простую функцию для этого:
def find_2nd(string):
return string.find('с', string.find('с') + 1)
Остается только вызвать и она вернет индекс второго вхождения
2.
найти номер пробела, разделяющего фамилию и имя, и записать его в переменную p;
Напишем простой код для этого:
s = input()
p = -1
for i in range(len(s)):
if s[i] == ' ':
p = i
break
print(p)
выделить из строки фамилию и записать её в переменную fam;
Будем считать, что фамилия всегда состоит из 1 слова
s = input().split()
fam = s[0]
выделить из строки имя и записать его в переменную name;
Аналогично фамилии
s = input().split()
name = s[1]
приписать перед фамилией первую букву имени, точку и пробел.
s = input().split()
print(s[1][0]+'.' + ' ' + s[0] + ' ' + s[1])