Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2008, 15:23   #1
zagadka
Новичок
Джуниор
 
Регистрация: 03.12.2008
Сообщений: 2
По умолчанию помогите пожалуйста....

нужно изменить и упростить код задачи. Множества но нужно решать с помощью типизированных или текстовых файлов.
Условие: Дан файл слов из строчных русских букв, между соседними словами запятая. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят более чем в одно слово.
Код задачи
program Project2;


{$APPTYPE CONSOLE}

uses
SysUtils;

type
CharSet = set of char;

const
Letters: CharSet=['б','в','г','д','ж','з','л','м','н' ,'р'];

var
all_l:Charset;
chet:boolean;
s:string;
ch:char;
fp,fp1:TextFile;

function AnToAs(s: String) : String;
{Функция преобразования символов из Win-кодировки в Dos-кодировку}
Var i,kod : Integer;
begin
SetLength(result,Length(s));
Result:=s;
for i:=1 to length(s) do
begin
kod:=Ord(s[i]);
if ( kod>=224) and ( kod<=239) then
Result[i]:=Chr(kod-64);
if ( kod>=240) and ( kod<=255) then
Result[i]:=Chr(kod-16);
end;
end;


procedure vyvod(s:CharSet);
{Процедура вывода множества на экран}
const
c:string = 'бвгджзлмнр';
var
i:integer;

begin
for i:=1 to length(c) do
begin
if c[i] in s then
write(AnToAs(c[i]),' ');
end;
writeln;
end;

procedure ChetNechet;
{Процедура, выделяющая в алфавитном порядке
все звонкие согласные буквы, которые входят
в каждое нечетное слово и не входят хотя бы
в одно четное слово}
begin
if chet=true then
begin
vyvod(Letters-all_l);
chet:=false;
end
else
begin
vyvod(Letters*all_l);;
chet:=true;
end;
end;

procedure Reshenie;
{Процедура основного решения задачи}
begin

chet:=false;
all_l:=[];
while not eof(fp) do
begin
read(fp,ch);
if ch in Letters then
all_l:=all_l+[ch]
else
if ch = ',' then
begin
ChetNechet;
all_l:=[];
end;
end;

ChetNechet;
end;


begin
AssignFile(fp,'file.txt');
Reset(fp);

Reshenie;

CloseFile(fp);
readln;
end.
zagadka вне форума Ответить с цитированием
Старый 03.12.2008, 18:20   #2
zagadka
Новичок
Джуниор
 
Регистрация: 03.12.2008
Сообщений: 2
Восклицание

помогите плиз, это очень важно
zagadka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! VisTBacK Помощь студентам 6 19.09.2008 13:44
Помогите, пожалуйста! Wander Помощь студентам 1 22.05.2007 22:20