diff --git a/main.c b/main.c new file mode 100644 index 0000000..ca1b991 --- /dev/null +++ b/main.c @@ -0,0 +1,38 @@ +#include +#include +#include "progs.h" + +int main() { + int prog_number; + + printf("Лабораторная работа №1\n\nВариант №6, 6106, автор: Морозов Иван\n\n"); + + printf("Выберите программу: \n\n"); + + printf("1. Программа для вычисления силы притяжения для двух тел.\n"); + printf("2. Программа перевода километры в вёрсты.\n"); + printf("3. Программа нахождения произведения цифр трёхзначного числа.\n"); + printf("4. Программа нахождения значений функций в точке x.\n"); + + prog_number = getchar()-'0'; + system("clear"); + + switch(prog_number){ + case 1: + prog1(); + break; + case 2: + prog2(); + break; + case 3: + prog3(); + break; + case 4: + prog4(); + break; + default: + printf("Ошибка: недопустимый номер программы!\n"); + return 1; + } + return 0; +} diff --git a/prog b/prog new file mode 100755 index 0000000..1aef5ad Binary files /dev/null and b/prog differ diff --git a/prog1.c b/prog1.c new file mode 100644 index 0000000..109c4eb --- /dev/null +++ b/prog1.c @@ -0,0 +1,17 @@ +#include +#include +#include "progs.h" + +#define G 6.67E-11 + +void prog1(){ + double m1, m2, r, force; + printf("Программа приближённо рассчитает силу притяжения двух тел.\n Введите данные.\n"); + printf("m1: "); scanf("%lf", &m1); + printf("m2: "); scanf("%lf", &m2); + printf("R: "); scanf("%lf", &r); + + force=(G*m1*m2/(r*r)); + + printf("Сила притяжения приблизительно равна %lfН\n", force); +} diff --git a/prog2.c b/prog2.c new file mode 100644 index 0000000..2e25747 --- /dev/null +++ b/prog2.c @@ -0,0 +1,13 @@ +#include +#include +#include "progs.h" + +#define VRST_KM 0.937382827 + +void prog2(){ + double km, vrst; + printf("Программа приближённо переводит километры в вёрсты.\n Введите данные.\n"); + printf("km: "); scanf("%lf", &km); + vrst = km*VRST_KM; + printf("Введённое расстояние приблезительно равно %lf вёрстам\n", vrst); +} diff --git a/prog3.c b/prog3.c new file mode 100644 index 0000000..5c587fb --- /dev/null +++ b/prog3.c @@ -0,0 +1,17 @@ +#include +#include +#include "progs.h" + +void prog3(){ + int input, mul; + printf("Программа выводит произведение цифр трёхзначного числа.\n Введите данные.\n"); + printf("Число: "); scanf("%d", &input); + + if(input < 100 || input > 999){ + printf("Ошибка: введено недопустимое число\n"); + exit(1); + } + + mul = input%10*(input/10)%10*(input/100)%10; + printf("Произведение цифр числа равно %d\n", mul); +} diff --git a/prog4.c b/prog4.c new file mode 100644 index 0000000..760995b --- /dev/null +++ b/prog4.c @@ -0,0 +1,21 @@ +#include +#include +#include +#include "progs.h" +//* + +void prog4(){ + double x, f1, f2; + printf("Программа приближённо вычислит значение двух функций в точке x.\n Введите данные.\n"); + printf("x: "); scanf("%lf", &x); + + f1 = atan((2-2*x)/(1+4*x)); + f2 = exp(x)*cos(x); + + printf("f1(%lf)=%lf f2(%lf)=%lf\n", x, f1, x, f2); +} +/*/ +void prog4(){ + printf("\nПока что тут ничего нет из-за глупого и неправильного math.h на моём компьютере\n"); +} +/*/ diff --git a/progs.h b/progs.h new file mode 100644 index 0000000..915eec0 --- /dev/null +++ b/progs.h @@ -0,0 +1,9 @@ +#ifndef PROGS_H_ +#define PROGS_H_ + +void prog1(); +void prog2(); +void prog3(); +void prog4(); + +#endif