{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Списки. Занятие 2."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array41**.Дан массив размера $N$ ($N > 1$). Найти два соседних элемента, сумма которых максимальна, и вывести эти элементы в порядке возрастания их индексов."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array43.** Дан целочисленный массив размера $N$ ($N > 0$), все элементы которого упорядочены (по возрастанию или по убыванию). Найти количество различных элементов в данном массиве."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array44.** Дан целочисленный массив размера $N$ ($N > 1$), содержащий ровно два одинаковых элемента. Найти номера одинаковых элементов и вывести эти номера в порядке возрастания."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array45.** Дан массив размера $N$ ($N > 1$). Найти номера двух ближайших элементов из этого массива (т. е. элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array47.** Дан целочисленный массив размера $N$. Найти количество различных элементов в данном массиве."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array48.** Дан целочисленный массив размера $N$ ($N > 0$). Найти максимальное количество его одинаковых элементов."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array52**. Дан массив $a$ размера $N$. Сформировать новый массив $b$ того же размера, элементы которого определяются следующим образом:\r\n",
    "$$\r\n",
    "b_k = \r\n",
    "\\begin{cases}\r\n",
    "    2 \\cdot a_k, & \\text{если \\, $a_{k} < 5$} \\\\\r\n",
    "    0.5\\cdot a_k, & \\text{в противном случае}\r\n",
    "\\end{cases}\r\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array54.** Дан целочисленный массив $a$ размера $N$. Переписать в новый целочисленный массив $b$ все четные числа из исходного массива (в том же порядке) и вывести размер полученного массива $b$ и его содержимое."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array58.** Дан массив $a$ размера $N$. Сформировать новый массив $b$ того же размера по следующему правилу: элемент $b_k$ равен сумме элементов массива $a$ с номерами от $0$ до $k$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array68.** Дан массив размера $N$. Поменять местами его минимальный и максимальный элементы."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#во всех заданиях, где требуется что-то поменять в массиве, нужно именно менять структуру, а не вывод!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array70.** Дан массив размера $N$ ($N$ — четное число). Поменять местами первую и вторую половины массива."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array71.** Дан массив размера $N$. Поменять порядок его элементов на обратный."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array90.** Дан массив размера $N$ и целое число $k$ ($1 \\leqslant k \\leqslant N$). Удалить из массива элемент с порядковым номером $k$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Введите размер списка: 10\n",
      "Введите номер элемента, который удалим (нумерация с 1): 5\n",
      "Начальный список: [17, 34, 38, 47, 29, 33, 18, 6, 31, 15]\n",
      "Новый список: [17, 34, 38, 47, 33, 18, 6, 31, 15]\n"
     ]
    }
   ],
   "source": [
    "#ещё один пример генерации случайных чисел\n",
    "#random.sample(population, k)\n",
    "#возвращает список уникальных элементов длиной 'k' , выбранных из последовательности заполнения или набора\n",
    "\n",
    "\n",
    "import random \n",
    "n = int(input('Введите размер списка: '))\n",
    "a = random.sample(range(50), N)\n",
    "k = int(input('Введите номер элемента, который удалим (нумерация с 1): '))\n",
    "if 1 <= k <= n:\n",
    "    print(\"Начальный список:\",a)\n",
    "    a.pop(k-1)\n",
    "    print(\"Новый список:\",a)\n",
    "else:\n",
    "    print(\"Элемента под таким номером и так не существует\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array92.** Дан целочисленный массив размера $N$. Удалить из массива все нечетные числа и вывести размер полученного массива и его содержимое."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array101.** Дан массив размера $N$ и целое число $k$ ($1 \\leqslant k \\leqslant N$). Перед элементом массива с порядковым номером $k$ вставить новый элемент с нулевым значением."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array103.** Дан массив размера $N$. Вставить элемент с нулевым значением перед минимальным и после максимального элемента массива."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n: 5\n",
      "Введите элементы списка:\n",
      "5\n",
      "4\n",
      "3\n",
      "2\n",
      "1\n",
      "[5, 0, 4, 3, 2, 0, 1]\n"
     ]
    }
   ],
   "source": [
    "n = int(input('n: '))\n",
    "print('Введите элементы списка:')\n",
    "a = [int(input()) for i in range(n)]\n",
    "\n",
    "k1 = min(a)\n",
    "k2 = max(a)\n",
    "#если в Python есть нужный метод, почему бы им не воспользоваться?\n",
    "n1 = a.index(k1)\n",
    "n2 = a.index(k2)\n",
    "#очень важно учесть, что положение минимума и масимума относительно друг друга заранее неизвестно,\n",
    "#а после первой вставки индексы в части списка поменяются\n",
    "if n1 > n2:\n",
    "    a.insert(n1, 0)\n",
    "    a.insert(n2+1, 0)\n",
    "else:\n",
    "    a.insert(n2+1, 0)\n",
    "    a.insert(n1, 0)\n",
    "\n",
    "print(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Array104.** Дан массив размера $N$ и два целых числа $k$ и $m$ ($1 \\leqslant k \\leqslant N$, $1 \\leqslant m \\leqslant 10$). Перед элементом массива с номером $k$ вставить $m$ новых элементов с нулевыми значениями."
   ]
  },
  {
   "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.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
