Programowanie java, pętle

Pytania o rozwiązania zadań.
Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Programowanie java, pętle

Post autor: karolinaa1231 »

Napisz program wypisuj¡cy na ekran wszystkie argumenty programu:
• z wykorzystaniem petli while,
• z wykorzystaniem petli do-while,
• z wykorzystaniem petli for.

Proszę o pomoc z tym programem. Zaczełam tak:

import java.io.Console;
public class Zadanie13 {
public static void main(String[] agrs) {
int argument= 0;
System.out.println("Argumenty programu");
for (argument= 0; agrument < argumenty.lenghth; argument ++){
System.out.println("Argument" + (argument + 1) + " - " + argumenty[argument]);
}
}
}

Jako główny, niestey nie dziala
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

Tablica nazywa się agrs a nie argumenty. Powinno być agrs[argument], agrs.length.
Poza tym raz Twoja zmienna nazywa sie argument a raz agrument.
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

import java.io.Console;
public class Zadanie13 {
public static void main(String[] agrs) {
int argument= 0;
System.out.println("Argumenty programu");
for (argument= 0; argument < args.length; argument ++){
System.out.println("Argument" + (argument + 1) + " - " + args[argument]);
}
}
}

Czyli to?
Nadal sa jeszcze dwa błędy których nie rozumiem;/
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Re: Programowanie java, pętle

Post autor: josselyn »

To może te błędy też byś wrzuciła?
Jak ja programuję, to patrzę na komunikat błędu i numery linijek, w których są błędy
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

Zadanie13.java:6 error: cannot find symbol
for <argument=0; argument < args.length; argument ++){

symbol: variable args
location class Zadanie13
Zadanie13.java:7 error: cannot find symbol
System.out.println("Argument" + (argument + 1) + " - " + args[argument]);

symbol : variable args
location: class Zadanie13
2 errors


Czyli z tego co zrozumiałam to w zlej klasie jest umieszczony? Ale nie rozumiem jak to zrobic innaczej
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

public static void main(String[] agrs) {
Tablica nazywa się agrs. Zwykła literówka.
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

Dziekuja dziala, lecz w 1. juz z pętlą wyskakuje następujący komunikat:

Argumenty programu
Exception in thread "main" java.lang.ArraysIndexOutOfBoundsException: 2 at Zadanie13a.main(Zadanie13a.java:10)

Kod programu mam taki:
import java.io.*;
public class Zadanie13a {
public static void main(String[] args) {
int argument= 0;
System.out.println("Argumenty programu");
argument= 0;
while (argument < args.length){
argument ++;
}
System.out.println("Argument" + (argument + 1) + " - " + args[argument]);
}
}
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

Linijkę System.out.println("Argument" + (argument + 1) + " - " + args[argument]);
wrzuć do petli while, komunikat mówi, że wychodzisz poza zakres.
Tylko jak wrzucisz do pętli to przed linijkę:
argument ++;
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

Dziekuje ślicznie. Mam jeszcze prośbe co do programu który bedzie sprawdzał czy liczba jest pierwszą, napisałam tak

import java.io.Console;
public class Zadanie16 {
public static void main(String[] args){
Console wierszPolecen= System.console();
String tekst= wierszPolecen.readLine("Podaj liczbe naturalna");
double liczba=Double.parseDouble(tekst);
if (liczba==1||liczba==0){
System.out.println("Nie jest liczba pierwsza");
}else{
int liczbaDzielnikow= 1;
int dzielnik= 2;
for (int dzielnik=2; dzielnik<liczba; dzielnik++){
if(liczba%dzielnik==0){
liczbaDzielnikow++;
}
}
}
}
}
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

W pętli starczy jak bedziesz sprawdzac do pierwiastka z liczba, to przyspieszy działanie programu
dzielnik<=Math.sqrt(liczba).
Jakieś błędy wyskakują? Bo sama idea działania programu jest dobra.
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

Ale w której pętli bo nie bardzo wiem w którym miejscu?
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

W tej
for (int dzielnik=2; dzielnik<liczba; dzielnik++){
To co napisałaś nie jest źle. Ale wystarczy przejrzeć dzielniki do pierwiastka z liczby.
Tu masz ładnie rozpisane w Javie
http://pl.wikipedia.org/wiki/Sito_Eratostenesa
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

Czyli tak?
import java.io.Console;
public class Zadanie16 {
public static void main(String[] args){
Console wierszPolecen= System.console();
String tekst= wierszPolecen.readLine("Podaj liczbe naturalna");
double liczba=Double.parseDouble(tekst);
if (liczba==1||liczba==0){
System.out.println("Nie jest liczba pierwsza");
}else{
int liczbaDzielnikow= 1;
int dzielnik= 2;
for (dzielnik<=Math.sqrt(liczba)){
if(liczba%dzielnik==0){
liczbaDzielnikow++;
}
}
}
}
}

Wyskakuje sporo błędów w 12 i 13 linijce
josselyn
Expert
Expert
Posty: 4026
Rejestracja: 01 kwie 2010, 15:35
Lokalizacja: pod Lublinem - Niedrzwica
Podziękowania: 3 razy
Otrzymane podziękowania: 1914 razy
Płeć:

Post autor: josselyn »

Bo źle masz napisaną konstrukcję petli for.
Zamiast
dzielnik<liczba;
miałaś wpisać
dzielnik<=Math.sqrt(liczba)
Znasz odpowiedź do zadania, to ją podaj. Łatwiej będzie sprawdzić czy w rozwiązaniu zadania nie ma błędu.
Otrzymałeś odpowiedź do umieszczonego zadania? Podziękuj autorowi za rozwiązanie!!

„Jeżeli chcecie nauczyć się pływać ,
To trzeba, żebyście weszli do wody.
Jeżeli zamierzacie nauczyć się rozwiązywania zadań,
to trzeba, żebyście je rozwiązywali”

George Polya
karolinaa1231
Rozkręcam się
Rozkręcam się
Posty: 49
Rejestracja: 04 cze 2012, 10:38
Podziękowania: 50 razy
Płeć:

Post autor: karolinaa1231 »

import java.io.Console;
public class Zadanie166 {
public static void main(String[] args){
Console wierszPolecen= System.console();
String tekst= wierszPolecen.readLine("Podaj liczbe naturalna");
int liczba=Integer.parseInteger(tekst);
if (liczba==1||liczba==0){
System.out.println("Nie jest liczba pierwsza");
}
int liczbaDzielnikow= 1;
int dzielnik= 2;
for (dzielnik =< Math.sqrt(liczba) ;dzielnik++){
if(liczba%dzielnik==0){
liczbaDzielnikow++;
}
}
}
}

I wyskakuja następujące błędy:
Zadanie166.java:12 error: ) expected
for (dzielnik =< Math.sqrt(liczba); dzielnik++ ){
Zadanie166.java:12: error: ';' expeected
for (dzielnik =< Math.sqrt(liczba); dzielnik++ ){
Zadanie166.java:12: error: illegal start of expression
for (dzielnik =< Math.sqrt(liczba); dzielnik++ ){
ODPOWIEDZ