Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
BumBumRatatata:4.4.2019 17:36

Dobrý den nemam vůbec nápad a ani nevim jak bych měl začit s ukolem.

Dostali jsme zadání:
Naplňte 5 polí po 5 prvcích náhodnými čisly od 10 do 19, prvky poli pak vložte do řádků matice 5x5, jednotlivá pole a matici zobrazte pomoci podprogramu.

Zkusil jsem: Skoušel jsme zatim jenom jedno pole, ale uz nevim jak dale.

Chci docílit: Snažim se udělat ukol do školy ale nevim si vůbec rady, pomoc.

 
Odpovědět
4.4.2019 17:36
Avatar
Odpovídá na BumBumRatatata
Michal Haňáček:4.4.2019 18:07

Ahoj, rad pomuzu, ale rikam predem za ukol za tebe delat nebudu. S cim konkretne si tedy nevis rady? V podstate potrebujes jen

  • vytvorit pet jednorozmernych poli
  • vytvorit dvourozmerne pole
  • generovat nahodna cisla do tech peti vyse zminenych poli
  • postupne prochazet temi nagenerovanymi daty a prelevat je
  • udelat proceduru pro vypis hodnot
Nahoru Odpovědět
4.4.2019 18:07
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na Michal Haňáček
BumBumRatatata:4.4.2019 18:38

No konkretně se mi nedaří vytvořit 5 poli s 5 nahodnymi prvky.

 
Nahoru Odpovědět
4.4.2019 18:38
Avatar
Odpovídá na BumBumRatatata
Michal Haňáček:4.4.2019 19:35

Ok :). Deklarovat promennou a priradit ji nahodnou hodnotu dokazes? Btw. na materialy ze skoly se radeji neptam, ale nerikej mi ze jsi tohle nenasel na google ...

Nahoru Odpovědět
4.4.2019 19:35
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
BumBumRatatata:4.4.2019 19:50

To je hlavní problém si myslím. Deklarovat dokažu ale přířadit ji nahodnou hodnotu od 10 do 19 nevim jak udělat

 
Nahoru Odpovědět
4.4.2019 19:50
Avatar
Odpovídá na BumBumRatatata
Matúš Olejník:4.4.2019 20:27

Google -> Pascal random number -> https://www.freepascal.org/…/random.html
Random(X) ti vráti číslo od 0 po X - 1. Takže Random(10) ti vráti číslo od 0 po 9 ale ty chceš od 10 po 19 tak dáš ešte plus 10, čiže ak sa ti vygeneruje 0 tak + 10 ti dá 10 a ak 9 tak + 10 ti vráti 19. Alebo všeobecne random((max - min) + 1) + min;

Takže spravíš 5 for cyklov alebo 5 priradení v jednom cykle

arr1[i] := random((19 - 10) + 1) + 10;
//atd

Potom for cyklus v ktorom naplníš tú maticu jednotlivými riadkami
A nakoniec Google -> Pascal procedures -> https://www.tutorialspoint.com/…ocedures.htm
podľa čoho spravíš nejakú procedúru v ktorej len prejdeš všetky polia a vypíšeš ich

procedure printAll();
begin
    for i := 0 to 5 do write(arr1[i], ' ');
    writeln();
    //atd
Nahoru Odpovědět
4.4.2019 20:27
/* I am not sure why this works but it fixes the problem */
Avatar
BumBumRatatata:7.4.2019 12:44

Takže už mam 5 poli ... ,matici.
Ale nějak mi nefunguje přiřazení do matice. Nevím jestli to dělám dobře tak prosím o radu.
Přiřazuji to příkazem : pole[1]:=mati­ce○[1,1]; V čem dělám chybu? Díky.

 
Nahoru Odpovědět
7.4.2019 12:44
Avatar
Odpovídá na BumBumRatatata
Michal Haňáček:7.4.2019 15:09

Podle tohodle kodu se neda rict vubec nic ... hod sem cely zdojak, vcetne deklarace tech poli.

Nahoru Odpovědět
7.4.2019 15:09
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Martin Petrovaj
Tvůrce
Avatar
Martin Petrovaj:7.4.2019 15:34

Skôr mám dojem, že Jakub si pomýlil, ako sa zapisuje priradenie :-)

kam := čo;

Podľa mňa by prvé, čo by mal vyskúšať, je prehodiť tie strany, tj. matice[1,1] := pole[1];

Nahoru Odpovědět
7.4.2019 15:34
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Odpovídá na Martin Petrovaj
BumBumRatatata:7.4.2019 16:10

Asi to je ten problem, vyzkouším diky.

 
Nahoru Odpovědět
7.4.2019 16:10
Avatar
BumBumRatatata:7.4.2019 16:35

Nevim jestli to dělám dobře. Spíš asi ne, protože vy to vždy vypiše 0. V čem dělám chybu.

program ukol;
var
    pole1: array[0..4] of integer;
    pole2: array[0..4] of integer;
    pole3: array[0..4] of integer;
    pole4: array[0..4] of integer;
    pole5: array[0..4] of integer;
     matice: array[0..4,0..4] of integer;
    i: integer;
    j: integer;

begin
    randomize;
    for i := 0 to 4 do begin
        pole1[i] := random((19 - 10) + 1)+ 10;
        pole2[i] := random((19 - 10) + 1)+ 10;
        pole3[i] := random((19 - 10) + 1)+ 10;
        pole4[i] := random((19 - 10) + 1)+ 10;
        pole5[i] := random((19 - 10) + 1)+ 10;

    end;

     matice[0,0]:= pole1[0];
      matice[0,1]:= pole1[1];
       matice[0,2]:= pole1[2];
        matice[0,3]:= pole1[3];
         matice[0,4]:= pole1[4];

         //atd .......

     writeln(matice[i,j]);
    readln();
end.
 
Nahoru Odpovědět
7.4.2019 16:35
Avatar
Odpovídá na BumBumRatatata
Matúš Olejník:7.4.2019 16:57
program ukol;
var
    arr1, arr2, arr3, arr4, arr5 : array[0..4] of integer;
    matrix : array[0..4, 0..4] of integer;
    i, j : integer;

begin
    randomize;

    for i := 0 to 4 do begin
        arr1[i] := random(10) + 10;
        arr2[i] := random(10) + 10;
        arr3[i] := random(10) + 10;
        arr4[i] := random(10) + 10;
        arr5[i] := random(10) + 10;
    end;

    for i := 0 to 4 do begin
        matrix[0, i] := arr1[i];
        matrix[1, i] := arr2[i];
        matrix[2, i] := arr3[i];
        matrix[3, i] := arr4[i];
        matrix[4, i] := arr5[i];
    end;

    for i := 0 to 4 do begin
        for j := 0 to 4 do begin
            write(matrix[i, j], ' ');
        end;
        writeln();
    end;

    readln();
end.
Nahoru Odpovědět
7.4.2019 16:57
/* I am not sure why this works but it fixes the problem */
Avatar
Štefan Čonka:11.1.2022 18:38

Čau, potřebuji pomoc s domácím úkolem, pokud je rodné číslo děleno 11 bez zbytku, je to správné, pokud to není správné, musím to udělat s konstruktory a 2 třídami, díky

 
Nahoru Odpovědět
11.1.2022 18:38
Avatar
Odpovídá na Štefan Čonka
Matúš Olejník:11.1.2022 22:29

:D vytvor vlastné vlákno aj s tvojím pokusom a asi lepším znením zadania. Hento znie čudne.

Nahoru Odpovědět
11.1.2022 22:29
/* I am not sure why this works but it fixes the problem */
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Štefan Čonka
DarkCoder:12.1.2022 0:42

Zde máš velkou nápovědu:

Dělitelnost jedenácti lze snadno zkontrolovat i zpaměti: kritériem dělitelnosti jedenácti je rozdíl součtu cifer na sudých a lichých místech a jeho dělitelnost jedenácti, např. u čísla 736028/5163 je součet číslic na lichých místech 7 + 6 + 2 + 5 + 6 = 26, součet číslic na sudých místech 3 + 0 + 8 + 1 + 3 = 15, rozdíl 26 − 15 = 11 je dělitelný jedenácti, takže celé rodné číslo je dělitelné jedenácti a tedy formálně platné.

Pro zjištění, zda je výsledek rozdílu dělitelný jedenácti, použiješ operaci pro určení zbytku po celočíselném dělení - modulo.

Součet cifer na lichých a sudých pozicích zjistíš tak, že si rodné číslo uložíš do pole a pomocí cyklu jej projdeš.

Nahoru Odpovědět
12.1.2022 0:42
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:12.1.2022 9:03
5 / 3 = 1,666 - klasicke deleni
5 % 3 = 2 - celociselne deleni, 2 je modulo, zbytek po deleni
Takze, kdyz ma byt cislo delitelne 11, tak modulo musi byt nula. Zadny zbytek
if (x % 11 == 0) ...
---
a v dephi se to kupodivu pise jinak, jak koukam, misto % je tam mod

var
  int : Integer;

begin
  // Divide a primary integer by 4 - Mod returns the remainder
  int := 19 mod 4;

  ShowMessage('19 mod 4 = '+IntToStr(int));
end;
Editováno 12.1.2022 9:05
 
Nahoru Odpovědět
12.1.2022 9:03
Avatar
Odpovídá na DarkCoder
Štefan Čonka:15.1.2022 16:57

Děkuji velice.

 
Nahoru Odpovědět
15.1.2022 16:57
Avatar
Štefan Čonka:20.1.2022 19:38

Čau, co mám dát do do mainu prosím.
Děkuji

 
Nahoru Odpovědět
20.1.2022 19:38
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Štefan Čonka
DarkCoder:20.1.2022 22:13

Celá problematika rodného čísla je složitější než se na první pohled může zdát.

Podívej se na následují odkaz:

Wiki Rodné číslo

Dopuručuji si pozorně přečíst odstavec Formát.

Narážím na nesprávnost určení pohlaví a validity rodného čísla. Je třeba uvědomit si, jakých hodnot mm může nabývat ve formátu rrmmdd pro muže a jakých pro ženy. Dále si uvědomit, jakých možných hodnot může nabývat číselná podoba rodného čísla (postačí použití datového typu Integer?) Metoda pro určení validity by také určitě měla něco vracet.

Nahoru Odpovědět
20.1.2022 22:13
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.