#1 Kopretinka
žeby jejím jménem?
vysledek:=ExtractText(zadani,znak1,znak2);
napriklad:
vysledek:=ExtractText('nejaky text','j','x');
melo by to vratit:
vysledek='aky te'
#1 wrany
Skutečné parametry funkcí a procedur jsou v jazyce C předávány pouze hodnotou, tj. hodnota skutečných parametrů je zkopírována na zásobník (parametry se kopírují od posledního). Veškeré operace prováděné ve funkci (proceduře) s parametry se dějí s touto kopií, skutečný parametr zůstane nedotčen. Parametry předávané odkazem neexistují, jejich absence se obchází pomocí ukazatelů (viz dále).
#25 Danielle
Nojo, trochu jsme si nerozuměli, ty o voze, já o koze a hlavně jsem si nedočetl to zadání do konce.
Celkové skóre jednotlivých zemí?
No tak když nevíš kolik jich bude, tak buď deklaruj pole s dostatečnou rezervou (zemí zas tak moc není :-), nebo použij dynamické proměnné (orientovaný seznam).
#19 Danielle
prosímtě, pokud pořád nerozumíš zadání, tak si to přečti ještě pětkrát...
v souboru by to přece podle zadání mělo vypadat nějak takto:
USA GER 4:1 čas jméno čas jméno čas jméno čas jméno čas jméno
CZE GER 1:2 čas jméno čas jméno čas jméno
a číst to můžeš třeba nějak takto...
repeat
blockread(f,kodzeme1, sizeof(kodzeme1), precteno);
if precteno=sizeof(kodzeme1) then
begin
blockread(f,kodzeme2, sizeof(kodzeme2));
a další čtení všeho ostatního včetně skore[1]+skore[2] časů a jmen
zpracování jednoho zápasu
end;
until precteno<sizeof(kodzeme1);
Tomu dotazu nerozumím, buď jsem zadání nepochopil já nebo ty.
Ty přece nemáš nic ukládat, soubor podle zadání "existuje" - ty si ukládáš jen pokusný soubor abys to měla na čem testovat... Nebo-li kdo vytváří soubor tak snad musí vědět kolik je těch zemí...
A jestli ses jen špatně vyjádřila a chtěla ses zeptat jak číst ty země když nevíš kolik jich bude, tak přece až dočteš posledního střelce tak zkusíš číst další zápas a když se přečetlo 0 položek, už v souboru nic není... Jinými slovy čteš tak dlouho, dokud je co...
#3 Ondřej Sládek
Kdybys věnoval chvilku googlování (jako já, protože mě zadání zaujalo), tak bys našel podrobný popis toho co potřebuješ, včetně té střely (nebo šipky) třeba zde: http://dspace.k.utb.cz/…_2009_dp.pdf?…
#5 Danielle
Koukám, že makáš na více věcech najednou...
Jak nefunguje? To snad ani nemůže fungovat, to nejde ani přeložit... Pascal nikdy neuměl vypisovat příkazem write celé pole. Tak to vypiš hezky cyklem jedno číslo za druhým...
datum: array[1..8] of byte;
#15 JoDiK
Jenom u těch jmen střelců přečteš zvlášť jako jeden byte délku řetězce a pak dočteš ten zbytek vtom zjištěném počtu.
Na to by se ti moc hodila deklarace absolutním odkazem, tak si to nastuduj.
Třeba zde: http://spsemoh.cz/…/memport.htm#…
#10 Danielle
coby nemohl, jen se mi trochu nezdají ty branky, neměl by jejich počet odpovídat skore[1]+skore[2] ?
Vtom tvém zápisu se trochu ztrácím, zdá se mi že tam máš jen 2x domácí a 1x hosté, to jako jiné skóre než 2:1 nebude? Jestli to bylo myšleno jako testovací sada, tak potom nenačítej skore a rovnou tam piš 2 a 1.
#6 JoDiK
tak ještě jednou, když si přečteš popis údajů, tak máš vlastně návod, jaké struktury zapisovat (číst). Takže budeš postupně zapisovat pomocí příkazů blockwrite jednotlivé údaje po bajtech.
var
kodzeme1,kodzeme2:string[3];
skore:array[1..2] of byte;
blockwrite(soubor,kodzeme1,sizeof(kodzeme1),zapsano);
blockwrite(soubor,kodzeme2,sizeof(kodzeme2),zapsano);
blockwrite(soubor,skore,sizeof(skore),zapsano);
atd...
tohle je pěkně nechutné:
prijmeni strelce ulozene na minimalnim prostoru
ale šlo by to třeba takto:
var
strelec:string;
blockwrite(soubor,strelec,length(strelec)+1,zapsano);
a pak až se to bude číst, tak načíst nejdřív délku toho jména zvlášť a pak dočíst zbytek toho jména...
A dost, nebudu všechno dělat za tebe :-)
#4 Danielle
Zapíšeš je přece příkazem blockwrite, kde 1 blok jsou ty informace uložené ve vhodné proměnné. Pokud je problém tady, tzn neumíš definovat proměnnou s požadovanými informacemi, tak se podívej na typ záznam (record). Nezapomeň při vytváření souboru (a potom i u otvírání pro čtení) definovat správně velikost 1 bloku v bajtech, kterou si pro typ záznam zjistíš funkcí sizeof.
#1 Danielle
V zadání je řečeno, že soubor existuje a že ho máte číst. Opravdu ho chceš vytvářet?
Jinak vytváření je jen opak čtení, takže jestli už máš čtení hotové, tak to zkopíruj a místo reset dej rewrite, místo blockread dej blockwrite a je to...
#4 JoDiK
tady: http://programujte.com/…zovem-radku/#…
#1 mk102
S Javou jsem už taky chvíli koketoval a nechová se zrovna přívětivě. Hlavně nemá ráda, když něco děláš po svým a ne tak, jak to chce ona...
Takže jí necpi zdrojové kódy přímo pod nos a umísti si je do nějaké jiné (své) složky. Na javac.exe si do té složky nachystej třeba dávkový soubor, nebo nastav path. Až budeš sestavovat výsledný .jar soubor, musí být zase v jiné složce než přeložené .class soubory, jinak to prostě nefunguje...
Už jsem to tu komusi psal...
Jestli to fakt nevidíš, tak při :hover tam přidáváš
padding: 5px 5px;
kterej tam normálně není...
proto se ti to rozšíří...
#13 JoDiK
Jdu spát, zkoumej:
const BIT_0 = $01;
type pole = array[0..7] of byte;
var p: pole;
i: byte;
kod : byte;
begin
for i:=0 to 7 do begin
p[i]:=i;
end;
kod:=0;
for i:=0 to 7 do begin
kod:=kod shl 1 or (p[i] and BIT_0);
end;
writeln(kod, '#',chr(kod));
end.
#7 sparky29
Psal jsi, že algoritmizaci a bitové operace umíš, takže tuto část máš už hotovou?
Jestli ne, tak začni s ní: nadefinuj si třeba pole 8-mi bytů. Naházej do něj třeba čísla 0,1,2,3...7.
Vyber z nich neméně významné bity a poskládej je do jednoho bajtu a vypiš hodnotu jako číslo a jako znak.
Pak do toho pole ulož (zakóduj) nějaký znak a zkontroluj jeho dekódování.
Zdrojový pokusný soubor máš k dispozici? Jestli ne, tak si ho vyrob a dekóduj.
#10 sparky29
Nerozumím otázce. Ty nemáš žádný normální souborový manažer, který zobrazí jakýkoliv soubor nejrůznějšími způsoby? Třeba jako text? Nebo hexadecimálně? Tak si prosímtě stáhni Total Commander, na inkriminovaném souboru stiskni F3 a pak v možnostech prohlížeče vyber, jak to chceš vidět...
Nebo si takový prohlížeč zobrazující netypová soubor jako text napiš v Pascalu - (ani ho nemusíš psát, vždyť je to prakticky ta druhá ukázka, co jsem ti poslal...):
program ReadFile; var f: file; NumRead, i : Word; const SizeBuf=1024; var Buf: array[1..SizeBuf] of byte; begin Assign(f,'vstup.dta'); {Jméno vstupního souboru} Reset(f, sizeof(byte)); {Velikost záznamu = velikost typu Integer v bajtech} repeat {Načtení dat ze souboru, jestli je v něm více položek než SizeBuf, budeme opakovat} BlockRead(f, Buf, SizeBuf, NumRead); {Požadujeme SizeBuf položek, skutečný počet položek bude v NumRead} for i:=1 to NumRead do {Výpis všech právě načtených čísel} if Buf[i]>3 {jako znaky, řídící kódy jako čísla }
then write(chr(Buf[i])) else write('#',Buf[i],'#'); until (NumRead <SizeBuf); {Načetlo se méně než se požadovalo = konec čtení} Close(f); end.
#13 sedygrizly
Taky jsem s Javou těžce bojoval a horko těžko se naučil vyrábět spustitelné programy. Největší chaos je ve složkách, jak to děláš po svém (jinak než to oni navrhli) tak to nefunguje... Taky byl problém, že co jsem přeložil ve verzi 7, nefungovalo v 6. CO překládám v 6, funguje i v 7.
Nakonec jsem si na to udělal mustr, který funguje.
Vyzkoušel jsem to na tom tvém příkladě a funguje to. Tak tady máš postup:
V nějaké složce (jejíž název může být libovolný) umístím všechny java soubory. V tvém případě to bude soubor AhojSveteApp.java s tímto obsahem (package není třeba, spíš přidělá potíže)
public class AhojSveteApp {
public static void main(String[] args) {
System.out.println("Ahoj, světe!");
}
}
Pak spustíš překlad do class příkazem:
"c:\Program Files\Java\jdk1.6.0_22\bin\javac" *.java
mohlo by se to přidat do PATH, ale pro mě je jednodušší napsat to jako bat soubor ve stejné složce.
A teď to nejdůležitější. O úroveň výš musí být umístěn soubor s manifestem. Jmenovat se může libovolně, třeba m1.txt a v tvém případě bude obsahovat toto:
Manifest-Version: 1.0
Created-By: 1.6.0_22 (Sun Microsystems Inc.)
Main-Class: AhojSveteApp
Až to budeš mít, vygeneruješ jar soubor následujícím příkazem (nejlépe zase bat ve stejné složce):
"c:\Program Files\Java\jdk1.6.0_22\bin\jar" cmf ../m1.txt ../AhojSveteApp.jar *.class
Pokud ten soubor nebude v jiné složce (například o úroveň výš), tak to prostě nebude fungovat!
No a pak stačí přejít o úroveň výš a spustit:
java -jar AhojSveteApp.jar
(složka s programem java.exe je v PATH)
Všechny příkazy spouštím v příkazovém řádku, abych viděl případné chybové zprávy.
Až je to odladěno, může se .jar soubor spouštět i přímo z Windows...
#16 Tango
Teď už ti nerozumím vůbec, nechápu co ta věta znamená:
ono to automaticky zarovnáva aj pri C99 výslednej aplikacii, akoby ten compiler mal prístup k aplikácii po vytvorení
ten příklad cos sem dal pokud můžu soudit nic nezarovnává, ani neupravuje, jen ukončuje řádky na úrovni slov tak, aby nebyly delší než 80 znaků. Jestli to má dělat jenom toto, tak prostě nahraď tabulátor jednou mezerou, fakt nevím co řešíš...
#14 Tango
Opravdu jsme nepochopili a dokud nepopíšeš čeho chceš dosáhnout ani nepochopíme.
mal by zahýbať slová tak ako to robí word
Jako že to má třeba zarovnávat do bloku (obě strany) vkládáním mezer mezi slova?
Keďže neviem kolko optických medzier zaberá jeden tabulátor, neviem ho za medzery vymeniť.
Možná bude teda problém v tom, že jsi nepochopil, jak funguje tabulátor ve vyšších textových editorech...
Tam přece nepřeskakuje nějaký daný počet mezer, ale skáče na nejbližší přednastavenou pozici. Ta může být daná buď výchozím krokem, nebo tabulační značkou (zarážkou) nebo pozicí začátku ostatních řádků u předsazeného textu.
Nebo-li, pokud pořádně nevysvětlíš co chceš, není ti rady ani pomoci...
#7 Tango
Keď stlačím tabulátor, neposunie ma o 8, alebo tak, ale na pozíciu na ktorej v predošlom riadku nie je prázdny znak.
Nepsal jsem náhodou prakticky totéž?
Programátorské editory většinou vkládají místo tabulátoru tolik mezer, kolik je potřeba na posun na začátek dalšího slova/bloku podle předcházejícího řádku...
Nevidím ti na obrazovku, na čem zrovna děláš ani jak si představuješ, že to má fungovat... Z toho, cos tu popsal se to poznat nedá... Ale pokud se to má chovat jako programátorský editor, tak už sis vlastně odpověděl sám...
Měl jsem dojem, že dnešní generace se "nemusí nic učit", protože až to bude potřebovat, všechno je na internetu. Jenže jak to tak vypadá, ona na to papomněla, nebo to tam neumí hledat!
Pokud to po tobě někdo chce ve škole, tak jsi už výuku číselných soustav a převodů mezi nimi absolvoval. Jestli jsi zrovna chyběl, tak se to douč...
Stejně tak jsi absolvoval výuku hledání na internetu.
Takže všechno už víš...
#6 undatra
Já myslím, že to umí naprogramovat každý, kdo nějakou školou prošel, otázka zní, proč by to jako měl někdo dělat?
Že ty to umíš na papíře, ale do programu to napsat neumíš je sice hezký, ale od toho přece chodíš do školy, aby sis tím taky prošel a naučil se to...
Tak nezdržuj a šup do práce...
Až se někde zasekneš, ptej se...
#7 nevedko01
Aha, no tos neřekl, že se jedná o speciální tiskárnu... Tak to k ní máš určitě dokumentaci, kde je vše podrobně popsáno... A taky mi není jasné, proč by ty znaky měly vkládat v notepadu, na to snad napíšeš nějaký svůj obslužný program, který si fonty bude obhospodařovat sám ne?
#21 kejta
Heleď, jestli umíš číst, tak nevím, kam na takový blbostě chodíš...
Co si myslím jsem ti už napsal dvakrát (a o tom jakej jsi nebo nejsi to nebylo ani jednou) a jestli ti třeba tento nebo tento můj příspěvek nepřišel konstruktivní, tak bylo mé rozhodnutí správné.
Poslední rada - uč se na jednodušších příkladech, tohle je pro začátečníka moc těžký...
Howgh.
#1 Myschoo
Tak si prosímtě vem papír a nakresli na něj jedenáct vodorovných čar asi 1cm od sebe a 10 cm dlouhých.
Pak nakresli jedenáct svislých čar, opět 10cm dlouhých a 1cm od sebe, tak aby protínaly ty vodorovné (krajních se budou dotýkat) - ano - vypadá to jako tabulka, nebo matice :-)
Pak do takto vzniklých čtverečků napiš libovolná čísla. Vem nůžky a rozstříhej to podle vodorovných čar.
Vem druhý papír a zase na něj nakresli ty čáry. Vlevo od čtverečků si napiš čísla 1 až 10. Na tento papír naskládej ty nastříhané pásky. Někam bokem si nakresli čtvereček, vedle něho napiš k. Pak další čtvereček a vedle něj l. Vyber si dvě libovolná různá čísla od 1 do 10 a zapiš je do těchto dvou čtverečků. Pak se mocně zamysli a zkus prohodit dva pásky na řádcích, odpovídající těm číslům zapsaným v k a l. Zvládnuls to? Výborně. Teď to zkus znovu, ale dodrž následující pravidla: nemůžeš pracovat zároveň s více papírky, papírek nemůžeš zvednout do vzduchu, můžeš ho jen přesunout na papíře na místo, kde jsou nakresleny čtverečky o stejném počtu a rozměru, jako má papírek.
Že to nejde? Tak si zase někde bokem nakresli deset malých černoušků... tedy čtverečků, aby bylo kam odkládat a vedle nich napiš třeba vymena.
Tak co, teď už to půjde prohodit, aniž bys zvedal papírky a aniž bys je nechal ležet jinde než na odpovídajícím místě. No sláva, tak to zapiš jako program...
Není zač...
#1 Vítek
Tomu nerozumím...
Píšeš, že "potřeboval bych pomoct s jedním programem" a pak píšeš, že "programovat vůbec neumím". Tak s čím chceš teda pomáhat? Chceš jako pomoct naučit se programovat? Na to snad chodíš do školy ne? Nebo snad chceš aby ti ten program někdo udělal? Zadarmo? A proč by to jako někdo měl dělat? V takovém případě snad nabídneš nějakou částku ne? Na kolik si ceníš takovej jeden "zápočťák"?
Až to doladíš, mám druhý úkol (navazuje na předchozí).
Ulož do paměti přesně tolik náhodných čísel z rozsahu -10 až 10, kolik ti vyšlo n.
Pak je všechny projdi, najdi a vypiš největší (maximální) hodnotu.
#1 studentka
Jak máš začít?
Začni tím, že se rozhodneš, jestli se to opravdu chceš naučit nebo ne.
V tom prvním případě, pokud jsi nevyužila ten měsíc, který už se to "učíte", nezbývá než tomu věnovat zvýšené úsilí. Požádej třeba spolužáka, ať tě doučuje, protože takhle přes internet to moc nejde, obzvláš´t když netušíme, co jsi za ten měsíc zatím zvládla.
V tom druhém případě není co řešit, opět požádej spolužáka, nebo kohokoliv tady, ať ti ten program udělá, on se vždycky někdo ochotný najde.
PS: vidím, že i vysoká škola už přizpůsobila nároky nové generaci "studentů", takovéhle "semestrálky" se dělaly na střední škole normálně v rámci hodiny, nebo na půlhodinové písemce...
#20 JoDiK
Aha, já zapomněl, ty nejsi z oboru...
No nic, tady to máš opravené, funkční...
program Usecky;
{$APPTYPE CONSOLE}
uses
SysUtils;
var i: Integer; //definovani promenych
Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,a,b,t,s,xp,yp: Real;
begin
{trochu matematiky - usecky zadane parametricky:
prvni usecka x=Ax+(Bx-Ax)*s, y=Ay+(By-Ay)*s, s=<0,1>
druha usecka x=Cx+(Dx-Cx)*t, y=Cy+(Dy-Cy)*t, t=<0,1>
aby se usecky protinaly uvnitr musi byt pro prusecik s,t v danem intervalu}
WriteLn ('--------------------- Prusecik usecek -----------------------');
WriteLn;
Write(' Zadej x-ove a y-ove souradnice bodu A,B,C,D: '); //sem zadas hodnoty x-ovych a y-ovych
read(Ax); read(Ay);
read(Bx); read(By);
read(Cx); read(Cy);
read(Dx); readln(Dy);
writeln;
a := (Cx-Ax)*(By-Ay)-(Bx-Ax)*(Cy-Ay); //vypocitani pomocnych hodnot
b := (Bx-Ax)*(Dy-Cy)-(Dx-Cx)*(By-Ay);
if b=0 then //podminka rovnobeznosti
WriteLn (' False (rovnobezky)') //vypsani, ze se neprotinaji (rovnobezky)
else
begin //vypocitaní parametru pro usecku CD
t := a/b; //kdyz se protinaji
xp := Cx+(Dx-Cx)*t; //x-ova souradnice pruseciku
yp := Cy+(Dy-Cy)*t; //y-ova souradnice pruseciku
if (Bx-Ax)=0 then //podminka aby se nedelilo nulou-usecka AB je "svisla"
s := (yp-Ay)/(By-Ay) //vypocitaní parametru pro usecku AB
else
s := (xp-Ax)/(Bx-Ax); //v pruseciku
if (t>=0)and(t<=1)and(s>=0)and(s<=1) then //podminka protnuti se uvnitr usecek
WriteLn (' True') //protinaji se uvnitr
else
WriteLn (' False (ruznobezky-vne)'); //protinaji se vne
end;
ReadLn;
//ceka na Enter a program ukonci
end.
#12 adelka17
No jen aby ses s tím děkováním neunáhlila...
S návěštím jsem už hooodně dlouho nic nedělal, a protože jsem neměl překladač, mám tam chybku, tady to máš opravený a pak dej vědět, jak jsi dopadla...
program Euklid;
var
Ax,Ay,Bx,By,Cx,Cy,Dx,Dy : integer;
spolecny_bod : boolean;
label vstup;
begin
vstup:
Ax:=0;Ay:=0;Bx:=1;By:=1;Cx:=0;Cy:=1;Dx:=1;Dy:=0;
spolecny_bod:=TRUE;
writeln(spolecny_bod);
end.
#10 JoDiK
Tady jsem to testoval: http://www.compileonline.com/…n_online.php
a je to funkční s těmi tvými daty:
Adam Košice 1.1.1990
David Bratislava 30.12.1995
Martin Bratislava 25.2.1990
#9 hladampomoc
Představuješ si to nějak moc komplikovaně...
Ještě jsi nenapsal, jak vypadá ten soubor... Předpokládám, že to je textový soubor, kde jednotlivé záznamy tvoří řádky a položky jsou v nich odděleny mezerami, nebo jsou tam jen hodnoty oddělené mezerami?
Každopádně si klidně představ, že ten soubor je jako to tvoje komplexní pole.
Takže zjistíš od uživatele co chce hledat.
postupně čteš ze souboru řádek za řádkem( řádek= záznam). Ten rozdělíš na jednotlivé položky (slova), které porovnáš s hledanými. Když jsou stejné, vypíšeš záznam a jdeš na další položku.
Python neznám, ale podle internetového zdroje vidím, že pythonovo rozdělovnání pomocí split to dává do seznamu, nebo-li pole, tak by to čtení a porovnávání (pro jméno) mohlo probíhat třeba takto:
print "Hledame Adama"
with open('input.txt','r') as f:
for line in f:
words = line.split(" ")
if words[0] == "Adam":
print line
print "Hledame Bratislavu"
with open('input.txt','r') as f:
for line in f:
words = line.split(" ")
if words[1] == "Bratislava":
print line
#5 hladampomoc
Na konci čeho? Vždyť z toho souboru ty údaje můžeš číst znova a znova vždy od začátku, takhle fungovalo vyhledávání v databázích už v dobách pravěku počítačů, kdy disky nebyly z nejrychlejších, což se vylepšovalo indexovými soubory... Nebo je v zadání řečeno, že ůdaje musíš nejdřív načíst do paměti a to konkrétně do pole?
#1 adelka17
Nikdo se k tomu nemá, tak já ti teda těch pět minut věnuju...
program Euklid;
var
Ax,Ay,Bx,By,Cx,Cy,Dx,Dy : integer;
spolecny_bod : boolean;
begin
label vstup;
Ax:=0;Ay:=0;Bx:=1;By:=1;Cx:=0;Cy:=1;Dx:=1;Dy:=0;
spolecny_bod:=TRUE;
writeln(spolecny_bod);
end.
#1 hladampomoc
Třeba ten text vůbec do pole vložit nepotřebuješ, jen o tom nevíš, protože kdybys to zkusil vygooglit, zjistil bys, že mnohem jednodušší je rozdělit text do seznamu, ale nějaký příklad na rozdělení do pole tam je taky...
Každopádně zkus popsat co ten program má dělat, taky co už máš hotové a snad ti nekdo poradí, že na to třeba nejdeš nejlíp a nakopne tě správným směrem...
#3 lukas.balaz
Já myslím, že její "problém" je v dotazu dostatečně jasně vysvětlen. Nechce být z oboru, chce zůstat levá a potřebuje, aby jít ten program někdo napsal a ona ho pak mohla ve škole odevzdat a dostat zápočet nebo cojávím. Což platí i pro milovníka IT, přesně takhle uvažovala, někdo to už za ni udělejte, pro vás je to přece není žádný problém - brnkačka - za pár minut nemáte co dělat... Tak honem, makejte... zitra se to má odevzdávat...
#1 sparky29
Pokud funkce vyhledejHodnotu nebyla požadována, tak z ní udělej rovnou proceduru pridejUnikatni, protože přece když prohledáš celý seznam aniž bys ji našel, tak jsi na jeho konci a můžeš tam tu nenalezenou unikátní hodnotu přidat (jen trošku polaď to procházení, buď si vždy někam ulož předchozí ukazatel, nebo poslední hodnotu testuj zvlášť - to zvládneš ne?). A pokud byla požadována, tak použij její mírně modifikovaný kód v té proceduře.
#1 pazdy
Vzhledem k tomu, že násobení dvěma je triviální matematická operace, zapomeň na nějaké pow (které máš asi stejně špatně) a pro každou další dvojkovou číslici vynásob dosavadní výsledek dvěma a přičti tu další dvojkovou číslici. Výchozí stav bude samozřejmě nula. Zkus si: vstup 101, tři číslice, bude se postupně třikrát násobit a přičítat: výsledek =((0*2+1)*2+0)*2+1=5
#1 pheek
Já to dělám takto:
1. vyrobím seznam položek, kterých se to má týkat do textového souboru (dir v příkazovém řádku přesměrovaný do souboru):
dir /a:d /b /o > seznam.bat
Příklad výsledného souboru seznam.bat:
circuits
java
popisy
2. v editoru, který umí hledat a nahrazovat konce řádků nahradím názvy voláním druhého dávkového souboru:
call makej.bat circuits
call makej.bat java
call makej.bat popisy
3. v souboru makej.bat použiju první parametr (příklad - vyrob podsložku a nakopíruj do ní soubor)...
md %1\testy
copy soubor,txt %1
A mám hotovo...
V tvém případě bude makej.bat asi takto:
icacls "c:\home\%1" /setowner %1@hello.local /c /t
#1 sparky29
Poradil bych, ale nevím, co nevíš... Tak jen obecně - budeš číst jednotlivé bajty ze souboru a podle obsahu nejvyšších bitů budeš číst potřebný počet dalších bajtů a přičítat odpovídající počet znaků.
Takže vlastně stačí umět číst ze souboru a provádět bitové operace. Jo a taky algoritmovat... Takže co ti nejde?
#1 Marek Kadlčík
Tohle nepomůže?
#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