Как сформировать перечисление через запятую и точку в конце?
Мне нужно в конце вывода, после последнего символа, писать точку в конце. Например:
Вывод, который меня сейчас:
а, а, у, ю,
А я хочу так:
а, а, у, ю.
Как это можно сделать?
Код:
{uses crt;}
var
b,s: string;
q,i: integer;
begin
b := ('аеёиоуыэюя');
writeln('введите текст с точкой в конце');
read(s);
for i := 1 to 10 do begin
q := 0;
repeat
q := q+1;
if s[q] = b[i] then
write(b[i], ', ');
until s[q] = ('.');
end;
end.
Ответы (2 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
не вдаваясь в детали. first - указывает что это первый выводимый символ и запятую перед ним не надо. Ну а точку уже в самом конце
{uses crt;}
var b,s:string;
var q,i:integer;
var first:boolean;
begin
b:=('аеёиоуыэюя');
writeln('введите текст с точкой в конце');
read(s);
for i:=1 to 10 do begin
q:=0;
first:=true;
repeat
q:=q+1;
if s[q]=b[i] then begin
if not first then write(', ');
write(b[i]);
first:=false;
end;
until s[q]=('.');
end;
write('.');
end.
Автор решения: Shilgen
→ Ссылка
Проверяй: ( но цикл for мне не нравится твой)
{uses crt;}
var b,s:string;
var q,i:integer;
begin
b := ('аеёиоуыэюя');
writeln('введите текст с точкой в конце');
read(s);
for i:=1 to 10 do
begin
q:=0;
repeat
q:=q+1;
if i<10 then
begin
if s[q]=b[i] then
write(b[i], ', ');
end
else
begin
if s[q]=b[i] then
write(b[i], '. ');
end
until s[q]=('.');
end;
end.