М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
алсу150
алсу150
06.09.2021 19:54 •  Информатика

дан целочисленный массив из 30 элементов. элементы массива могут принимать целые значения от 0 до 100. найти и вывести произведение двузначных элементов массива, которые не делятся на 6. гарантируется, что в исходном массиве есть хотя бы один такой элемент написать решение на языке python

👇
Ответ:
12853
12853
06.09.2021

My_Array = list()   # создаем список (массив)


# заполняем массив  

My_Array = [1, 29, 36, 23, 49, 11, 10, 77, 1, 10, 43, 78, 35, 13, 94, 53, 81, 73, 91, 6, 68, 80, 40, 31, 60, 12, 54, 79, 2, 71]


P = 1  # переменная для произведения


for i in range(30):

   if ((My_Array[i] % 6 != 0) and (10 <= My_Array[i] <= 99)) :  # проверка неделимости элемента на 6 и двузначность

       P = P * My_Array[i]   # если подходит, то находим произведение


   

print(P)                  # выводим на экран

4,8(45 оценок)
Ответ:
жанара06
жанара06
06.09.2021

Вариант со случайными числами:

import random

a = []

p = 1;


for i in range(30):

   a.append(random.randint(0, 100))

   if 9<a[i]<100 and a[i]%6!=0:

       p= p * a[i]


print(p)  


Вариант с вводом значений массива:

a = []

p = 1;

for i in range(30):

   a.append(int(input()))

   if 9<a[i]<100 and a[i]%6!=0:

       p= p * a[i]

print(p)

4,5(37 оценок)
Открыть все ответы
Ответ:
Melaniya170716
Melaniya170716
06.09.2021

Конечно, я готов вам доделать код для рисования многоугольника и выбора цвета. Вот исправленный код:

```python

from tkinter import *

from tkinter.colorchooser import askcolor

root = Tk()

canvas = Canvas(root, width=400, height=400, bg='white')

canvas.pack()

canvas.old_coords = None

polygon = None

bgcolor = 'white'

def paint_color():

global bgcolor

color = askcolor(title="Choose color")[1]

if color:

bgcolor = color

def paint(event):

global polygon

if canvas.old_coords:

x1, y1 = canvas.old_coords

x2, y2 = event.x, event.y

canvas.create_line(x1, y1, x2, y2, fill=bgcolor)

canvas.old_coords = x2, y2

else:

canvas.old_coords = event.x, event.y

if polygon:

canvas.delete(polygon)

coords = list(canvas.coords(canvas.find_all()[0]))[:-2]

coords = [(coords[i], coords[i+1]) for i in range(0, len(coords), 2)]

coords.append((event.x, event.y))

polygon = canvas.create_polygon(coords, outline=bgcolor, fill='', width=3)

def clear():

canvas.delete('all')

def save():

x = root.winfo_rootx() + canvas.winfo_x()

y = root.winfo_rooty() + canvas.winfo_y()

x1 = x + canvas.winfo_width()

y1 = y + canvas.winfo_height()

ImageGrab.grab().crop((x, y, x1, y1)).save("screenshot.png")

button_color = Button(root, text="Color", command=paint_color)

button_color.pack(side=LEFT, padx=5)

button_clear = Button(root, text="Clear", command=clear)

button_clear.pack(side=LEFT, padx=5)

button_save = Button(root, text="Save", command=save)

button_save.pack(side=LEFT, padx=5)

canvas.bind('<B1-Motion>', paint)

root.mainloop()

```

Изменения включают добавление кнопки "Color" для выбора цвета, которая вызывает диалоговое окно выбора цвета. Также изменен код для окраски многоугольника - теперь цвет можно выбирать через глобальную переменную `bgcolor`.

По поводу кнопки "Save", проблема заключается в том, что вы сохраняете весь холст, включая фон и кнопки. Вместо этого нужно сохранять только рисунок, который находится на холсте. Для этого можно использовать модуль `PIL`:

```python

from PIL import ImageGrab

def save():

x = root.winfo_rootx() + canvas.winfo_x()

y = root.winfo_rooty() + canvas.winfo_y()

x1 = x + canvas.winfo_width()

y1 = y + canvas.winfo_height()

ImageGrab.grab().crop((x, y, x1, y1)).save("screenshot.png")

```

Этот код только сохраняет область, занимаемую холстом.

4,5(57 оценок)
Ответ:
karuna4
karuna4
06.09.2021

#include <iostream>

#include <vector>

const double EPSILON = 1e-10; // Предел точности

void rowOperation(std::vector<std::vector<double>>& matrix, int row1, int row2, double multiplier) {

   int n = matrix[0].size();

   for (int i = 0; i < n; i++) {

       matrix[row1][i] -= multiplier * matrix[row2][i];

   }

}

void gaussElimination(std::vector<std::vector<double>>& matrix, std::vector<double>& solution) {

   int n = matrix.size();

   for (int i = 0; i < n; i++) {

       // Поиск строки с наибольшим элементом в текущем столбце

       int maxRow = i;

       for (int j = i + 1; j < n; j++) {

           if (std::abs(matrix[j][i]) > std::abs(matrix[maxRow][i])) {

               maxRow = j;

           }

       }

       

       // Перестановка строк

       if (maxRow != i) {

           std::swap(matrix[i], matrix[maxRow]);

       }

       

       // Проверка на нулевой коэффициент

       if (std::abs(matrix[i][i]) < EPSILON) {

           continue;

       }

       

       // Приведение матрицы к ступенчатому виду

       for (int j = i + 1; j < n; j++) {

           double multiplier = matrix[j][i] / matrix[i][i];

           rowOperation(matrix, j, i, multiplier);

       }

   }

   

   // Обратный ход

   for (int i = n - 1; i >= 0; i--) {

       if (std::abs(matrix[i][i]) < EPSILON) {

           continue;

       }

       

       double sum = 0.0;

       for (int j = i + 1; j < n; j++) {

           sum += matrix[i][j] * solution[j];

       }

       

       solution[i] = (matrix[i].back() - sum) / matrix[i][i];

   }

}

int main() {

   std::vector<std::vector<double>> matrix = {

       {15.7, 6.6, 7.5, 11.5, -2.4},

       {8.8, 6.7, 5.5, -4.5, 5.6},

       {6.3, -5.7, -23.4, 6.6, 7.7},

       {14.3, 8.7, 15.7, 5.8, 23.4}

   };

   

   int n = matrix.size();

   std::vector<double> solution(n, 0.0);

   

   gaussElimination(matrix, solution);

   

   std::cout << "Solution: ";

   for (int i = 0; i < n; i++) {

       std::cout << "x" << i + 1 << " = " << solution[i] << ", ";

   }

   

   return 0;

}


Объяснение:

   Мы используем метод Гаусса для решения системы линейных уравнений. Этот метод состоит из двух этапов: приведение матрицы коэффициентов к ступенчатому виду и обратный ход, чтобы найти значения переменных.

   Функция rowOperation выполняет операцию над строками матрицы, умножая одну строку на множитель и вычитая ее из другой строки.

   Функция gaussElimination приводит матрицу к ступенчатому виду, применяя элементарные преобразования над строками. Затем она выполняет обратный ход, чтобы найти значения переменных.

   В функции main мы определяем матрицу коэффициентов и вектор решений. Затем вызываем gaussElimination, чтобы найти решение системы.

   Результат выводится на экран в виде значений переменных x1, x2, x3, x4, соответственно.

Обратите внимание, что для решения системы линейных уравнений методом Гаусса необходимо проверить, что матрица коэффициентов является невырожденной (имеет ненулевой определитель). В противном случае, метод может не дать правильного решения или не работать вообще.

4,7(68 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ