add cviko 2
This commit is contained in:
commit
157f09015f
4 changed files with 222 additions and 0 deletions
93
Cviko2_1/.gitignore
vendored
Normal file
93
Cviko2_1/.gitignore
vendored
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
# Created by https://www.toptal.com/developers/gitignore/api/c,visualstudiocode,linux
|
||||||
|
# Edit at https://www.toptal.com/developers/gitignore?templates=c,visualstudiocode,linux
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
### Linux ###
|
||||||
|
*~
|
||||||
|
|
||||||
|
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||||
|
.fuse_hidden*
|
||||||
|
|
||||||
|
# KDE directory preferences
|
||||||
|
.directory
|
||||||
|
|
||||||
|
# Linux trash folder which might appear on any partition or disk
|
||||||
|
.Trash-*
|
||||||
|
|
||||||
|
# .nfs files are created when an open file is removed but is still being accessed
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
### VisualStudioCode ###
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
!.vscode/*.code-snippets
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
|
||||||
|
# Built Visual Studio Code Extensions
|
||||||
|
*.vsix
|
||||||
|
|
||||||
|
### VisualStudioCode Patch ###
|
||||||
|
# Ignore all local history of files
|
||||||
|
.history
|
||||||
|
.ionide
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/c,visualstudiocode,linux
|
||||||
|
main
|
13
Cviko2_1/Makefile
Normal file
13
Cviko2_1/Makefile
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
all: main
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
override CFLAGS += -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-result -Wno-unknown-pragmas -pedantic -lm
|
||||||
|
|
||||||
|
main: main.c
|
||||||
|
$(CC) $(CFLAGS) -O1 ./*.c -o "$@"
|
||||||
|
|
||||||
|
main-debug: main.c
|
||||||
|
$(CC) $(CFLAGS) -O1 -g ./*.c -o "$@"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f main main-*
|
105
Cviko2_1/main.c
Normal file
105
Cviko2_1/main.c
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
#include "types.h"
|
||||||
|
#include <math.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void read_print_quadratic() {
|
||||||
|
// TODO 1. Read 3 numbers: a, b and c which represent known numbers for
|
||||||
|
// quadratic equation in standard format (ax^2 + bx + c = 0) from stdin.
|
||||||
|
printf("Enter numbers a, b and c of equation ax^2 +bx + c = 0:\n");
|
||||||
|
int a, b, c;
|
||||||
|
scanf("%d %d %d", &a, &b, &c);
|
||||||
|
|
||||||
|
// TODO 2. Check if equation is quadratic. If so, calculate its discriminant
|
||||||
|
// and, if possible, print all roots to stdout.
|
||||||
|
if (a == 0 || (a == 0 && b == 0 && c == 0)) {
|
||||||
|
printf("Please enter a cooler formula");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
double d = b * b + (-4) * a * c;
|
||||||
|
printf("Discriminant: %.2f\n", d);
|
||||||
|
|
||||||
|
if (d < 0) {
|
||||||
|
printf("Discriminant is lower than 0, cannot solve equation in R");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
double rootA, rootB;
|
||||||
|
|
||||||
|
rootA = (-b + sqrt(d)) / (2*a);
|
||||||
|
rootB = (-b - sqrt(d)) / (2*a);
|
||||||
|
|
||||||
|
if (rootA == rootB) {
|
||||||
|
printf("Equation has one solution: %.2f", rootA);
|
||||||
|
} else {
|
||||||
|
printf("Equation has two solution: %.2f and %.2f", rootA, rootB);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_print_is_character() {
|
||||||
|
// TODO 1. Read one character from stdin.
|
||||||
|
printf("Enter a character:\n");
|
||||||
|
char l;
|
||||||
|
scanf(" %c", &l);
|
||||||
|
// TODO 2. Determine whether the character represents a letter (a-z, A-Z) or
|
||||||
|
// not and print the result to stdout.
|
||||||
|
if ((l >= 'a' && l <= 'z') || (l >= 'A' && l <= 'Z')) {
|
||||||
|
printf("%c IS a letter (a-z or A-Z)", l);
|
||||||
|
} else {
|
||||||
|
printf("%c is NOT a letter (a-z or A-Z)", l);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_print_factorial() {
|
||||||
|
printf("Enter a number for calcuation of factorial:\n");
|
||||||
|
// TODO 1. Read one number from stdin.
|
||||||
|
int a;
|
||||||
|
scanf("%d", &a);
|
||||||
|
|
||||||
|
// TODO 2. Print its factorial (!) to stdout.
|
||||||
|
for (int i = a - 1; i != 0; --i) {
|
||||||
|
a *= i;
|
||||||
|
}
|
||||||
|
printf("Factorial: %d", a);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void read_print_gcd() {
|
||||||
|
// TODO 1. Read two numbers from stdin.
|
||||||
|
printf("Enter two numbers to calculate gcd:\n");
|
||||||
|
int a, b;
|
||||||
|
scanf("%d %d", &a, &b);
|
||||||
|
|
||||||
|
// see https://en.wikipedia.org/wiki/Greatest_common_divisor#Euclidean_algorithm
|
||||||
|
while (b != 0) {
|
||||||
|
int temp = b;
|
||||||
|
b = a % b;
|
||||||
|
a = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("gcd is %d\n", a);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef TEST_BUILD
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
printf("\n--read_print_quadratic--\n");
|
||||||
|
read_print_quadratic();
|
||||||
|
|
||||||
|
printf("\n--read_print_is_character--\n");
|
||||||
|
read_print_is_character();
|
||||||
|
|
||||||
|
printf("\n--read_print_factorial--\n");
|
||||||
|
read_print_factorial();
|
||||||
|
|
||||||
|
printf("\n--read_print_gcd--\n");
|
||||||
|
read_print_gcd();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
11
Cviko2_1/types.h
Normal file
11
Cviko2_1/types.h
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// OBSAH V TOMTO SOUBROU NEUPRAVUJTE!
|
||||||
|
#ifndef TYPES_H
|
||||||
|
#define TYPES_H
|
||||||
|
|
||||||
|
void read_print_quadratic();
|
||||||
|
void read_print_is_character();
|
||||||
|
void read_print_is_even();
|
||||||
|
void read_print_factorial();
|
||||||
|
void read_print_gcd();
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue