Kezdőoldal » Számítástechnika » Programozás » Pascalban hogyan lehetne...

Pascalban hogyan lehetne megvalósítani a következő feladatot:?

Figyelt kérdés

Istvánnak van N almája és K barátja. Mint jóbarát, mindenkinek szeretne adni egy almát. De mint


gyakorlatias diák, a gazdasági válság idején, spórolni akar magának úgy, hogy a lehető legnagyobb


tomegű alma maradjon neki.

_______________________________________________________

a bemeneti fájl elsős sorában két szám van N és K (1 ≤ K ≤ N ≤106


sorban N darab szám 1-től 105


) az almák és a barátok száma. A második


–ig, ami az almák súlyát jelenti.

________________________________________________________________

A kimeneti fájlban egy számot kell beírni, ami az Istvánnál marad almák összege, úgy hogy ez a lehető


legnagyobb.

PL Bemenet: (almák száma)5,(barátok száma) 3

9 4 6 1 3- az almák tömege

Kimenet: 15



#Pascal #pascalfeladatok
2014. jan. 28. 19:47
 1/8 anonim ***** válasza:
Az almák tömbből eltávolítod az utolsó K darabot, és összeadod a tömb elemeit. Nem túl nehéz, úgy is mondhatnám...
2014. jan. 28. 19:56
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Az úgy nem lenne jó mert nem biztos, hogy a legnagyobb tömegű almák maradnak meg neki.. Én addig eljutottam hogy sorba kell rendezni a tömbben a számokat (növekvő sorrendbe) és aztán indítunk egy ciklust ami k-tól n-ig összeadja a számokat.. de ez így nem teljesen jó mivel ezt nekem egy ellenőrző program vizsgálja és 11 teszt megy így végig.. És ez 44%-os teljesítmény! Ja és

Futási idő: 1 s

Méret: 128 M

2014. jan. 28. 20:02
 3/8 anonim ***** válasza:
Úh, hát te valamit nagyon elrontottál. Ez egy alappélda. Úgy is lehet csinálni, hogy az első N-K-t adod össze, ugyanaz az eredmény. És ez nem az a feladat, ami gyorsaságra megy. Általában az 1 dimenziós ciklusok századmásodpercek alatt lefutnak.
2014. jan. 28. 20:06
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Van egy tömböd, amiben az almák tömege van. Van K barátod. A tömbből kiveszed a K darab legkisebb tömegűt, a többi marad a Pistának.


Ha a tömböt (csökkenő) sorba raktad, akkor csak elhagyod az utolsó K elemét. A többit összeadod, és megvan a Pistának szánt almatömeg. Nem nehéz.

2014. jan. 28. 20:31
Hasznos számodra ez a válasz?
 5/8 coopper ***** válasza:

Szia.


Miért kell sorbarendezni ?


Szerintem sima minimumkiválasztás "K"-szor.


Igy mindig a legkissebb tömegű almát kapják a barátok (és a legnagyobb tömegűek maradnak meg).


Sok sikert.

Üdv.

2014. jan. 28. 20:58
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
És Hogyan tudok törölni egy elemet a tömbből?
2014. jan. 28. 22:26
 7/8 anonim ***** válasza:
Ha nem dinamikusan foglaltad, akkor körülményesen. Ezért triviálisabb sorba rakni, és csak figyelmen kívül hagyni az utolsó K elemet..
2014. jan. 28. 23:11
Hasznos számodra ez a válasz?
 8/8 coopper ***** válasza:

Szia.


Nem kell törölni, csak egy speciális "értékkel" feltölteni, hogy a következő minimum kiválasztásnál ne vegye figyelembe.


A speciális érétk lehet pl. 0 (mivel 0 tömegű alma nincs). Akkor a minimum kiválasztás valahogy igy néz ki :


min:=255; //Ha bytos változót használsz

pos:=0; // minimum tömbön belüli poziciója.

For i:=1 to n do begin

_ _ if (tomb[i]<>0) and (tomb[i]<min) then begin

_ _ _ _ min:=tomb[i];

_ _ _ _ pos:=i;

_ _ end ;

end ;

tomb[pos]:=0;


AZ összesitésben szintén figyelembe kell venni a speciális érétkeket :


szum:=0;

for i:=1 to n do begin

_ _ if tomb[i]<>0 then szum:=szum+tomb[i];

end ;



Sok sikert.

Üdv.

2014. jan. 29. 09:34
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!