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:)
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.
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?
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
no to piszesz po prostu:
for(int i = 0; i < a; i++){
for(int j = 0; j < b; j++){
tab[i][j] = ileśtam;
}
}
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
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.
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
spoksik losowe wartosci działaja dzieki :-)
a tak z ciekawosci jeszcze sie spytam czy da sie losowac tez wartosci ujemne?
Oczywiście: zajrzyj do dokumentacji klasy Random:
http://java.sun.com/j2se/1.5.0/docs/api/index.html
nic z tego nie kumam :-/ słaby jestem w angielskim
No to będzie ci ciężko...
W tym przypadku wystarczy wywołać metodę nextInt() bez żadnych argumentów.
a jak zrobic zeby w gre wchodziły tylko liczby z przedzialu -100 do 100?
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)
dzieki mistrzu działa:)
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].
No jeżeli przedziały mają być domknięte to i owszem...:)
Sądzisz, że jak ktoś pisze: liczby z przedziału -1 do 1 to ma na myśli tylko liczbę zero?
Jak ktoś ma na myśli jedną liczbę to nie używa przedziałów :-) ,mniejsza o to...
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?
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ą");}
}
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
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
a mógłby ktoś pomóc jeśli chodzi o sortowanie takiej macierzy i rosnąco i malejaco????