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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Строки, Подсчитать....
Malice
сообщение 6.05.2007 22:56
Сообщение #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 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 6.05.2007 22:59
Сообщение #22


Пионер
**

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

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


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


Пионер
**

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

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


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

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

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


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

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

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


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

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


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


Пионер
**

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

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


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


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

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

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


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 7.05.2007 0:08
Сообщение #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 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 7.05.2007 0:34
Сообщение #28


Пионер
**

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

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


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


Профи
****

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

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


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

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

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


Пионер
**

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

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


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


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


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

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

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


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

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


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


Профи
****

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

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


Проверь, не поставил ли ты в функции UpCase неправильно буквы диапазона, т.е.:
'а'..'п':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
'р'..'я':UpCase:=Chr(ord('Р')+ord(Ch)-ord('р'));
'А'..'Я':UpCase:=Chr(ord('А')+ord(Ch)-ord('а'));
все веделенные буквы должны быть русскими.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 9.05.2007 14:45
Сообщение #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 - 9.05.2007 14:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Rom1k
сообщение 9.05.2007 16:01
Сообщение #34


Пионер
**

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

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


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


Профи
****

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

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


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

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

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


Пионер
**

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

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


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


Пионер
**

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

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


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

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

 



- Текстовая версия 20.07.2025 9:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"