#3 Jana
například na runtime lookupu programových implementací?
Příspěvky odeslané z IP adresy 195.178.73.–
Ahoj
Píšu diplomovou práci na tvorbu iOS aplikace. A programuju to ve Swift.
Chtěla bych tam přidat nějaké srovnání jazyků: Swift / Objective-C / Java / C# / C++, ale nechci ho napsat ve stylu C++ má vícenásobnou dědičnost, Java interfaci, Swift protokoly.
Jak byste to například ve vědecké práci srovnali?
Naprogramovat řazení? Prohledávání grafu? Porovnat časy?
Děkuji za jakýkoliv tip.
No me by zajimalo jak mam obejit ten nulty bajt u klasickeho stringu
takhle mam klasickou verzi chci si udelat se stringama s nulou akonci
type soubor = file;
var s: soubor;
retezec: string;
begin
assign(s, 'retezce');
rewrite(s, 1);
cyklus
readln(retezec);
blockwrite(s, retezec, length(retezec)+1);
konec cyklu
close(s);
Prosim muze mi nekdo vysvetlit co se po mne chce ? Dekuji
Uvazujte abstrakni datovy typ Ridke pole realnych cisel s majoritni hodnotou nula. Rozsah indexu je 1 az milion. Implementace je provedena tabulkou s rozptylenymi hesly, klicem je index prvku. Napiste operaci GetValue, ktera doda ulozenou hodnotu v ridkem poli na zaklade vlozeni indexu.
procedure odstranDuplicity(var s: ObousmerSeznam);
var aktualni,kon: UkPrvek;
pruchod: UkPrvek;
pom_predchozi: UkPrvek;
begin
pom_predchozi:= nil;
aktualni:=s.zacatek;
kon:=s.konec;
while ((aktualni<>nil) AND (aktualni^.naslednik<>nil)) do begin
pruchod:=aktualni^.naslednik;
while (pruchod<>nil) do begin
if(aktualni^.info = pruchod^.info) then begin
if(pom_predchozi = nil) then begin
aktualni^.naslednik := pruchod^.naslednik;
pom_predchozi := aktualni;
end else pom_predchozi^.naslednik := pruchod^.naslednik;
if(pruchod = kon) then aktualni^.naslednik:= nil;
dispose(pruchod);
pom_predchozi := pruchod^.naslednik;
end else pom_predchozi := pruchod;
pruchod:=pruchod^.naslednik;
end;
aktualni:=aktualni^.naslednik;
end;
end;
Plne funkcni! Nazory ? Nejde to nejak zjednodusit ?
Jak byste odstranily duplicity v obousmernem seznamu pri neserazenych datech ?
type UkPrvek = ^Prvek;
Prvek = record
info: real;
predchudce, naslednik: UkPrvek
end;
ObousmerSeznam = record
zacatek: UkPrvek;
konec: UkPrvek
end;
procedure init(var s: ObousmerSeznam);
begin
s.zacatek:=nil;
s.konec:=nil;
end;
procedure pridejPrvek(var s: ObousmerSeznam; hodnota: real);
var novy: UkPrvek;
begin
new(novy);
novy^.info:=hodnota;
if s.zacatek<>nil then begin
s.zacatek^.predchudce:=novy;
novy^.naslednik:=s.zacatek;
s.zacatek:=novy;
end else begin
novy^.predchudce:=nil;
novy^.naslednik:=nil;
s.zacatek:=novy;
s.konec:=novy
end
end;
function vratPocetPrvku(s: ObousmerSeznam) : word;
var aktualni: UkPrvek;
begin
vratPocetPrvku:=0;
aktualni:=s.zacatek;
while aktualni<>nil do begin
aktualni:=aktualni^.naslednik;
inc(vratPocetPrvku);
end
end;
procedure kontrola(s: ObousmerSeznam);
var aktualni: UkPrvek;
begin
aktualni:=s.zacatek;
while (aktualni<>nil) do begin
write(aktualni^.info:2:2,' | ');
aktualni:=aktualni^.naslednik;
end;
end;
procedure odstranDuplicity(var s: ObousmerSeznam);
begin
end;
var s: ObousmerSeznam;
begin
init(s);
pridejPrvek(s,33);
pridejPrvek(s,22);
pridejPrvek(s,22);
pridejPrvek(s,33);
pridejPrvek(s,22);
pridejPrvek(s,12);
kontrola(s);
Spis mam problem zrusit jen toho posledniho s malo body
procedure odstranLyzareBody(var f: Fronta; kriterium: byte);
var predchudce, aktualni, prvni,predposledni, posledni, tmp: UkPrvek;
begin
aktualni:=f.zacatek^.dalsi;
predchudce:=f.zacatek;
while (aktualni^.dalsi <> nil) do begin {tohle rusi lyzare s malo body uprostred}
if (aktualni^.bodykarta < kriterium) then begin
tmp:=aktualni;
predchudce^.dalsi:=aktualni^.dalsi;
dispose(tmp);
end;
predchudce:=aktualni;
aktualni:=aktualni^.dalsi;
end;
prvni:=f.zacatek;
posledni:=f.konec;
{tohle rusi lyzare s malo body na zacatku}
if (prvni^.bodykarta < kriterium) then begin
tmp:=prvni;
f.zacatek:=prvni^.dalsi;
dispose(tmp);
end;
{ melo by to zrusit posledniho ale nevim jak}
if (posledni^.bodykarta < kriterium) then begin
tmp:=posledni;
f.konec:=????;
dispose(tmp);
end;}
end;
Jak byste prosim odstranili prvek v jednosmernem neserazenem! linearnim seznamu splnujici dane kriterium
??
procedure odstranLyzareBody(var f: Fronta; kriterium: byte);
var predchudce, aktualni, tmp: UkPrvek;
begin
predchudce:=nil;
aktualni:=f.zacatek;
while (aktualni <> nil) do begin
if (aktualni^.bodykarta < kriterium) then begin
tmp:=aktualni;
aktualni:=aktualni^.dalsi;
end;
end;
end;
procedure smazHodnoty(var s: ObousmerSeznam; hodnota: integer);
var aktivni,tmp: UkPrvek;
begin
aktivni:=s.zacatek;
while (aktivni <> nil) do begin
if aktivni^.info = hodnota then begin
tmp:=aktivni;
aktivni^.naslednik^.predchudce:=aktivni^.predchudce;
aktivni^.predchudce^.naslednik:=aktivni^.naslednik;
dispose(tmp);
end;
aktivni:=aktivni^.naslednik;
end;
end;
Nevite co je na ni spatne ?
procedure smazHodnoty(var s: ObousmerSeznam; hodnota: integer);
var aktivni,tmp: UkPrvek;
begin
aktivni:=s.zacatek;
while (aktivni <> nil) do begin
if aktivni^.info = hodnota then begin
tmp:=aktivni;
aktivni^.naslednik^.predchudce:=aktivni^.predchudce;
aktivni^.predchudce^.naslednik:=aktivni^.naslednik;
dispose(tmp);
end;
aktivni:=aktivni^.naslednik;
end;
end;
Procedura na smazani prvku obsahujici danou hodnotu, ale hazi error 216
procedure vlozNaZacatek(var s: ObousmerSeznam; hodnota: integer);
var novy : UkPrvek;
begin
if s.zacatek = nil then begin
new(novy);
novy^.info:=hodnota;
novy^.predchudce:= nil;
novy^.naslednik:=s.zacatek;
s.zacatek:=novy;
if s.konec = nil then s.konec:=novy
end
else new(novy);
novy^.info:=hodnota;
novy^.predchudce:=nil;
novy^.naslednik:=s.zacatek^.predchudce;
s.zacatek^.predchudce:=novy^.naslednik;
s.zacatek:=novy;
end;
Danou proceduru jsem zmenil ale stale to nefunguje
type UkPrvek = ^Prvek;
Prvek = record
info : integer;
predchudce, naslednik : UkPrvek;
end;
ObousmerSeznam = record
zacatek: UkPrvek;
konec: UkPrvek
end;
procedure init(var s: ObousmerSeznam);
begin
s.zacatek:=nil;
s.konec:=nil;
end;
procedure vlozNaZacatek(var s: ObousmerSeznam; hodnota: integer);
var novy : UkPrvek;
begin
new(novy);
novy^.info:=hodnota;
novy^.predchudce:= nil;
novy^.naslednik:=s.zacatek;
s.zacatek:=novy;
if s.konec = nil then s.konec:=novy
end;
procedure vlozNaKonec(var s: ObousmerSeznam; hodnota: integer);
var novy: UkPrvek;
begin
new(novy);
novy^.info:=hodnota;
novy^.naslednik:=nil;
novy^.predchudce:=s.konec;
s.konec:=novy;
if s.konec = nil then s.konec:=novy
end;
procedure vypis(s:ObousmerSeznam);
var aktivni: UkPrvek;
begin
aktivni:=s.zacatek;
while (aktivni <> nil) do begin
write(aktivni^.info,' ');
aktivni:=aktivni^.naslednik;
end;
end;
Nevite proc procedure vlozNaKonec nefunguje ?
A u metody vloz na zacatek tak u pridani 2. prvku na zacatek kdyz probehne tento prikaz novy^.naslednik:=s.zacatek;
tak druhy prvek predchudce furt ukazuje na NIL ?
Předpokládejte, že existuje soubor bez udaného typu, jehož obsahem jsou řetězce uložené podle konvence C, tedy posloupnosti znaků zakončené bajtem s hodnotou nula. Zapište tyto řetězce do výstupního souboru bez udaného typu podle konvence Pascalu, tedy s počátečním délkovým bajtem a za ním znaky řetězce. Pokud vstupní řetězec obsahuje více znaků než 255, rozdělte jej na více řetězců ve výstupním souboru. Předpokládejte, že délka vstupního řetězce v žádném případě nepřekročí 2000 znaků.
Nevíte prosím jak na to ? Toto jsem měl včera na zkoušce
procedure uklid(var S: UkPrvek);
var pom, nasmazani: UkPrvek;
begin
pom:=S;
while pom <> nil do begin
nasmazani:=pom;
pom:=pom^.dalsi;
dispose(nasmazani);
end;
S:=nil;
end;
type
UkPrvek = ^Prvek;
Prvek = record
Data: real;
Dalsi: UkPrvek
end;
procedure pridejNaKonec(var S: UkPrvek; hodnota: real);
var
pom: UkPrvek;
nalezeno: boolean;
begin
pom:= S;
nalezeno:=true;
while (pom<>nil) and nalezeno do begin
if pom^.Data=hodnota then
nalezeno:=false
else
pom:=pom^.Dalsi;
end;
if nalezeno then
pom^.Data:=hodnota;
end;
procedure kontrola(var S:UkPrvek);
var pom: UkPrvek;
begin
pom:=S;
while (pom <> nil) do begin
write(pom^.Data:2:2,'; ');
pom:=pom^.Dalsi;
end;
end;
var S:UkPrvek;
begin
pridejNaKonec(S,3.1);
pridejNaKonec(S,3.4);
pridejNaKonec(S,7.2);
pridejNaKonec(S,3.1);
kontrola(S);
end.
ale nehazi mi to pekny hodnoty a hodi to runtime error 216
Prosim o radu mel jsem za ukol vkladat do lin. seznamu unikatni real hodnoty. Ale nemuzu prijit na proceduru ktera ten prvek ulozi na konec.
type UkPrvek = ^Prvek;
Prvek = record
Data: real;
Dalsi: UkPrvek;
end;
function vyhledejHodnotu(var S:UkPrvek; hodnota:real): boolean;
var pom:UkPrvek;
vyhodnoceni: boolean;
begin
pom:=S;
vyhodnoceni:=false;
while (pom <> nil) do
begin
if (pom^.Data = hodnota) then vyhodnoceni:=true;
pom:=pom^.Dalsi
end;
vyhledejHodnotu:=vyhodnoceni
end;
procedure pridejUnikatni(var S: UkPrvek; hodnota:real);
var pom:UkPrvek;
begin
if vyhledejHodnotu(S,hodnota) then exit
else
begin
new(pom);
pom^.Data:=hodnota;
pom^.Dalsi:=S;
S:=pom;
end;
end;
foreach my $id (sort keys %nodes){
my $iter = 0;
my $type = $nodes{$id};
my $value = $initial_activation{$id};
if ($value != 1){
$value = 0;
};
$uzly{$id} = {"type"=>$type, "value" =>$value};
$iter_uzly{$iter} = \%uzly;
}
print Dumper %iter_uzly;
Funkcni struktura prosim poradte nekdo jak bych ji tedka dokazal treba 3 krat rozsirit $iter_uzly{1} = ......
akorat tam budou vnitrni hodnoty "value" jiny.
%nodes = ('A1'=> person, 'T' => tag, 'R1'=> resource); takhle vypada hash nodes
%initial_activation = ('A1' =>1, 'T' =>0....);
tady si vsecny node projdu a vytvorim hash uzly....
foreach my $id (sort keys %nodes){
my $type = $nodes{$id};
my $value = $initial_activation{$id};
if ($value != 1){
$value = 0;
};
$uzly{$id} = {"type"=>$type, "value" =>$value};
}
Ja bych potreboval upravit tuto strukturu %uzly ktera by mi ukazovala o kterou iteraci (krok) se jedna 0 , 1, 2. V kazde iteraci bude hodnota value jina.
Zkousel jsem to s anonymnim polem, ale to se mi vzdy sesype....
kazdou iteraci tu strukturu chci zvetsovat..
prosim radu jak na to iter 1
'A1'{
type => ...
value = >1;
}
iter 2
'A2'{
value =>1.45;
}
kam byste tu hodnotu 0, 1 vlozily a jakym stylem do struktury?
Diky za ochotu
Tohle ma byt vystupem : http://leteckaposta.cz/846970888
0. iterace ma hodnotu 1 pouze A1
1. iterace ma hodnotu 1 -> A1 a A1 ma dva sousedy I1, I2 a ty hodnoty se vypocitaji jako
((1 krat hodnota A1) / (pocetvystupnichhran z A1)^beta ) * hran_vaha = 0,56 pro I1 I2
2. iterace atd.. ten postup vypoctu jsem si prave vypocital z toho vystupu ktery mame dodany
ale nedokazu to z automatizovat pro N iteraci protoze to funguje i nazpatek, v dalsich iteracich I1 I2 to jde zas do A1.
#NODES_TYPES
#keyword type
nt Person
nt Instance
nt Resource
nt Tag
#LINK_TYPES
#keyword type name type-of-reciprocal-link
ltra A2I I2A
ltra I2RT RT2I
#NODES
#Keyword NodeID NodeType Importance
n A1 Person 1.0
n A2 Person 1.0
n A3 Person 1.0
n A4 Person 1.0
n I1 Instance 1.0
n I2 Instance 1.0
n I3 Instance 1.0
n I4 Instance 1.0
n I5 Instance 1.0
n I6 Instance 1.0
n I7 Instance 1.0
n I8 Instance 1.0
n R1 Resource 1.0
n R2 Resource 1.0
n R3 Resource 1.0
n R4 Resource 1.0
n T Tag 1.0
#LINKS
#keyword Initial node Terminal node link type Importance - is not implemented in Kosmos 1.0
l A1 I1 A2I
l A1 I2 A2I
l A2 I3 A2I
l A2 I4 A2I
l I1 R1 I2RT
l I1 T I2RT
l I2 R2 I2RT
l I2 T I2RT
l I3 R1 I2RT
l I3 T I2RT
l I4 R2 I2RT
l I4 T I2RT
l A3 I5 A2I
l A3 I6 A2I
l A4 I7 A2I
l A4 I8 A2I
l I5 R3 I2RT
l I5 T I2RT
l I6 R4 I2RT
l I6 T I2RT
l I7 R3 I2RT
l I7 T I2RT
l I8 R4 I2RT
l I8 T I2RT
# INITIAL ACTIVATION
# The list of initially activated nodes:
#keyword NodeID Activation_Level
ia A1 1
# Link Weights
# keyword link_type weight
lw A2I 0.8
lw I2A 0.8
lw I2RT 0.8
lw RT2I 0.8
#SAM-ALG-PARAMETERS
Beta 0.5
IterationsNo 10
#Calibration ConservationOfTotalActivation
Calibration None
#Calibration ConservationOfInitialActivation
a 1
b 1
c 0
t 0
Vstupni data
Potreboval bych poradit
Potrebuji posilat signal z aktivnich uzlu -> hodnota vetsi jak >0 pro nekolik iteraci
Uzly mam A1, A2, I1, I2, T, R1, R2 atd....
napr.
A1 A2 I1 I2 R1 R2 T
0. iterace 1 0 0 0 0 0 0
= > posilat signal budu pouze s A1 -> (> 0)
hodnotu signalu vypocitam = (1 * hodnota A1 / pocet vystupnich hran ^ 0.5) * 0,8
= > 1. iterace sousedni hrany A1 jsou I1 I2 = 2 vystupni hrany hodnota signalu je 0,56
A1 A2 I1 I2 R1 R2 T
1. iterace 1 0 0,56 0,56 0 0 0
I1 ma sousedy R1 T ale take zpet A1
I2 ma sousedy R2 T ale take zpet A1
hodnota je 0,26
A1 A2 I1 I2 R1 R2 T
2. iterace 1, 52 0 1,13 1,13 0,26 0,26 0,52
Prosim o radu jak to nejak z automatizovat uzly a hrany mam ulozene ve strukturach. Dekuji za kazdou radu.
#use warnings;
use utf8;
use open qw( :encoding(UTF-8) :std );
use Data::Dumper;
$, = "\t";
@nodes_types = ();
%link_types = ();
%nodes = ();
@links = ();
%initial_activation = ();
%link_weights = ();
%alg_parameters = ();
################### 1. NACIST DATA ###################
open(INPUT, "<:encoding(UTF-8)", "sitparametry.txt") || die "nelze otevrit vstupni soubor!";
while (<INPUT>){
chomp;
my @radky = split(/\s+/);
if (@radky) {
if($radky[0] eq "nt"){
my $type = $radky[1];
push(@nodes_types,$type);
}
elsif($radky[0] eq "ltra"){
my $type_name = $radky[1];
my $type_of_reciprocal_link = $radky[2];
$link_types{$type_name} = $type_of_reciprocal_link; #link_types ( type name, type of reciprocal link )
}
elsif($radky[0] eq "n"){
my $nodeId = $radky[1];
my $nodeType = $radky[2];
$nodes{$nodeId} = $nodeType; #nodes (NodeID, NodeType)
}
elsif($radky[0] eq "l"){
my $initial_node = $radky[1];
my $terminal_node = $radky[2];
my $link_type = $radky[3];
@vektor_link = ($initial_node, $terminal_node, $link_type);
push(@links,[@vektor_link]); #links (initial node, terminal node, link type
}
elsif($radky[0] eq "ia"){
my $nodeId = $radky[1];
my $activation_level = $radky[2];
$initial_activation{$nodeId} = $activation_level; #initial activation (NodeID, Activation Level)
}
elsif($radky[0] eq "lw"){
my $link_type = $radky[1];
my $weight = $radky[2];
$link_weights{$link_type} = $weight; #link weights (link_type, weight)
}
elsif($radky[0] eq "Beta"){
my $value = $radky[1];
$alg_parameters{"Beta"} = $value; #Beta value
}
elsif($radky[0] eq "IterationsNo"){
my $value = $radky[1];
$alg_parameters{"IterationsNo"} = $value; #Iteration's value
}
elsif($radky[0] eq "Calibration"){
my $value = $radky[1];
$alg_parameters{"Calibration"} = $value; #Calibration's value
}
elsif($radky[0] eq "a"){
my $value = $radky[1];
$alg_parameters{"a"} = $value;
}
elsif($radky[0] eq "b"){
my $value = $radky[1];
$alg_parameters{"b"} = $value; # b value
}
elsif($radky[0] eq "c"){
my $value = $radky[1];
$alg_parameters{"c"} = $value; # c value
}
elsif($radky[0] eq "t"){
my $value = $radky[1];
$alg_parameters{"t"} = $value; # t value
}
}
}
close(INPUT);
#seznam uzlu
%list_nodes = ();
#seznam hran
@list_links = ();
foreach my $id (keys %nodes){
my $type = $nodes{$id};
my $value = $initial_activation{$id};
if (!defined $value){
$value = 0;
}
$list_nodes{$id} = {"type",$type,"value",$value};
}
print Dumper %list_nodes;
#print Dumper %list_nodes;
#print Dumper $list_nodes{"A1"}{"value"};
#print Dumper $list_nodes{"A2"}{"value"};
#print Dumper $list_nodes{"T"}{"value"};
foreach my $i (0..$#links){
my $initial_node = $links[$i][0];
my $terminal_node = $links[$i][1];
my $link_type = $links[$i][2];
my $link_weights = $link_weights{$link_type};
my $type_of_reciprocal_link = $link_types{$link_type};
my %link = ("initial_node", $initial_node, "terminal_node", $terminal_node, "link_type", $link_type, "link_weights", $link_weights);
push(@list_links, \%link);
my $link_weights = $link_weights{$type_of_reciprocal_link};
my %link = ("initial_node", $terminal_node, "terminal_node", $initial_node, "link_type", $type_of_reciprocal_link, "link_weights", $link_weights);
push(@list_links, \%link);
}
print Dumper(@list_links);
print Dumper ($list_links[0]{"initial_node"});
################### OK NACTENA DATA OK ###################
################### OK VYTVORIT VHODNOU STRUKTURU OK ###################
$type_calibration = $alg_parameters{"Calibration"};
$a = $alg_parameters{"a"};
$b = $alg_parameters{"b"};
$c = $alg_parameters{"c"};
$t = $alg_parameters{"t"};
@matice = ();
@vektor_hodnot = ();
# vytvoreni vektoru uzlu podle abecedy
@hlavicka_uzlu = ();
foreach my $node (sort keys %list_nodes){
push(@hlavicka_uzlu, $node);
}
push(@matice,[@hlavicka_uzlu]);
# vytvoreni vektoru hodnot 0. iterace
for my $i (@hlavicka_uzlu){
my $value = $list_nodes{$i}{"value"};
push(@vektor_hodnot, $value);
}
push(@matice,[@vektor_hodnot]);
print Dumper @matice;
Poradil by mi nekdo jak toto vyresit ? Dekuji za kazdou informaci
Na vstupu je text v kodovani UTF-8. Predpokladejte, ze jeden znak muze byt ulozen na jednom az ctyrech bytech. Jednobytove znaky maji v nejvyssim bitu nulu, vicebytove znaky maji v prvinm bytu na nejvyssich radech tolik jednicek, kolikabytovy znak to je (napriklad tribytovy znak ma tento tvar: 1110xxxx 10xxxxxx 10xxxxxx). Prectete tento vstup a zjistete, kolik obsahuje znaku (nikoliv bytu).
use utf8;
use open qw( :encoding(UTF-8) :std );
$soubor = "konfigurace.txt";
open(KONFIGURACE, "<:encoding(UTF-8)", $soubor) || die "Nelze otevrit soubor: $!";
$radek_konf = <KONFIGURACE>;
($in_soubor, $out_soubor, $min_cetnost, $min_delka, $hodnota) = split("\t",$radek_konf);
sub tiskniOdsazeni {
print "\n";
print "\n";
}
close(KONFIGURACE);
sub rozdelRadek($) {
my $radek = $_[0];
($trida, $retezec) = split("\t",$radek);
$retezec =~ s/<(.*?)>//g;
#http://snipplr.com/view/4865/
$retezec =~ s/&[a-z]*;//g;
$retezec =~ s/[[:punct:]]//g;
$retezec =~ s/ / /gi;
$retezec = lc($retezec);
my @slova_ret = split(' ', $retezec); # tady musi byt 'my' !!! kdyz se funkce pouzila prepisovala se furt
return($trida, \@slova_ret);
}
open(INPUT, "<:encoding(UTF-8)", $in_soubor) || die "Nelze otevrit soubor: $!";
@matice = ();
$pocet_radku = 0;
while (my $radek_in = <INPUT>){
$pocet_radku = $pocet_radku + 1;
my @vektor = rozdelRadek($radek_in);
push(@matice, [@vektor]);
}
close(INPUT);
konfigurace.txt
vstup.txt vystup.txt 1 2 TP
kdyz odstranim ty IF konstrukce tak se vystup udela ale jak chci jednu tak pouze hlavicka a v hodnote nemam zadny smeti
ps. ve Vim ten vystup vypada lip
very good bad blue red yellow _CLASS_
0 2 0 0 0 0 _P
1 4 0 0 0 0 _P
0 2 0 0 0 2 _N
0 0 2 2 2 0 _N
4 0 2 0 0 0 _N
0 1 0 0 0 0 _P
1 1 0 0 0 0 _P
0 1 0 0 0 1 _N
0 0 1 1 1 0 _N
1 0 1 0 0 0 _N
to jsem tam mel ale nezapisovalo to vubec do vystupu
#if ($hodnota eq 'TF'){
for $j (0..$pocet_radku-1){
push(@{@vektory_tf->[$j]},${@matice->[$j]}[0]); # jde i @
print OUTPUT @{@vektory_tf->[$j]};
print OUTPUT"\n";
}
#}
#elsif ($hodnota eq 'TP'){
for $j (0..$pocet_radku-1){
push(@{@vektory_tp->[$j]},${@matice->[$j]}[0]); # jde i @
print OUTPUT @{@vektory_tp->[$j]};
print OUTPUT"\n";
}
#}
TP - pritomnost slova (0, 1)
TF - pocet vyskytu (0 a vic)
Vektor unikatnich slov = hlavicka
# TP
good bad yellow school
1 0 1 0 #radek 1
0 1 1 0 # radek 2
# TF
good bad yellow school
3 0 2 0 # radek 1
hodnoty uz mam vypocitany a mam je ulozeny v jednotlivych strukturach ted potrebuju jenom aby se mi ve vystupu objevil jenom jeden typ dat
Prosim o radu
Potreboval bych aby se vyhodnotila pouze jedna vetev, ale nejde mi to
if ($hodnota = TF){
for $j (0..$pocet_radku-1){
push(@{@vektory_tf->[$j]},${@matice->[$j]}[0]); # jde i @
print OUTPUT @{@vektory_tf->[$j]};
print OUTPUT"\n";
}
}
elsif ($hodnota = TP){
for $j (0..$pocet_radku-1){
push(@{@vektory_tp->[$j]},${@matice->[$j]}[0]); # jde i @
print OUTPUT @{@vektory_tp->[$j]};
print OUTPUT"\n";
}
}
#2 KIIV
Vcera jsem na to prisel, potreboval jsem vektory existence (0, 1) pro kazdy radek
use Data::Dumper;
@uniq = (ahoj, ty, blbec, clovek, hjo);
@vektory_slov = ([ahoj, ty, clovek], [ahoj, ty],[blbec, ty],[ahoj, blbec]);
@vektory_tp = ();
$pocet_radku = 4;
@vektory_tp = ();
for $radek (0..$pocet_radku-1){
my @vektor = ();
foreach my $u_slovo (@uniq){
my $count = grep(/^$u_slovo$/,@{@vektory_slov->[$radek]});
my $value = ($count == 0 ? 0 : 1 );
push(@vektor,$value);
}
push(@vektory_tp,[@vektor]);
}
print Dumper @vektory_slov;
print Dumper @vektory_tp;
## vektory_slov jsou imaginarni radky souboru
## uniq jsou unikatni slova souboru
## potrebuji vytvorit vektor hodnot pro kazdy radek jeslti existuje nebo neexistuje
## ahoj ty blbec clovek
1. 1 1 0 1
Budu rad za kazdou radu jak na to
use Data::Dumper;
@uniq = (ahoj, ty, blbec, clovek);
@vektory_slov = ([ahoj, ty, clovek], [ahoj, ty],[blbec, ty],[ahoj, blbec]);
@vektory_tp = ();
$uniq_ref = \@uniq;
$slova_ref = \@vektory_slov;
foreach my $doc (@$uniq_ref){
foreach my $slovo (@$slova_ref){
my $count = grep(/^$slovo$/,????????????????);
###################################
my $value = ($count == 0 ? 0 : 1 );
push(@vektor,$value);
}
push(@vektory_tp,[@vektor])
}
print Dumper @vektory_slov;
print Dumper @vektory_tp;
print @vektory_tp;
nemělo tam byt &mzda a ve vypisu &d
pak to funguje
Prosím na konzoli mi to nic nevypíše prosím co s tím ?
int mzda,dan;
int main(){
printf("Zadej mzdu: ");
scanf("%d",&mzda);
if (mzda < 10000) dan=mzda*0.1;
else if ((mzda < 20000) && (mzda>10000))
dan=(10000 * 0.1) + (20000-mzda)*0.2;
else dan= (10000 * 0.1) + (20000*0.2) + ((-1)*(20000-mzda))*0.3;
printf("Zadana mzda: \n",&mzda);
printf("Odpovidajici dan: \n",&dan);
getch();
return(0);
}
* Vytvořte třídu MyInstructios </code>, která bude potomkem této abstraktní třídy. Ten
* Překrývat metodu {@link #instructionOne()}
* Přetíží metodu {@link #instructionTwo()}
public abstract class Instructions {
* Překrujte tuto metodu tak, aby vracela hodnotu překryté funkce v kulatých závorkách.
public String instructionOne() {
return "instructionOne";
* Přetěžte tuto metodu tak:
aby vracela hodnotu původní přetížené metody zopakovanou podle int hodnoty jediného parametru.
aby přetížená metoda měla proměnný počet parametru typu String a její návratová hodnota se rovnala jejich zřetězení.
public String instructionTwo() {
return "instructionTwo";
}
Public class MyInstructions extends Instructions {
Public String instructionOne(){
Return “instructionOne”
}
Public String instructionTwo(){
}
}
Prosím poradíte někdo máme taková nejasná zadání....
ingiraxo díky už jsem na to přišel chyběl mi parametr string v konstruktoru
abstract jsem vymazal a uz do nadavá pouze na tu metodu novaInstance
public abstract class Constructor {
public final String fromDescendant;
protected int id = 0;
protected static int count = 0;
/**
* Tento konstruktor přibírá hodnotu vašeho loginu z potomka.
* protected static int id = 0;
* @param fromDescendant
* login studenta
*/
protected Constructor(String fromDescendant) {
this.fromDescendant = fromDescendant;
}
}
ja zapomel vložit ten předchoží kód
public abstract class MyConstructor extends Constructor {
public MyConstructor verejna;
MyConstructor implicit;
protected MyConstructor chranena;
private MyConstructor soukroma; // tady to hlasi chybu
public MyConstructor(String fromDescent){
super(fromDescent);
id = ++count;
}
public MyConstructor novaInstance() {
return new MyConstructor();
}
}
-------------------------------------------------------------------------------
public abstract class MyConstructor extends Constructor {
public MyConstructor verejna;
MyConstructor implicit;
protected MyConstructor chranena;
private MyConstructor soukroma;
public MyConstructor(String fromDescent){
super(fromDescent);
id = ++count;
}
public MyConstructor novaInstance() {
return new MyConstructor(); // tady to hlasi chybu
}
}
Prosím v čem je chyba ?
#4 Erik
/**
* Tento konstruktor přibírá hodnotu vašeho username z potomka.
*
* @param fromDescendant
* username
*/protected Constructor(String username) {
this.username = username;
a tohle se iplementuje jak k tomu prosím ? to se musí v konstruktoru potomka zavolat to super ne ?
Má někdo zkušenosti s implementací ADT v Pascalu, dále modulární programování, objekty, soubory. Algoritmizaci po normální pole, záznam, řazení a textové soubory umím. Kdo by měl zájem nabízím nabízím brigádu třeba přes skype. Peníze vždy prvně na účet a odměna dohodou.
Úpřímně to nevím mám naimplementovaný fronty a zasobníky z učebnic(Satrapa, Hála) a tam je to úplně jinak teďka ve škole jsme dělali tento a zas je to jinak docela mám v těch dynamických technikách zmatek. Právě se snažím do toho proniknout a naučit se nějaký univerzální řešení...
Free Pascal Compiler version 2.4.0 [2009/12/18] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Win32 for i386
Compiling C:\Users\Zbyšek\Desktop\frontaPokus.pas
frontaPokus.pas(27,12) Error: Incompatible types: got "PPrvek" expected "TFronta"
frontaPokus.pas(28,12) Error: Incompatible types: got "PPrvek" expected "TFronta"
frontaPokus.pas(35,12) Error: Incompatible types: got "PPrvek" expected "TFronta"
frontaPokus.pas(55,12) Error: Operator is not overloaded
frontaPokus.pas(56,45) Error: Illegal qualifier
frontaPokus.pas(57,10) Error: Incompatible types: got "TFronta" expected "PPrvek"
frontaPokus.pas(59,19) Error: Incompatible types: got "PPrvek" expected "TFronta"
frontaPokus.pas(86,17) Error: Identifier not found "vyjmiAFrontu"
frontaPokus.pas(89,4) Fatal: There were 8 errors compiling module, stopping
Fatal: Compilation aborted
Error: C:\FPC\2.4.0\bin\i386-win32\ppc386.exe returned an error exitcode (normal if you did not specify a source file to be compiled)
Process completed, Exit Code 1.
Execution time: 00:00.814
Pokoušel jsem se o dynamickou frontu a nejde mi to zkompilovat
, prosím o jakoukoli radu jak to zprovoznit.
type PPrvek=^TPrvek;
TPrvek = record
data: Integer;
dalsi: PPrvek;
end;
TFronta = record
zacatek, konec: PPrvek;
end;
var fronta: TFronta;
procedure initFronta(var fro: TFronta);
begin
fro.zacatek:=nil;
end;
procedure vlozDoFronty(prvek: Integer; var fro: TFronta);
var pom: PPrvek;
begin
if fro.zacatek<>nil then begin
if fro.konec<>nil then begin
new(pom);
pom^.data:=prvek;
pom^.dalsi:=nil;
pom^.dalsi:=pom;
fro:=pom;
end;
end else begin
new(pom);
pom^.data:=prvek;
pom^.dalsi:=nil;
fro:=pom;
end;
end;
procedure uklidFrontu(var fro: TFronta);
var pom, pom2: PPrvek;
begin
pom:=fro.zacatek;
while pom <> nil do begin
pom2:=pom;
pom:=pom^.dalsi;
dispose(pom2);
end;
fro.zacatek:=nil;
fro.konec:=nil;
end;
procedure vyjmiAVypis(var fro: TFronta);
var pom: PPrvek;
begin
if fro <> nil then begin
writeln('Na zacatku fronty je: ',fronta^.data);
pom:=fro;
if pom^.dalsi <> nil then begin
fro:=pom^.dalsi
end else begin
fro.zacatek:=nil;
end;
dispose(pom);
end;
end;
procedure vypisFrontu(fro: TFronta);
var pom: PPrvek;
i: integer;
begin
i:=1;
pom:=fro.zacatek;
while pom <> nil do begin
writeln('Ve fronte je',i,': ', pom^.data);
inc(i);
pom:=pom^.dalsi;
end;
end;
begin
initFronta(fronta);
vlozDoFronty(1,fronta);
vlozDoFronty(3,fronta);
vlozDoFronty(4,fronta);
vyjmiAFrontu(frontu);
end.
Prosím zasekl jsem se na příkladu, poraďte nežádám kód chci spíš vědět co se po mě chce.
Vytvorte abstraktni třídu Account s proměnou String username public a id protected.
Vytvořte třídu MyAccount, která bude dědit ze třídy Account.
Konstruktor třídy MyAccount naplní proměnou id třídy Account vždy jedinečnou hodnotou.
Dále bude vaše třída obsahovat jednu proměnou třídy veřejnou (s názvem: verejna) a jednu implicitní (s názvem:
implicit).
Dále bude vaše třída obsahovat jednu proměnou instance chráněnou (s názvem: chranena) a jednu soukromou (s
názvem: soukroma).
Nakonec vytvořte metodu třídy s názvem novaInstance() která vaši třídu vytvoří a vrátí.
public abstract class Account {
public final String username;
protected int id;
protected Account(String username){
this.username=username;
}
// Tady odsud si uz nejsem jistej
public abstract class MyAccount extends Account {
//???
public MyAccount(int id, string username){
super(username);
this.id=id;
}
}
//???
Program trojuhelnik;
uses crt;
var I,J,N, MEZERY, HVEZDY : byte;
begin
writeln('Zadej pocet rad trojuhelniku: ');
read(N);
for I:=1 to N do
begin
for J:=1 to N do write(' ');
for J:=1 to (N*2)-1 do write('*');
writeln;
N:=N-1;
end;
repeat until keypressed;
end.
// * 1. radek (1 hvezdicka, 4 mezery)
// *** 2. radek (3 hvezdicky, 3 mezery)
// ***** 3. radek (5 hvezdicek, 2 mezery)
// ******* 4. radek (7 hvezdicek, 1 mezera)
// hvezdicky= (N*2)-1
// mezery = N
Díky za pomoc skoro jsem na to přišel ale nefunguje mi to ještě přesně, zítra to snad doladím...
Prosím o pomoc s následujícím úkolem máme za úkol vykreslit trojuhelnik který bude zarovnan. Priklad zadam 3 a vykresli to 3 rady.
*
* * *
* * * * *
Poradte nejak nechci kod chci tak abych na to nejak došel.