1) var i,a:Integer; begin a:= 1; while a<>0 do begin Read(a); i+=a; end; WriteLn(i=10); end.
2) Можно через double. Но после 170! уже бесконечность. var n:Integer; var b:double; begin b:=1; Read(n); for var i:= 1 to n do b*=i; WriteLn('factorial '+n+' = '+b); end.
3) Работает как и с числами так и со строками. var arr:array of char; var a:String; var first,last:Integer; begin Read(a); arr:= a.ToCharArray(); for var i:= 0 to arr.Length-1 do begin first:=Pos(arr[i], a); last:=Pos(arr[i], a,first+1); if (first>0) and (last > 0) and (first<>last) then begin first:=99; break; end; end; if first = 99 then WriteLn('Содержит. Это число '+arr[last-1]) else WriteLn('Несодержит.'); end.
Программа:
X = [int(input("Введите элемент: ")) for _ in range(10)]
print("\n")
Y = [int(input("Введите элемент: ")) for _ in range(10)]
S = [el_X for el_X in X for el_Y in Y if el_X == el_Y]
print(S)
Если программа выше сложна для понимания, предложу её в другом виде:
X = []
Y = []
for _ in range(10):
num = int(input("Введите цифру: "))
X += [num] # То же, что и X.append(num)
print("\n")
for _ in range(10):
num = int(input("Введите цифру: "))
Y += [num] # То же, что и Y.append(num)
S = []
for el_X in X:
for el_Y in Y:
if el_X == el_Y:
S += [el_X]
print(S)