T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 123
Reģistrētie lietotāji online: 0
Viesi online: 123
Varbūt kāds var palīdzēt un parādīt, kas te ir nepareizi? Jāsastāda programma, kurā ir procedūra, kas ar ievietošanas metodi sakārto masīvu augošā secībā.
program ieviet;
uses crt;
var M: array [1..20] of integer;
var GAR, I, J: 1..20;
procedure ievietosana
(var M: array of integer; GAR: integer);
var I,J: 1..20;
C:"integer;
begin
M[GAR+1]:=maxint;
for I:=GAR-1 downto 1 do
begin
C:=M[I];
J:=I+1;
while M[J],C do
begin
M[J-1]:=M[J];
J:=J+1;
end;
M[J-1]:=C;
end;
begin
clrscr;
randomize;
for I:=1 to 20 do M[I]:= Random (20);
writeln ('Masivs M ir: ');
for I:=1 to 20 do write (M[I]:3);
ievietosana (M,M[I]);
writeln ('Masivs augosa seciba:');
write (M[C]:3);
end;
end;
end.
Kā to 'ievietošanas metodi' sauc angliski ?
Anyway .. kods izskatās kā būtu kaut kur nokompēt , bez jebkādas nojēgas .
Skaidrs, ka šitas ir nokopēts - no Viestura Vēža materiāliem - neklātienē mācos, nav ar ko pakonsultēties, jāmēģina pašai izprast, kas un kā un kur jāraksta. Viņam gan tur materiāli fragmentāri, pagrūti saprast. Pamēģināšu nodefinēt maxint un i, varbūt aizies...
tik vienkārši gan neaizies. :) tur vēl ir daži fundamentāli bugi.
Lai uzrakstītu progu ir jādomā, bakstoties tikai laiku patērēsi, bet neko neiegūsi.
#4, varbūt arī neaizies, jo:
M[GAR+1]:=maxint;
gadījumā, ja cikls kā pēdējo iterāciju paņems 20, tad M[20+1] būs ārpus masīva robežām.
Ko ar to progu grib panākt, es saprotu, arī lielāko daļu pašas programmas saprotu, bet dažas rindiņas gan neizprotu... :( Nodefinēju visus mainīgos kā integer, kompilējot rāda pie pēdējā end., ka Begin expected.
vai nu viens begin pietrūkst, vai nu viens end ir par daudz :)
Ja dažas rindiņas nesaproti, tad nesanāks. Vai nu prasi konkrēti, vai nu lasi dokumentāciju.
hmm.. #6 neņemt īpaši vērā, nepareizi sapratu kodu :P
#7, kuras rindiņas tieši nesaproti? un izskatās, ka beigās ir viens lieks "end;"
pareizāk sakot - izskatās, ka procedūras ķermeni noslēdzošais "end;" ir pārāk zemu :)
drīzāk gan trūkst begin rindā "for I:=1 to 20 do write (M[I]:3);", tiesa tad tur sanāks baigais sviests ar "ievietosana (M,M[I]);".
kaaposc rakstīja:
hmm.. #6 neņemt īpaši vērā, nepareizi sapratu kodu :P
#7, kuras rindiņas tieši nesaproti? un izskatās, ka beigās ir viens lieks "end;"
pareizāk sakot - izskatās, ka procedūras ķermeni noslēdzošais "end;" ir pārāk zemu :)
Pašu procedūras ķermeni ne īpaši labi izpratu. Ahā, pameklēšu, kur tieši tam vienam end; ir jābūt procedūras ķermeņa beigās...
es piedāvāju visu padarīšanu pārrakstīt par jaunu (un citā valodā, ja drīkst)...
algoritmu var paskatīties šeit: http://en.wikipedia.org/wiki/Insertion_sort
tur ir arī pseidokods. Atliek pārtulkot uz Pascal un pielikt izsaucošo procedūru.
kaaposc rakstīja:
es piedāvāju visu padarīšanu pārrakstīt par jaunu (un citā valodā, ja drīkst)...
Nedrīkst citā, man tieši Pascal jāmācās... Pārbaudīju un atradu, kur jābūt end procedūras beigās, tagad proga strādā, tikai nesakārto masīvu augošā secībā. Jāpaskatās ob1 ieteikto saiti, varbūt izkodīšu, kur vēl kļūda.
Johans2 rakstīja:
C:"integer; - kljuuda
Jā, programmā tā nav, vienkārši pārrakstījos :)
Tagad teksts ir šāds:
program ieviet;
uses crt;
var M: array [1..20] of integer;
var GAR, I, J, C, maxint: integer;
procedure ievietosana(var M: array of integer; GAR: integer; I,J,C,maxint: integer);
begin
M[GAR+1]:=maxint;
for I:=GAR-1 downto 1 do
begin
C:=M[I];
J:=I+1;
while M[J]<C do
begin
M[J-1]:=M[J];
J:=J+1;
end;
M[J-1]:=C;
end;
end;
begin
clrscr;
randomize;
for I:=1 to 20 do M[I]:= Random (20);
writeln ('Masivs M ir: ');
for I:=1 to 20 do write (M[I]:3);
ievietosana (M,M[I],M[J],GAR,M[C],C);
writeln ('Masivs augosa seciba:');
for C:=1 to 20 do write (M[C]:3);
readln;
end.
1) kāpēc funkcijai ievietosana tik daudz parametru? vajag mazāk.
2) ievietosana (M,M[I],M[J],GAR,M[C],C); - tajā vietā mainīgiem I, J, GAR, C nav piešķirtas vērtības, tādējādi arī M[C] ir nedefinēts
Ingrid rakstīja:
Mazliet palaboju:
program ieviet;
uses crt;
var M: array [1..20] of integer;
var GAR, I, J, C, maxint: integer;
procedure ievietosana(var M: array of integer; GAR: integer);
var I,J,C,maxint: integer;
begin
M[GAR+1]:=maxint;
for I:=GAR-1 downto 1 do
begin
C:=M[I];
J:=I+1;
while M[J]<C do
begin
M[J-1]:=M[J];
J:=J+1;
end;
M[J-1]:=C;
end;
end;
begin
clrscr;
randomize;
for I:=1 to 20 do M[I]:= Random (20);
writeln ('Masivs M ir: ');
for I:=1 to 20 do write (M[I]:3);
ievietosana (M,M[I]);
writeln ('Masivs augosa seciba:');
for C:=1 to 20 do write (M[C]:3);
readln;
end.
[/quote]
ievietosana (M,M[I]); - loģiski būtu (M, 20) vai ne?
M[GAR+1]:=maxint; - kļūda. vai tā rindiņa vispār ir vajadzīga?
ob1 rakstīja:
ievietosana (M,M[I]); - loģiski būtu (M, 20) vai ne?
:) :) :) Jā, tiešām, tagad sakārto kā vajag, izņemot 1. skaitli masīvā... Varbūt šeit arī kļūda: for C:=1 to 20 do write (M[C]:3); ?
ob1 rakstīja:
M[GAR+1]:=maxint; - kļūda. vai tā rindiņa vispār ir vajadzīga?
Nezinu, vai viņu vajag, VVR materiālā bija šī rinda... Pamēģināšu to izņemt...
ahā, laikam sāku saprast, tas M[GAR+1] vajadzīgs, jo programmētājs bija par slinku taisīt vēl vienu pārbaudi. Tiesa tajā gadījumā masīvu M vajag taisīt par 1 elementu lielāku - [1:21].
ob1 rakstīja:
M[GAR+1]:=maxint; - kļūda. vai tā rindiņa vispār ir vajadzīga?
Rindiņu izņēmu, tiešām nebija vajadzīga. Pirmais cipars 2. masīvā tāpat ir tāds pat kāds 1. masīvā, pārējie sakārtoti augošā secībā kā vajag. :)
OK, ierakstīšu to rindiņu atpakaļ un izmainīšu masīva lielumu :)
skat #22. ja tās rindas nav, tad vajag papildus pārbaudi uz masīva beigām.
Paliek mazliet skumji domājot par to, ka Ingrid izmācīsies nesaprotot programmēšanu, pēc gadiem 10 būs uzkalpojies(-usies) puslīdz augstā amatā, tad es kā analītiķis iešu pie viņa(-as) noskaidrot ko vajag programmēt, un viņš(-a) nemācēs sakarīgi paskaidrot, jo tā arī neiemācījās programmēšanu. :(
:) Nē, es programmēšanu darbā neizmantošu, un tādā darbā, kur analītiķiem kaut kas jāskaidro, es nestrādāšu - es pamatskolā strādāju :) , man vienkārši studiju programmā ir paredzēts to mācīties, tā ka jātiek kaut kā galā ar to...
BernuBieds rakstīja:
Man domāt, ka viņš(-a) mācās par informātikas skolotāju..
Nē, par matemātikas...
jā, matemātikas skolotājs, kas nezina matemātiku. Sortēšana ir algoritmu teorijas daļa, kas savukārt ir matemātikas daļa. Skumji. :(
Matemātikas skolotāj, vai vari atrisināt 8. klases teksta uzdevumu:
1.5 vistas 1.5 dienās izdēj 1.5 olas. Cik izdēs 9 vistas 9 dienās?
#27 nav jau tik traki - te tak cilvēks mācas vai vismaz cenšas to darīt, bez tam reti kurš matemātiķis labi orientējas gan, piemēram topoloģijā, gan skaitliskajās metodēs.
54 olas
Vēl neesmu mācījusies ne topoloģiju, ne skaitliskās metodes, tas man vēl priekšā.
Matemātiķis orientējās, varbūt nezin sīkumus, bet pārzin galvenās nozares. Tas tāpat kā programmēšanā - džeki iemācās rakstīt sīkas progas pāris valodās un uzskata sevi par programmētājiem.
Tad cik būs tās olas, kāds var atrisināt?
Jau ieprieš atvainojos par offtopicu!
ob1 - cik sver ķieģelis, ja ķieģelis sver kilogramu un vēl pusķieģeli!
Kļūda ir tavā DNA. :D
Ja nopietni, tad mazliet esmu piemirsis Pascal sintaksi, bet
1) rindiņā: M[GAR+1]:=maxint; maxint nav definēts.
2) ievietosana (M,M[I]); - i nav definēts.
3) write (M[C]:3); - C nav definēts.
tiec galā ar mainīgo definēšanu, ja tad neies, varu palīdzēt ar algoritmu.