Potrzebna pomoc w napisaniu programu

0

Witam. Muszę napisać program który pobierze od użytkownika "Imie_Nazwisko" + "Wzrost" około 10 osób. Następnie znajdzie najniższą osobę. Nie wiem czy to mam zrobic na tablicach czy jak... Mógłby ktoś pomóc? Przynajmniej naprowadzić trochę?

0

Robisz dwie tablice 10-elementowe. Jedna przechowuje imię i nazwisko, a druga wzrost. W drugiej wyszukujesz najmniejszą wartość i wypisujesz nazwisko o tym samym indeksie z pierwszej tablicy.

0

Nie trzeba tablic. Skoro ma wyznaczyć najniższa osobę to nie potrzeba przechowywania imion,nazwisk i wzrosty innych.

Nie znam nic javy ale coś takiego może:

 
-> Tworzysz stringa z imieniem i nazwiskiem, inta czy tam float ze wzrostem.
->Pobierasz dane 1 osoby zapisujesz do zmiennych.
->Pobierasz dane kolejnej osoby -> Jeśli jej wzrost jest mniejszy od aktualnie zapisanej to podmieniasz. I tak do końca ;p 
0

Mam na razie tyle... co dalej?

import java.util.Scanner;

public class Pracadomowa{
  public static void main(String[] args){


	  String[] imiona = new String[4];
	 Scanner odczytimion = new Scanner(System.in);
	 //pobranie danych
	 System.out.println("Podaj imiona: ");
	 for(int i=0; i<4; i++)
		 imiona[i] = odczytimion.nextLine();


	 int[] wzrost = new int[4];
	 Scanner odczytwzrostu = new Scanner(System.in);
	 System.out.println("Podaj wzrost: ");
	 for(int i=0; i<4; i++)
		 wzrost[i] = odczytwzrostu.nextInt();

	 
	 
	 
  }
}

ace4ur: Właśnie chodzi mi o to żeby najpierw pobrać wszystkie a później prównać.

0

A skoro tak to tak jak kolega napisał powyżej.

->Stwórz tablice imion i wzrostu.
->Pobierz w pętli imiona i wzrost.
-> Porównaj wzrosty(pętlą? sortowaniem? jest wiele sposobów) 
0

Po co sortować? Przecież powinien jednocześnie podawać imię, nazwisko i wzrost danej osoby, tylko wzrost umieszczać w osobnej tablicy. Następnie wypisać imię i nazwisko z pierwszej po czym znaleźć ten sam index w drugiej i wypisać wzrost.

0

allocer Tak by było najlepiej tylko zapomniałeś chyba że mam znaleźć najmniejszy wzrost na koniec.

0

Nie wiem dokładnie, jak jest w Javie. Ale jakbyś zastosował coś, jak vector par w C++ czy hashtable z C#, gdzie kluczem byłoby imię i nazwisko a wartością wzrost.
Najmniejszy wzrost możesz szukać na bieżąco przy podawaniu danych. Tworzysz zmienną minWzrost=300 (nikt nie będzie miał więcej :)) i porównujesz podawane zmienne. Jeśli jest mniejsza to minWzrost=zmienna;

0

no a ja kompletnie się na C++ nie znam :). Może ktoś kto w javie siedzi się odezwie?

0

Naskrobałem coś takiego w c#:

 using System;

class App
{
    static void Main()
    {
        Console.Write("Ile osób: ");
        string[] nazwa = new string[Convert.ToInt32(Console.ReadLine())];
        int[] wzrost = new int[nazwa.Length];
        int WzrostMin = 250, index = 0;

        for (int i = 0; i < nazwa.Length; i++)
        {
            Console.Write("Osoba[{0}]. Podaj imię i nazwisko: ",i);
            nazwa[i] = Console.ReadLine();
            Console.Write("Podaj jej wzrost: ");
            wzrost[i] = Convert.ToInt32(Console.ReadLine());
            if (wzrost[i] < WzrostMin)
            {
                WzrostMin = wzrost[i];
                index = i;
            }
        }


        Console.Write("Najniższa osoba to {0} a wzrostu ma {1}.", nazwa[index], WzrostMin);
        Console.ReadLine();


    }
}
0

Nie wiem czy w javie w ten sposób się da...? Zobaczymy może ktoś ogarniający jave się wypowie :)

0

Sądzę, że powyższy kod będzie prawie identyczny w Javie, gdy zmienisz "Console.Write();" na "Scanner zmienna = new Scanner(System.in);"

0

nie wychodzi mi jakoś....

0

Kod w Javie będzie prawie że identyczny. Z dokładnością do String z dużej literki, length z małej, Interger.parseInt() zamiast Convert.ToInt32, i System.out.println zamiast Console.Write

0
 import java.io.Console;
import java.util.Scanner;
public class Minimum{
  public static void main(String[] args){
	  System.out.println("Ile osób: ");
        String[] nazwa = new String[Interger.parseInt(Console.reader())];
        int[] wzrost = new int[nazwa.length];
        int WzrostMin = 250, index = 0;
 
        for (int i = 0; i < nazwa.length; i++)
        {
        System.out.println("Osoba[{0}]. Podaj imię i nazwisko: ");
            nazwa[i] = Console.reader();
            System.out.println("Podaj jej wzrost: ");
            wzrost[i] = Interger.parseInt(Console.reader());
            if (wzrost[i] < WzrostMin)
            {
                WzrostMin = wzrost[i];
                index = i;
            }
        }
 
 
        System.out.println("Najniższa osoba to {0} a wzrostu ma {1}.", nazwa[index], WzrostMin);
        Console.reader();
 
 
    }
}

Może ktoś mi wskazać jakie błędy jeszcze popełniłem?

0

Trochę pomyśleć:

Scanner odczyt = new Scanner(System.in);
imiona[i] = odczyt.nextLine();
wzrost[i] = odczyt.nextInt();
0

Hmmm... Powiem tak. Jestem na etapie nauki javy (dopiero co skończyłem tabele wielowymiarowe i będę się brał za obiektowe). Niestety muszę napisać ten program ale mi namieszaliście trochę tym c# i teraz nie wiem która część kodu wgl nie należy do javy, którą muszę zmienić. Więc stąd moja ogromna prośba. Czy mógłby ktoś podać poprawny kod?

0
import java.util.Scanner;

public class Wkuwacz {

	public static void main(String args[]) {
		Scanner in = new Scanner(System.in);
		System.out.println("Ile osób: ");
		int ilosc = in.nextInt();
        String[] nazwa = new String[ilosc];
        int[] wzrost = new int[ilosc];
        int WzrostMin = 250, index = 0;
 
        for (int i = 0; i < ilosc; i++)
        {
        System.out.println("Podaj imię i nazwisko: ");
            nazwa[i] = in.next();
            System.out.println("Podaj wzrost: ");
            wzrost[i] = in.nextInt();
            if (wzrost[i] < WzrostMin)
            {
                WzrostMin = wzrost[i];
                index = i;
            }
        }
        System.out.println("Najnizsza osoba to "+nazwa[index]+". Jej wzrost to: "+WzrostMin);
		
	}

} 
0

nazwą klasy proszę się nie sugerować hyhy ; )

0

Ok... Jedyne do czego się można przyczepić to to że trzeba podawac Imie i Nazwisko w postaci Jan_Kowalski. Wielkie dzięki.

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