Модераторы: группа: Модератор, группа: Комодератор

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Центр помощи рулит 
:(
    Опции темы
Alexeis
Дата 20.5.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Цитата(KasMP @  20.5.2008,  15:19 Найти цитируемый пост)
Гм... У меня пока недоделанный Delphi (т.е. pascal) 

  Там рядом есть раздел по паскалю. Некоторые вещи можно и там обсуждать. ЦП перегружен простыми просьбами по решению дз, потому туда заходят мало народу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LSD
Дата 20.5.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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




Цитата(KasMP @ 20.5.2008,  17:19)
В смысле smile ? Тебе не нравится Pascal smile ?

Не нравится smile По Java вопросов меньше и отвечают на них охотней smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
KasMP
Дата 20.5.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(Alexeis @  20.5.2008,  17:12 Найти цитируемый пост)
Там рядом есть раздел по паскалю. Некоторые вещи можно и там обсуждать.

Буду иногда туда заглядывать smile . Вдруг раскопаю что-нибудь интересненькое  smile .
Цитата(Alexeis @  20.5.2008,  17:12 Найти цитируемый пост)
ЦП перегружен простыми просьбами по решению дз, потому туда заходят мало народу. 

*затаила дыхание* Т.е. мои вопросы не совсем простые?!
Цитата(LSD @  20.5.2008,  17:35 Найти цитируемый пост)
Не нравится smile По Java вопросов меньше и отвечают на них охотней 

Например, вот это мало связано с конкретным языком, мой вопрос касается скорее самого алгоритма smile .
(только я зачем-то в заголовке темы вместо [Алгоритм] написала [Pascal] smile ; не помню, о чем я в тот момент думала smile ...)

Добавлено через 8 минут
Цитата(KasMP @  20.5.2008,  19:36 Найти цитируемый пост)
*затаила дыхание* Т.е. мои вопросы не совсем простые?!

Только не говорите, что я приняла желаемое за действительное smile .
PM MAIL   Вверх
Alexeis
Дата 20.5.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Цитата(KasMP @  20.5.2008,  18:36 Найти цитируемый пост)
Например, вот это мало связано с конкретным языком, мой вопрос касается скорее самого алгоритма

  На самом деле Akina очень точно ответил, задача состоит в том, чтобы посчитать количество упоминаний функции. Делается проход сверху вниз, находиться слово procedure/function после чего извлкается ее имя и дальше идет подсчет найденных повторений этого слова и так для каждой функции. Думаю тут для простоты стоит проигнорировать возможность опережающего описания forward.
  На делфях такая задача решается в 2 счета, а вот на паскале, без всяких StringList ов и PosEx ов весьма неудобно.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
KasMP
Дата 20.5.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(Rodman @  20.5.2008,  15:38 Найти цитируемый пост)
значит хорошо прячешься, что я не замечаю! 

Ты там тоже был: "Это сообщение отредактировал(а) Rodman - 10.5.2008, 22:08".
Цитата(Alexeis @  20.5.2008,  19:53 Найти цитируемый пост)
 На самом деле Akina очень точно ответил, задача состоит в том, чтобы посчитать количество упоминаний функции.

Так и быть, вам вдвоем я поверю smile  smile .
Цитата(Alexeis @  20.5.2008,  19:53 Найти цитируемый пост)
 На делфях такая задача решается в 2 счета, а вот на паскале, без всяких StringList ов и PosEx ов весьма неудобно. 

Почему неудобно?!
[много написала о том, почему должно быть просто; вспомнила, что здесь флейм; все стерла]

Добавлено через 5 минут и 43 секунды
Цитата(KasMP @  20.5.2008,  20:08 Найти цитируемый пост)
Ты там тоже был: "Это сообщение отредактировал(а) Rodman - 10.5.2008, 22:08".

Кстати, я никаких изменений в своем сообщении не нашла smile .
PM MAIL   Вверх
Mayk
Дата 20.5.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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




Цитата(Alexeis @  20.5.2008,  23:53 Найти цитируемый пост)
функции. Делается проход сверху вниз, находиться слово procedure/function после чего извлкается ее имя и дальше идет подсчет найденных повторений этого слова и так для каждой функции. Думаю тут для простоты стоит проигнорировать возможность опережающего описания forward.

Тут парсер использовать надо по-хорошему, ибо повторы подсчитают лишнее.
Код

procedure aaaa() ; {раз aaaa}
begin
end;

procedure bbb( ) ;
var aaaa : integer; {два aaaa}
    s : string;
begin
    aaaa := 11 {три aaaa}
    s := 'aaaa'; {четыре aaa}
end;

begin
end.

здесь aaaa не вызывается ни разу. fpc и gpc хавают.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 20.5.2008, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Mayk, это школьная задача, а не реальная, если тут все учитывать то задача станет слишком сложной.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
v2v
Дата 20.5.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев




в разделе Алгоритмы есть 2 темы 2х летней давности где на Сpp приведено кучка замечательных примитивных примеров, которые способны покрыть программы 1 - 2 курсов большинства вузов.


--------------------
PM   Вверх
Rodman
Дата 20.5.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty




Цитата(KasMP @  20.5.2008,  20:08 Найти цитируемый пост)
Ты там тоже был: "Это сообщение отредактировал(а) Rodman - 10.5.2008, 22:08".

я даже не читал... времени щас нет решать...
я там не хорошее слово исправил!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
KasMP
Дата 20.5.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(Rodman @  20.5.2008,  22:48 Найти цитируемый пост)
я там не хорошее слово исправил! 

Ах да, я вспомнила! В PostScriptum вместо "фигня" было кое-что другое... Вообще "фигня" не выражает моего отношения к задачке-замене в полной мере!
PM MAIL   Вверх
Rodman
Дата 21.5.2008, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty




Цитата(KasMP @  20.5.2008,  23:01 Найти цитируемый пост)
Вообще "фигня" не выражает моего отношения к задачке-замене в полной мере! 
ну ты ж понимаешь...
не что не совершенно!

PM MAIL WWW Skype GTalk YIM MSN   Вверх
KasMP
Дата 21.5.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Цитата(Rodman @  21.5.2008,  09:24 Найти цитируемый пост)
ну ты ж понимаешь...
не что не совершенно!

Теперь и эта фигня у меня не получается... (я думала, я с ней в два счета справлюсь, а она тоже сопротивляется...)
Надо просто сложить два длинных натуральных числа и при этом использовать динамические массивы.
Иногда программа работает правильно, а иногда берет из каких-то непонятных ячеек памяти какие-то непонятные числа и ставит их вместо нужных! Я не вижу в программе места, которое может такое позволить.

Код

const    ord00=2*ord('0');
    
type    M=array [1..1] of string[1];
    PointerM=^M;

var    a, b, c: PointerM; {a - массив для цифр первого числа, b - для второго, c - для результата}
    s1, s2: string; {s1 и s2 - числа, которые надо сложить}
    f: text;
    len1, len2, min, max: integer;
    size,sizeEl: integer;
    temp, tempDiv: integer;
    i: integer;

begin
assign(f, '...'); reset(f);
readln(s1); readln(s2);

{определяем нужное кол-во элементов массива}
len1:=length(s1); len2:=length(s2);
if len1>len2 then max:=len1 else max:=len2;

{выделяем память;
 позволяю себе упрощение и для одного из чисел, возможно, выделяю больше памяти, чем надо}
sizeEl:=sizeof(char); size:=max*sizeEl;
GetMem(a,size); GetMem(b,size); GetMem(c,size+sizeEl);

{переписываем цифры из s1 из s2 в массивы a и b в обратном порядке: при сложении столбиком нужен обратный порядок}
for i:=1 to len1 do a^[i]:=s1[len1-i+1];
for i:=1 to len2 do b^[i]:=s2[len2-i+1];

{опять же позволяю себе упрощение и просто тупо забиваю пустующие разряды (если они есть) нулями}
if max=len2 then
    for i:=len1+1 to max do a^[i]:='0'
  else
    for i:=len2+1 to max do b^[i]:='0';

{хочу посмотреть, как пустые разряды забились нулями;
 и вот тут-то мы и можем лицезреть самые невероятные вещи!}
for i:=1 to max do write(a^[i], ' '); writeln;
for i:=1 to max do write(b^[i], ' '); writeln;

{сложение столбиком: имхо довольно понятно}
tempDiv:=0;
for i:=1 to max do
    begin
    temp:=ord(a^[i][1])+ord(b^[i][1])-ord00;
    Str((temp+tempDiv) mod 10, c^[i]);
    tempDiv:=temp div 10;
    end;

{смотрим, а не образовался ли дополнительный разряд;
 если образовался, то он равен единице и надо увеличить max}
if tempDiv>0 then
    begin
    inc(max);
    c^[max]=1;
{выводим}
for i:=max downto 1 do write(c^[i]);

readln; writeln;
FreeMem(a,size); FreeMem(b,size); FreeMem(c,size+sizeEl);
end.

PM MAIL   Вверх
Rodman
Дата 21.5.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty




Цитата(KasMP @  21.5.2008,  10:36 Найти цитируемый пост)
M=array [1..1] of string[1];
мочишь... я такого еше не видел!
а M: array of string[1] хуже звучит?
или раз уж на то пошло - M: array of char

Это сообщение отредактировал(а) Rodman - 21.5.2008, 10:40
PM MAIL WWW Skype GTalk YIM MSN   Вверх
KasMP
Дата 21.5.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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




Rodman, я так и знала, что ты это скажешь smile .
Код
M: array of type;

Я пробовала так сделать в самом начале - не получается, требует или "[", или "(" после "array".
Тип char тоже не подходит, т.к. для процедуры str нужна переменная строкового типа (с символом не проходит!).

Добавлено через 1 минуту и 18 секунд
К тому же, такая способ организации динамического массива описан здесь.
PM MAIL   Вверх
Rodman
Дата 21.5.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty




Цитата(KasMP @  21.5.2008,  11:26 Найти цитируемый пост)
Rodman, я так и знала, что ты это скажешь smile .
аааа... меня повяжут... кто то читает мои мысли!

Надо собирать монатки и в монастырь...

Женский

Добавлено через 39 секунд
ну а по сути - динамика всегда была моей "ахилесовой пятой"...

так что - звыняйте!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Флейм"
Тут модерируют вообще все кому не лень!

Это "Песочница"!!!

В разделе не действуют многие правила:

  • Можно оффтопить
  • Можно флудить, но не увлекаться
  • Можно общаться на темы, не только связанные с программированием.
  • Если вы поставили здесь адекватный вопрос, не ждите адекватного ответа.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать
  • Материться
  • Уныло обсуждать унылые вещи

Напоминаем о существовании волшебной кнопочки Репорт. Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джинна-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:

Лучшее в Камасутре - это введение!


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

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


 




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


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

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