Úkol k maturitě – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Úkol k maturitě – Pascal – Fórum – Programujte.comÚkol k maturitě – Pascal – Fórum – Programujte.com

 

20. 5. 2015   #1
-
0
-

Dobrý den, dostal jsem zadání, které musím odevzdat a bude to i u maturity, mohl by mi někdo pomoct? 

"Matici MxN naplnit náhodnými čísly od 1 do 99, ulož hodnoty součtů jednotlivých řádku matice do jednorozměrného pole, matici i pole zobraz."

Děkuji všem za pomoc.

Nahlásit jako SPAM
IP: 94.242.76.–
KIIV
~ Moderátor
+43
God of flame
20. 5. 2015   #2
-
0
-

A co uz mas hotove?

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
20. 5. 2015   #3
-
0
-

#2 KIIV
Zatím si vůbec nevím rady. :(

Nahlásit jako SPAM
IP: 94.242.76.–
KIIV
~ Moderátor
+43
God of flame
20. 5. 2015   #4
-
0
-

Tak rekneme, ze zacnes uplnym zakladem programu, co tam musi byt vzdy.

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
20. 5. 2015   #5
-
0
-

takže 

program uloha;

uses crt;

Nahlásit jako SPAM
IP: 94.242.76.–
Kent0
Stálý člen
20. 5. 2015   #6
-
0
-

matica MxN - to sa pýta vytvoriť si dvojrozmerné pole 

v Pascale máš funkciu na generovanie náhodného čísla z intervalu, ktorý si zadáš(ak si dobre pamätám) - tak naplníš maticu ( 2x for cyklus )

uložiť hodnoty súčtov jednotlivých riadkov do poľa - vytvoríš si jednorozmerné pole a pomocou 2x for cyklus spočítaš súčet riadkov

zobraziť maticu a pole - matica - 2x for cyklus , pole - 1x for cyklus

Nahlásit jako SPAM
IP: 147.175.176.–
peter
~ Anonymní uživatel
3981 příspěvků
21. 5. 2015   #7
-
0
-

Tak, jakoze v cem vidis problem? Urcite mas nekde napsanych spoustu prikladu, co jste ve skole probirali. Z toho to das, ne? Pripadne google je plne prikladu. Napises tam pascal jmenofunkce example, dae enter a oto to neco najde, i na matice tam neco bude. Mimochodem, matice je zavadejici. Je to tabulka. Pojem matice se pouziva v matematice pro maticove pocty. tady nic maticove nepocitas.

(Kent) "vytvoriť si dvojrozmerné pole " - ja osobne mam radeji jednorozmerne pole ovladane pres i,j,k

var i,j,k,mi,mj: integer;
begin
mi := 3;
mj := 5;
k  := 0;
for j := 0 to mj do
  begin
    for i := 0 to mi do
      begin
        writeln(k);
	k := k+1;
      end;
  end;
end.
// pristup na konkretni i,j pole pak je pole[mj*j+i]
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:14e0:f0...–
miHan0
Návštěvník
21. 5. 2015   #8
-
0
-

#1 Romík644
Tohle je zadání MATURITNÍ úlohy   ?

Nahlásit jako SPAM
IP: 88.146.182.–
Mircosoft+1
Věrný člen
21. 5. 2015   #9
-
0
-

Takže od začátku:

1) Matice MxN. Co je M a N? Pevně dané konstanty, nebo něco, co zadá uživatel? V prvním případě si můžeš matici deklarovat jako array[1..M,1..N] of nějaký číselný typ. Ve druhém ji buď deklaruješ větší a využiješ z ní jenom ten kousek o zadaných rozměrech, nebo ji definuješ jako jednorozměrné dynamické pole (array[něco..něco], ukazatel na to pole, Getmem a podobně, přístup přes index řádek*šířka+sloupec a bacha na to, jestli chceš indexovat od nuly nebo od jedničky; ale to píšu jen tak pro úplnost, není to úplně triviální a asi to tak dělat nebudeš).

2) Náhodná čísla. Random(x) ti dá náhodné číslo od 0 do x-1, takže na 1..99 se dostaneš jak? (nápověda: Random(něco)+něco)
Jednou na začátku programu je vhodné inicializovat generátor náhodných čísel příkazem Randomize;, jinak ti bude při každém spuštění chodit pořád stejná posloupnost čísel.

3) Procházení dvojrozměrného pole prvek po prvku:

for i:=1 to pocet_radku do
  begin
  ...cokoli, co potrebujes udelat pred zacatkem radku...
  for j:=1 to pocet_sloupcu do
    begin
    ...neco udelej s prvkem na indexu [i,j]...
    end;
  ...cokoli, co potrebujes udelat za koncem radku...
  end;

Tak, jak je to napsané, je vnější cyklus pro i a vnitřní pro j, neboli pro každý řádek (i) se provede cyklus pro j od prvního do posledního sloupce (takže pole procházíš jakoby po řádcích zleva doprava a odshora dolů). Samozřejmě to není jediná možnost: můžeš pořadí prohodit a procházet pole po sloupcích, nebo některý z těch cyklů vynechat a projít jenom jeden řádek nebo jeden sloupec - záleží jenom na tom, co chceš s polem dělat.

4) V zadání vidím jenom to, že výsledek (součty) se má uložit do jednorozměrného pole, ale neříká se tam nic o tom, jestli je potřeba uložit celou matici. Možná si můžeš tu šaškárnu s dvojrozměrným polem ušetřit a všechny výsledky vyřídit v jednom kroku:
- Dvojitý cyklus, přesně jak jsem ho napsal.
- Před začátkem každého řádku si vynuluješ první proměnnou - mezisoučet. Dále pro každý prvek řádku:
-- Vygeneruješ si náhodné číslo a uložíš ho do druhé proměnné.
-- Vypíšeš ho na obrazovku (Write(...);).
-- Přičteš ho k mezisoučtu.
- Na konci řádku zalomíš řádek na obrazovce (Writeln;) a mezisoučet uložíš do toho jednorozměrného pole na index i.

Pak už je jedno, jestli ty součty vypíšeš až potom v dalším cyklu, nebo rovnou na konec každého řádku v tom cyklu, ve kterém je počítáš. Teoreticky by se vlastně úplně dalo obejít bez polí a vystačit si jenom s těmi dvěma proměnnými, ale zadání je zadání :-).

Nahlásit jako SPAM
IP: 94.113.255.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
22. 5. 2015   #10
-
0
-

Prosím vás, termín odevzdání se mi blíží a nemám vůbec nic.. Zkouším podle vás něco dělat, ale vůbec mi to nejde. Nevím si vůbec rady. Děkuji všem za pomoc.  

Nahlásit jako SPAM
IP: 82.209.58.–
JoDiK
~ Anonymní uživatel
987 příspěvků
22. 5. 2015   #11
-
0
-

#10 Romík644
Ty si odporuješ, na jednu stranu píšeš, že zkoušíš něco dělat a na druhou zas "nemáš vůbec nic"??? Tak jak to teda zkoušíš? Jenom v hlavě?

Tak jestli opravdu chceš pomoct, tak makej - začnem od jedoduchých věcí:

1. napiš program, který do jedné proměnné uloží náhodné číslo od 1 do 6 a vypíše ho. Až to budeš mít, zkopíruj to sem. Když něco nevíš, zkopíruj sem co máš a ptej se... (kontrola: spustíš program a on vypíše třeba 5, spustíš ho podruhé, vypíše třeba 2)

2. uprav ten předchozí program tak, aby to sám zopakoval 10x, tzn vypíše celkem 10 náhodných čísel od 1 do 6. (kontrola: spustíš program a on vypíše 1 4 2 5 5 1 6 4 3 4)

3. uprav ten předchozí program tak, že spočítá a vypíše součet těch deseti vypsaných čísel

(kontrola: spustíš program a on vypíše 1+4+2+5+5+1+6+4+3+4= 35)

To prozatím stačí...

Nahlásit jako SPAM
IP: 88.103.236.–
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, 1 host

Podobná vlákna

Pomoc k maturitě — založil thetomascz06

Úkol 5 — založil Jarda

úkol — založil martin

Ukol — založil Kawasaki

Ukol — založil Dalibor

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ý