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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2013, 21:23   #41
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Вот, в этом и есть одно из препятствий
Сейчас разговор ведется не об этом.
Цитата:
Да в чем препятствие?
Сформулируйте.
Хорошо!
Дана строка S ='ABCDEFGHJKLMNOPQRSTVWXYZАБВГДЕЁЖЗ ИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
Как использовать все символы из данной строки, в том порядке, в котором они даны в строке S, в качестве индексов массива?
Poma][a вне форума Ответить с цитированием
Старый 15.04.2013, 21:24   #42
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Кстати, по поводу кодировки. Я понимаю, нам нужно найти такую, чтобы сразу после латинских букв шли русские, причем все подряд, а не как в DOS-866.
Либо я неправильно понял, что такое "перекодировка"
PathTheir вне форума Ответить с цитированием
Старый 15.04.2013, 21:26   #43
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Цитата:
Сейчас разговор ведется не об этом.
Именно об этом, ведь для использования строки в виде индексов, нам придется иметь дело с кодировочной страницей в любом случае, а, так как символы в этой самой странице расположены не по порядку, нам придется изменять индексы скачками.
PathTheir вне форума Ответить с цитированием
Старый 15.04.2013, 21:58   #44
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от 'Poma
Дана строка S ='ABCDEFGHJKLMNOPQRSTVWXYZАБВГДЕЁЖЗ ИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
Как использовать все символы из данной строки, в том порядке, в котором они даны в строке S, в качестве индексов массива?
Код:
const S : string = 'ABCDEFGHJKLMNOPQRSTVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
var a : array[0..255]of byte;
  i : longint;
begin
// инициализируем нужным образом
  for i := 1 to length(s) do
    a[byte(s[i])] := i;
// и используем - перебираем в порядке в соответствии со строкой s
  for i := 1 to length(s) do
    writeln('Char: ',s[i],' Array Index: ',a[byte(s[i])]);
//  MyArray[]
end.
В консоли, правда, с кириллицей некоторые проблемы, но суть, я думаю, ясна.

Последний раз редактировалось s-andriano; 15.04.2013 в 22:00.
s-andriano вне форума Ответить с цитированием
Старый 15.04.2013, 22:05   #45
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Спасибо.

Подобный вариант был предложен мной на 3 странице и Вами втечении всей темы
Интересует именно использование символов как индексов..
Poma][a вне форума Ответить с цитированием
Старый 15.04.2013, 22:24   #46
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну так посмотри еще раз:
если s - строка, то s[i] - именно символ и ни что иное.
s-andriano вне форума Ответить с цитированием
Старый 15.04.2013, 22:28   #47
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Индексами массива A являются числа, так? И уже глубоко параллельно как Вы их получаете! В данный момент интересует задание индексов символами из константной строки.
Poma][a вне форума Ответить с цитированием
Старый 15.04.2013, 22:30   #48
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Тогда объясните, чем первое отличается от второго.
s-andriano вне форума Ответить с цитированием
Старый 15.04.2013, 22:33   #49
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

А если так?
Код:
TArr = array [Char] of Integer;
Мы будем использовать не все символы, ну и что
Правда символы все-равно будут расположены скачками и мы не сможем сделать так
Код:
const
  str = 'ABCD...Я'
var
  a : array [Char] of Integer;
...
for c := str[1] to str[Length(str)] do
  Write (a[с], ' ');
поскольку у нас будут неиспользуемые элементы массива в промежутке от A(лат) до Я (рус)
PathTheir вне форума Ответить с цитированием
Старый 15.04.2013, 23:30   #50
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от PathTheir Посмотреть сообщение
Вот, в этом и есть одно из препятствий
Это не бага, это фича!

Это особенность такой структуры данных как массив. Можно использовать списки, у них таких особенностей нет.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать программу определяющую частоту появления каждого байта в файле. BadGuy Помощь студентам 1 02.04.2012 23:31
Из текста удалить все вхождения некоторого наперед заданного символа и символ, стоящий в тексте перед ним LittleStudent Помощь студентам 1 15.04.2011 00:46
Для каждого из слов указать, сколько раз оно встречается в тексте.(paskal) INZA Помощь студентам 1 14.12.2010 10:25
Найти (в процентах) частоту появления каждого из m наиболее часто встречающихся элементов sk1p Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2008 23:57
В чем проблема появления символа & в начале каждого заголовка итема созданного в рунтайте раздела меню? SkAndrew Общие вопросы Delphi 17 10.08.2008 21:44