Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Заблокирован

Массив 7x7 на tkinter

14.11.2022, 17:00. Показов 1045. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделать небольшое графическое приложение на tkinter с массивом 7x7.
Приложение должно определять следующие параметры: максимальное и минимальное значение, их местоположение, сумму значений элементов массива и среднее арифметическое значение.
В таблице 7х7 числа получить случайным образом по сигналу от предусмотренной кнопки:
кнопки Max и Min должны выполнять поиск соответствующих значений и их местоположение, которое должно быть подсвечено цветом в таблице; кнопки Сумма и Среднее арифметическое должны высчитывать указанные значения и выводить результат в поля надписи.


Начал писать программу по методу place
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Метод Place")
root.resizable(0,0)
root_width=400
root_height=400
win_width=root.winfo_screenwidth()
win_height=root.winfo_screenheight()
x=int(win_width/2-root_width/2)
y=int(win_height/2-root_height/2)
root_params=f'{root_width}x{root_height}+{x}+{y}'
root.geometry(root_params)
btn1 = ttk.Button(text='Max', width=5)
btn1.place(x=,y=) #координаты не заданы ещё
btn2 = ttk.Button(text='Max', width=5)
btn2.place(x=,y=) #координаты не заданы ещё
btn3 = ttk.Button(text='Сумма', width=6)
btn3.place(x=,y=) #координаты не заданы ещё
btn4 = ttk.Button(text='Среднее Арифметическое', width=12)
btn4.place(x=,y=) #координаты не заданы ещё
root.mainloop() #запуск окна

Не знаю как продолжить написание программы, как сделать эту таблицу. Подскажите пожалуйста
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2022, 17:00
Ответы с готовыми решениями:

Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter?
Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter? Я пишу приложение на kivy но использую ...

Виджеты tkinter и tkinter.ttk (используется Python 3.5.2)
1) Проблема с виджетом Scale (ползунок) модуля tkinter. Я создал ползунок от 1 до 50 (как на первой картинке). По умолчанию стоит на 1....

Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран
Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран. 7 6 5 4 3 2 1 0 7 6 5 4 3 2 0 0 7 6 5 4 3 0 0 0...

6
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
15.11.2022, 11:24
Лучший ответ Сообщение было отмечено nikulin_artyom1 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from random import randint
from tkinter import Tk, Frame, Button, Label
MIN_VALUE = 0
MAX_VALUE = 10
 
def update():
  sumLabel.configure(text="")
  avgLabel.configure(text="")
  frame.matrix.clear()
  for row in range(7):
    line = []
    for column in range(7):
      line.append(randint(MIN_VALUE,MAX_VALUE))
    frame.matrix.append(line)
  for label in frame.winfo_children():
    label.destroy()
  for row in range(7):
    for column in range(7):
      label = Label(frame, text=str(frame.matrix[row][column]), borderwidth=1, relief="solid")
      label.grid(row=row, column=column, sticky="EW")
 
def findMin():
  minValue = MAX_VALUE
  for row in frame.matrix:
    minValue = min(minValue, min(row))
  for row in range(7):
    for column in range(7):
      if frame.matrix[row][column]==minValue:
        label = frame.grid_slaves(row=row, column=column)[0]
        label.configure(bg="red")
 
def findMax():
  maxValue = MIN_VALUE
  for row in frame.matrix:
    maxValue = max(maxValue, max(row))
  for row in range(7):
    for column in range(7):
      if frame.matrix[row][column]==maxValue:
        label = frame.grid_slaves(row=row, column=column)[0]
        label.configure(bg="green")
 
def findSum():
  result = 0
  for row in frame.matrix:
    result = result + sum(row)
  sumLabel.configure(text=str(result))
 
def findAvg():
  numbers = []
  for row in range(7):
    for column in range(7):
      numbers.append(frame.matrix[row][column])
  result = round(sum(numbers)/len(numbers),4)
  avgLabel.configure(text=str(result))
 
root = Tk()
frame = Frame(root)
frame.matrix = []
frame.grid(row=0, column=0, columnspan=2)
Button(root, text="Новая таблица", command=update).grid(row=1, column=0, columnspan=2)
Button(root, text="Min", command=findMin, bg="red").grid(row=2, column=0)
Button(root, text="Max", command=findMax, bg="green").grid(row=2, column=1)
Button(root, text="Сумма", command=findSum).grid(row=3, column=0)
sumLabel = Label(root)
sumLabel.grid(row=3, column=1)
Button(root, text="Среднее", command=findAvg).grid(row=4, column=0)
avgLabel = Label(root)
avgLabel.grid(row=4, column=1)
update()
root.mainloop()
1
Заблокирован
15.11.2022, 14:12  [ТС]
kapbepucm, Спасибо Огромное! Буду разбираться
0
Заблокирован
18.11.2022, 17:56  [ТС]
kapbepucm, есть 1 вопрос. Почему minValue = MAX_VALUE и maxValue = MIN_VALUE ?
0
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
18.11.2022, 18:31
Лучший ответ Сообщение было отмечено nikulin_artyom1 как решение

Решение

Потому что мы ищем наименьшее число, начиная сравнение с наиболее возможного большего. И наоборот
1
Заблокирован
24.11.2022, 08:58  [ТС]
kapbepucm, Для эксперимента я удалил эти 2 строчки. Программа также работает. Для чего нужны эти 2 строчки?
Python
1
2
  for label in frame.winfo_children():
    label.destroy()
0
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
24.11.2022, 15:52
Лучший ответ Сообщение было отмечено nikulin_artyom1 как решение

Решение

Цитата Сообщение от nikulin_artyom1 Посмотреть сообщение
Для эксперимента я удалил эти 2 строчки. Программа также работает.
Визуально да- ничего не изменится. По моей задумке эти строки чистят таблицу от меток с цифрами и дополнительно прибивают метки. Я не знаю, как компоновщик tkinter-а работает при замещении одного виджета другим. Вполне допускаю, что метки будут продолжать жить в памяти, только не будут отображаться, если их не прибивать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2022, 15:52
Помогаю со студенческими работами здесь

Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран
Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран. 7 6 5 4 3 2 1 6 7 6 5 4 3 2 5 6 7 6 5 4 3 4 5 6...

Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран
Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран. 1 2 3 4 5 6 7 2 3 4 5 6 7 0 3 4 5 6 7 0 0 4 5 6 7 0...

двумерный массив 7x7
В соответствии со своим вариантом разработать функции сортировки двумерного массива 7x7 по возрастанию и по убыванию методами, указанными в...

Заполнить двумерный массив 7x7
Заполнить двумерный массив 7x7 следующим видом: Добавлено через 15 минут Спасибо, уже сделал, кому нужно, вот) ...

Заполнить двумерный массив размером 7x7
Заполнить двумерный массив размером 7x7 таким образом. Вывести массив на экран.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru