Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Строчные и прописные буквы

Автор: 18192123 11.01.2007 2:24

В файле, содержащем строки, содержатся русские имена. Проверить, все ли они начинаются с прописной буквы, если нет, то исправить эту ошибку. Записать полученные данные в новый файл.

трудность в том, что не знаю , как проверить и исправить ошибку.
предполагается, что имена разделяются в строке пробелом.

Автор: 18192123 11.01.2007 3:34

может как то использовать такое выражение

upcase(s[i]) in ['A'..'Z']
?

Автор: Sundery 11.01.2007 3:55


var a:array [1..10] of string;
i,tmp:integer;
begin
s[1]:='afas';
s[2]:='Ccvn';
s[3]:='jfg';
s[4]:='Hdfjags';
s[5]:='tujdm';
--------------------------
for i:=1 to 5 do begin
tmp:=ord(s[i,1]);
if tmp in [97..122] then begin
s[i,1]:=chr(tmp-32);
end;
writeln(s[i]);
end;
--------------------------
end.



вроде бы то, что тебе надо

Автор: volvo 11.01.2007 4:31

Цитата
вроде бы то, что тебе надо
С какой стати? Задание читаем ВНИМАТЕЛЬНО!

Цитата
В файле, содержащем строки, содержатся русские имена.
А ты что предлагаешь?

18192123, ты, наконец, FAQ начнешь читать, или будешь постить бесконечно непонятно откуда взявшиеся задания? Сколько можно уже? Практически одно и то же везде dry.gif

Здесь: http://forum.pascal.net.ru/index.php?s=&showtopic=2361&view=findpost&p=33955
я выкладывал функцию StrUpper, которая корректно переводит любую строку в верхний регистр... Переделай ее для работы с одним символом и используй, ибо стандартный UpCase с кириллицей НЕ работает...

Автор: Sundery 11.01.2007 4:47

Цитата(volvo @ 11.01.2007 1:31) *

С какой стати? Задание читаем ВНИМАТЕЛЬНО!

А ты что предлагаешь?

18192123, ты, наконец, FAQ начнешь читать, или будешь постить бесконечно непонятно откуда взявшиеся задания? Сколько можно уже? Практически одно и то же везде dry.gif

Здесь: http://forum.pascal.net.ru/index.php?s=&showtopic=2361&view=findpost&p=33955
я выкладывал функцию StrUpper, которая корректно переводит любую строку в верхний регистр... Переделай ее для работы с одним символом и используй, ибо стандартный UpCase с кириллицей НЕ работает...


читаю оочень внимательно! во втором сообщении автор написал [A..Z], а на каком языке не указано (сказано лишь что имена русские), поэтому я предположил что на транслите.

еще не известно какая кодировка. если досовкая, то вот так:


assign(f,'123.txt');
reset(f);
i:=1;
while not eof(f) do begin
readln(f,s[i]);
tmp:=ord(s[i,1]);
if tmp in [160..175] then s[i,1]:=chr(tmp-32)
else if tmp in [224..239] then s[i,1]:=chr(tmp-80);
writeln(s[i]);
i:=i+1;
end;


а если нет, то тогда только по предложенной функции.