Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объявление массивов 
V
    Опции темы
Innuendo
Дата 18.2.2006, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



Был сёдни на олимпиаде нашей smile ну в Паскале я не особо, а на ЯваСкрипт мне не разрешили писать smile
вот возникли тогда проблемы:
1) при создании массивов- что ему не нравилось:
Код

var
 words: array[1..50] of string;
 bukv : array[1..50, 1..2] of string;

ну мне надобыло 250,а не 50, но он писал что structure is too long.
Но почему при такой структуре, он писал что too many variables... чё эть такое?

и всё, что у меня не получилось, было связано ен с правильностью ашлоритмов, а с тем что вводимые данные были большущие (файл с милионном значений и т.д.). Дайте плз какую-нить статейку про это дело. Как в паскале работать, и переберать такое большое кол-во данных?



Заранее спасибо.

Это сообщение отредактировал(а) Innuendo - 18.2.2006, 18:09


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Rencom
Дата 18.2.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



structure is too long - структура слишком длинная... хм... мб памяти не хватило под стринг, надо было попробовать ограничить стринг скажем символами 50 - string[50].
PM MAIL   Вверх
Innuendo
Дата 18.2.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



можно.. а вот, что такое too many variables?


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Guedda
Дата 18.2.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



то же самое, что и structure...
Не хватает памяти для размещения переменных... За каким компом сидел?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Innuendo
Дата 18.2.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



да я вообще в шоке.
короче сначала повели в актовый зал... Это типа городская 2-ой тур, поэтому в республиканском колледже информатике.
Их директор пол часа свистел, какие у них компы, какие учителя (всё на молдавском, я мало чё понял) и т.д.
А когда меян послал в кабинет, то я компы менял- мониторы то царапангные, то слюнявые, то паскаль не идёт...
Сел за комп, так когда делал слежку через Watches, он переходил со стрки на строку секунды 2.. это ужас...
Там селероны под пень 3-ий стоит... у нас в школе на дохлых 333 мгц и то watches быстро работает.

у меня не получалось объявить этот массив, я встал и ушел... Ничего кроме Паскаля не разрешили.smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Snowy
Дата 18.2.2006, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: нет
Всего: 484



просто в DOS размер структуры не может превышать 64кб.
А медленно из-за корявой виртуальной машины в XP.
Под XP все DOS программы работают медленно,если не поставить лечилку от ненужной нагрузки.
А так DOS машина есть 100% ресурса процессора. Отсюда и тормоза.
PM MAIL   Вверх
Innuendo
Дата 18.2.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



ок... с этим ясно...
а как вот надо ыло решить задачу, в которой из файла считывается пол милионна чисел?
ну в массив их не загонишь... то есть надо проводить действия прям в файле как-то?
есть инфа какая-то на эту тему? smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
armageddon
Дата 18.2.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 9.11.2005
Где: 239

Репутация: нет
Всего: нет



почему в массиве не получится? они же числа так, что должно получится, смотря в каких считывать числа, например для вывода их на экран, как только нашел число, так сразу его и выводи,
а на самом для каких нужд тебе нужно считывать числа?
PM MAIL   Вверх
Innuendo
Дата 18.2.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



ну вот такая задача:
в файле находится последовательность чисел (до пол миллиона). Все числа повторяются чётное кол-во раз, а одно число повторяется нечетное кол-во раз. Вот его и надо вывести. алгоритм простейший (если файл перегнать в массив), а как пол миллиона чисел перегонишь? smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
volvo877
Дата 18.2.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Innuendo, числа целые? Или вещественные?

Если целые, то тебе вообще не нужен массив - простой XOR (по порядку читаешь числа и XOR-ишь их друг с другом в какой-то переменной, изначально равной 0... )
В результате у тебя после всех этих XOR-ов в переменной останется число, встречающееся нечетное число раз (ибо все четные друг друга "удалят")
PM MAIL   Вверх
Innuendo
Дата 19.2.2006, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



volvo877, да, целые...
можно поподробней? я не совсем понял smile


--------------------
=)
PM MAIL ICQ Jabber   Вверх
volvo877
Дата 19.2.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Код
const a: array[1 .. 11] of integer =
  (1, 1, 2, 2, 5, 3, 4, 4, 5, 1, 1);

var
  buf: integer;
  i: integer;

begin
  buf := 0;
  for i := 1 to 11 do buf := buf xor a[i];
  writeln(buf);
end.

массив - только для удобства... Представь, что ты читаешь числа напрямую из файла... smile
PM MAIL   Вверх
Innuendo
Дата 19.2.2006, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



я, правда, не чень понимаю, что такое xor. Ну это или какое-то...(вот именно что какое-то)



--------------------
=)
PM MAIL ICQ Jabber   Вверх
volvo877
Дата 19.2.2006, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



XOR - исключающее ИЛИ (еще называется "сложение по модулю 2"): возвращает 0, если оба аргумента равны, и 1 если аргументы различны... Особенность XOR - если применить ее дважды к одной и той же переменной, то переменная восстановит свое первоначальное значение:
A = (A xor B) xor B
вот тебе пример:
A = 0000 = 0
B = 0101 = 5

делаем A xor B: 0101

еще раз применяем xor B к предыдущему результату:
0101 xor 0101 = 0000...
На жтом и построен тот алгоритм, который я предложил: все ПАРНЫЕ (ну, и встречающиеся четное число раз) числа при XOR-е друг друга превратят в 0, а останется, естественно, только одно непарное - то есть то, что встречается НЕчетное число раз

PM MAIL   Вверх
Innuendo
Дата 19.2.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 24.12.2005
Где: Молдова

Репутация: нет
Всего: 6



ну понял чутос, но всё равно не совсем понял.
Наверное пойму как это работает через watches, только TMT pascal чё-то глючит, не выдает wathces:(

тока вот я попробовал в программе, добавить 2 элемента в массив: 3, и 7.. и получается трйока стала парной, а семёрка уже не парная.. но он всё равно пишет 3. (длину массива я тоже подредактировал)
Код

const a: array[1 .. 13] of integer =
  (1, 1, 2, 2, 5, 3, 1, 4, 4, 5, 1, 3, 7);
var
  buf: integer;
  i: integer;
begin
  buf := 0;
  for i := 1 to 11 do buf := buf xor a[i];
  writeln(buf);
end.

вот так он всё равно пишет тройку как результат

Это сообщение отредактировал(а) Innuendo - 19.2.2006, 11:19


--------------------
=)
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.