#1 Marek Kadlčík
Tohle nepomůže?
Anonymní profil – JoDiK
Příspěvky odeslané z IP adresy 88.103.233.–
#3 Krtek132
A google jsi zkoušel?
Delphi 7 unit example?
Třeba zde? http://www.delphibasics.co.uk/Article.asp?…
#1 Krtek132
Vzhledem k typu zadání jde o typickou školní úlohu, takže jak to naprogramovat? Přesně tak, jak to po tobě žádá učitel. Podívej se do svých poznámek, nebo do výukových materiálů, které ti dal k dispozici, nebo si nějaký podobný příklad najdi na internetu...
#1 pietro62
A co ti nefunguje? Pokud ten program má mít jen jedno třídění, tak není co vybírat, pokud jich bude víc, asi budeš vybírat z nějaké nabidky.
Každopádně pro začátek zkus místo toho "výběru" zatím rovnou třídit.
Takže místo:
writeln('Vyber triedenie MAXSORT ');
readln(Q);
case Q of
MAXSORT;
end;
Napiš jen:
MAXSORT;
pak by to mohlo aji nějak fungovat
#29 blekota
Říkají ti něco pojmy ladění,krokování, výpis obsahu proměnných (debug, step, watch)?
Pokud ne, měl by ses začít zajímat, složitější programy se bez toho psát nedají.
Takže když se ti něco "zacyklí", tak to krokuj, vypisuj si obsahy řídících proměnných a musíš na tu chybu přijít raz, dva...
#2 JoDiK
Zkus toto:
Random r = new Random();
int c = generator.nextInt(6) + 1;
#55 JoDiK
Pro kontrolu, co to dělá u mně:
1110000
1101000
1100100
1100010
1100001
1011000
1010100
1010010
1010001
1001100
1001010
1001001
1000110
1000101
1000011
0111000
0110100
0110010
0110001
0101100
0101010
0101001
0100110
0100101
0100011
0011100
0011010
0011001
0010110
0010101
0010011
0001110
0001101
0001011
0000111
#54 JoDiK
V tom pseudokódu by to bylo:
pro i=1 to pocetBitu-2
napln(1, od, 3)
pro j=i+1 To pocetBitu-1
napln(i+1, j, 2)
pro k=j+1 To pocetBitu
napln(j+1, k, 1)
vypis(pole)
dalsi k
dalsi j
dalsi i
Koukám, že v tom první cyklu jsem měl kopírovací chybu... prochází se do pocetbitu-2
#1 bflmpsvz
Nevím teda co přesně chceš nebo ne, ale vypnutí výpisu se odjakživa dělá jen jednou na začátku @echo off
a zahazování informačních výpisů přesměrováním na zařízení nul.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /L %%i IN (1,1,200) DO (
set var=0000%%i
set var=!var:~-5!
echo copy logo00000.bmp logo!var!.bmp
copy logo00000.bmp logo!var!.bmp>nul
)
ENDLOCAL
#42 JoDiK
Posledni rada, pokud nechces nazyvat promenne pravymi jmeny - misto d - seznamPrvocisel, misto p - pocetDelitelu, tak si je aspon popis v komentarich, snad se ti to bude mene plest a hlavne, kdyz nekoho pozadas o radu, tak se ten dotycny bude take lepe orientovat.
Jo a jeste - nauc se debugovat (ladit) vcetne vypisu obsahu promennych - hledani logickych chyb krokovanim programu se ti mnohem zjednodusi...
#41 tuden
p tak není správně, protože má sloužit pro identifikaci prvočísla.
neboli pro každé zkoumané číslo se má zjistit počet jeho dělitelů. Pokud je nulový - jedná se o prvočíslo (nehledě na to, že to jde i jednodušeji a rychleji).
Takže tvůj program začíná trojkou a zjistí, že počet dělitelů trojky je nula - tedy jedná se o prvočíslo.
Pak jde na čtyřku - zjistí že počet dělitelů trojky a čtyřky je 1
Pak jde na pětku, a zjistí, že počet dělitelů trojky, čtyřky a pětky je pořád 1 a takhle to jde dál.
Po šestce je počet dosavadních dělitelů tři. Ať je to prvočíslo nebo ne, to už nezjistíš, protože v proměnné p počítáš "celkový počet dělitelů všech zkoumaných čísel"
Už ti to dochází?
#36 tuden
No nevím jak už ti to mám říct...
Odsazuje se jen o dva až pět znaků, vždyť takhle musíš rolovat i na širokoúhlém monitoru...
Doufal jsem, že ti to dojde a zkopíruješ si ten kód co jsem ti poslal a doplníš...
Každpopádně tam jen opisuješ co je v kódu, já ale chtěl, abys tam psal co to má dělat.
Takže místo "tu sa opakuje príkaz a pri k=c konči"
jsem chtěl vidět třeba něco jako: "pro každé zkoumané číslo i se hledají jeho dělitelé počínaje dvojkou a konče i-1"
místo "podmienka ak je p nula tak vypíše dané číslo. Končí tu prvý for"
mělo být: "pokud počet nalezených dělitelů je nulový, jedná se o prvočíslo"
Tak to zkusíme jinak.
Jedna logická chyba je s proměnnou d. Proč ji inicializuješ na hodnotu 2? Když v ní má být seznam prvočísel? Copak 2 je prvočíslo? Kdyby sis podle mé rady pospsal všechny proměnné, třeba by tě to trklo.
Druhá logická chyba je s proměnnou p. V ní se postupně sčítá celkový počet dělitelů všech zkoumaných čísel.
#32 tude
Nevadí ti, žes tam dvakrát zkopíroval to samé?
Zkus to znova a pro každý řádek zvlášť - dle vzoru:
<head>
<script>
function findPrvocislo()
{
var i = prompt("zadaj do kolko cisel chces hladat","");
var k = 2; /* tato proměnná bude použita na ... doplň */
var c=3;
var p = 0;
var d=2;
for ( var c=3;c<i;c++) /*Tento cyklus projde všechna čísla od 3 do zadané hodnoty i*/
{for(var k=2;k<c;k++) /* Tento cyklus... doplň a takhle pokačuj dál */
{if(c%k==0)
{p++}
}/*tu NEkončí prvý for !!! tu končí IF !!! */
if(p==0)
{document.getElementById("copy").innerHTML=d=d+" "+c}
}
}/*teprve tady! končí prvý for !!! procházející čísla od 3 do zadané hodnoty i */
</script>
</head>
<body>
<div id="copy" >toto sa zmení na prvocísla</div>
<button onclick="findPrvocislo()">stlac</button>
</body>
</html>
#30 tuden
Aha, já to chtěl přesněji, něco jako :
do divu s názvem copy ulož hodnotu proměnné d.
V Javě je možné snad úplně všechno, já odkojený Pascalem bych to četl jako: do divu s názvem copy ulož jestli je pravda, že hodnota v proměnné d je rovna součtu hodnoty v proměnné d, mezery a zbytku po dělení.
Důležité je, jestli tomu rozumíš a víš co to dělá.
Každpoádně - opravdu je nutné, abys to do toho divu dával tisíckrát? Nebo-li tolikrát, kolik zbytků po dělení budeš počítat?
Totéž v tom tvém algoritmu. Ten prosímtě přepiš tak, aby byl přehledný - tenhle úsporný zápis je matoucí.
Až to budeš mít upravené (na každém řádku jen jeden příkaz a řádky odsazené podle úrovně vnoření do cyklů), okomentuj každý řádek - co podle tebe dělá.
Pak možná tu logickou chybu objevíš sám (to bude určitě lepší než kdybych ti napsal, kde to je...)
Co podle tebe má dělá tento kód (popiš slovně)?
document.getElementById("copy").innerHTML=d= d + " " + i%k
#8 tuden
Takhle to ale nefunguje...
uvědom si že zápis a=c znamená: do proměnné a ulož obsah proměnné c (třeba číslo 28)
zatímco zápis a="c" znamená: do proměnné a ulož písmeno "c" - s proměnnou c to nemá vůbec nic společného
měl by ses více věnovat studiu základů než se vrhneš na složitější algoritmy
úkol:
do proměnné c ulož číslo načtené z klávesnice
do proměnné d ulož zbytek po dělení tohoto čísla dvěma
jestliže je výsledek roven nule, vypiš zadané číslo a text "je sudé", jinak za číslo vypiš text "je liché"
výsledek ukaž
#1 Klor
Radu nemám, jen informaci, že podle všeho to je další "zvláštnost" prohlížeče MSIE.
Například mozilla Firefox to zobrazuje správně.
Dá se to "obejít" viz http://thecssbug.com/…lumns-ie-bug
.news_title {
width: 463px;
background-image: url(images/box_news_title.png);
position: relative;
background-repeat: repeat-y;
font-size: 16px;
font-weight: bold;
}
.news_title td {
background-image: none;
}
#2 JoDiK
Zdá se, že jsi úplně mimo (to co máš napsané, mi připadá jako nesmysl), takže rada: začni od základu a každý krok odlaď, než budeš pokračovat.
1. na stisk tlačítka vypiš jen nějaký text
2. místo textu vypiš číslo z proměnné, do které si uložíš třeba hodnotu 28
3. místo čísla vypiš zbytek po dělení toho čísla třemi
4. Místo zbytku vypiš seznam čísel 1, 2, 3...až to číslo
5. Místo seznamu čísel vypiš zbytky po dělení těmi čísly
A dál už to určitě zvládneš sám...
Připomínám, že nemáš jít na další krok, pokud předchozí nemáš odladěný!
#1 Petr Zakopal
Jinak ten algoritmus se zdá v pořádku. Kdo ti řekl, že break je zlo? Nechceš.li požít break, nezbyde než použít zdvojenou podmínku tak jak to máš.
Jen můžeš zjednodušit ten zápis - je zbytečné do podmínky psát zarazka=false, stačí napsat not zarazka, případně pokud použiješ obrácenou logiku, tak ještě jednodušeji na začátku nenasel=true, když najdeš tak nenasel=false a do podmínky cyklu napsat while ( Poz^.Dalsi <> nil ) and nenasel
#1 cuprys
A tohle ti nestačí?
#1 Petr Zakopal
Nezkoumal jsem ten algoritmus (zatím), ale z principu - má-li to být struktura Zásobník, tak ten přece má mít pouze jeden způsob "mazání" a to je odebrání z vrcholu zásobníku.
Mazání kdekoliv uprostřed seznamu je možné jen u struktury "seznam".
Takže buď to máš špatně pojmenované, nebo děláš něco, co bys neměl...
#12 Domajska
Zdá se, že jsi nečetla čtyři dohody ani jsi nebyla na divadelním představení stejného názvu.
Protože si všechno bereš osobně.
Kdyby ses nad tím zamyslela, tak bys mohla pochopit, že jsem tě nechtěl urazit ale snažil jsem se s ironickou nadsázkou naznačit, že pokud neřekneš na čem můžeš stavět (co už umíš), tak ti asi těžko může někdo pomoct. Asi jsem to trochu přehnal, promiň.
Takže když odpovíš na otázku 2. třeba se posunem dál...
PS: čtyři dohody vřele doporučuji viz http://cs.wikipedia.org/…5%99i_dohody
Pokud nerada čteš, pusť si aspoň zvukový záznam z divadla, je na youtube. Opravdu ti to zlepší život...
#3 Trebor
A ten tvůj VB nemá nápovědu?
Google ti nefunguje?
#5 LPG1995
Chjo - google- hledat "chrome výpis chyb"
no a například druhý odkaz:
Nevím, jen tipuju - Chrome už nepodporuje frame? Má Chrome nějaké výpisy chyb?
#1 LPG1995
Ten příklad, který jsi tu napsal je u mne funkční, jen jsem u DIVU nastavil jinou výchozí barvu než černou, protože změna z černé na černou opravdu vidět není...
<div id="zkouska" style="width:200px;height:200px;background-color:red;">#3 Brt
"Nevím ale, jak mám napasovat vzorce pro šikmý vrh do programu, který využije tento modul."
No - vzhledem k tomu že jsi neukázala ten svůj program, do kterého to chceš napasovat, tak opět těžko radit. U přejatých modulů je důležité jestli ho autor dostatečně popsal (okomentoval) tak, aby bylo jasné, jak ho použít...
#1 Brt
Vime.
1. Seženeme si a prozkoumáme veškerou potřebnou teorii kolem dané problematiky
2. Navrhneme algoritmus (nebo-li sepíšeme/nakreslíme/v hlavě představíme) co ten program bude všechno dělat a jak a rozdělíme si to na jednotlivé logické části
3. Postupně píšeme jednotlivé části programu a odlaďujeme případné chyby a skládáme celý program z těchto částí
4. Jsme-li začátečníci v programování, během tohoto procesu se naučíme spoustu nových věcí a často zjistíme, že by něco z toho programu šlo udělat lépe a mnohdy ho uděláme celý znovu a jinak.
Takže s čím potřebuješ pomoct? A neříkej, že se vším, takhle to nefunguje...
Jedině, že by ses nechtěla nic naučit, pak můžeš samozřejmě někoho poprosit, aby to udělal celé za tebe, ale k tomu nepotřebuješ žádnou pomoc...
#4 fak.gesho
Aha, tak dvě rady:
1. proměnné si nazývej tak, aby odpovídaly tomu, co obsahují
2. tu řadu vyřešíš vnořeným cyklem a postupným sčítáním
Takže v poli x(1..pocet) budeš mít uložené hodnoty x (pocet je třeba 1000)
v poli fxn po tomto cyklu budou vypočítané funkční hodnoty f(x,n) té tvé funkce
n:=3;
for i=1 to pocet do
begin
fxn(i)=0;
for k=1 to n do fxn(i)=fxn(i)+(sin(k)*cos(k*x(i))/k;
end;
#1 Mot
Čau, taky jsem lenoch a spoustu věcí odkládám a dodělávám je za pět minut dvanáct.
Nikdy mně ale ani nenapadlo, že bych po někom mohl chtít, aby mou práci udělal za mě.
Můžeš mi prosímtě napsat důvody, které tě k něčemu takovému vedou? Jen abych se zoirentoval, kam ten svět dospěl...
#1 yaqwsx
Taky na to koukám, chybí kontext - v jaké verzi to má být?
Tady píšou, že to je operátor binární negace, ale v tom zápise, cos uvedl to nedává smysl...
#1 JK
Takovou stránku neznám, zřejmě proto, že tyto algoritmy se probírají na prvním stupni základní školy a nikdo nepředpokládá, že člověl, který se učí programovat, by neuměl sčítat, odčítat a násobit...
Je sice fakt, že na ZŠ se počítá s malými čísly, ale algoritmus je pořád stejný ať má číslo 3 cifry, nebo 300.
#1 sirvomacka
Koukám, že někde rozdali pár "domácích úkolů".
Stejná rada jako tady:
#34 Dalibor
Rada:
Načti obě vstupní čísla jako řetězce. Nachystej si výstup také jako řetězec.
Projdi cyklem postupně čísla zprava (nebo-li od poslední číslice) a zjišťuj výsledek součtu + přenos z předchozí pozice a přidávej do cílového řetězce. V případě, že dojde k přenosu i u poslední číslice delšího čísla, přidej ještě jedničku zleva.
Předpokládám, že umíš pracovat s jedotlivými znaky řetězce...
#1 FreddieR
Protože nevíme co už umíš a co máš k dispozici, tak těžko radit.
ingiraxo ti sice poradil do budoucna, ale vzhledem k tomu, že teď máš procvičovat větvení a ne cykly, tak si to můžeš maximálně tak někam založit.
Říká ti něco větvení a příkaz IF? Umíš podle obrázku správně napsat příkaz if?

A co jsem psal?
"chová se to divně. Jako by to nastřádalo někde v pomocné proměnné a přičetlo až na konec..."
Musíš si někde nastudovat co s tím...
#5 antybart
To jsem si dal...
Tak jsem konečně nastudoval kus nové syntaxe dávkových příkazů a zdá se, že sice přidali více příkazů do for ale chová se to divně. Jako by to nastřádalo někde v pomocné proměnné a přičetlo až na konec...
ZKus - mělo by to přičítat postupně, ale přičte to až úplně na závěr.
@echo off
set /a x=1
echo %x%
for /l %%i in (1,1,7) do (echo %%i pred %x%
set /a x=%x+1
echo %%i po %x%)
echo konec %x%
Asi budeš muset upřesnit co chceš a co už máš, pokud s tím teda ještě pomoct.
Takže začni tak, že si to zkusíš udělat sama tužkou na papír.
Ale musíš si představit, že umíš jen to, co počítač. Počítač umí vypisovat znaky (hvězdičky a mezery) jeden za druhým na jeden řádek a pak umí ukončit řádek.
Takže vem si linkovaný papír a napiš na něj třeba číslo 7 - to bude počet řádků.
Kolik hvězdiček bude na prvním řádku? Nakresli je. Pak se přesuň tužkou na začátek druhého řádku.
Co bude na druhém řádku? Nakresli to a zase přesuň na začátek.
Kolik bude takovýchto řádků?
Až dojdeš na sedmý řádek - jak bude vypadat? Nakresli ho...
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu











