1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Rom1k |
6.05.2007 1:00
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
Строка символов представляет собой предложение,написанное на русском языке.Предложение имеет длину не более 100 символов и заканчивается точкой.Подсчитать количество различных букв,которые входят в это предложение.
Вот есть подобная задача.только с повторением слов.Что там надо исправить,чтобы всё работало? помогите.Со строками у меня проблемы( program k_3;
var
a:array [1..20] of string;{массив слов}
b:array [1..20] of byte;{Массив счетчиков появления слов}
r,i,j,k:byte;
st,st1:string;
Begin
WriteLn('Введите строку слов');
ReadLn(st);
k:=0;{индекс для перемещения по массиву слов и массиву счётчиков}
r:=1;
while r<= length(st) do
begin
while(st[r]='') and (i<=length(st)) do
r:=r+1;
j:=r; {Левая граница слова}
while (st[r]<>'') and (r<=length(st)) do
r:=r+1; {Правая граница слова}
st1:=copy(st,j,r-j);
{Поиск слова в массиве слов - а}
i:=1;
while (i<=20) and (a[i]<>st1) do
i:=i+1;
{Анализируем значение индекса i}
if i>20 then
begin
k:=k+1;
b[k]:=b[k]+1;
a[k]:=st1;
end
else
b[i]:=b[i]+1;
end;
WriteLn('В массиве (а) ',k,' различных слов ');
writeln('Частота появления каждого слова ');
for i:=1 to k do
writeln(a[i],' ',b[i]);
END.
|
![]() ![]() |
| Rom1k |
7.05.2007 0:08
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: 0 |
Вот код программы...Почему-то не учитывается большая или маленькая буква.Выводит всё также,хотя вроде бы и все правильно сделал!
Program kur_3;
uses crt;
var
al:set of char;
i: integer;
st:string;
c:char;
b:array [char] of byte;
function UpCase(Ch:Char):Char;
begin
case Ch of
'а'..'п':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
'р'..'я':UpCase:=Chr(ord('Р')+ord(Ch)-ord('р'));
'А'..'Я':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
else
UpCase:=Ch;
end;
end;
Begin
fillchar (b,sizeof (b),0);
WriteLn('Введите строку слов,признак окончания-точка.');
ReadLn(st);
i:=1;
al:=['а' .. 'п', 'р' .. 'я', 'А' .. 'Я'];
repeat
if (st[i] in al) then
inc(b[st[i]]);
inc(i);
st[i]:=UpCase(st[i]);
until(i>length(st)) or (st[i]='.');
for c:=#0 to #255 do
if b[c]>0 then
writeln (c,'-',b[c]);
End.
|
Rom1k Строки 6.05.2007 1:00
мисс_граффити С буквами намного проще :)
По условию можно польз... 6.05.2007 2:02
Rom1k нет там берется строка слов.
проверяются слова,бук... 6.05.2007 13:03
Rom1k ээээм....Никто не знает?!?!?! 6.05.2007 14:20
Malice
ээээм....Никто не знает?!?!?!
Чтобы ... 6.05.2007 14:35
Rom1k А можешь помочь сделать с помощью множества или хо... 6.05.2007 14:40
Malice
А можешь помочь сделать с помощью множества или х... 6.05.2007 14:55
Rom1k щас попробую сделать,не получится,напишу.спасибо з... 6.05.2007 15:08
Malice Это практически вся программа, нужно только добави... 6.05.2007 15:40
Rom1k
вот это не могу понять??? :blink: :wacko: 6.05.2007 20:58
Артемий Ну я так понял,что:
al:=['a'..'z']... 6.05.2007 21:02
volvo Артемий
Не будет... То, что сделал ты - не заполне... 6.05.2007 21:05
Rom1k вот то,что я написал.Что там может быть не правиль... 6.05.2007 21:11
Артемий А так?
program ad;
uses crt;
var
b,al:set of char... 6.05.2007 21:20
Rom1k он мне выводит 14,а задание было подсчитать количе... 6.05.2007 21:28
Malice Тогда чуть иначе:
var
al:set of char;
i: integer... 6.05.2007 21:55
Артемий Кстати воспользуйся поиском,подобная задача уже бы... 6.05.2007 21:36
Rom1k искал я...что-то ничего похожего.А вы не можете по... 6.05.2007 21:46
Артемий Например,мой рейтинг,ссылка Текстовый файл. 6.05.2007 21:54
Rom1k спасибо тебе огромное!!!!! Сей... 6.05.2007 22:38
Malice
ой...А он мне и большие буквы считывает как за от... 6.05.2007 22:56
Rom1k а как потом эту функцию использовать в программе и... 6.05.2007 22:59
Rom1k я её вызываю после ввода строки
UpCase(с);
Тольк... 6.05.2007 23:47
Артемий for i:=1 to length(st) do s:=UpCase(st[i]);и по ст... 6.05.2007 23:51
Rom1k ты имеешь ввиду в конце на выходе? что-то ничего н... 7.05.2007 0:00
мисс_граффити нет, это должно быть сразу после ввода строки 7.05.2007 0:06
Rom1k я наверное что-то неправильно в процедуре написал.... 7.05.2007 0:34
Malice
я наверное что-то неправильно в процедуре написал... 7.05.2007 0:58
Rom1k Вот прикрепил программу.Я там все,что можно пыталс... 7.05.2007 1:39
Артемий Знаешь,если как я смотреть без компилятора,то врод... 7.05.2007 6:44
Malice Проверь, не поставил ли ты в функции UpCase неправ... 7.05.2007 10:19
Rom1k всё ... UpCase мне не надо.А терь можете исправит... 9.05.2007 14:45
Rom1k никто не может помочь? 9.05.2007 16:01
Malice
никто не может помочь?
Чем ?
Объясни, прога раб... 9.05.2007 16:30
Rom1k мне нужны комменты к этой проге.я просто не оч пон... 9.05.2007 16:55
Rom1k кто-нить может помочь? 9.05.2007 20:38![]() ![]() |
|
Текстовая версия | 15.11.2025 9:04 |