Распишите алгоритм программы:
program Lab7;
{$ASMMODE Intel}
var
input_str:string;
video_page:byte;
x,y:byte;
i:integer;
symb:char;
color:byte;
N:integer;
Begin
write<'Enter string:'>;
readln ;
if < >=3 and <=76>>
then
begin
asm
mov AH, $0F
int $10
mov video_page, BH
and AL, $7F
mov AH, $0
int $10
end;
y:=12;
x:=round<<80-lenght >/2>;
color:=1;
for i:=1 to lenght do
begin
symb:=input_str[i];
asm
mov AH, $2
mov BH, video_page
mov DL, y
mov DH, x
int $10

mov AH, $9
mov AL, symb
mov BL, color
mov CX, 1
int $10
end;
x:=x+1;
color:=color+1;
if >15> then color:=1;
end;
y:=11;
x:=round<<80-lenght >/2-1>;
N:=lenght +2;
asm
mov AH, $2
mov BH, video_page

mov DL, y
mov DH, x
int $10

mov AH, $0A
mov AL, '*'
mov CX, N
int $10
end;
y:=13;
asm
mov AH, $2
mov BH, video_page
mov DL, y
mov DH, x
int $10

mov AH, $0A
mov AL, '*'
mov CX, N
int $10
end;
y:=12;
asm
mov AH, $2
mov BH, video_page
mov DL, y
mov DH, x
int $10

mov AH, $0A
mov AL, '*'
mov CX, 1
int $10
end;
x:=x+lenght +1;
asm
mov AH, $2
mov BH, video_page
mov DL, y
mov DH, x
int $10

mov AH, $0A
mov AL, '*'
mov CX, 1
int $10
end;
end
else
begin
writeln<'Uncorrect string length'>;
end;
readln;
End.

Ответы

Ответ дал: xczmne
1

Ответ:

Объяснение:Ось алгоритм програми на мові Pascal:

Починаємо програму Lab7.

Оголошуємо змінні:

input_str для збереження введеного рядка.

video_page для збереження номера сторінки екрана.

x та y для координати X та Y на екрані.

i для ітерації.

symb для збереження символів рядка.

color для збереження номера кольору.

N для збереження довжини введеного рядка.

Виводимо повідомлення "Enter string:" і зчитуємо введений рядок.

Перевіряємо, чи довжина рядка знаходиться в діапазоні від 3 до 76 символів. Якщо так, виконуємо наступні кроки.

Виконуємо асемблерний блок, де отримуємо і зберігаємо номер сторінки екрана (video_page).

Визначаємо координату X (x), де рядок буде центрованим.

Встановлюємо початковий колір (color) на 1.

Виконуємо цикл для кожного символу в рядку:

a. Отримуємо поточний символ (symb).

b. Виводимо символ на екран на визначену позицію та з визначеним кольором.

c. Збільшуємо значення x та color.

d. Перевіряємо, чи color більше 15, і якщо так, повертаємо його на 1.

Встановлюємо координати для виведення рамки вокруг тексту та виводимо рамку символами '*'.

Завершуємо програму.

Цей алгоритм призначений для виведення введеного рядка на екрані комп'ютера з певними декоративними елементами.

Ответ дал: susariuss
1

Цей алгоритм програми використовує мову програмування Pascal і містить ASM-код для взаємодії з апаратним забезпеченням комп'ютера через інтерфейс INT 10h (BIOS Video Services). Основна мета цієї програми - відобразити введений рядок на екрані та прикрасити його в рамці. Ось розгорнутий алгоритм програми:

1. Користувачу виводиться запит на введення рядка.

2. Програма зчитує введений рядок в змінну `input_str`.

3. Виконується перевірка довжини рядка: якщо довжина рядка в діапазоні від 3 до 76 символів (включно), то виконується наступний код. В іншому випадку, програма виводить повідомлення про неправильну довжину рядка і завершується.

4. Використовується ASM-код для зміни режиму текстового видео та збереження значення сторінки екрану.

5. Визначаються координати `x` та `y` для відображення рядка по центру екрана.

6. Задається змінна `color` для кольору тексту.

7. Запускається цикл, який проходить через кожен символ рядка:
a. Виводиться символ на екран за допомогою ASM-коду, де `AH` вказує на функцію виведення та координати.
b. Координати `x` та `y` збільшуються для виведення наступного символу.
c. Колір тексту змінюється, і якщо він перевищує 15, то повертається до 1.

8. Виводиться вертикальна лінія '*' по боках рядка для створення рамки.

9. Програма завершується, очищаючи після себе ресурси.

Цей алгоритм призначений для виведення та оформлення введеного рядка на екрані комп'ютера в текстовому режимі.
Вас заинтересует