Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Песочница > Центр помощи рулит


Автор: almagnit 17.5.2008, 13:23
Вы заметили, подошло время зачетов и форумские медведи пробуждаются из спячки:

smile  smile  smile  smile  smile  smile  smile  smile  smile  smile 

ЗЫ:

 smile  smile  smile 

Автор: KasMP 17.5.2008, 13:28
нет не заметили... на мои темы никто почему-то не отвечает...

Автор: Samotnik 17.5.2008, 13:34
ага жесть!   вопрос невероятно много  smile 

Автор: Rodman 18.5.2008, 20:06
а что предлагаете?

Автор: almagnit 18.5.2008, 21:03
Может подсобирать FAQ в раздел "Алгоритмы" ? На случай сессий и экзаменов  smile .

Добавлено через 1 минуту и 8 секунд
Или FAQ для "Центр помощи" ...

Автор: KasMP 18.5.2008, 21:17
Цитата(almagnit @  18.5.2008,  21:03 Найти цитируемый пост)
Или FAQ для "Центр помощи" ... 

Да-да-да!!! Дааааааа!
Особенно про многоугольники!!!!!!

Автор: ТоляМБА 19.5.2008, 08:51
Може в подпись сделать "Отматернённый ТоляМБОЙ сдает зачёты на ура" ?  smile

Добавлено через 8 минут и 9 секунд
Или тему открыть "Отматерим качественно и недорого" ?

Автор: Alexeis 19.5.2008, 11:18
Цитата(KasMP @  18.5.2008,  20:17 Найти цитируемый пост)
Да-да-да!!! Дааааааа!
Особенно про многоугольники!!!!!! 

  К сожалению им будут пользоваться очень немногие smile . Это раздел где задают одни и те же вопросы по многу раз.

Автор: Rodman 19.5.2008, 13:01
Цитата(Alexeis @  19.5.2008,  11:18 Найти цитируемый пост)
  К сожалению им будут пользоваться очень немногие smile . 

потому как туда приходят в основном молодежь, которой срочно надо написать программу.. а вопросом о возможном существовании подобной темы никто не задается!

Автор: KasMP 20.5.2008, 15:31
Цитата(Alexeis @  19.5.2008,  11:18 Найти цитируемый пост)
К сожалению им будут пользоваться очень немногие

Тогда можно рассказать о разнице между динамическим списком и динамическим массивом, привести примеры стандартных процедур и функций (добавление/удаление элемента, проверка на пустоту, очищение, т.п.). Многим было бы полезно - посмотрите, сколько вопросов на эти темы.
Цитата(Rodman @  19.5.2008,  13:01 Найти цитируемый пост)
потому как туда приходят в основном молодежь, которой срочно надо написать программу.. а вопросом о возможном существовании подобной темы никто не задается! 

Неправда smile :brush. Я иногда об этом задумываюсь.

Автор: Rodman 20.5.2008, 15:38
Цитата(KasMP @  20.5.2008,  15:31 Найти цитируемый пост)
Неправда smile :brush. Я иногда об этом задумываюсь. 

значит хорошо прячешься, что я не замечаю!

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

Я действительно стараюсь писать кратко и содержательно smile  smile .

Автор: LSD 20.5.2008, 16:00
Цитата(KasMP @  17.5.2008,  14:28 Найти цитируемый пост)
нет не заметили... на мои темы никто почему-то не отвечает... 

У тебя язык неправильный  smile 

Автор: Alexeis 20.5.2008, 16:04
Цитата(KasMP @  20.5.2008,  14:31 Найти цитируемый пост)
Тогда можно рассказать о разнице между динамическим списком и динамическим массивом, привести примеры стандартных процедур и функций (добавление/удаление элемента, проверка на пустоту, очищение, т.п.). Многим было бы полезно - посмотрите, сколько вопросов на эти темы.

  Такие вещи лучше писать в FAQе раздела "Delphi: для новичков". Вот там действительно полезно, кстати основы делфи попадают именно в FAQ и статьи "Delphi: для новичков", так что добро пожаловать в этот раздел. Тут решаются простые вопросы, и помогают в решении задач, но не решают их за участника.

Автор: KasMP 20.5.2008, 16:19
Цитата(LSD @  20.5.2008,  16:00 Найти цитируемый пост)
У тебя язык неправильный 

В смысле smile ? Тебе не нравится Pascal smile ?
Цитата(Alexeis @  20.5.2008,  16:04 Найти цитируемый пост)
Такие вещи лучше писать в FAQе раздела "Delphi: для новичков". Вот там действительно полезно, кстати основы делфи попадают именно в FAQ и статьи "Delphi: для новичков", так что добро пожаловать в этот раздел.

Гм... У меня пока недоделанный Delphi (т.е. pascal) smile.
Цитата(Alexeis @  20.5.2008,  16:04 Найти цитируемый пост)
Тут решаются простые вопросы, и помогают в решении задач, но не решают их за участника. 

Никогда не просила что-то за себя решать smile !
(да и не позволила бы: я же все-таки хочу чего-то в будущем smile )

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

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

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

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

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

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

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

Например, вот http://forum.vingrad.ru/forum/topic-210201.html мало связано с конкретным языком, мой вопрос касается скорее самого алгоритма smile .
(только я зачем-то в заголовке темы вместо [Алгоритм] написала [Pascal] smile ; не помню, о чем я в тот момент думала smile ...)

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

Только не говорите, что я приняла желаемое за действительное smile .

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

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

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

Ты http://forum.vingrad.ru/forum/topic-210201.html тоже был: "Это сообщение отредактировал(а) 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 .

Автор: Mayk 20.5.2008, 20:19
Цитата(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 хавают.

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

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

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

я даже не читал... времени щас нет решать...
я там не хорошее слово исправил!

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

Ах да, я вспомнила! В PostScriptum вместо "фигня" было кое-что другое... Вообще "фигня" не выражает моего отношения к задачке-замене в полной мере!

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

Автор: KasMP 21.5.2008, 10:36
Цитата(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.

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

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

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

Добавлено через 1 минуту и 18 секунд
К тому же, такая способ организации динамического массива описан http://sources.ru/wiki/doku.php?id=pascal:dynamic_array.

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

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

Женский

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

так что - звыняйте!

Автор: ТоляМБА 21.5.2008, 11:37
Rodman, эвон тя как шпыняет - то в тундру, то в монастырь  smile 

Автор: Rodman 21.5.2008, 11:59
ты шо не видел монастыри в тундре?!

Автор: KasMP 22.5.2008, 16:51
Ну и что  smile? На мою тему опять никто не отвечает smile  smile ...

Добавлено через 1 минуту и 37 секунд
http://forum.vingrad.ru/forum/topic-210196/30.html, весь день почти никого нет...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)