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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 14:21   #1
al171717
Новичок
Джуниор
 
Регистрация: 13.05.2010
Сообщений: 1
По умолчанию народ, спасай! нужно с паскаля в СИ 3.1 dos код перегнать

в общем задача такая
дана последовательность слов. напечатать в алфавитном порядке все глухие согласные буквы, которые не входят только в одно слово. рассмотреть более общий случай.
погуглил, но на си решения не нашел. сам с си не знаком. предложеннное решение на паскале такое:
uses crt;
const
gl=['к','п','с','т','ф','х','ц','ч','ш' ,'щ','К','П','С','Т','Ф','Х','Ц','Ч ','Ш','Щ'];{глухие согласные}
bk:string='КкПпСсТтФфХхЦцЧчШшЩщ';
type mnoz=set of char;
var s,s1:string;
m:array[1..100] of mnoz;{массив множеств}
mn,mn1:mnoz;
n,i,j:byte;
begin
clrscr;
repeat
writeln('Введите текст на русском языке, между словами пробелы:');
readln(s);
if pos(' ',s)=0 then
writeln('В предложении только одно слово. Повторите ввод.');
until pos(' ',s)>0;
s:=s+' ';{добавим пробел в конец}
n:=0;
while pos(' ',s)>0 do{создаем массив множеств}
begin
s1:=copy(s,1,pos(' ',s)-1);{копируем очередное слово}
n:=n+1;{считаем}
m[n]:=[];{создаем множество}
for j:=1 to length(s1) do
if s1[j] in gl then m[n]:=m[n]+[s1[j]];{из его букв по условию}
delete(s,1,pos(' ',s));{удаляем это слово}
end;
mn1:=[];{множество букв, не входящих только в одно число}
for i:=1 to n do{для каждого множества }
begin
mn:=[];
for j:=1 to n do
if j<>i then mn:=mn+m[j];{делаем множество из букв, котoрые входят в другие числа}
mn1:=mn1+(m[i]*mn);{добавляем буквы, которые есть и в других словах}
end;
if mn1=[] then writeln('Букв, которые не входят только в одно слово, нет!')
else
begin
writeln('Буквы, которые не входят только в одно слово:');
for i:=1 to length(bk) do{идем по алфавиту,
если буква есть в строке, но ее нет в котором по разу, выводим}
if (bk[i] in mn1) then write(bk[i],' ');
end;
readln
end.
помогите это сделать на си 3.1 dos. Ошень нужно, совсем беда!!!
al171717 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ, перевести программу с паскаля на с++ Janefan Помощь студентам 0 11.05.2010 18:29
Народ срочно нужно kp791 Фриланс 3 15.12.2009 19:07
Нужно перевести с Паскаля на с++ megavolt91 Фриланс 6 26.05.2009 00:14
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37