IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Строки, Подсчитать....
сообщение
Сообщение #21


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Rom1k @ 6.05.2007 23:38) *

ой...А он мне и большие буквы считывает как за отдельные символы.Как сделать,чтобы и большая и маленькая буква были одинаковы???


Надо приводить все буквы к одному регистру, например с помощью такой функции:
Function UpCase(Ch: Char): Char;
begin
case Ch of
'a'..'z': UpCase := Chr(ord('A')+ord(Ch)-ord('a'));
'a'..'n': UpCase := Chr(ord('A')+ord(Ch)-ord('a'));
'p'..'я': UpCase := Chr(ord('P')+ord(Ch)-ord('p'));
else
UpCase:= Ch
end
end;


Цитата

да,ещё вопрос.ЧТо значит fillchar (b,sizeof (b),0); ???

Обнуление массива b.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


а как потом эту функцию использовать в программе и как она работает скажи пожалуйста?!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


я её вызываю после ввода строки
UpCase(с);

Только ничего почему-то не происходит(

Сообщение отредактировано: Rom1k -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


for i:=1 to length(st) do s[i]:=UpCase(st[i]);
и по старому далее

Добавлено через 3 мин.
В s теперь новая строка,с ней работай..


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


ты имеешь ввиду в конце на выходе? что-то ничего не просходит(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


нет, это должно быть сразу после ввода строки


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Пионер
**

Группа: Пользователи
Сообщений: 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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


я наверное что-то неправильно в процедуре написал.Или не правильно её использовал(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Rom1k @ 7.05.2007 1:34) *

я наверное что-то неправильно в процедуре написал.Или не правильно её использовал(

Наверное ты ее скопировал неправильно.. Да и st[i]:=UpCase(st[i]); лучше после repeat поставить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


Вот прикрепил программу.Я там все,что можно пытался переделать.Но ничего не помогает.Несколько раз перепроверял,всё равно Буквы большие и маленькие считает за разные.Помогите пожалуйста переделать?!


Прикрепленные файлы
Прикрепленный файл  Z_3.PAS ( 774 байт ) Кол-во скачиваний: 228
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Знаешь,если как я смотреть без компилятора,то вроде должно работать..

Добавлено через 3 мин.
И может
al:=['А'..'Я'];
?


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Проверь, не поставил ли ты в функции UpCase неправильно буквы диапазона, т.е.:
'а'..'п':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
'р'..'я':UpCase:=Chr(ord('Р')+ord(Ch)-ord('р'));
'А'..'Я':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
все веделенные буквы должны быть русскими.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


всё ... UpCase мне не надо.А терь можете исправит,если что не правильно

var
al:set of char;{???}
i: integer; {позиция буквы в строке}
st:string;{строка ввода}
c:char; {???}
b:array [char] of byte;{Сохраняет символ массива,кот попался}


и вот сюды нужны комменты(((

WriteLn('Введите строку слов,признак окончания-точка.');
ReadLn(st);
i:=1;
al:=['а' .. 'п', 'р' .. 'я', 'А' .. 'Я']; {буквы русского алфавита}
repeat
if (st[i] in al) then {Если в строке есть символ сассива}
inc(b[st[i]]);
inc(i);
until(i>length(st)) or (st[i]='.');
for c:=#0 to #100 do
if b[c]>0 then
writeln (c,'-',b[c]);


Сообщение отредактировано: Rom1k -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


никто не может помочь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Rom1k @ 9.05.2007 17:01) *

никто не может помочь?

Чем ?
Объясни, прога работает ? Какие строки вызывают у тебя затруднение ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


мне нужны комменты к этой проге.я просто не оч понимаю,как,что работает.смотрел отладчиком,вроде бы понимаю все,а когда пишу комментарии не оч красиво получается(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Пионер
**

Группа: Пользователи
Сообщений: 119
Пол: Мужской

Репутация: -  0  +


кто-нить может помочь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 23:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name