Počet čísel v poli – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Počet čísel v poli – Delphi – Fórum – Programujte.comPočet čísel v poli – Delphi – Fórum – Programujte.com

 

27. 10. 2017   #1
-
0
-

Zdravím, dokázal by mi někdo poradit jak mám v poli 

 procedure novysal;
var i,j: byte;
begin
    for i:=1 to r do
    begin
        for j:=1 to s do
            begin
                if (i=1) and (j=1) then zahlavi;
                if j=1 then write(i:3,'r');
                if a[i,j] = 0 then write('x':4);
                if a[i,j] = 1 then write('o':4);
                
                
            end;
        writeln;
    end;        
end;

Zjistit, kolik je tam těch koleček? Zkoušel jsem to takhle:

procedure volnamista;
var i,j : byte;
    a : integer;  
begin
     volnamista:=0;
   for r:=1 to 10 do
      for s:=1 to 8 do
        if a[i,j]=1 then
        begin
          volnamista:=volnamista+1;
   writeln('Pocet volnych mist je: ',volnamista);
   
                       
                            end;

Ale nejede to a nevím vůbec co s tím :-(
 

Nahlásit jako SPAM
IP: 89.176.132.–
JerryM0
Věrný člen
27. 10. 2017   #2
-
0
-

#1 TomasekTom

já už si pascal moc nepamatuju ale ....
v tom prvním algoritmu díky řádku if (i=1) and (j=1) then zahlavi; ti hned při prvním kroku chod algoritmu skočí někam na "Zahlavi" a dál už nepojede. a protože varianta (i=1) and (j=1) nastane vždy tak ti algoritmus nepojede nikdy :) zkus ten řádek vyhodit a uvidíš co se stane...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:9103:...–
MilanL+1
Grafoman
27. 10. 2017   #3
-
0
-

#2 JerryM
problém je jinde máš smyčky for r a s ale indexuješ [I,J]

Nahlásit jako SPAM
IP: 91.139.9.–
JoDiK
~ Anonymní uživatel
987 příspěvků
29. 10. 2017   #4
-
0
-

#1 TomasekTom
"Nejede to" protože tam máš totální chaos.

V globálních proměnných r a s jsou zřejmě uloženy rozměry toho sálu a v první proceduře novysal je máš správně použité. Ve druhé proceduře volnamista je ale nahrazuješ konstantami 10 a 8 a proměnné r a s používáš jako řídící v cyklu. Testuješ ale pole s indexy i a j, které mají zřejmě nulové hodnoty.

Takže použij stejný postup jako v první proceduře. Navíc to je celkově divné, do názvu procedury (pokud vím) nelze ukládat hodnoty a vypisuješ počet volných míst pokaždé, když nějaké najdeš - nestačilo by to jen jednou na konci hledání? Jde to vůbec zkompilovat? Chybí tam minimálně jedno end. 

procedure volnamista;
var i,j : byte;
    a : integer; 
    volnych : integer; 
begin
   volnych:=0;
   for i:=1 to r do
      for j:=1 to s do
        if a[i,j]=1 then
          volnych:=volnych+1;
   writeln('Pocet volnych mist je: ',volnamista);
end;
Nahlásit jako SPAM
IP: 88.103.228.–
JoDiK
~ Anonymní uživatel
987 příspěvků
29. 10. 2017   #5
-
0
-

#4 JoDiK
oprava posledního řádku:


writeln('Pocet volnych mist je: ',volnych);
 

Nahlásit jako SPAM
IP: 88.103.228.–
MilanL+1
Grafoman
31. 10. 2017   #6
-
0
-

#1 TomasekTom

no našel jsem ještě 1 vadu v původním příspěvku - v podstatě by to nemělo jít ani přeložit pro nesoulad typů v proceduře Volnamista:

v proceduře NovySal používáš pole "a" - pravděpodobně globální pole a v proceduře Volnamista si definuješ ve var lokální proměnou a jako integer, navíc v této proceduře nevidím definici volnamista - tedy pokud to není globální proměnná a ještě ti to koliduje s názvem procedury.

Zdá se mi to jako by to bylo zkopírováno z jiného jazyka asi C/C++, kde volnamista není procedura, ale funkce a název funkce se používá pro návratovou hodnotu, ale ani tam bych to takto nepoužil kvůli pravděpodobnosti rekurzivního volání při volnamista := volnamista+1;.

Nahlásit jako SPAM
IP: 91.139.9.–
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, 5 hostů

Podobná vlákna

Počet prvků poli — založil suchla12

Počet prvků v poli — založil Hmm

(C++) Počet unikátních znaků v poli — založil richard.zavodny

 

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