
Добавил:
deadpigeon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab4 / lr4_2
.tcl # Процедура для сортировки блоков по площади
proc sort_by_area {} {
global decoder block_area
# Преобразуем строку decoder в список
set block_list [split $decoder]
# Создаем список пар (блок, площадь)
set block_area_list {}
foreach block $block_list {
if {[info exists block_area($block)]} {
lappend block_area_list [list $block $block_area($block)]
}
}
# Сортируем список по площади
set sorted_block_area_list [lsort -real -index 1 $block_area_list]
# Выводим отсортированный список
puts "Отсортированные блоки по площади:"
foreach {block area} $sorted_block_area_list {
puts "$block: $area"
}
}
# Основной скрипт
# Загружаем данные из файла design.tcl
source design.tcl
# Вызываем процедуру сортировки
sort_by_area
proc sort_by_area {} {
global decoder block_area
# Преобразуем строку decoder в список
set block_list [split $decoder]
# Создаем список пар (блок, площадь)
set block_area_list {}
foreach block $block_list {
if {[info exists block_area($block)]} {
lappend block_area_list [list $block $block_area($block)]
}
}
# Сортируем список по площади
set sorted_block_area_list [lsort -real -index 1 $block_area_list]
# Выводим отсортированный список
puts "Отсортированные блоки по площади:"
foreach {block area} $sorted_block_area_list {
puts "$block: $area"
}
}
# Основной скрипт
# Загружаем данные из файла design.tcl
source design.tcl
# Вызываем процедуру сортировки
sort_by_area