Другие языки программирования и технологии

Помогите сделать задачу на паскале.

Заменить все строчные первые символы в словах предложения на заглавные.
Поизучай тип string, там много фишек

Писать прогу за тебя я не буду, но примерно принцып могу подсказать

Считываешь в массив с типом string по предложениям или строчкам как там у тебя хз

Функция Delete(s,poz,n); удаляет n символов из строки s начиная с Poz, в твоем случае Delete (s,1,1) - удалить первый символ в строке.

Функция Insert (S1,S2,Poz); вставить строку S1 в строку S2 с позиции Poz

Функция Pos (S1, S2); обнаруживает первое появление строки S2,в строке S1, вычисляй таким образом позицию пробела

У тебя должно каким то образом анализироваться начало слова, искаться наверно пробел в какой позиции и работать с позицией которая правее, далее хвататься из слова первый символ и если он типа равен "д" то его удаляешь и вставляешь "Д" итд, у каждого свои мысли как это реализовать, мне лично некогда об этом задумываться.
ЕУ
Евгений Усачёв
1 858
Лучший ответ
{Просто сканируем предложение}
const
Delims: set of Char = [' ' ]; {разделители слов, может их быть несколько}
var
Clause:string; {одно предложение}
k :integer;
begin
k :=1;
while k<=Length(Clause) do
begin
{пропускаем разделители}
while (s[ k ] in Delims) and (i<=Length(Clause)) do Inc(k);
if k<=Length(Clause) then s [ k ] := Upcase(s[ k ]);
{пропускаем слово}
while not (s[ k ] in Delims) and (k<=Length(Clause)) do Inc(k);
end;
end.

Примечание:
функция Upcase(c:Char):Char может зависеть от кодовой страницы, но можно тупо в case перечислить весь алфавит:
case c of
'а' : upcase := 'A';
и т. д.
СР
Сергей Рябов
13 991
блин..., никогда не любил и не изучал строковые переменные..., видать все же придется..))))
function UCase(S: String): String;
var
i: integer;
begin
Result := S;
for i := 1 to Length(Result) do
if (Result in ['a'..'z', 'а'..'я'])
then Result := Chr(Ord(Result) - 32);
end;

Вот тебе функция, думаю найдешь ее применение ))