Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Príklad z brožúrky o prímačkách na FMFI UK, 2007

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 17.04.2007 17:43

Toto je príklad štvrtý (nie všetky príklady majú takéto zadanie, väčšinou ide o riešenie konkrétneho problému a to sem dávať je trochu odveci).

Citácia:
Napíšte program, ktorý vypíše všetky slová (postupnosti znakov) dĺžky 6, ktoré sú zložené len z písmen {a, b}. Vypisujte len slová, v ktorých nie je viac písmen b ako písmen a. Program napíšte v ľubovoľnom programovacom jazyku, ktorý ste používali na strednej škole. Takýmito slovami sú napr. abbaba, baabaa, aaaaaa.


Tak, začínam to riešiť, ak máte náladu, skúste aj vy. Ja použijem PHP (už som doma a Pascal, aj keď je na toto vhodnejší, nedisponuje tak komfortným textovým editorom akým je PSPad :) ). Keď budem hotový, linknem riešenie, porovnáme... Dovtedy sa trápte :breakup: , možno sem časom pridám ďalšie príklady.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 17.04.2007 18:41

že trápte sa :D hneď ma napadli dve riešenia...


Offline

Skúsený užívateľ
Skúsený užívateľ
Príklad z brožúrky o prímačkách na FMFI UK, 2007

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok Napísal autor témyOffline : 17.04.2007 19:05

audiotrack píše:
že trápte sa :D hneď ma napadli dve riešenia...

No veď ich sem šupni (aspoň slovne opíš, ak sa ti nechce písať kód) :) Ja mám jedno, ale asi nie je ideálne, žerie dosť systémových prostriedkov.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 17.04.2007 19:10

fúú slovne opísať je niekedy ešte zložitejšie ako napísať kod. No proste rekurziou pre jedno b, backtrackingom pre dve a tri béčka
A teraz ma napadlo úúúplne niečo iné, čo je asi najefektívnejšie, ale to si musím ešte ovoriť či to pôjde


Offline

Skúsený užívateľ
Skúsený užívateľ
Príklad z brožúrky o prímačkách na FMFI UK, 2007

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok Napísal autor témyOffline : 17.04.2007 19:35

Ok, moje riešenie (mal by som ho aj skôr, ale viete, prišla frajerka, večera, pivo atď ;) ):

Kód:
<?php
    $p['1']="a";
    $p['2']="b";
    // dlzka 6, pismena A a B, nesmie byt viac B ako A   
    // mame viacero moznosti: 3a + 3b, 4a + 2b, 5a + 1b, 6a + 0b
       
    // je tu postupne zanorenych 6 cyklov - aby sme mali istotu, ze sa vystriedaju vsetky
    // kombinacie (bude ich dokopy 64 - aj tych, kde je viac pismen B ako povoluje zadanie)
    for ($l['1'] = 1; $l['1'] <= 2; $l['1']++) {
       for ($l['2'] = 1; $l['2'] <= 2; $l['2']++) {
          for ($l['3'] = 1; $l['3'] <= 2; $l['3']++) {
          for ($l['4'] = 1; $l['4'] <= 2; $l['4']++) {
            for ($l['5'] = 1; $l['5'] <= 2; $l['5']++) {
               for ($l['6'] = 1; $l['6'] <= 2; $l['6']++) {
                // aby sme odfiltrovali slova s B viac ako 3krat, zratame vyskyt Acok a Bcok
                // v slove - aby to bolo jednoduchsie, zvolil som prechadzanie polom $l, v
                // ktorom su ulozene vsetky pismena slova
                $poc = "";
                foreach ($l as $key=>$value) {
                    switch ($p[$l[$key]]) {
                    case "a": $poc['0']++;                     
                       break;
                    case "b": $poc['1']++;
                      break;
                  }
                }
                // tu je uz len jednoducha podmienka, ktora spravi odfiltrovanie podla zadania
                if ($poc['0'] >= $poc['1']) {
                  // zostavime slovo z jednotlivych pismen a ulozime do pola
                   $slova[]=$p[$l['1']].$p[$l['2']].$p[$l['3']].$p[$l['4']].$p[$l['5']].$p[$l['6']];
                }                               
              }
            }
          }
        }
      }
    }
    // vystup - vypiseme obsah pola so slovami
    echo "<pre>\n";
    print_r($slova);
    echo "</pre>";
    ?>


Je možné, že sa to tu nezobrazí pekne, každopádne, tu je link na výsledok:
http://vs.fotopriestor.sk/matfyz-04.php

A ešte niečo - tu je jedno z riešení podľa tej knižky (Pascal, alebo čo to je):
Kód:
const
z: array[0..1] of char = 'ab';
var
i, j, n, k: integer;
s: string;
begin
for i := 0 to 63 do
begin
   s:= '';
   n:= i;
   k:= 0;
   for j := 1 to 6 do
   begin
      s:= s+z[n mod 2];
      if n mod 2 = 0 then inc(k);
      n:= n div 2;
   end;
   if k >= 3 then
      writeln(s);
   end;
end;







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Čestný člen
Čestný člen
Príklad z brožúrky o prímačkách na FMFI UK, 2007

Registrovaný: 08.11.06
Prihlásený: 06.12.10
Príspevky: 15721
Témy: 7
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.04.2007 19:43

no trvalo mi to ale na to ze som o php dost dlho nezakopol tak dufam ze aspon trochu dobre :rolleyes:
Kód:
<?php
$ab = create_function('$a','    $i=0;
                                $b=0;
                                $arr1 = str_split($a);
                                for(;$i<=6;$i++)
                                {
                                  if($arr1[$i]==1)
                                  $b++;
                                };
                                return "$b";');

$a=0;
for(;$a<63;$a++)
{
  $c=0;
  $d=decbin($a);
  $c=$ab($d);
  if($c<=3)
  {
    $trans = array(0 => "a", 1 => "b");
   
    if($a<2)
      echo "aaaaa";
     elseif($a<4)
      echo "aaaa";
     elseif($a<8)
      echo "aaa";
     elseif($a<16)
      echo "aa";
     elseif($a<32)
      echo "a";   
    echo strtr($d, $trans);
    echo "<br>";
  };
}
?>







_________________
CPU Core i5 2400 cooler: CM Hyper 212+ | MB GB PH67-UD3-B3 | RAM 4GB DDR3 1600 | VGA Gainward 9600GT 512MB | monitor Samsung LE37A559 | HDD HITACHI 250GB + WD 640GB | PSU Fortron FSP400-60GLN | Case TT Soprano VB1000 BWS black | Mouse Razer DeathAdder
NB HP ProBook 6450b
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Tlačiareň na letáky, brožúrky, vizitky atd

v Externé zariadenia

11

2103

05.08.2012 14:41

eMp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad

v PHP, ASP

22

1207

08.11.2007 15:33

pitrik1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Vzdelanie, štúdium, škola

50

2999

20.11.2007 16:28

nZL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Priklad

v Assembler, C, C++, Pascal, Java

1

1252

17.03.2008 16:27

HT Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Java Príklad

v Assembler, C, C++, Pascal, Java

9

695

21.04.2012 15:51

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Delphi - príklad

v Delphi, Visual Basic

2

714

07.11.2010 23:16

majso Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Priklad Delphi

v Delphi, Visual Basic

3

506

25.01.2017 8:46

focko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Theveninova veta - priklad

v Elektronika

2

3722

03.01.2008 18:42

sike9 Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Priklad pre hlavicky

v Vzdelanie, štúdium, škola

17

841

09.05.2010 18:08

eXistenZ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad z fyziky

v Vzdelanie, štúdium, škola

4

319

14.05.2013 22:10

InVader Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. priklad z fyziky

v Vzdelanie, štúdium, škola

8

1257

15.03.2008 15:19

petos Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Priklad z fyziky

v Vzdelanie, štúdium, škola

18

1727

06.05.2008 22:07

molotow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. priklad v C++

v Assembler, C, C++, Pascal, Java

4

369

06.12.2020 14:26

Jur_3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad z Fyziky

v Vzdelanie, štúdium, škola

3

427

13.12.2014 19:29

Daron Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Banalny priklad-char. tranzistora

v Elektronika

10

1122

07.03.2007 12:43

Taomas Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príklad v Matlab-e

v Ostatné programy

0

399

02.12.2011 11:51

the_pivo Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra