Help s úkol (klišeé?) – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Help s úkol (klišeé?) – Pascal – Fórum – Programujte.comHelp s úkol (klišeé?) – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Vortex
~ Anonymní uživatel
1 příspěvek
4. 11. 2006   #1
-
0
-

zdravim tu všechny potřeboval bych pomoct s úkolem. máme pěknej úkol, slyšte: Je dán počet vstupních hodnot N a dále posloupnost N čísel a1, a2, ?, aN. Všechna zadaná čísla jsou celá a jsou z rozsahu datového typu integer, počet čísel N není větší než 10000. Určete, kolik různých hodnot se nachází v zadaní posloupnosti. Například pro vstup ve tvaru

10

4 7 5 5 7 7 20 25 7 30

bude výsledkem číslo 6.

Jsem v programování naprostej nováček a vůbec to nechápu, prosím pomozte někdo, díky moc všem :(.
kdyžtak icq 325250246, nabo sem do fora, mějte se

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Zdeněk Lehocký
~ Šéfkorektor
+2
Grafoman
5. 11. 2006   #2
-
0
-

Rozhodně sem na fórum. Až z toho mají užitek i ostatní

Nahlásit jako SPAM
IP: ...–
* Šéfkorektor *
Pedro0
Stálý člen
5. 11. 2006   #3
-
0
-

Nepoznam Pascal, ale napr v C++ by sa to dalo velmi lahko vyriesit set-om.
Proste datovou strukturov, ktora uklada z kazdeho exemplaru iba jeden (tj tie zvysne 5, 7 by sa neulozili. potom by stacilo iba spocitat pocet prvkov v sete a bolo by).

Nahlásit jako SPAM
IP: ...–
Vsetci ste blazni, to len ja som lietadlo
Laaca
~ Anonymní uživatel
225 příspěvků
5. 11. 2006   #4
-
0
-

To je velmi pěkná úloha. Dá se totiž řešit dvěma způsoby - s použitím pomocného pole (rychlejší, ale náročnější na paměť) nebo bez něj (pomalejší, ale nepotřebuje tolik paměti). Takže vyvstává klasické programátorské dilema :-)
Provedení bez pomocného pole:



uses crt; {abychom mohli pouzivat funkce RANDOMIZE a RANDOM}
const maxprvku=18;
maxhodnota=6;
var pole:array[1..maxprvku] of integer;
i,j,k,p:integer;
b:boolean;
begin
randomize;
writeln('V teto posloupnosti:...');
for i:=1 to maxprvku do
begin
pole[i]:=random(maxhodnota); {naplneni pole}
writeln(pole[i]);
end;

p:=0;
for i:=1 to maxprvku do
begin
k:=pole[i];
b:=false;
for j:=1 to i-1 do
if pole[j]=k then
begin
b:=true;
Break;
end;
if b=false then inc(p);
end;

writeln('...se vyskytuje ',p,' hodnot.');
readln;
end.


Provedení s pomocným polem:


uses crt; {abychom mohli pouzivat funkce RANDOMIZE a RANDOM}
const maxprvku=18;
maxhodnota=6;
var pole:array[1..maxprvku] of integer;
zname:array[1..maxprvku] of integer;
i,j,k,p:integer;
b:boolean;
begin
randomize;
writeln('V teto posloupnosti:...');
for i:=1 to maxprvku do
begin
pole[i]:=random(maxhodnota); {naplneni pole}
writeln(pole[i]);
end;

p:=0;
for i:=1 to maxprvku do
begin
k:=pole[i];
b:=false;
for j:=1 to p do
if zname[j]=k then
begin
b:=true;
Break;
end;
if b=false then inc(p);
end;

writeln('...se vyskytuje ',p,' hodnot.');
readln;
end.

Nahlásit jako SPAM
IP: ...–
Laaca
~ Anonymní uživatel
225 příspěvků
5. 11. 2006   #5
-
0
-

Množinou by to šlo vyřešit také - to má PaLaDiN pravdu.

Nahlásit jako SPAM
IP: ...–
svick0
Newbie
5. 11. 2006   #6
-
0
-

To Laaca: Ten druhý program je špatně, zapomněl jsi tam dát ukládání do pomocného pole.
Část programu

if b=false then inc(p);

bych nahradil
if b=false then

begin
inc(p);
zname[p]:=k;
end;

Nahlásit jako SPAM
IP: ...–
Korespondenční seminář z programování pro středoškoláky - http://ksp.mff.cuni.cz
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, 14 hostů

Podobná vlákna

Úkol — založil Malirka

Ukol — založil Dalibor

úkol — založil Jan Koláčný

Úkol 5 — založil Jarda

Ukol — založil joskoo

Moderátoři diskuze

 

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