program z macierzami

0

witam, jestem nowy na forum tak jak jestem nowy w programowaniu, dopiero zaczynam zabawe z jakim kolwiek programowanie , także prosze o wyrozumialość:)
mam do zrobienia programik do zdefiniowania maciezy [m]x[n] i posortowac ja malejąco i rosnąca [???]
troche sobie z tym nie radze prosze o wszelka pomoc najlepiej programik z komentarzami,
z góry dzieki wszystkim:)

0

Jak sobie z tym nie radzisz, to ciężko ci będzie. Może cię zaskoczę, ale programowanie nie polega na tym, żeby ktoś za ciebie pisał programy, najlepiej z komentarzami. Zrobiłeś już coś w tym kierunku? Masz jakiś konkretny problem? Bo jak tak po prostu sobie nie radzisz, to może zajmij się czymś innym całkowicie.

0

robie cały czas nie wiem jak stworzyc macierz do ktorej bede mógł wpisac liczby podczas uruchomienia umiem je przypisac Od razu i wyswietlic ale to nie wystarczy:( moze chociaz ktos powie jak powinna wyglądac petla for do tego przyadku?

0

import java.util.Scanner;
public class Dane {
public static void main (String args[])
{
int a;
int b;
int tab[][] = {
{1, 2, 3, 4},
{5, 6, 7, 8}
};

   System.out.println("podaj wymiar tablicy: "); 
   Scanner in = new Scanner(System.in);
   a = in.nextInt();
   b = in.nextInt();
   System.out.println("liczba wierszy: " +a+ "liczba kolumn: " +b);
	   
    for(int i = 0; i < a; i++){
    for(int j = 0; j < b; j++){
     System.out.println("tab[" + i + "," + j + "] = " + tab[i][j]);
    }
   }
  }
} 

tyle zrobiłem a chodzi mi jeszcze o to zeby samemu podawac wartosci tablicy podczas uruchamniania

0

no to piszesz po prostu:
for(int i = 0; i < a; i++){
for(int j = 0; j < b; j++){
tab[i][j] = ileśtam;
}
}


0
nick slaughter napisał(a)

no to piszesz po prostu:

for(int i = 0; i < a; i++){
                 for(int j = 0; j < b; j++){
                 tab[i][j] = ileśtam;
               }
           }


jesli tak zrobie to przypisze mi ta sama wartosc wszystkim pozycja, achodzi o to zeby uzytkownik sam je wpisał po odpaleniu programu ewentualnie zeby sie pola wypełniały losowo
0

No to po prostu albo w wewnetrznej petli ponawiasz pytanie o konkretna wartosc elementu macierzy albo robisz to przed petla i uzytkownik podaje wartosci dla kazdego wiersza lub kolumny.
A jak chcesz generowac wartosci to po prostu w petli. Przed instrukcja "tab[i][j] = ileśtam;" dopisz ilestam = generowanie wartosci.

0
         Random rand = new Random();
         
         for(int i = 0; i < a; i++){
                 for(int j = 0; j < b; j++){
                 tab[i][j] = rand.nextInt(1000);
               }
           }
          

W ten sposób każdy element Twojej tablicy zapełni się liczbami dodatnimi mniejszymi od 1000

0

spoksik losowe wartosci działaja dzieki :-)
a tak z ciekawosci jeszcze sie spytam czy da sie losowac tez wartosci ujemne?

0

Oczywiście: zajrzyj do dokumentacji klasy Random:
http://java.sun.com/j2se/1.5.0/docs/api/index.html

0

nic z tego nie kumam :-/ słaby jestem w angielskim

0

No to będzie ci ciężko...
W tym przypadku wystarczy wywołać metodę nextInt() bez żadnych argumentów.

0

a jak zrobic zeby w gre wchodziły tylko liczby z przedzialu -100 do 100?

0
 Random rand = new Random();
         
         for(int i = 0; i < a; i++){
                 for(int j = 0; j < b; j++){
                 tab[i][j] = rand.nextInt()%100;
               }
           }

% to operator modulo który zwraca Ci resztę z dzielenia,liczby będą z przedziału (-100,100)

0

dzieki mistrzu działa:)

0

Prawie działa, powinno być:

tab[i][j] = rand.nextInt()%101;

lub

tab[i][j] = rand.nextInt(201)-100;

Drugi sposób jest lepszy, łatwo go zmodyfikować by losował np. liczby z zakresu [-100;200].

0

No jeżeli przedziały mają być domknięte to i owszem...:)

0

Sądzisz, że jak ktoś pisze: liczby z przedziału -1 do 1 to ma na myśli tylko liczbę zero?

0

Jak ktoś ma na myśli jedną liczbę to nie używa przedziałów :-) ,mniejsza o to...

0

a teraz takie pytanie powiedzmy ze mamy coś takiego:

import java.util.*;
public class q {

	public static void main(String[] args) {
	
	int c;
	 System.out.println("czy chcesz aby program sam wprowadził losowe liczby? 1-Tak 2-Nie");
	   Scanner in = new Scanner(System.in);  
	 c = in.nextInt();
		
	   switch (c){
	   case 1:{
		
		    		     System.out.println("wybrano 1");
	 }
	   break;
	   case 2:{
		   System.out.println("wybrano 2 ");
		 
	   break;}
	default: {
		 System.out.println("Nie prawidłowa wartosc\n Podaj poprawną");}
	   	   
	  }}}

jak zrobić żeby program sie nie kończył tylko żeby wracał zpowrotem do wyboru 1 czy 2?

0

Jakoś tak

     boolean done=false
     while(!done)
     {
          System.out.println("czy chcesz aby program sam wprowadził losowe liczby? 1-Tak 2-Nie 3-Koniec programu");
          Scanner in = new Scanner(System.in);  
          c = in.nextInt();
                       
          switch (c){
          case 1:
                 System.out.println("wybrano 1");
                 break;
          case 2:
                  System.out.println("wybrano 2 ");
                  break;
          case 3:
                  done=true;
                  break;
          default:
                  System.out.println("Nie prawidłowa wartosc\n Podaj poprawną");}
       }                      
                  
0

jeszcze takie pytanie chce przerobic program tak zeby z jednej klasy wywołać drugą zrobiłem tak ale jest źle

import java.util.*;
import java.util.Scanner;
public class Dane {

  public static void main (String args[])
  {
  
	  DaneTest DaneTest = new DaneTest();
	 

  } 

}

//////////////////////////////////////////////////// druga klasa

import java.util.Random;
import java.util.Scanner;

public class DaneTest {
static Random rand = new Random();
int a;
int b;
int c;

   System.out.println("podaj wymiar tablicy: "); 
   Scanner in = new Scanner(System.in);
   a = in.nextInt();
   b = in.nextInt();
   System.out.println("liczba wierszy: " +a+ " liczba kolumn: " +b);
	
   
   int tab[][] = new int [a][b];
   System.out.println("czy chcesz aby program sam wprowadził losowe liczby? 1-Tak 2-Nie");
   c = in.nextInt();
	
   switch (c){
   case 1:{
	 for(int i = 0; i < a; i++){
	       for(int j = 0; j < b; j++){
	    		  tab[i][j] = rand.nextInt()%100;
	    		     System.out.println("tab[" + i + "," + j + "] = " +tab[i][j]);}}
 }
   break;
   case 2:{
 
	   for(int i = 0; i < a; i++){
	       for(int j = 0; j < b; j++){
	    	System.out.println("podaj elementy tablicy: "); 
	    	     	   tab[i][j] = in.nextInt();
	    		     System.out.println("tab[" + i + "," + j + "] = " +tab[i][j]);}}
	   
   }
   break;
default: {
	 System.out.println("Nie prawidłowa wartosc\n Podaj poprawną");}
	 
  
  
   }

z góry dzieki za pomoc

0

1.nazwy zmiennych z malych liter
2.wydaje mi sie ze w klasie Danetest powinnes zrobic konstruktor

public Danetest ()
{
}

nim wpisac ta cala zawartosc klasy oprocz static Random

0

a mógłby ktoś pomóc jeśli chodzi o sortowanie takiej macierzy i rosnąco i malejaco????

1 użytkowników online, w tym zalogowanych: 0, gości: 1