Lab 7.

PHOTO EMBED

Mon May 17 2021 13:41:09 GMT+0000 (UTC)

Saved by @dmatas #c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>

//1.
double opA(int, int,int);
double opB(int,int,int);
double opC(int,int,int);
double opD(int,int,int);

int main() {
	int x = 0, y = 0, z = 0;
	char op = '\0';
	double rez = 0.0;

	printf("Unesi tri broja:\t");
	scanf(" %d %d %d", &x, &y, &z);


	printf("Unesi slovo operacije:\t");
	scanf(" %c", &op);

	switch (op) {
	case 'a':
		rez = opA(x, y, z);
		break;
	case 'b':
		rez = opB(x, y, z);
		break;
	case 'c':
		rez = opC(x, y, z);
		break;
	case 'd':
		rez = opD(x, y, z);
		break;

	default:
		printf("Kriva operacija!\n");
		rez = -DBL_MAX;
	}
	if (rez != -DBL_MAX) {
		printf("Rezultat je %lf.\n", rez);

	}
}

double opA(int x, int y, int z) {
	return x+y+z;
}

double opB(int x, int y, int z) {
	return x * y * z;
}
double opC(int x, int y, int z) {
	if (y == 0) {
		return -DBL_MAX;
	}
	return (x / y) + z;
}
double opD(int x, int y, int z) {
	double temp = 0.0;
	if (y == 0) {
		printf("Y ne smije bit 0!\n");
		return -DBL_MAX;
	}
	temp=(x / y - z);
	if (temp < 0) {
		printf("Sadrzaj u korijenu ne smije bit manji od 0!\n");
		return -DBL_MAX;
	}
	return sqrt(temp);
}

//2.
int X = 0;
void funkcija(int);
int main() {
	int Y = 0;
	
	printf("Unesi X i Y!\n");
	scanf(" %d %d", &X, &Y);
	funkcija(Y);
	return 0;
}
void funkcija(int par) {
	printf("X = %d\t Y = %d\t", X, par);
}
//3.
int dohvatiFaktorijelu(int);

int main() {
	int x = 0;
	int fact = 0;
	
	printf("Unesi x!\n");
	scanf(" %d", &x);

	fact=dohvatiFaktorijelu(x);
	printf("Faktorijela broja %d je %lf.\n", x, fact);
	return 0;
}
int dohvatiFaktorijelu(int x) {
	double rez = 1;
	int i = 1;

	for (i = 2; i <= x; i++) {
		rez *= i;
	}
	return rez;
}
//4.
double dohvatiEuler(int, int);
double dohvatiFaktorijelu(int);

int main() {
	int numOfRep = 10;
	int x = 0;
	double euler = 0;
	
	printf("Unesi x:\t");
	scanf(" %d", &x);

	euler=dohvatiEuler(x, 5);
	printf("e(%d) = %lf\n", x, euler);

	euler = dohvatiEuler(x, 10);
	printf("e(%d) = %lf\n", x, euler);

	euler = dohvatiEuler(x, 50);
	printf("e(%d) = %lf\n", x, euler);

	printf("exp(%d) = %lf\n", x, exp(x));
	return 0;
}
double dohvatiEuler(int x, int numOfRep) {
	double rez = 0;
	int i = 0;

	for (i = 0; i <= numOfRep; i++) {
		rez += pow(x,i)/dohvatiFaktorijelu(i);
	}
	return rez;
}
double dohvatiFaktorijelu(int n) {
	int i = 0;
	double rez = 1;

	for (i = 2; i <= n; i++) {
		rez *= i;
	}
	return rez;
}
content_copyCOPY

1.Napisati program koji unese 3 broja i zatim po želji korisnika (ovisno o tome koje se slovo unese) računa: a) 𝑟𝑒𝑧 = 𝑥 + 𝑦 + 𝑧 b) 𝑟𝑒𝑧 = 𝑥 ∗ 𝑦 ∗ 𝑧 c) 𝑟𝑒𝑧 = 𝑥 ÷ 𝑦 + 𝑧 d) 𝑟𝑒𝑧 = √𝑥 ÷ 𝑦 − 𝑧 Svi rezultati se računaju preko f-ija (jedna za svaki primjer), s tim da je za primjer pod “d” potrebno provjeriti je li izraz ispod korijena >= 0, i ako nije treba javiti grešku. 2. Napisati program koji sadrži dvije varijable: globalnu varijablu X i lokalnu varijablu Y(lokalna za f-ju main) i dodijeliti im neke vrijednosti. Iz glavnog programa treba pozvati f-ju koja ispisuje vrijednosti obje varijable. 3. Napraviti program koji u “običnoj” f-ji računa faktorijele. Rezultat je potrebno ispisati u glavnom programu i nije dozvoljeno korištenje globalnih varijabli. 4. Napisati f-ju kojom se približno određuje vrijednost ex (e = 2.718282), i rezultat usporediti s vrijednošću koja se dobije pomoću standardne funkcije exp() deklarirane u math.h.