Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Zdravim,potřeboval bych udělat metodu na zjištění řádku, který má největší součet svých prvků.
Měli sme vytvořit matici s dvourozměrnym polem a napsat metody na její výpis,naplnění,nalezení maximálního čísla a ten součet řádku.
Všechno mam,ale s tim součtem si nějak neumim poradit.Nemohl by mi ho prosim někdo napsat?
Zde je to co jsem prozatim vytvořil.
public class Matice {
private int[][] matice;
public void inicializaceMatice() {
matice = new int[6][5];
}
public void naplMatici() {
for (int radek = 0; radek < matice.length; radek++) {
for (int sloupec = 0; sloupec < matice[0].length; sloupec++) {
matice[radek][sloupec] = (int) (Math.random() *10 + 1);
}
}
}
public void vypisMatici() {
for (int radek = 0; radek < matice.length; radek++) {
for (int sloupec = 0; sloupec < matice[radek].length; sloupec++) {
System.out.print(matice[radek][sloupec]+ " ");
}
System.out.println();
}
}
public void soucetRadku() {
int sou = 0;
int n;
n = matice.length;
for(int radek = 0; radek < n; radek++) {
for(int sloupec = 0+1; sloupec < n; radek++) {
sou = sou + matice[radek][sloupec];
}
System.out.println("soucet nejvetsiho radku je: " +sou);
}
}
public void najdiMax() {
int max = 0;
for(int radek = 0; radek < matice.length; radek++) {
for(int sloupec = 0; sloupec < matice[0].length; sloupec++) {
if(matice[radek][sloupec] >= max) {
max = matice[radek][sloupec];
}
}
}
System.out.println("maximum je: " +max);
}
public static void main(String[] args) {
Matice test = new Matice();
test.inicializaceMatice();
test.naplMatici();
test.vypisMatici();
test.soucetRadku();
test.najdiMax();
}
}Offline
↑ Joerex:
bodejť by ti to našlo nejvyšší řádek, když to nikde neporovnáváš:D a při vstupu na další řádek proměnou sou nenuluješ:D
podle mého názoru by jsi měl napsat tu metodu cca takto
public void soucetRadku() {
int sou = 0;
int nejvyssiSou=0;
for(int radek = 0; radek <matice.length; radek++) {
sou=0;
for(int sloupec = 0+1; sloupec < matice[radek].length; radek++) {
sou += matice[radek][sloupec];
}
if(nejvyssiSou<sou){
nejvyssiSou=sou;
}
}
System.out.println("soucet nejvetsiho radku je: " +nejvyssiSou);
}tak asi tak:D
jo mimochodem ty fory ti nefungujou a fungovat nebudou, ale já je opravovat nebudu, příjď si na to sám proč takto napsané fory nefungují:D(takto jsi to napsal ty)
+ docela zajímavá identifikace int sloupec = 0+1 proč tam rovnou nedáš int sloupec = 1 nebo int sloupec = 0
pokud nebudeš moc přijít na to proč ti nefungují zkus se kouknout na poslední parametr for
Offline
↑ VojtechSejkora:
vejram na to už hodinu,ale stále se nemůřu dopracovat do zdárného konce
Offline
↑ Joerex:
sry že až teď, ale nevšiml sjem si toho dříve...jaksi tkay něco řeším a nemohu přijít na to proč mi to nefunguje:(
zkus toto přepsat
for(int sloupec = 0+1; sloupec < matice[radek].length; radek++) {
na toto
for(int sloupec = 0; sloupec < matice[radek].length; sloupec++) {
Offline
↑ VojtechSejkora:
to jsem zkoušel a pořád to háže chybu na tomhle řádku
edit: Já sem jantar! už to jede :D...špatně sem to opsal :D. Díky za pomoc.
Offline
↑ Joerex:
není zač.... neboj já to taky nejdříve testoval jestli to poběží, abych sem nedal něco co by neběželo.....
hodně úspěchů v programování:)
Offline
Stránky: 1