Program PASCAL

Brigády, placené nabídky, apod...
CaesarXYX

Program PASCAL

Příspěvek od CaesarXYX »

Zdravím všechny co ovládají Pascal a chtějí si přividělat,

Nabízím odměnu 500-1000,- Kč dle kvality odvedené práce.
Potřebuji naprogramovat celkem 2 programy, z čehož se v jednom pouze doplní algoritmus.
Velice na to spěchám a tak pokud možno reagujte co nejdříve.

Jedná se o tyto programy:
1. Program který na vstupu dostane určitý vzorec a má ho upravit a zjednodušit
2. Program je hra piškovorky...v ní je třeba doplnít algoritmus tahů počítače. Vše ostatní v tomto prog. je hotové.

Pokud máte zájem pište na caesarx@seznam.cz

Mockrát děkuji a těším se na spolupráci.
kr4UT1k
Matfyz(ák|ačka) level II
Příspěvky: 55
Registrován: 29. 6. 2007 22:00
Typ studia: Informatika Mgr.
Bydliště: Praha 6 - Střešovice

Re: Program PASCAL

Příspěvek od kr4UT1k »

To vypadá, jako by někdo nestíhal zápočťák...
vrtulex
Matfyz(ák|ačka) level I
Příspěvky: 45
Registrován: 20. 2. 2008 22:41
Typ studia: Informatika Bc.
Bydliště: Praha
Kontaktovat uživatele:

Re: Program PASCAL

Příspěvek od vrtulex »

Tak nějak....

Kdybych měl čas, tak bych do toho šel. Leč ten čas není... a zjednodušování vzorců nebývá velká sranda, to poškvorky ale ano. Jestli náhodou na ty piškvorky vše nezařídila malá knihovna od Topfera...
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: Program PASCAL

Příspěvek od hippies »

i to zjednodusovani vzorcu je docela jednoduche, pokud nemas extra velke naroky (delal jsem to jako soucast integrovatka v prologu)
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
CaesarXYX

Re: Program PASCAL

Příspěvek od CaesarXYX »

Ano, ano, ano......může za to ta jeho malá knihovna :) bohužel....
A ty vzorce no jedná se o úpravu polynomů....zadáte 2 polynomy např. (5x-4x+5x^3)+(4-19x^2) a program je sečte (upravý) toť vše.
No pokud někdo může a má čas, tak budu do nebes vděčný.
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: Program PASCAL

Příspěvek od hippies »

hehe, to scitani polynomu jsme delali na cvikach taky:)

.. jen si to udelej, jen ti to prospeje;)
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
CaesarXYX

Re: Program PASCAL

Příspěvek od CaesarXYX »

Jo díky přesně to jsem potřeboval vědět....... :idea: :?:
hippies píše:hehe, to scitani polynomu jsme delali na cvikach taky:)

.. jen si to udelej, jen ti to prospeje;)
vrtulex
Matfyz(ák|ačka) level I
Příspěvky: 45
Registrován: 20. 2. 2008 22:41
Typ studia: Informatika Bc.
Bydliště: Praha
Kontaktovat uživatele:

Re: Program PASCAL

Příspěvek od vrtulex »

CaesarXYX:
No, k tomu sčítání polynomů... jestli jde jenom o tohle, tak bych řekl, že bude asi nejtěžší ten řetězec vstupní rozparsovat. Pokud budeš polynom reprezentovat např. polem, tak stačí převést onen řetězec na polynom. Každý prvek pole bude uchovávat informaci o výskytu členu s určitou mocninou. Tedy třeba x^2 + 2x - 3 bude v tříprvkovém poli P vypadat následovně:
P[0] = -3, P[1] = 2, P[2] = 1. A rozparsovat vstupní řetězec nebude až zas tak obtížné. Pak stačí tyhle dvě pole sečíst... pokud je vůbec třeba dvou polí, o čemž pochybuji... a hotovo. Pokud bys to chtěl reprezentovat spojákem, tak to bude trochu zajímavější...

Piškvorky:
Tady je to ze začátku jednoduché. Implementuješ minimax (asi teda variantu megamax, já nevím, jak se jmenuje) a alfa-beta prořezávání. O tom lze na netu najít dostatek a asi bude existovat někde i pseudokód, kdybys to nechtěl vymýšlet úplně z hlavy, což je samozřejmě nejpoučnější, ale nemusí to být trivka, než se to odladí. Horší na tom je napsat to tak, aby to hrálo nějak rozumně a hlavně v rozumném čase. Prostě se to musí nějak hodně prořezat (ztrátově). Na http://vrtulex.secit.sk/ se v sekci Pascal povaluje moje čtvrtletní práce ze třeťáku střední školy. Čirou náhodou to jsou piškvorky a čirou náhodou využívají Topferovu knihovnu (nevím, proč říkáš "bohužel") (čirou náhodou mne učil Topfer :-) ). Ale není to moc komentované. Vlastně asi vůbec... ale můžeš se na to zkusit podívat, jestli to nějak pomůže. Vlastně doufám, že k tomu tam jsou zdrojáky, ale myslím, že ano.
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: Program PASCAL

Příspěvek od hippies »

Kód: Vybrat vše

{
   Program cte ze vstupu 2 polynomy v reprezentaci exp.-koef., a potom tiskne
   jejich soucin v setridenem tvaru. Reprezentace je pomoci spojoveho seznamu.

 U_01                                                Jan Prochazka LS2004/2005
}

type
  Tkoef = real;
  PPrvek=^TPrvek;
  TPrvek= Record
      a: Tkoef;    {koeficient}
      e: integer; {exponent}
      p: PPrvek;  {ukazatel na dalsi prvek seznamu}
  end;

var
 p: array[1..3] of PPrvek; {ukazatele na polynomy}
 cislo: integer; {cislo polynomu}

procedure Vytvor; {Vytovri hlavu polynomu}
begin
  new(p[cislo]);
    p[cislo]^.a:=0;
    p[cislo]^.e:=0;
    p[cislo]^.p:=NIL;
end;

procedure Pridej(var kam: PPrvek; koef: Tkoef; expon: integer); {za prvek kam povesi prvek s hodnotami dle parametru}
begin
  New(kam^.p);
  kam:=kam^.p;
    kam^.a:=koef;
    kam^.e:=expon;
    kam^.p:=NIL;
end;

procedure Nacti(const zac: PPrvek); {nacte polynom}
var
  aa: Tkoef;
  ee: integer;
  pp:PPrvek;
  c: char;
begin
  pp:=zac;
  while not eoln do begin
    read(ee);
    read(aa);
    Pridej(pp,aa,ee);
  end;
  read(c);read(c); {precte enter}
end;

procedure Nasob(co, scim:PPrvek; var kam: PPrvek);
var
  i,j: word;
  p,q, pom: PPrvek;
begin
  New(pom);{vytvori hlavu vysledku}
  kam:=pom;

  p:=co;
 while p^.p<>NIL do begin
    p:=p^.p;
    q:=scim;
    while q^.p<>NIL do begin
      q:=q^.p;
      New(pom^.p);
      pom:=pom^.p;
      pom^.a:=p^.a*q^.a;
      pom^.e:=p^.e+q^.e;
    end
  end;
  pom^.p:=NIL;
end;

procedure Zrus(var co: PPrvek);
var pp: PPrvek;
begin
  while co<>NIL do begin
    pp:= co^.p;
    Dispose(co);
    co:=pp
  end;
end;

procedure Trid(co: PPrvek);  {setridi (zatridovanim) a poscita polozky}
var
  pom, pp, pp2, kon: PPrvek;
begin
  pp:=co^.p;
  kon:=co;

  while pp<>NIL do begin   {Zatrid vsechny prvky}
      pp2 := co;

      while (pp2<>pp) and
            (pp2^.p^.e>pp^.e) do pp2:=pp2^.p; {najdi kam zaradit}

    if pp2^.p=pp then
          kon:=pp   {nebude se s nim hybat -> jen se posun na dalsi}
    else
      if pp2^.p^.e=pp^.e then
        begin
          {pricti k existujicimu a uvolni pamet}
          pp2^.p^.a:=pp2^.p^.a+pp^.a; {secti cleny}
          kon^.p:=pp^.p; {vynechej zahazovane}
          Dispose(pp);   {zahod}
        end
      else begin
        {zarad na spravnou pozici}
        pom:=pp2^.p;
        pp2^.p:=pp;
        kon^.p:=pp^.p;
        pp^.p:=pom;
      end;

    pp:=kon^.p;          {nasmeruj na dalsi}
  end;
end;

procedure ZahodNuly(co: PPrvek); {pokud je v polynomu clen s nulovym koef., tak ho smaz}
var
  p, pom: PPrvek;
begin
  p:=co;
  While p^.p<>NIL do begin
    if p^.p^.a=0 then
      begin
        pom:=p^.p;
        p^.p:=p^.p^.p;
        Dispose(pom);
      end
    else
    p:=p^.p;
  end;
end;

procedure Tiskni(co: PPrvek);
var
  sgn: char;
  pp: PPrvek;
begin
  pp:=co;
  Write('Vysledek je:');
  if pp=NIL then begin
    write('0.');
    exit;
  end;

  pp:=pp^.p;
  repeat
    if pp^.a>=0 then sgn:='+' else sgn:=#0;
    Write(' '+sgn,pp^.a:2:2);
    if pp^.e<>0 then Write('*x^',pp^.e);
    pp:=pp^.p;
  until pp=NIL;
  WriteLn;
  WriteLn('*************************************************************************');
end;

begin
  for cislo:=1 to 2 do begin{naźti vstup}
    Vytvor;
    Nacti(p[cislo]);
  end;

  Nasob(p[1], p[2], p[3]);

  Zrus(p[1]); {Zrus nepotrebny vstup}
  Zrus(p[2]);

{  Tiskni(p[3]);{kontrolni tisk}

  Trid(p[3]);
  ZahodNuly(p[3]);

  Tiskni(p[3]);

  Zrus(p[3]);
end.
Je to uz davno, mozna tam je chyba;)
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
CaesarXYX

Re: Program PASCAL

Příspěvek od CaesarXYX »

Všem mockrát děkuji za pomoc.....ani nevím jak se odvděčit...původně jsem to nabízel jako brigádku ale koukám že sem chodí spousta hodných lidí co pomůžou. Kluci já Vás znát tak jdeme do nějakého podniku a zaplatím co vypijete--- :P :D :lol:
Ještě jednou mockrát děkuji.
Odpovědět

Zpět na „Práce“