Pascal.Множественный тип данных

ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

Дан текст из строчных латинских букв и других знаков. Вычеркнуть из текста все гласные буквы.
Помогите.
BHy4ok
Сообщения: 237
Зарегистрирован: 01 май 2007, 09:03
Откуда: г.Находка
Контактная информация:

[syntax='Pascal']
uses
crt;
var
i: integer;
S:string;
begin
ClrScr;
write('vvedite stroky: ');
readln(S);
for I := 0 to length(S) do
begin
while S in ['A', 'E', 'I', 'O', 'U','a','e','i','o','u'] do
delete(s,i,1);
end;
Writeln;
writeln(s);
readln;
end.

[/syntax]
< L3X. (ICQ: 8721378, Mail - l3x@list.ru)
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

сделайте пожалуйста со множествами.и чтобы в программе использовались процедуры
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Множество здесь используется, только оно описано не как константа.
Ни что так не ограничивает фантазию программиста, как компилятор...
Denys
Сообщения: 8
Зарегистрирован: 31 май 2008, 12:46

Вот так правильно

Program d;
type
TMnoz = set of Char;
procedure YdalGl(AMnoz: TMnoz; var AStr: String );
var
i, k: Integer;
begin
k := 0;
for i := 1 to length(AStr) do
if AStr in Amnoz then
begin
delete(AStr, i, 1);
i := i - 1;
end;
end;
var
Mnoz: TMnoz;
Str: String;
begin
Mnoz := ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'Y', 'y', 'J', 'j'];
writeln('vvedute stroky');
readln(Str);
YdalGl(Mnoz, Str);
writeln(Str);
readln;
END.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

&quot писал(а):Вот так правильно
Во-первых, J по моему не гласная. Во-вторых, зачем i := i - 1; и зачем переменная k?
Предыдущее решение по-моему более правильное.
И еще: если пишете код, используйте теги
[noparse]
[syntax='Delphi']
Код на Pascal/Delphi
[/syntax]
[/noparse]
Ни что так не ограничивает фантазию программиста, как компилятор...
Denys
Сообщения: 8
Зарегистрирован: 31 май 2008, 12:46

&quot писал(а):Во-первых, J по моему не гласная. Во-вторых, зачем i := i - 1; и зачем переменная k?
Предыдущее решение по-моему более правильное.
к- просто забил убрать. i := i - 1 - нужно для того Что б вернутся
на 1 букву назад так как удалив например первую на следующей итерации
будет проверятся 3 задаваемой строки хотя надо проверить вторую.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

&quot писал(а): i := i - 1 - нужно для того Что б вернутся
на 1 букву назад так как удалив например первую на следующей итерации
Да, забыл, так в паскале делать можно, просто Delphi, например, не разрешает изменять счетчик в цикле for.
Ни что так не ограничивает фантазию программиста, как компилятор...
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

<Боооольшое спасибо всем!!!!особенно Denys !
ромка)
Сообщения: 41
Зарегистрирован: 26 мар 2008, 17:53

а нет.поторопился.она не выводит нечего
Ответить