Другие языки программирования и технологии
Помогите решить задачу по строкам
Турбопаскаль 7.0Дан текст из строчных букв (длина - 200 литер) . Напечатать этот текст заглавными русскими буквами.
Ох и грамотеи.. . UpCase работает только с буквами, а не строками, причем только с английскими:
Uses CRT;
var
s: String;
i: Integer;
begin
clrscr;
write('s=');
readln(s);
for i:=1 to length(s) do s[ i ]:=upcase(s[ i ]);
writeln(s);
readln;
end.
А для русского текста:
Uses CRT;
var
s: String;
i: Integer;
begin
clrscr;
write('s=');
readln(s);
for i:=1 to length(s) do
begin
if (ord(s[ i ])>=160) and (ord(s[ i ])<=175) then s[ i ]:=chr(ord(s[ i ])-32);
if (ord(s[ i ])>=224) and (ord(s[ i ])<=239) then s[ i ]:=chr(ord(s[ i ])-80);
end;
writeln(s);
readln;
end.
Uses CRT;
var
s: String;
i: Integer;
begin
clrscr;
write('s=');
readln(s);
for i:=1 to length(s) do s[ i ]:=upcase(s[ i ]);
writeln(s);
readln;
end.
А для русского текста:
Uses CRT;
var
s: String;
i: Integer;
begin
clrscr;
write('s=');
readln(s);
for i:=1 to length(s) do
begin
if (ord(s[ i ])>=160) and (ord(s[ i ])<=175) then s[ i ]:=chr(ord(s[ i ])-32);
if (ord(s[ i ])>=224) and (ord(s[ i ])<=239) then s[ i ]:=chr(ord(s[ i ])-80);
end;
writeln(s);
readln;
end.
Александр Тиняков
для английского текста работает, а вот для русского выдаёт ошибку type mysmatch
Доброго времени суток.
Вот вариант функции, заточенной под обе раскладки. И именно под ТР. В делфи вроде директива absolute не хочет работать или тип строк надо брать ShortString, уже не помню.
function UpStr(S : String) : String;
var
C : Char;
B : Byte absolute C;
J : Byte;
begin
for J:= 1 to Length(S) do begin
C := S[J];
if (((C >= 'a') and (C <= 'z')) or ((C >= 'а') and(C <= 'п'))) then Dec(B, 32) else
if ((C >= 'р') and (C <= 'я')) then Dec(B, 80) else
if C = 'ё' then Dec(B);
S[J] := C;
end;
UpStr := S;
end;
Дальше все просто.
Write('Введитет текст');
ReadLn(S);
WriteLn(UpStr(S));
Удачи!
Вот вариант функции, заточенной под обе раскладки. И именно под ТР. В делфи вроде директива absolute не хочет работать или тип строк надо брать ShortString, уже не помню.
function UpStr(S : String) : String;
var
C : Char;
B : Byte absolute C;
J : Byte;
begin
for J:= 1 to Length(S) do begin
C := S[J];
if (((C >= 'a') and (C <= 'z')) or ((C >= 'а') and(C <= 'п'))) then Dec(B, 32) else
if ((C >= 'р') and (C <= 'я')) then Dec(B, 80) else
if C = 'ё' then Dec(B);
S[J] := C;
end;
UpStr := S;
end;
Дальше все просто.
Write('Введитет текст');
ReadLn(S);
WriteLn(UpStr(S));
Удачи!
Эдуард Кадурин
Кажется, вы даже не попробовали ее запустить...
Она не работает...
Она не работает...
есть функция UpperCASE
ей просто преобразовываешь свой текст и все она вернет тебе все заглавные.
ей просто преобразовываешь свой текст и все она вернет тебе все заглавные.
А помоему нет UpperCASE в паскале
Язык? Всегда есть функция типа UpperCase - она для этого и нужна.
Похожие вопросы
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу.
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Помогите решить задачу C++. Найти номер строки, для которой среднее арифметическое значение ее элементов максимальна
- Помогите решить задачу по программированию, пожалуйста. Найти сумму наименьших значений элементов строк. (вложенные циклы)
- Помогите решить задачу на программирование!
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачу на Basic
- Помогите решить задачи на Си! Пожалуйста!!!
- помогите решить задачи