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

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

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

> Работа с текстом..., помогите с алгоритмом..
Роман
сообщение 13.03.2011 12:13
Сообщение #1


Новичок
*

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

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


Здравствуйте, нужна ваша помощь....
Вот текст задания:

Составить алгоритм и программу обработки фразы (строки текста), находящемся в текстовом файле Inputtxt.txt.
В результате работы программы в файле отчета необходимо в алфавитном порядке расположить буквы из которых состоит текст с их количеством.
Пример:
Содержание исходного файла Inputtxt.txt слово "МАМА"
В результате работы программы получен файл следующего вида:

Буква Количество
А 2
М 2
(служебная информация, не более 2 байт для каждого символа фразы)

В служебной информации должны быть закодированы (зашифрованы) данные о каждой букве фразы.
В дальнейшем, при запуске этой программы входным файлом должен стать файл отчета со служебной информацией. В результате работы должен быть получен текст исходной фразы в файле с именем Output.txt

Вот собственно начал писать программу:

Program labb;
uses crt;
var k,j,m,g,d,l:integer; I,O: text; s:char;
A: array [1..255] of integer;
begin
m:=0;
assign (I,'Input.txt');
reset(I);
while not Eof(I) do
begin
m:=m+1;
read(I, s);
A[m]:=ord(s);
writeln(A[m]);
end;
Close(I);
assign(O,'Output.txt');
l:=0;
for k:=1 to 255 do
begin
if (A[k]<>0) then
begin
append(O);
write(O,chr(A[k]),' - ',l);
writeln(O);
end;
end;
Close(O);
g:=0;
assign(O,'Output.txt');
append(O);
writeln(O,'***********************************');
for j:=1 to m do
begin
append(O);
g:=g+1;
A[g]:=256-A[g];
write(O,chr(A[g]));

end;
Close(O);
readkey;
end.
}


То есть я описал массив, записал аски коды символов в него, собственно возникла проблема с подсчетом количества символов(символы как русские так и англ.), зашифровал я методом Atbash, думаю расшифровать смогу при повторном запуске программы, метку в виде звёздочек поставил, а вот как ее потом определить пока не думалsmile.gif

Сообщение отредактировано: Роман - 13.03.2011 12:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
-TarasBer-
сообщение 21.05.2011 11:49
Сообщение #2


Гость






> if (i>=224) and (i<=255) then begin
> if (i=184) then begin
> if (i>=97) and (i<=122) then begin

Что такое 224,255,184,97,122?
 К началу страницы 
+ Ответить 
Роман
сообщение 22.05.2011 8:14
Сообщение #3


Новичок
*

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

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


Цитата(-TarasBer- @ 21.05.2011 11:49) *

> if (i>=224) and (i<=255) then begin
> if (i=184) then begin
> if (i>=97) and (i<=122) then begin
Что такое 224,255,184,97,122?

1) Диапазон аски кодов маленьких русских букв.
2) Аски код маленькой буквы ё
3) Диапазон аски кодов маленьких английских букв
Далее идет смещение акси кодов до аски кодов больших букв.
Делается это для того, чтобы большие и маленькие буквы считались вместе, а не по отдельности...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 22.05.2011 10:11
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Роман @ 22.05.2011 9:14) *
1) Диапазон аски кодов маленьких русских букв.
2) Аски код маленькой буквы ё
3) Диапазон аски кодов маленьких английских букв
Далее идет смещение акси кодов до аски кодов больших букв.
Делается это для того, чтобы большие и маленькие буквы считались вместе, а не по отдельности...

Роман, ты не понял. Тарас прекрасно знает коды всех букв (может, наизусть). Он имел в виду, что так писать нельзя, иначе потом в коде сам не разберешься. Желательно все эти величины занести в константы и в коде использовать уже их. Типа так:
const
Rus866StartHigh= 224;
Rus866LetterYo= 184
...
Или как-то иначе, но смысл в том, что желательно не использовать голые числа. Правда, лично я особо на это в данном случае не стал бы нажимать, поскольку по крайней мере все это прокомментировано.

Не знаю, понял ты или нет, но назвав свой код идеальным, ты просто должен был ожидать поток подколок ). Так что, пожинай плоды ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Роман   Работа с текстом...   13.03.2011 12:13
volvo   Это невозможно. Хочешь пример? Пожалуйста: А-1 Г-...   13.03.2011 14:46
Роман   Вобщем уточнил: расположить надо не по алфавиту а ...   15.03.2011 12:15
Lapp   Вобщем уточнил: расположить надо не по алфавиту а ...   16.03.2011 5:09
Роман   все-таки хотелось бы чтобы программа расшифровывал...   16.03.2011 14:51
Lapp   Ага, ясно.. Я невнимательно читал просто. Восста...   16.03.2011 15:07
Роман   короче отказался я от идеи считывать "здездоч...   16.03.2011 16:09
Lapp   короче отказался я от идеи считывать "здездо...   16.03.2011 16:28
Unconnected   Посмотри тут.   16.03.2011 16:27
-Дмитрий-   Если не сложно выложите окончательный вариант кода   5.05.2011 16:35
techno   Вот идеально выполненное задание.))) Program lab...   21.05.2011 5:52
Lapp   Вот идеально выполненное задание.Ха ). Ты зайди с...   21.05.2011 6:25
-TarasBer-   > if (i>=224) and (i<=255) then begin ...   21.05.2011 11:49
Роман   > if (i>=224) and (i<=255) then begin ...   22.05.2011 8:14
Lapp   1) Диапазон аски кодов маленьких русских букв. 2) ...   22.05.2011 10:11
Роман   Не знаю, понял ты или нет, но назвав свой код иде...   22.05.2011 11:30
Гость   > Тарас прекрасно знает коды всех букв (может, ...   22.05.2011 10:38
Lapp   Почему никто не напишет просто 'а'..'я...   23.05.2011 10:21


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

 



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