Практика программирования (Бейсик, Си, Паскаль)


Задачи, советы и ответы - часть 12


gotoxy(10+(50-10)/2-strlen(str)/2,wherey());

puts(str); puts("Вывод с прижимом к 50-й позиции :");

for (i=0; i<8; i++)

printf("%s",rule);

gotoxy(51-strlen(str),wherey());

puts(str);

getch(); }

Программа 3_07.pas

program text justify;

uses Crt;

const

rule:string='1234567890'; var

s:string[20];

i:integer; begin

clrscr;

writeln('Введите строку, содержащую не более 20 символов');

for i:=0 to 7 do write(rule);

readln(s);

writeln('Вывод, начиная с 10-й позиции :');

for i:=0 to 7 do write(rule);

gotoxy(10,wherey); writeln(s);

writeln('Вывод по центру между 10-й и 50-й позициями :');

for i:=0 to 7 do write(rule);

gotoxy(10+(50-10) div 2 - length(s) div 2,wherey);

writeln(s); writeln{'Вывод с прижимом к 50-й позиции :');

for i:=0 to 7 do write(rule);

gotoxy(51-length(s),wherey);

writeln(s);

readln; end.

Задание 3.08. Сравнение строк с игнорированием пробелов

Написать подпрограмму-функцию compare, имеющую своими аргументами две строки, которая сравнивает их, игнорируя пробелы между словами и разницу между кодами больших и малых букв. Функция должна возвращать следующие значения: 1, если первая строка "больше" второй; -1, если первая строка "меньше" второй; о, если обе строки равны.

Совет 1 (общий)

Самым простым по реализации является алгоритм, в котором сначала коды всех малых букв заменяются кодами их больших эквивалентов, а затем из строк удаляются пробелы. Для выполнения первой процедуры можно воспользоваться функцией up (str) — см. программу 3_02.

Программа 3_08.bas

REM Сравнение строк с игнорированием пробелов

DECLARE SUB UP(A$)

DECLARE FUNCTION COMPARE(B$, C$)

PRINT "Введите первую строку"

INPUT "",A1$

PRINT "Введите вторую строку"

INPUT "", A2$

K=COMPARE(A1$,A2$)

IF K=l THEN PRINT "Первая строка 'больше'"

IF K=-l THEN PRINT "Первая строка 'меньше'"

IF K=G THEN PRINT "Обе строки равны"




- Начало -  - Назад -  - Вперед -