wordCount = int(input("Enter words pairs count:\n"))
wDict = readWordPairs(wordCount)
while True:
word = input("Enter word: ")
if word.lower() == "exit": break
print(f"Synonim: {wDict[word]}" if word in wDict.keys() else "Not found")
input("press any key to close program")
if __name__ == "__main__":
main()
Объяснение:
Если есть вопросы - не стесняйтесь задать в комментариях к ответу. Ошибок, которые вы описали в задании, в данном случае не наблюдается. Единственное, я сделал так, что бы программа не завершалась после первого найденного слова, а запрашивала слова до тех пор, пока пользователь не введёт команду exit
Const l = 5; var a: array[1..l] of integer; d: array[1..l] of real; i, otr, k, m: integer; begin otr:=0; k:=0; m:=0; //считаем массив а for i:=1 to l do begin readln(a[i]); //если ввели положительное число,увеличим перем. otr на 1 if a[i] < 0 then inc(otr); //если ввели отрицательное число,увеличим перем. k на 1 //и к переменной m прибавим элемент if a[i] > 0 then begin inc(k); inc(m, a[i]); end; end; //заполним массив d for i:=1 to l do //если индекс четный, присвоим элементу otr //иначе присвоим среднее арифметическое if i mod 2 = 0 then d[i] := otr else d[i] := m/k; end.
Исходный код (Python 3.8 x64):
class InvalidArgumentException(Exception): pass
class KeyValuePair:
def __init__(self, key, value):
self._key = key
self._value = value
@staticmethod
def FromList(pair: list):
if (len(pair) != 2): raise InvalidArgumentException("List must contain strictly 2 elements for initialize KeyValuePair")
return KeyValuePair(pair[0], pair[1])
@property
def Key(self):
return self._key
@property
def Value(self):
return self._value
def strip(string: str):
return string.strip()
def readWordPairs(wordCount: int, pairSeparator: str = "-") -> dict:
temp = dict()
for i in range(wordCount):
wordPair = KeyValuePair.FromList(list(map(strip, input(f'{i} pair: ').lower().split(pairSeparator
if wordPair.Key in temp.keys():
temp[wordPair.Key] = [temp[wordPair.Key], wordPair.Value]
else:
temp[wordPair.Key] = wordPair.Value
return temp
def main():
wordCount = int(input("Enter words pairs count:\n"))
wDict = readWordPairs(wordCount)
while True:
word = input("Enter word: ")
if word.lower() == "exit": break
print(f"Synonim: {wDict[word]}" if word in wDict.keys() else "Not found")
input("press any key to close program")
if __name__ == "__main__":
main()
Объяснение:
Если есть вопросы - не стесняйтесь задать в комментариях к ответу. Ошибок, которые вы описали в задании, в данном случае не наблюдается. Единственное, я сделал так, что бы программа не завершалась после первого найденного слова, а запрашивала слова до тех пор, пока пользователь не введёт команду exit
var
a: array[1..l] of integer;
d: array[1..l] of real;
i, otr, k, m: integer;
begin
otr:=0; k:=0; m:=0;
//считаем массив а
for i:=1 to l do
begin
readln(a[i]);
//если ввели положительное число,увеличим перем. otr на 1
if a[i] < 0 then
inc(otr);
//если ввели отрицательное число,увеличим перем. k на 1
//и к переменной m прибавим элемент
if a[i] > 0 then
begin
inc(k);
inc(m, a[i]);
end;
end;
//заполним массив d
for i:=1 to l do
//если индекс четный, присвоим элементу otr
//иначе присвоим среднее арифметическое
if i mod 2 = 0 then
d[i] := otr
else
d[i] := m/k;
end.