Другие языки программирования и технологии
Помогите сделать задачу на паскале.
Заменить все строчные первые символы в словах предложения на заглавные.
Поизучай тип 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, вычисляй таким образом позицию пробела
У тебя должно каким то образом анализироваться начало слова, искаться наверно пробел в какой позиции и работать с позицией которая правее, далее хвататься из слова первый символ и если он типа равен "д" то его удаляешь и вставляешь "Д" итд, у каждого свои мысли как это реализовать, мне лично некогда об этом задумываться.
Писать прогу за тебя я не буду, но примерно принцып могу подсказать
Считываешь в массив с типом string по предложениям или строчкам как там у тебя хз
Функция Delete(s,poz,n); удаляет n символов из строки s начиная с Poz, в твоем случае Delete (s,1,1) - удалить первый символ в строке.
Функция Insert (S1,S2,Poz); вставить строку S1 в строку S2 с позиции Poz
Функция Pos (S1, S2); обнаруживает первое появление строки S2,в строке S1, вычисляй таким образом позицию пробела
У тебя должно каким то образом анализироваться начало слова, искаться наверно пробел в какой позиции и работать с позицией которая правее, далее хвататься из слова первый символ и если он типа равен "д" то его удаляешь и вставляешь "Д" итд, у каждого свои мысли как это реализовать, мне лично некогда об этом задумываться.
{Просто сканируем предложение}
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';
и т. д.
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';
и т. д.
блин..., никогда не любил и не изучал строковые переменные..., видать все же придется..))))
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;
Вот тебе функция, думаю найдешь ее применение ))
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;
Вот тебе функция, думаю найдешь ее применение ))
Похожие вопросы
- Помогите сделать задачу в Паскале
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите написать задачи в паскале!!!!
- Помогите решить задачу в паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
- Помогите с задачей на паскале