Sprawdź się
Zmodyfikuj podany kod tak, aby wypisywał, ile średnio ocen z pewnego przedmiotu poprawiali uczniowie, imię ucznia, który poprawiał najwięcej ocen, oraz liczbę poprawianych przez niego ocen.
Specyfikacja problemu:
Dane:
imiona
– tablica łańcuchów znakówwartosci
– tablica liczb naturalnych
Wynik:
Program wyświetla, ile średnio ocen z pewnego przedmiotu poprawiali uczniowie, imię ucznia, który poprawia najwięcej ocen oraz to, ile ich poprawia. Dane oddzielone są od siebie znakiem spacji.
Przykładowe wyjście:
1.93 Mateusz 7
Przykładowe rozwiązanie zadania:
class Uczen {
public String imie;
public int poprawianeOceny = 0;
}
public class Main {
public static Uczen[] init() {
int[] wartosci = {
0, 1, 2, 5, 6, 1, 7, 0, 1, 0, 0, 3, 1, 2, 0
};
String[] imiona = {
"Zbigniew", "Marta", "Katarzyna", "Wojciech", "Piotr", "Kacper", "Mateusz", "Julia", "Adam", "Agata", "Dominika", "Lucyna", "Magda", "Ewa", "Maciek"
};
Uczen[] uczniowie = new Uczen[15];
int z = 0;
for(int i = 0; i < 15; i++) {
uczniowie[i] = new Uczen();
uczniowie[i].poprawianeOceny = wartosci[z];
uczniowie[i].imie = imiona[z++];
}
return uczniowie;
}
public static void main(String[] args) {
Uczen[] uczniowie = init();
int suma = 0;
int maxIndex = 0;
for(int i = 0; i < uczniowie.length; i++) {
suma += uczniowie[i].poprawianeOceny;
if(uczniowie[i].poprawianeOceny > uczniowie[maxIndex].poprawianeOceny)
maxIndex = i;
}
double srednia = (double)suma / uczniowie.length;
System.out.printf("%.2f ", srednia);
System.out.print(uczniowie[maxIndex].imie + " ");
System.out.println(uczniowie[maxIndex].poprawianeOceny);
}
}
Tablica szkola[]
przechowuje w tablicach nazwiska
, srednieOcen
oraz wiek
informacje na temat nazwisk uczniów, średniej ich ocen oraz ich wieku. Napisz program sortujący tablicę szkola[]
nierosnąco według pola wiek
. Zastosuj algorytm sortowania przez wstawianie.
Specyfikacja problemu:
Dane:
liczbaUczniow
– liczba naturalnanazwiska
– tablica łańcuchów znakówsrednieOcen
– tablica liczb rzeczywistychwiek
– tablica liczb naturalnych
Wynik:
Program wyświetla tablicę szkola[]
posortowaną nierosnąco według pola wiek
.
Przykładowe wyjście:
Banach 3.1 18
Rychwał 2.2 17
Pokojski 4.2 15
Rusak 2.3 15
Kraus 4.7 15
Kowalski 3.6 14
Radziwiłł 2.8 14
Nowak 5.6 13
Ryba 4.4 10
Bąk 6.0 10
Przykładowe rozwiązanie zadania:
class Uczen {
public String nazwisko;
public double sredniaOcen;
public int wiek;
}
public class Main {
public static void main(String[] args) {
int liczbaUczniow = 10;
Uczen[] szkola = new Uczen[liczbaUczniow];
String[] nazwiska = {"Kowalski", "Pokojski", "Nowak", "Rusak", "Radziwiłł", "Ryba", "Banach", "Rychwał", "Bąk", "Kraus"};
double[] srednieOcen = {3.6, 4.2, 5.6, 2.3, 2.8, 4.4, 3.1, 2.2, 6.0, 4.7};
int[] wiek = {14, 15, 13, 15, 14, 10, 18, 17, 10, 15};
for (int i = 0; i < liczbaUczniow; i++) {
szkola[i] = new Uczen();
szkola[i].nazwisko = nazwiska[i];
szkola[i].sredniaOcen = srednieOcen[i];
szkola[i].wiek = wiek[i];
}
int j;
for (int i = 0; i < liczbaUczniow; i++) {
Uczen a = szkola[i];
j = i - 1;
while (j >= 0 && szkola[j].wiek < a.wiek) {
szkola[j + 1] = szkola[j];
--j;
}
szkola[j + 1] = a;
}
for (int i = 0; i < liczbaUczniow; i++) {
System.out.println(szkola[i].nazwisko + " " + szkola[i].sredniaOcen + " " + szkola[i].wiek);
}
}
}
Zmodyfikuj podany kod tak, aby obliczał i wyświetlał długości przeciwprostokątnych trójkątów prostokątnych.
Tablica boki
zawiera długości boków przyprostokątnych a
kolejnych trójkątów.
Długość boków przyprostokątnych b
obliczana jest w taki sposób, że wyznaczamy resztę z dzielenia indeksu badanego trójkąta (pamiętaj, że indeksujemy od 0) przez liczbę 5. Wynik jest mnożony przez liczbę 3, a następnie dodaje się do niego długość boku a
danego trójkąta. W programie zapisaliśmy już odpowiednią instrukcję (linia 23).
Długość przeciwprostokątnej obliczysz, korzystając ze wzoru .
Specyfikacja problemu:
Dane:
boki
– tablica liczb naturalnych
Wynik:
Program wyświetla przeciwprostokątne utworzonych trójkątów prostokątnych.
Przykładowe wyjście:
7.07 15.00 7.07 11.18 15.30
Przykładowe rozwiązanie zadania:
class TrojkatProstokatny {
public double bokA = 1;
public double bokB = 1;
public double bokC = 1;
}
public class Main {
public static TrojkatProstokatny[] oblicz(TrojkatProstokatny[] trojkaty) {
for(TrojkatProstokatny x: trojkaty) {
x.bokC = Math.sqrt(Math.pow(x.bokA, 2) + Math.pow(x.bokB, 2));
}
return trojkaty;
}
public static void main(String[] args) {
wypiszPrzeciwprostokatne(oblicz(stworzTrojkaty()));
}
public static TrojkatProstokatny[] stworzTrojkaty() {
TrojkatProstokatny[] trojkaty = new TrojkatProstokatny[5];
int[] boki = {5, 9, 1, 2, 3};
for(int i = 0; i < 5; i++) {
trojkaty[i] = new TrojkatProstokatny();
trojkaty[i].bokA = boki[i];
trojkaty[i].bokB = 3 * (i % 5) + boki[i];
}
return trojkaty;
}
public static void wypiszPrzeciwprostokatne(TrojkatProstokatny[] trojkaty) {
for(TrojkatProstokatny x: trojkaty) {
System.out.printf("%.2f ", x.bokC);
}
}
}