first commit

This commit is contained in:
DIvan2000 2024-11-30 12:51:43 +04:00
commit 3d7815da13
10 changed files with 221 additions and 0 deletions

54
.gitignore vendored Normal file

@ -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

2
README.md Normal file

@ -0,0 +1,2 @@
# InfLab2

34
arrays.c Normal file

@ -0,0 +1,34 @@
#include <stdlib.h>
#include <stdio.h>
#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");
}

8
arrays.h Normal file

@ -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

37
main.c Normal file

@ -0,0 +1,37 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#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;
}

BIN
prog Executable file

Binary file not shown.

28
prog1.c Normal file

@ -0,0 +1,28 @@
#include <stdio.h>
#include <stdlib.h>
#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]<value && arr[i]<0 && (arr[i]&1)==0){
index = i;
value = arr[i];
}
}
#if _ARR_SIZE <= 10
print_array(arr);
print_pointer(index);
#endif
if(index>=0){
printf("Минимальный чётный отрицательный элемент равен %d\n", value);
} else{
printf("В массиве нет ни одного элемента, подходящего под условия\n");
}
}

27
prog2.c Normal file

@ -0,0 +1,27 @@
#include <stdio.h>
#include <stdlib.h>
#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");
}
}

23
prog3.c Normal file

@ -0,0 +1,23 @@
#include <stdio.h>
#include <stdlib.h>
#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);
}
/*
*/

8
progs.h Normal file

@ -0,0 +1,8 @@
#ifndef PROGS_H_
#define PROGS_H_
void prog1();
void prog2();
void prog3();
#endif