From 3d7815da13326f93bae7a46555810c1713d4a1b9 Mon Sep 17 00:00:00 2001 From: DIvan2000 Date: Sat, 30 Nov 2024 12:51:43 +0400 Subject: [PATCH] first commit --- .gitignore | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ arrays.c | 34 +++++++++++++++++++++++++++++++++ arrays.h | 8 ++++++++ main.c | 37 ++++++++++++++++++++++++++++++++++++ prog | Bin 0 -> 16200 bytes prog1.c | 28 +++++++++++++++++++++++++++ prog2.c | 27 +++++++++++++++++++++++++++ prog3.c | 23 +++++++++++++++++++++++ progs.h | 8 ++++++++ 10 files changed, 221 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 arrays.c create mode 100644 arrays.h create mode 100644 main.c create mode 100755 prog create mode 100644 prog1.c create mode 100644 prog2.c create mode 100644 prog3.c create mode 100644 progs.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd531cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,54 @@ +# ---> C +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + diff --git a/README.md b/README.md new file mode 100644 index 0000000..a9f3d58 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# InfLab2 + diff --git a/arrays.c b/arrays.c new file mode 100644 index 0000000..da35627 --- /dev/null +++ b/arrays.c @@ -0,0 +1,34 @@ +#include +#include +#include "arrays.h" + +void fill_array(int* arr){ + #if _ARR_SIZE > 5 + for(int i = 0; i < _ARR_SIZE; i++){ + arr[i] = rand()%20-9; + } + #else + for(int i = 0; i < _ARR_SIZE; i++){ + printf("Введите значение для элемента %d: ", i); + scanf("%d", &arr[i]); + } + #endif +} + +void print_array(int* arr){ + printf("["); + for(int i = 0; i < _ARR_SIZE; i++){ + printf("%+d, ", arr[i]); + } + printf("\b\b]\n"); +} + +void print_pointer(int index){ + if(index<0){ + return; + } + for(int i = 0; i < index; i++){ + printf(" "); + } + printf(" ^\n"); +} diff --git a/arrays.h b/arrays.h new file mode 100644 index 0000000..1c3b894 --- /dev/null +++ b/arrays.h @@ -0,0 +1,8 @@ +#ifndef ARRAYS_H_ +#define ARRAYS_H_ +#define _ARR_SIZE 10 + +void fill_array(int* arr); +void print_array(int* arr); +void print_pointer(int index); +#endif diff --git a/main.c b/main.c new file mode 100644 index 0000000..148db4c --- /dev/null +++ b/main.c @@ -0,0 +1,37 @@ +#include +#include +#include +#include "progs.h" + +int main() { + int prog_number; + + srand(time(NULL)); + + printf("Лабораторная работа №2\n\nВариант №2, 6106, автор: Морозов Иван\n\n"); + + printf("Выберите программу: \n\n"); + + printf("1. Программа для нахождения минимального чётного отрицательного элемента массива.\n"); + printf("2. Программа для нахождения индекса первого положительного чётного элемента массива.\n"); + printf("3. Программа для вычисления суммы N членов ряда\n"); + + prog_number = getchar()-'0'; + system("clear"); + + switch(prog_number){ + case 1: + prog1(); + break; + case 2: + prog2(); + break; + case 3: + prog3(); + break; + default: + printf("Ошибка: недопустимый номер программы!\n"); + return 1; + } + return 0; +} diff --git a/prog b/prog new file mode 100755 index 0000000000000000000000000000000000000000..35ef333e7475f3f809d09fc29c55c484dc97ad08 GIT binary patch literal 16200 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 RW&d~d!-R5!$H2pi{{hKi`hx%f literal 0 HcmV?d00001 diff --git a/prog1.c b/prog1.c new file mode 100644 index 0000000..081e2de --- /dev/null +++ b/prog1.c @@ -0,0 +1,28 @@ +#include +#include +#include "progs.h" +#include "arrays.h" + +void prog1(){ + int arr[_ARR_SIZE]; fill_array(arr); + int index = -1; + int value = 0; + + for(int i = 0; i < _ARR_SIZE; i++){ + if(arr[i]=0){ + printf("Минимальный чётный отрицательный элемент равен %d\n", value); + } else{ + printf("В массиве нет ни одного элемента, подходящего под условия\n"); + } +} diff --git a/prog2.c b/prog2.c new file mode 100644 index 0000000..e76f264 --- /dev/null +++ b/prog2.c @@ -0,0 +1,27 @@ +#include +#include +#include "progs.h" +#include "arrays.h" + +void prog2(){ + int arr[_ARR_SIZE]; fill_array(arr); + int index = -1; + + for(int i = 0; i < _ARR_SIZE; i++){ + if(arr[i] > 0 && (arr[i]&1)==0){ + index = i; + break; + } + } + + #if _ARR_SIZE <= 10 + print_array(arr); + print_pointer(index); + #endif + + if(index>=0){ + printf("Первый положительный чётный элемент имеет индекс %d\n", index); + } else{ + printf("В массиве нет ни одного элемента, подходящего под условия\n"); + } +} diff --git a/prog3.c b/prog3.c new file mode 100644 index 0000000..a51be8b --- /dev/null +++ b/prog3.c @@ -0,0 +1,23 @@ +#include +#include +#include "progs.h" + +void prog3(){ + double sum, last, x; + unsigned int n; + printf("Программа приближённо рассчитает сумму N членов ряда.\nВведите данные.\n"); + printf("x: "); scanf("%lf", &x); + printf("N: "); scanf("%ud", &n); + sum = 1; + last = 1; + for(unsigned int i = 1; i<=n; i++){ + double now = last*(-(x*x)/(2*i*(2*i-1))); + sum+=now; + last=now; + } + printf("Сумма %d членов ряда при x=%lf равна %lf\n", n, x, sum); +} + +/* + +*/ diff --git a/progs.h b/progs.h new file mode 100644 index 0000000..4b1d58b --- /dev/null +++ b/progs.h @@ -0,0 +1,8 @@ +#ifndef PROGS_H_ +#define PROGS_H_ + +void prog1(); +void prog2(); +void prog3(); + +#endif