TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[Turbo Pascal] Program wybierajacy 3 cyfry z 7 elementowej tablicy - Jak to zrobic... , humel 17/04/04 13:04 Pytanie jak w temacie.. Wybieranie bez zwracania..
Program ma sprawdzac czy suma wybranych cyfr jest podzielna przez 2, zwiekszac licznik i sumowac sumy posrednie.
Nie mam problemu zeby sprawdzic czy suma jest podzielna przez 2 i sumowac to cale ustrojstwo, mam problem tylko z wybieraniem tych 3 cyfr z 7... Cyfry to 1,2,3,4,5,6,7.. Latwo obliczyc ze ilosc wszystkich kombinacji dla wybieranych 3 cyfr bez zwracania to dokladnie 210 (7*6*5)
Dane sa wpisane do tablicy 1-dno wymiarowej..
Moze ktos ma jakis pomysl i podrzuci kawalek kodu ?? :)))**** HuMeL **** - nie rozumiem , atay 17/04/04 13:16
ale ja juz tak mam :)
kto ma wybierac liczby - user czy program losowo/pokolei ?
ma dac wynik dla pojedycznego przykladu 3 liczb czy jakas masowka ? jak to konkretnie ma dzialac ?
W pascalu juz dawno nie programowalem, ale mysle ze program nie jest trudny do napisania, tylko musze go zrozumiec :)_- Atay -_ - uszczegolniam.. , humel 17/04/04 13:20
liczby ma wybierac program.. obojetnie czy po kolei czy losowo.. wazne zeby wybral wszystkie mozliwe kombinacje
ma dac wynik dla wszystkich sum 3 liczb dla ktorych suma jest podzielna przez 2, czyli np suma mod 2 =0
teraz chyba sam sie zakrecilem... mam nadzieje ze jest to zrozumiale**** HuMeL **** - dawno nie pisalem w pascalu , atay 17/04/04 13:37
ale idea programu jest prosta, nawet bardzo prosta.
nie mam tez pascala wiec nie jestem w stanie sprawdzic, czy to dziala i czy dobrze zapisalem wszystko (sredniki na koncu, polecenia czy instnieją w Pascalu). Jeśli coś nie bedzie chodzilo i jesli z czyms dalej nie bedziesz dawal sobie rady pisz - zajrze do ksiazki :)
var x,y,z, suma: integer;
begin
suma:=0;
for x:=1 to 7 do begin
for y:=1 to 7 do begin
for z:=1 to 7 do begin
if ((x*y*z) mod 2==0) do suma:=suma+(x*y*z);
end;
end;
end;
end._- Atay -_ - errata , atay 17/04/04 13:38
oczywiscie zamiast znaczkow "*" powinny byc "+"_- Atay -_ - po spojrzeniu w ksiazke :) , atay 17/04/04 13:41
mam nadzieje ze juz bedzie dobrze chodzic :)
var x,y,z, suma: integer;
begin
suma:=0;
for x:=1 to 7 do begin
for y:=1 to 7 do begin
for z:=1 to 7 do begin
if ((x+y+z) mod 2=0) then suma:=suma+(x+y+z);
end;
end;
end;
end._- Atay -_ - przepraszam :) , atay 17/04/04 13:49
za szybko czytam :)
mialo byc bez zwracania :)
w takim razie zmieniasz tylko linijke:
if (x<>y) then if (x<>z) then if (y<>z) then if ((x+y+z) mod 2=0) then suma:=suma+(x+y+z);
powinno hulać :)_- Atay -_ - nie no.. wydaje sie za proste zebym na to nie wpdal..$#@$!$# , humel 17/04/04 13:54
:))))
sprawdze i dam znac.. :))) dzieki....**** HuMeL **** - to chyba jednak nie tak.... , BONUS 17/04/04 13:58
chyba pętla ma być
for x:=1 to 7 do begin
for y:=x to 7 do begin
for z:=y to 7 do begin
a poza tym
ma być wybierane z tablicy
czyli
tab[x]+tab[y]+tab[z] zamianst x+y+z
POzdro
BONUS- a mowilem :) , atay 17/04/04 14:03
ze nie zrozumialem :)_- Atay -_
- hmm.. cos zle liczy.. , humel 17/04/04 14:40
ale to pewnie jakis maly blad... obojetnie jaki zestaw 7 cyfr wezmiemy za kazdym razem liczba trojek ktorych suma jest parzysta wychodzi taka sama.. 84... a to nie jest prawda...
trzeba powalczyc dalej
dzieki za pomoc..**** HuMeL **** - a sprawdzasz dla odpowienich liczb? , BONUS 17/04/04 14:52
if ((tab[x]+tab[y]+tab[z]) mod 2=0) then
begin
suma:=suma+(tab[x]+tab[y]+tab[z]);
trojek:=trojek+1;
end;
gdzie trojek jest liczba parzystych sum
Pozdro
BONUS
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|