misi2
11.06.2022 19:43

Используя рекурсию, запрограммируйте функцию evenSum :: integral a => [a] -> A, которая возвращает сумму тех элементов списка чисел, которые четны (четны). evenSum [1,2,3,4] ~>* 6
evenSum [4,3,2,1] ~>* 6
evenSum [] ~>* 0
Поскольку мы хотим, чтобы вы запрограммировали функцию с рекурсии, в этой задаче вводятся следующие ограничения:

у вас нет фильтра, карта, concatMap, выражения производится, foldl, foldr1, foldl1, молния, zipWith, zip3, zipWith3 и сумма функций (некоторых других аналогичных функций от прелюдии, которые выходят за рамки данной статьи также отключаются);

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Fallens0n
16.05.2022 09:50

TakeInput.py:

В 1 строчку:

[pass if input() == "" else print("OK")] # ничего если пробел иначе OK

На понятном языке:

string = input() # просим пользователя ввести что-то

if string == "": # если он нажал пробел (ничего не ввел)

   pass # ничего не делаем

else: # иначе

   print("OK") # ввыводим OK

PosNeg.py:

В 1 строчку:

[print(1) if int(input()) > 0 else print(-1)] # исправил на > 1 извини опечатка в скрине

На понятном языке:

num = int(input()) # пользователь вводит число и мы его преобразуем в целочисленное

if num > 0: # если число больше 0 то

   print(1)  # выводим 1

else: # иначе

   print(-1) # выводим -1


1. Напишите программу (файл TakeInput.py), которая просит пользователя что-нибудь ввести с клавиатур
0,0(0 оценок)
Ответ:
кхммммм
16.05.2022 09:50
Const
   N = 10;
Var
   A:array[1..N] of integer;
   i,j,M,B,C,p,s:integer;
Begin
Randomize;
{Заполнение и вывод}
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(N);
    Write(' ',A[i]);
    End;
WriteLn;
{Сортировка}
p:=0;
For i:= 1 to N do
    Begin
    M:=i;
    For j:= i+1 to N do
        if A[j]<A[M] then M:=j;
    if M<>i then
       Begin
       B:=A[M];
       A[M]:=A[i];
       A[i]:=B;
       p:=p+1;
       {Вывод каждого шага сортировки}
       Write('Перестановка №',p,':');
       For j:= 1 to N do
           Write(' ',A[j]);
       WriteLn;
       End;
    End;
WriteLn;
Write('Отсортированный массив:');
For i:= 1 to N do
    Write(' ',A[i]);
{Бинарный поиск}
WriteLn;
Write('Введите число: ');ReadLn(C);
m:=N div 2;
i:=1;
j:=N;
s:=0;
While (A[m]<>C)and(i<=j) do
   Begin
   if C > A[m] then i:=m+1
   else j:=m-1;
   s:=s+1;
   m:=(i+j) div 2;
   End;
WriteLn;
if A[m]=C then WriteLn('В массиве есть данное число')
else WriteLn('В массиве нет данного числа');
WriteLn('Кол-во перестановок за сортировку: ',p);
WriteLn('Кол-во сравнений за поиск: ',s);
End.

Примеры:
Исходный массив: 0 4 5 4 1 2 6 7 0 7
Перестановка №1: 0 0 5 4 1 2 6 7 4 7
Перестановка №2: 0 0 1 4 5 2 6 7 4 7
Перестановка №3: 0 0 1 2 5 4 6 7 4 7
Перестановка №4: 0 0 1 2 4 5 6 7 4 7
Перестановка №5: 0 0 1 2 4 4 6 7 5 7
Перестановка №6: 0 0 1 2 4 4 5 7 6 7
Перестановка №7: 0 0 1 2 4 4 5 6 7 7

Отсортированный массив: 0 0 1 2 4 4 5 6 7 7
Введите число: 3

В массиве нет данного числа
Кол-во перестановок за сортировку: 7
Кол-во сравнений за поиск: 4

Исходный массив: 4 4 1 3 4 4 5 0 7 2
Перестановка №1: 0 4 1 3 4 4 5 4 7 2
Перестановка №2: 0 1 4 3 4 4 5 4 7 2
Перестановка №3: 0 1 2 3 4 4 5 4 7 4
Перестановка №4: 0 1 2 3 4 4 4 5 7 4
Перестановка №5: 0 1 2 3 4 4 4 4 7 5
Перестановка №6: 0 1 2 3 4 4 4 4 5 7

Отсортированный массив: 0 1 2 3 4 4 4 4 5 7
Введите число: 5

В массиве есть данное число
Кол-во перестановок за сортировку: 6
Кол-во сравнений за поиск: 2
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота