Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Univerzitet u Beogradu 11.04.2023. god.

Tehnički fakultet u Boru

Programiranje
I kolokvijum – Grupa A
Ime i prezime: _________________________ Broj indeksa:__________

Na Desktop-u kreirati direktorijum Ime_Prezime_Br_Indeksa i unutar njega sačuvati


programe (projekte) koji sadrže rešenja datih zadataka. Rešenje 1. zadatka mora da se nalazi u
projektu Zadatak1, odnosno u fajlu Zadatak1.cpp, rešenje 2. zadatka mora da se nalazi u projektu
Zadatak2, odnosno u fajlu Zadatak2.cpp i rešenje 3. zadatka mora da se nalazi u projektu Zadatak3,
odnosno u fajlu Zadatak3.cpp.

1. (C++) Napisati program koji za uneti realni broj x izračunava vrednost funkcije 𝑓(𝑥).

𝑐𝑜𝑠(𝑥) − 2𝑥, 𝑥 < 0


15 − |𝑥 2 − 3|, 0 ≤ 𝑥 < 12
𝑓(𝑥) = 5
√𝑥 3 − 2 + 𝑥, 12 ≤ 𝑥 < 25
3
{ (6𝑥 − 7) − 𝑒 2.12 , 𝑜𝑠𝑡𝑎𝑙𝑜 }

Ulazni podaci: -5, -12.3 Ulazni podaci: 0, Ulazni podaci: 12, Ulazni podaci: 29.333,
5.893 22 124

Izlaz: Izlaz: Izlaz: Izlaz:

f(x) = 10.2837 f(x) = 12 f(x) = 53.5452 f(x) = 160.667

f(x) = 25.5647 f(x) = -16.7274 f(x) = 125.179 f(x) = 728.669

2. (C++) Napisati program za izračunavanje sume:

𝑛 𝑖
𝑖! + 2 1
𝑆=∑ 2 ∙ ∑𝑗
𝑥 + 𝑖 2
𝑖=1 𝑗=1

Promenljiva n je ceo broj veći od 0, a promenljiva x je realan broj. Za izračunavanje


faktorijela napisati korisničku funkciju i koristiti je prilikom izračunavanja sume. Ukoliko je
za n unet broj koji je manji od 1 ispisati poruku o grešci.

Ulazni parametri: Ulazni parametri:

n=2 n=5

x = -0.5 x = 3.33

Izlaz: Izlaz:

S = -4.28571 S = 176.797
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

1. (C++) U prodavnici sportske opreme je organizovan veliki popust za sve članove ‘Super
kartice’, i nešto manji popust za ostale kupce. Kupci koji poseduju ‘Super karticu’ dobijaju
najjeftiniji proizvod za samo 1 dinar, a na najskulji ostvaruju 10% popusta. Ostali kupci,
dobijaju najjeftiniji proizvod za samo 1 dinar. Popust za najjeftiniji proizvod se može
ostvariti samo ukoliko je njegova cena manja od 100 dinara.

Napisati program koji sa ulaza učitava celi broj n, veći od 0, koji predstavlja broj kupljenih
artikala kupca. Pomoću funkcije ‘Unos’, izvršiti učitavanje elemenata niza. Zatim, pomoću
funkcije ‘Izracunaj’, uraditi proveru da li je kupac član ‘Super kartice’ (1 – da) ili nije (0 –
ne), i shodno tome obračunava ukupnu cenu za datog kupca. Na samom kraju ispisati sumu
cena sa obračunatim popustom za datog kupca.

Primer 1: Primer 2:

Glavni deo programa: Glavni deo programa:

Unesite broj artikla: n = 3 Unesite broj artikla: n = 5

Unos (int n): Unos (int n):

Unesite cene artikla: 296, 103, 22 Unesite cene artikla: 107, 23.99, 25, 196.7, 13.99

Provera (float a[], int n): Provera (float a[], int n):

Da li kupac ima super karticu: 1 Da li kupac ima super karticu: 0

return Suma = (296 – 10%) + 103 + 1 return Suma = 107 + 23.99 + 25 + 196.7 + 1

Izlaz: Ukupan iznos računa je: 370.4 Izlaz: Ukupan iznos računa je: 353.69

Broj poena (ukupno 25): 1. zadatak – 8 poena;


2. zadatak – 8 poena;
3. zadatak – 9 poena;
Vreme izrade: 90 minuta.

Zadatak 1. zadatak 2. zadatak 3. zadatak Ukupno


Broj poena
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

REŠENJE
2. (C++) Napisati program koji za uneti realni broj x izračunava vrednost funkcije 𝑓(𝑥).

𝑐𝑜𝑠(𝑥) − 2𝑥, 𝑥 < 0


2
15 − |𝑥 − 3|, 0 ≤ 𝑥 < 12
𝑓(𝑥) = 5
√𝑥 3 − 2 + 𝑥, 12 ≤ 𝑥 < 25
3
{ (6𝑥 − 7) − 𝑒 2.12 , 𝑜𝑠𝑡𝑎𝑙𝑜 }
#include <iostream>
#include<cmath>

using namespace std;

int main() {
double x, y;
cout << "Unesite vrednost x = ";
cin >> x;
if (x < 0) {
y = cos(x) - 2*x;
}
else if (x < 12) {
y = 15 - abs(pow(x, 2) - 3);
}
else if (x < 25) {
y = sqrt(pow(x, 3) - 2) + (5.00 / 3.00) * x;
}
else {
y = (6 * x - 7) - exp(2.12);
}
cout << "Y (" << x << ") = " << y;
return 0;
}

3. (C++) Napisati program za izračunavanje sume:


𝑛 𝑖
𝑖! + 2 1
𝑆=∑ 2 ∙ ∑𝑗
𝑥 + 𝑖 2
𝑖=1 𝑗=1
Promenljiva n je ceo broj veći od 0, a promenljiva x je realan broj. Za izračunavanje faktorijela
napisati korisničku funkciju i koristiti je prilikom izračunavanja sume. Ukoliko je za n unet broj
koji je manji od 1 ispisati poruku “Greska prilikom unosa broja n.” i uneti adekvatan broj za n.

#include <iostream>
#include <cmath>

using namespace std;

int faktorijel(int broj) {


int f = 1;
for (int i = 1; i <= broj; i++) {
f *= i;
}
return f;
}

int main() {
int n;
float x, s1 = 0;

cout << "Unesite n = ";


cin >> n;
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

while (n <= 0) {
cout << "Greska prilikom unosa broja n." << endl;
cout << "Unesite n = ";
cin >> n;
}
cout << endl;

cout << "Unesite x = ";


cin >> x;

for (int i = 1; i <= n; i++) {


float s2 = 0;
for (int j = 1; j <= i; j++) {
s2 += j;
}
s1 += ((faktorijel(i) + 2) / (pow(x, 2) - n)) * 1 / 2 * s2;
}

cout << "S = " << s1;


return 0;
}

4. (C++) U prodavnici sportske opreme je organizovan veliki popust za sve članove ‘Super
kartice’, i nešto manji popust za ostale kupce. Kupci koji poseduju ‘Super karticu’ dobijaju
najjeftiniji proizvod za samo 1 dinar, a na najskulji ostvaruju 10% popusta. Ostali kupci,
dobijaju najjeftiniji proizvod za samo 1 dinar. Popust za najjeftiniji proizvod se može
ostvariti samo ukoliko je njegova cena manja od 100 dinara.

Napisati program koji sa ulaza učitava celi broj n, veći od 0, koji predstavlja broj kupljenih
artikala kupca. Pomoću funkcije ‘Unos’, izvršiti učitavanje elemenata niza. Zatim, pomoću
funkcije ‘Izracunaj’, uraditi proveru da li je kupac član ‘Super kartice’ (1 – da) ili nije (0 –
ne), i shodno tome obračunava ukupnu cenu za datog kupca. Na samom kraju ispisati sumu
cena sa obračunatim popustom za datog kupca.

I način:

#include <iostream>
using namespace std;

float a[50];

void Unos(int n) {
cout << "Unesite cene artikala: " << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
}

void Izracunaj(int n) {
int super_kartica;
float suma = 0;

cout << "Da li kupac ima Super karticu (1 - da, 0 - ne): ";
cin >> super_kartica;
while (super_kartica < 0 || super_kartica>1) {
cout << "Greska prilikom unosa. Unesite vrednost ponovo." << endl;
cout << "Da li kupac ima Super karticu (1 - da, 0 - ne): ";
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

cin >> super_kartica;


}
cout << endl;

float max = a[0], min = a[0];


int pozicija_max, pozicija_min;

for (int i = 0; i < n; i++) {


if (a[i] >= max) {
max = a[i];
pozicija_max = i;
}
if (a[i]<=min){
min = a[i];
pozicija_min = i;
}
}

if (super_kartica == 1) {
for (int i = 0; i < n; i++) {
if (i == pozicija_max) {
a[i] = a[i] - a[i] * 10/100;
suma += a[i];
}
else if (i == pozicija_min) {
if (a[i] <= 100) {
a[i] = 1;
}
suma += a[i];
}
else {
suma += a[i];
}
}
}
else if (super_kartica==0) {
for (int i = 0; i < n; i++) {
if (i == pozicija_min) {
if (a[i] <= 100) {
a[i] = 1;
}
suma += a[i];
}
else {
suma += a[i];
}
}
}
else {
cout << "Doslo je do greske. Pokusajte ponovo." << endl;
}

if (suma) {
cout << "Ukupan iznos racuna je: " << suma << endl;
}
else {
cout << "Doslo je do greske. Pokusajte ponovo." << endl;
}
}

int main() {
int n;
cout << "Unesite broj kupljenih artikala: ";
cin >> n;
Unos(n);
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

Izracunaj(n);
return 0;
}

II način:

#include <iostream>
using namespace std;

float a[50];

void Unos(int n) {
cout << "Unesite cene artikala: " << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
}

void Izracunaj(float [a], int n) {


int super_kartica;
float suma = 0;

cout << "Da li kupac ima Super karticu (1 - da, 0 - ne): ";
cin >> super_kartica;
while (super_kartica < 0 || super_kartica>1) {
cout << "Greska prilikom unosa. Unesite vrednost ponovo." << endl;
cout << "Da li kupac ima Super karticu (1 - da, 0 - ne): ";
cin >> super_kartica;
}
cout << endl;

float max = a[0], min = a[0];


int pozicija_max, pozicija_min;

for (int i = 0; i < n; i++) {


if (a[i] >= max) {
max = a[i];
pozicija_max = i;
}
if (a[i]<=min){
min = a[i];
pozicija_min = i;
}
}

if (super_kartica == 1) {
for (int i = 0; i < n; i++) {
if (i == pozicija_max) {
a[i] = a[i] - a[i] * 10/100;
suma += a[i];
}
else if (i == pozicija_min) {
if (a[i] <= 100) {
a[i] = 1;
}
suma += a[i];
}
else {
suma += a[i];
}
}
}
else if (super_kartica==0) {
for (int i = 0; i < n; i++) {
Univerzitet u Beogradu 11.04.2023. god.
Tehnički fakultet u Boru

if (i == pozicija_min) {
if (a[i] <= 100) {
a[i] = 1;
}
suma += a[i];
}
else {
suma += a[i];
}
}
}
else {
cout << "Doslo je do greske. Pokusajte ponovo." << endl;
}

if (suma) {
cout << "Ukupan iznos racuna je: " << suma << endl;
}
else {
cout << "Doslo je do greske. Pokusajte ponovo." << endl;
}
}

int main() {
int n;
cout << "Unesite broj kupljenih artikala: ";
cin >> n;
Unos(n);
Izracunaj(a, n);
return 0;
}

You might also like