Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #define W 1.008e-14
- double ph(double va, double na, double vb, double nb) {
- double a, b, v, c, p;
- a = va * na;
- b = vb * nb;
- v = va + vb;
- p = (a - b) / v;
- c = fabs(p / 2) + sqrt(pow(p, 2) / 4 + W);
- if (p >= 0)
- return -log10(c);
- else
- return -log10(W) + log10(c);
- }
- int main(int argc, char *argv[]) {
- double va, na;
- double vb, vbf, vbd, nb;
- double d;
- FILE *f = fopen("ph_data.txt", "w");
- printf("Объем пробы HCl, мл = "); scanf("%lf", &va);
- printf("Концентрация пробы HCl, моль/л = "); scanf("%lf", &na);
- putchar('\n');
- printf("Начальный объем NaOH, мл = "); scanf("%lf", &vb);
- printf("Конечный объем NaOH, мл = "); scanf("%lf", &vbf);
- printf("Объем NaOH, прибавляемый за один шаг титрования, мл = "); scanf("%lf", &vbd);
- printf("Концентрация NaOH, моль/л = "); scanf("%lf", &nb);
- putchar('\n');
- for (vb = vb; vb <= vbf; vb += vbd)
- fprintf(f, "%g\t%g\n", vb, ph(va, na, vb, nb));
- if ((vb - vbd) < vbf)
- fprintf(f, "%g\t%g\n", vbf, ph(va, na, vbf, nb));
- fclose(f);
- printf("Результаты сохранены в файл \"ph_data.txt\"\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment