Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab4 / lr4_1

.tcl
Скачиваний:
2
Добавлен:
30.05.2025
Размер:
2 Кб
Скачать
# Процедура для генерации строки из 20 случайных чисел в шестнадцатеричном формате
proc generate_random_hex_string {} {
    set result ""
    for {set i 0} {$i < 20} {incr i} {
        set random_number [expr {int(rand() * 16)}]
        set hex_number [format "%x" $random_number]
        append result $hex_number
    }
    return $result
}

# Процедура для выделения и вывода фрагментов строки
proc extract_and_display_fragments {hex_string} {
    set first_f_index [string first "f" $hex_string]
    set last_f_index [string last "f" $hex_string]

    if {$first_f_index == -1} {
        # Если символ "F" не найден, выводим пустые строки
        puts "Часть строки до первого символа 'F':"
        puts ""
        puts "Часть строки между первым и последним символом 'F':"
        puts ""
        puts "Часть строки после последнего символа 'F':"
        puts ""
    } else {
        # Часть строки до первого символа "F"
        puts "Часть строки до первого символа 'F':"
        puts [string range $hex_string 0 [expr {$first_f_index - 1}]]

        # Часть строки между первым и последним символом "F"
        puts "Часть строки между первым и последним символом 'F':"
        if {$first_f_index == $last_f_index} {
            puts ""
        } else {
            puts [string range $hex_string [expr {$first_f_index + 1}] [expr {$last_f_index - 1}]]
        }

        # Часть строки после последнего символа "F"
        puts "Часть строки после последнего символа 'F':"
        puts [string range $hex_string [expr {$last_f_index + 1}] end]
    }
}

# Основной скрипт
set random_hex_string [generate_random_hex_string]
puts "Сгенерированная строка: $random_hex_string"

extract_and_display_fragments $random_hex_string

Соседние файлы в папке lab4