{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Списки"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array2.** Дано целое число $n$ (> 0). Сформировать и вывести целочисленный массив размера $n$, содержащий степени двойки от первой до $n$-й: 2, 4, 8, 16, … ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array3.** Дано целое число $n$ (> 1), а также первый член $A$ и разность $D$ арифметической прогрессии. Сформировать и вывести массив размера $n$, содержащий $n$ первых членов данной прогрессии:\n",
    "\n",
    "A,    A + D,    A + 2·D,    A + 3·D,    … ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array8.** Дан целочисленный массив размера $n$. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество $k$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array9.** Дан целочисленный массив размера $n$. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество $k$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array12.** Дан массив $a$ размера $n$ ($n$ — четное число). Вывести его элементы с четными номерами в порядке возрастания номеров: $a_2$, $a_4$,..$a_n$. Условный оператор не использовать."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a = [58, 38, 52, 5, 71, 57, 50, 74, 83, 59, 57]\n",
      "38 5 57 74 59 "
     ]
    }
   ],
   "source": [
    "# Помним, что второй по счету элемент списка в Python имеет индекс 1, \n",
    "# т.е. на самом деле нужно выводить элементы с нечетными индексами\n",
    "import random\n",
    "# Дано\n",
    "n = 11\n",
    "a = [random.randint(1,100) for i in range(n)]\n",
    "print(f'a = {a}')\n",
    "\n",
    "# решение\n",
    "for i in range(1,n,2):\n",
    "    print(a[i], end=' ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array13.** Дан массив $a$ размера $n$ ($n$ — нечетное число). Вывести его элементы с нечетными номерами в порядке убывания номеров: $a_n$,$a_{n-2}$,...,$a_1$. Условный оператор не использовать."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array16.** Дан массив $a$ размера $n$. Вывести его элементы в следующем порядке:\n",
    "\n",
    "$a_1$,    $a_n$,    $a_2$,    $a_{n-1}$,    $a_3$,    $a_{n-2}$,    … ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array21.** Дан массив размера $n$ и целые числа $k$ и $L$ ($1 ≤ k ≤ L ≤ n$). Найти среднее арифметическое элементов массива с номерами от $k$ до $L$ включительно."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array22.** Дан массив размера $n$ и целые числа $k$ и $L$ ($1 < k ≤ L ≤ n$). Найти сумму всех элементов массива, кроме элементов с номерами от $k$ до $L$ включительно."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Введите размер массива10\n",
      "Введите числа k,l такие что 1<k<l<n2,6\n",
      "a = [-5, 0, -10, -9, 1, -2, -10, 0, -9, -2]\n",
      "элементы массива кроме элементов с номерами от 2 до 6:  [-5, -10, 0, -9, -2]\n",
      "сумма всех указанных элементов:  -26\n"
     ]
    }
   ],
   "source": [
    "n = int(input(\"Введите размер массива\"))\n",
    "k,l=eval(input(\"Введите числа k,l такие что 1<k<l<n\"))\n",
    "a = [random.randint(-10,10) for i in range(n)]\n",
    "print(f'a = {a}')\n",
    "b=a[:k-1]+a[l:]\n",
    "print(f'элементы массива кроме элементов с номерами от {k} до {l}: ',b)\n",
    "print(f'сумма всех указанных элементов: ',sum(b))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array23.** Дан массив размера $n$ и целые числа $k$ и $L$ ($1 < k ≤ L ≤ n$). Найти среднее арифметическое всех элементов массива, кроме элементов с номерами от $k$ до $L$ включительно."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array26.** Дан целочисленный массив размера $n$. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array28.** Дан массив $a$ размера $n$. Найти минимальный элемент из его элементов с четными номерами: $a_2$, $a_4$, $a_6$,..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array30.** Дан массив размера $n$. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Введите размер массива10\n",
      "a = [-9, 6, 1, 7, 4, 6, -6, 5, -8, -5]\n",
      "2\n",
      "4\n",
      "6\n",
      "8\n",
      "количество элементов, больших своего правого соседа 4\n"
     ]
    }
   ],
   "source": [
    "n = int(input(\"Введите размер массива\"))\n",
    "a = [random.randint(-10,10) for i in range(n)]\n",
    "print(f'a = {a}')\n",
    "count=0\n",
    "for i in range(n-1):\n",
    "    if a[i]>a[i+1]:\n",
    "        print(i+1)\n",
    "        count+=1;\n",
    "print(\"количество элементов, больших своего правого соседа\", count)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array32.** Дан массив размера $n$. Найти номер его первого локального минимума (локальный минимум — это элемент, который меньше любого из своих соседей)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String42.** Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Введите строку состоящую из русских слов, набранную заглавными буквами   Я ТЫ ВЫ ЕЕЕ АЛИСА    ЖЖЕТ   УХУ\n",
      "4\n"
     ]
    }
   ],
   "source": [
    "s=input(\"Введите строку состоящую из русских слов, набранную заглавными буквами   \")\n",
    "print(len([word for word in s.split()  if word[0]==word[len(word)-1]]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String43.** Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя бы одну букву «А»."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String45.** Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String51.** Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String52.** Дана строка-предложение на русском языке. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки. Слова, не начинающиеся с буквы, не изменять."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**String57.** Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Дана строка, состоящая из слов, разделенных одним или несколькими пробелами. Вывести слова строки в порядке увеличения их длины."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
