Problem s array – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problem s array – Pascal – Fórum – Programujte.comProblem s array – Pascal – Fórum – Programujte.com

 

jozo00250
Návštěvník
26. 11. 2007   #1
-
0
-

Zdravim, ako zistim nasledujucu vec:
mam pole ktore ma hodnoty napr. [20,16,25,19,6] ako vypisem ktory prvok pola je najmensi a este jedna vec, tie jednotlive prvky pola su riesenia. napr. Riesenie1=20, atd.... a chcem aby mi to vypisalo jednak ktore z tych cisel je najmensie a ktore riesenie to je napr. z uvedenych cisel by to bola 6. Cize program by vypisal najemensie je cislo 6, riesenie 5.
Dakujem za odpovede!

Nahlásit jako SPAM
IP: 78.98.250.–
Double
~ Anonymní uživatel
19 příspěvků
26. 11. 2007   #2
-
0
-

Trideni pole (kod Ti psat nebudu a na nej nekolik variant) a vytvoris si dvourozmerne pole, kde budes ukladat hodnotu puvodni pozice array[6][5]

Nahlásit jako SPAM
IP: 85.71.17.–
mylan40
Super člen
26. 11. 2007   #3
-
0
-

Na čo triedené pole? Stačí 1 cyklus:

min_ind:=1;

for i:=2 to pocet_prvkov do if pole[i]<pole[min_ind] then min_ind:=i;
writeln(min_ind, pole[min_ind]);


To je len taký hrubý náčrt, daj si tam vlastné premenné a uprav výstupný text...

Nahlásit jako SPAM
IP: 85.248.56.–
jozo00250
Návštěvník
26. 11. 2007   #4
-
0
-

ja by som to potreboval zahrnut do nasledovneho prikladu
potrebujem zistit otimalny resp. minimalny pocet pocet pouzitych sudov.
ked si spustite program tak to optimalne riesenie by malo byt Riesenie c 1. pretoze je tam pouity najmensi pocet sudov. Ja potrebujem vypisat optimalny/minimalny pocet sudov cize je to 6 sudov a potrebujem vypisat aj to ze optimalne riesenie je jedno cize len 6 pretoze v jednotlivych rieseniach mi vyjde sucet sudov=6 len 1 krat.
Skusal som si nahrat jednotlive sucty pouzitych sudov do pola a podla toho nejako spravit , ale aj tak sa mi to stale nejako nepodarilo .



program sudy;
uses crt;
const PocetSudov : Array[1..4,1..2] of byte = (
(19,2), { (pocet,objem) }
(3,5),
(1,6),
(3,10)
);
LitrovVina = 46;

var kombinacie, SudTyp1 , SudTyp2, SudTyp3, SudTyp4 : byte;

begin
clrscr;
writeln('Celkovy objem vina: 46 litrov');
writeln('1. typ sudku - objem: 2 L, pocet sudkov: 19');
writeln('2. typ sudku - objem: 5 L, pocet sudkov: 3');
writeln('3. typ sudku - objem: 6 L, pocet sudkov: 1');
writeln('4. typ sudku - objem: 10 L, pocet sudkov: 3');
writeln;

kombinacie:=0;
for SudTyp1:=0 to LitrovVina do
for SudTyp2:=0 to LitrovVina do
for SudTyp3:=0 to LitrovVina do
for SudTyp4:=0 to LitrovVina do
if ((SudTyp1 * PocetSudov[1,2]) + (SudTyp2 * PocetSudov[2,2])
+ (SudTyp3 * PocetSudov[3,2]) + (SudTyp4 * PocetSudov[4,2]) = LitrovVina)
AND (SudTyp1<=PocetSudov[1,1]) AND (SudTyp2<=PocetSudov[2,1])
AND (SudTyp3<=PocetSudov[3,1]) AND (SudTyp4<=PocetSudov[4,1]) then
begin
kombinacie:=kombinacie+1;
writeln('Riesenie c. ',kombinacie,': (',SudTyp1,', ',SudTyp2,', ', SudTyp3,', ',SudTyp4,')');
end;

writeln;
writeln('Celkovy pocet rieseni:',kombinacie:4);
writeln('Optimalny pocet sudkov:');
writeln('Optimalne riesenia:');
readln;
end.


Nahlásit jako SPAM
IP: 78.98.250.–
Mircosoft+1
Věrný člen
26. 11. 2007   #5
-
0
-
Nahlásit jako SPAM
IP: 89.176.249.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
jozo00250
Návštěvník
7. 12. 2007   #6
-
0
-

To mylan4 : toto funguje az na jednu malickost, ked budu v poli ulozene 2 take iste najmensie hodnoty tak sa vypise iby jedna z nich, ako to mam spravit aby napr. ked mam v poli 2 najmensie hodnoty aby sa mi vypisali obi dve napr pole[2]:=2;
pole[5]:=2;
program vypise 2. 2 a 5.2, uz si nad tym lamem hlavu dlho skusal som ten min_ind spravit ako dalsie pole ale neja mi to to nejde... dik za odpoved.

Nahlásit jako SPAM
IP: 84.47.57.–
mylan40
Super člen
7. 12. 2007   #7
-
0
-

To jozo0025 : V tom prípade prejsť pole a nájsť najmenšiu hodnotu, t.j.

najmensie:=pole[1];

for i:=2 to pocet do if pole[i]<najmensie then najmensie:=pole[i];
writeln(najmensie);

a potom príde 2. cyklus, v ktorom prejdeme prvky a ak ich hodnota je najmensia (moze byt viac), tak vypiseme index:
for i:=1 to pocet do if pole[i]=najmensie then write(i,' ');

Nahlásit jako SPAM
IP: 85.248.56.–
jozo00250
Návštěvník
7. 12. 2007   #8
-
0
-

To mylan4 : dakujem, moc mi to pomohlo!!

Nahlásit jako SPAM
IP: 84.47.57.–
mylan40
Super člen
8. 12. 2007   #9
-
0
-

To jozo0025 : NZ :smile1:

Nahlásit jako SPAM
IP: 85.248.56.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Array of array of array — založil Yuffie

Array — založil Row

$a[], [], array[] — založil Rudolf

Array — založil Martin

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý