Zielony Smok - logo witryny

Roztwory chemiczne (Java)

Roztwór to jednorodna mieszanina dwu lub więcej rodzajów cząsteczek nie reagujących z sobą. Stężenie roztworu to ilość substancji, wyrażonej w jednostkach masy lub objętości, rozpuszczonej w określonej liczbie jednostek objętości lub masy roztworu bądź rozpuszczalnika.

%(w/o) oznacza procent wagowo objętościowy tzn. liczbę gramów substancji rozpuszczonej w 100g roztworu.

Do obliczeń użyjemy klasy Solution. Obliczenia wykonamy w klasie Main.

Klasy

Klasa Solution
package solutions;
public class Solution {
    private Solution() {
    }
    /**
     * Sporządzanie roztworów przez rozpuszczanie substancji w wodzie
     *
     * @param substG - masa substancji rozpuszczonej w gramach
     * @param waterM - objętość wody w ml
     * @param solM   - końcowa objêtość roztworu w ml
     * @param solP   - koñcowe stężenie % roztworu
     * @return - ile gram danej substancji trzeba aby uzyskac roztwór
     */
    public static double rozpuszczanie(double substG, double waterM,
                                       double solM, double solP) {
        double gram = 0;
        if ((substG == 0) && (waterM == 0)) {
            gram = solP * solM / 100;
        }
        return gram;
    }
    /**
     * Rozcieñczanie roztworów przez dodanie wody
     *
     * @param substM- objêtość roztworu substancji w ml
     * @param substP  - stężenie % (%w/o) roztworu
     * @param solM    - końcowa objętość roztworu w ml
     * @param solP    - końcowe stężenie % roztworu
     * @return - objętość roztworu wejściowego w ml
     */
    public static double rozcienczanie(double substM, double substP,
                                       double solM, double solP) {
        double ml = 0;
        if (substM == 0) {
            ml = solM * solP / substP;
        }
        if (solM == 0) {
            ml = substM * substP / solP;
        }
        return ml;
    }
    /**
     * Mieszanie roztworów o różnych stężeniach
     *
     * @param substP  - stężenie % (%w/o) roztworu 1
     * @param substP2 - stężenie % (%w/o) roztworu
     * @param solM    - końcowa objęość roztworu
     * @param solP    - końcowe stężenie roztworu
     * @return x - objętość pierwszego roztworu, y - objętość
     * drugiego roztworu
     */
    public static double[] mieszanie(double substP, double substP2,
                                     double solM, double solP) {
        double ml = 0;
        double ml2 = 0;
        double[] temp = new double[2];
        double temp1 = Math.abs(substP2 - solP);
        double temp2 = Math.abs(substP - solP);
        double temp3 = temp1 + temp2;
        ml = solM * temp1 / temp3;
        ml2 = solM - ml;
        temp[0] = ml;
        temp[1] = ml2;
        return temp;
    }
}
Klasa Main
package solutions;
public class Main{
	public static void main(String[] args) {
		double nacl = Solution.rozpuszczanie(0, 0, 300, 15);
		System.out.println(nacl);
		double gluk = Solution.rozpuszczanie(0, 0, 400, 20);
		System.out.println(gluk);
		double ml = Solution.rozcienczanie(0, 27, 3000, 0.9);
		System.out.println(ml);
		double ml3 = Solution.rozcienczanie(0, 30, 600, 4);
		System.out.println(ml3);
		double ml2 = Solution.rozcienczanie(40, 25, 0, 3);
		System.out.println(ml2);
		double[] miesz = Solution.mieszanie(20, 3, 500, 9);
		System.out.println(miesz[0] + " " + miesz[1]);
	}
}

Zadania

Rozpuszczanie

Zadanie 1

Ile gram NaCl potrzeba aby uzyskać 300 ml 15% (%w/o) roztwór.

Rozwiązanie: użyjemy metody Solution.rozpuszczanie().

Solution.rozpuszczanie(0, 0, 300, 15);

Otrzymaną liczbę gramów (45.0g) należy rozpuścić w pewnej niewielkiej ilości wody, a następnie dopełnić wodą do objętości 300 ml.

Zadanie 2

Potrzebne jest 400 ml 20% roztworu glukozy. Ile glukozy należy użyć?

Rozwiązanie: użyjemy metody Solution.rozpuszczanie().

Solution.rozpuszczanie(0,0,400, 20);

Otrzymaną liczbę gramów glukozy (80.0g) należy rozpuścić w pewnej ilości wody i dopełnić wodą do 400 ml.

Rozcieńczanie

Zadanie 3

Ile ml 27% roztworu (% w/o) NaCl potrzeba aby sporządzić 3000 ml 0.9% roztworu tej substancji?

Rozwiązanie: użyjemy metody Solution.rozcienczanie().

Solution.rozcienczanie(0, 27, 3000, 0.9);

Otrzymaną liczbę (100.0) ml 27% roztworu uzupełnić wodą do objętości 3000 ml.

Zadanie 4

Ile ml 30% roztworu NaOH potrzeba do sporządzenia 600 ml 4% roztworu?

Rozwiązanie: użyjemy metody Solution.rozcienczanie().

Solution.rozcienczanie(0,30, 600, 4);

Otrzymaną objętość (80.0) ml 30% roztworu należy uzupełnić wodą do objętości 600 ml.

Mieszanie

Zadanie 5

Do jakiej objętości należy rozcieńczyć 40 ml 25% roztworu, aby uzyskać stężenie 3%.

Rozwiązanie: użyjemy metody Solution.rozcienczanie().

Solution.rozcienczanie(40, 25, 0, 3);

Roztwór należy uzupełnić do otrzymanej objętości (333.33) ml

Zadanie 6

Ile ml 20% i 3% roztworu NaCl należy zmieszać ze sobą aby otrzymać 500 ml 9% roztworu?

Rozwiązanie: użyjemy metody Solution.mieszanie().

Solution.mieszanie(20, 3, 500, 9);

Należy zmieszać 176.47 ml roztworu o stęeniu 20% i 323.529 ml roztworu 3%.

Wyniki

Wszystkie odpowiedzi na zadania, które podaliśmy w tekście otrzymasz uruchamiając klasę Main.

1) 45.0
2) 80.0
3) 100.0
40 80.0
5) 333.3333333333333
6) 176.47058823529412 323.52941176470586