FER razredbeni ispit rijeseni zadaci (mat 1, 2, 3, ViS)


U prilogu se nalaze riješeni zadaci sa razredbenog ispita (ispit za upis na diplomski studij) FER-a.

Zadaci ukljucuju gradivo matematike 1, 2, 3 zajedno sa predmetom vjerojatnost i statistika.


In the attachment below you can find solved problems for the masters study exam which student from other faculties and those who have studied more than 4 years for a bachelor degree have to take in order to enter the masters study of the Faculty of Electrical Engineering and Computing.

Solved problems part 1 (mathematics 1, 2, 3 along with probability and statistics).

Node.js REST, Mongo tips

  • In express library functions: post(), get() will stop the execution of code if you write return. It’s like in any other function in programming. keyword return will always stop the function execution.
  • When you write (res is the response callback function) res.end(), res.json(), res.send(), in other words when you end the response you cannot utilize res callback again it becomes irrelevant since you completed your restful service with a response. If you have any code after res.something() it will execute till you specify a return but res will not be available anymore. If you use it however, it will throw an error.
    Refer: Execute code after res.end() (StackOverflow)
  • You don’t need to return res.end(), json(), send() if you don’t have code which needs to execute after it.
  • If you don’t have anything to send to the Frontend side then use res.end() to complete the service action.
  • Use next function, specified at the end of restful service callback function:
    .get((req, res, next) => {action}

    to catch errors and forward them to the middleware:

    if (err) {
        return next(err);

    the return next() will go to the already built in error handler and will result with a 500 XHR failed request on the Frontend. Also applies for catch() blocks, having next(err) will also result with Node.js built in error handler execution giving 500.

  • A Node.js mongoose query is not a JS Promise. They just represent a async operation which returns a then so that you can apply: query().then(res=>console.log(res));
    Refer: Mongoose async queries (StackOverflow)
    If you want a real instance of JavaScript Promise then put an exec() after your “fake” Mongoose query promise: query().exec().then(res=>console.log(res));
  • The default status for res.send(), res.json() is 200 thereby no need for res.status(200).send() or res.status(200).json();
  • In Mongoose findOneAndUpdate query
    User.findOneAndUpdate(findQuery, updateData, {
    upsert:true represents that if the record doesn’t exist a new one will be created/inserted
    useFindAndModify:false removes deprecation warning
    new:true gives the response of updated data, otherwise you get the data of the current findQuery record.
    I like to specify those parameters for each query so that I know what to expect from it.
  • ObjectId(userId) vs
    new ObjectId(userId) are the same, use whichever one you like but be consistent once you pick one.
  • Do not close your mongo database connection after terminating your query and then reopen upon querying database. You should have/define a pool of connections instead and closing it in Node.js process termination
    process.on(‘SIGINT’, mongo.mongoDisconnect).on(‘SIGTERM’, mongo.mongoDisconnect);
    Refer: Closing a Mongo connection (StackOverflow)
  • Do not use query.remove() for deleting data from the database it’s obsolete, use deleteOne, deleteMany instead.
  • For clearing the session and destroying the browser cookie use:
    req.sessionOptions.maxAge = 0;
    (I use it to logout the user)

Unique web-application on proton pump inhibitors (stomach acid reducing drugs)

For those who wish to see the app immediately click here

At around November 2016, I decided to build a web-app that would encompass scattered data across the web on proton pump inhibitors into one single place with the adding of a unique input form which once populated would yield beneficial data.

Proton pump inhibitors are acid reducing drugs. They are usually taken on an empty stomach to provide maximal benefit to the consumer. Basically, they shut down the little proton pumps in your stomach thereby decreasing stomach acid output. In that way your stomach lining is able to heal more rapidly, and your oesophagus is protected since a low amount of acid in your stomach isn’t able to find its way up to the oesophagus anymore.

The drugs have been released in the late 80’s and brought a revolution in gastro disease treatment. However, around 2014/2015 lot of studies started coming out showing that these drugs could be harmful if taken for a longer period of time.

I myself had stomach issues at age 19 and had been given these drugs to treat my gastritis. Of course, I Googled them and to my surprise found a lot of data. At that time negative studies hadn’t come out yet although there were quite a few people preoccupied with them. I got quickly interested and decided to devote more attention to them.

As already said, studies started coming out swiftly blaming PPIs for sequence of events that they may produce if taken for a prolonged time.

According to the studies PPIs were blamed for: dementia, kidney disease, cardiovascular disease, stomach polyps, clostridium difficile infection, vitamin deficiency, stomach cancer, premature death among others. One gets pretty frightened after hearing all of these elements being associated to them.

Anyway, I decided to get my hands dirty in terms of building a unique software in order to create something beneficial for the gastro disease patient’s community.

The first goal was to collect posts http://ppisforlife.com/#/posts from all around the web and accumulate them into one place.

The posts were collected from various sources, but most of them were retrieved from the following sites: Patient.info, Peoples Pharmacy, Daily Mail, The Telegraph, Reddit, CBS, The Sun, Crohn’s Disease Forum, Chris Kresser, Barrett’s Wessex, The Healing WELL, The New York Times etc.

The main criteria whether the post was chosen or not was the duration of the therapy. If the duration was specified, the post was analyzed and stored in the database.

Apart from patients expressing their opinions the doctor opinions were also collected. You’d be amazed how much of a non-consensus exists among them. Some of them claim that PPIs are super safe whilst other say that they may yield more damage than steroids. Because of that the input form which I’ve created could solve these problems if a good amount of people decides to give out their data on their therapy.

With the data collected, I generated a statistic http://ppisforlife.com/#/statistics page which shows trends in terms of most prevalent conditions, drugs usage, side effects, nutrient deficiency, natural supplements etc.

Likewise, info pages are provided on PPIs as well. This page should answer most of your questions:  http://ppisforlife.com/#/faq

As mentioned multiple times in the article the form page: http://ppisforlife.com/#/form represents the crucial part to demystify if these drugs pose a threat or not. Those of you who are taking PPIs, please fill the form. By doing that you’ll make a great contribution.

If you have any questions concerning the app feel free to ask via mail: eugen.sunic@gmail.com



Blockchain average user pros and cons


  • It is secure (referring to blockchain not wallets which are outside the blockchain network)
  • Once you store your data on the blockchain network, it will be there forever.
  • data cannot be deleted/removed, modified, replaced, tampered.
  • Everyone can see your data (it’s public) but no one knows who’s behind it, which person does this data belong to even if they write their name inside it is hard to prove that this person did it. The only way others can learn the transaction is yours is by you telling others that it’s yours or you interacting with them in ways which let others conclude that they may be yours.
  • Since no one knows who’s behind the data, Privacy is therefore guaranteed on the blockchain
  • You have to have a wallet in order to send any data to the blockchain because you have to pay for it
  • If you access/retrieve already existing data you don’t have to pay anything in crypto money
  • Confidential transfer of assets/state to another person,
  • The blockchain database cannot be hacked
  • No one governs over the blockchain database/storage.
  • It’s much easier and less costly to transfer crypto money from one place to another. It’s faster, less expensive and requires no central authority no matter how big the transaction is, fees are very low as well (Ethereum)
  • Blockchain eliminates third parties when making deals. For example you don’t have to go to some company which would just sign some papers and allow you to do something. Instead, someone can deploy an application on the blockchain which would then automatically solve these issues by giving you or not giving you the permission which would had been given from that company previously. In theory all the bureaucracy could get eliminated and put on the blockchain as an application which will automatically solve these problems.
  • People can earn big money on it because of the price which can go up tremendously. Then convert it to Fiat via coinbase or trading.



  • You have to pay crypto-money in order to store data on the blockchain. If you want to store big amounts of data you’ll have to pay even more money whereas on a centralized system you pay once (most often monthly or yearly) and you get unlimited storage. If you wanted to store data, you’d have to pay for the storage (a song of 4MB would be around 7500$ for May 18th 2018, 1ETH=570$)
  • If you lose the access key for your wallet, you’ll never be able to retrieve your money again. You can’t call a centralized company like you do when you lose your bank card and tell them what happened so they may react quickly in order to block your card and disallow potential thieves to spend your money. There is no customer support for the blockchain
  • You have to use a wallet in order to store data on the blockchain (example: MetaMask) that is cumbersome you can’t just interact with the blockchain without such utility.
  • Because of price volatility users are often discouraged to spend money to store big amounts of data on it because one day this crypto could go up and they would probably be disappointed because of it.
  • If you invest in it you can lose a lot of money  if the price drops down or the blockchain project becomes valueless
  • You can lose your money instantly if someone steals your private key. Once the thief has your private key of your wallet/account and you do not react quickly in order to transfer your money to another secure account be prepared to say goodbye to your assets/ crypto money.
  • The blockchain is hard to use, it’s not user friendly. You have to first buy some crypto with Fiat money ($, eur, gbp …) then you would probably transfer it to some wallet since it’s not advisable to keep the money on the same place where you bought (possible hacks may occur), then you have to manage your passwords, plugins…
  • If you are not an IT guy most of the terms won’t be familiar to you, like hashing, miners, proof of work, proof of stake, nonce, hard fork, full node, light node, some protocol names, smart contracts etc. You would have to invest a decent amount of time to comprehend all of the above mentioned. Instead, a centralized system has some nice user interface and you interact with it quickly without worrying about its functionality
  • Governments don’t accept the blockchain regardless of what you’ve read on the news. They don’t offer an exchange service where you could buy dollars, euros using crypto-money. Private companies don’t accept it either. You cannot buy goods, brand new cars, assets with crypto.
  • Scalability is an issue, The problem with the blockchain is that it can only get bigger. Picture it as a huge file which is shared across the network and re evaluated every time a new transactions comes in. Centralized systems don’t have a problem with that.
  • Which problem can the blockchain solve in contrary to centralized internet systems? Only real world problem I can think of is centralized money movement/transfer, lower fees, relatively fast transaction time compared to centralized system transactions (depends on the blockchain) also legal issues can be avoided which may be good or bad.
  • Applications that are currently impossible to be built on top of the blockchain are: Social networks, data storing services, healthcare systems, traffic systems pretty much everything which would require high amounts of data to be stored.



Decentralization is a great thing in general. However, we’ve seen that people don’t really complain having their private data on some unknown addresses like Facebook, Twitter, Google, etc.. Why would they if it has proven to work well: security, customer support, trust…

The problem isn’t privacy. People will use whatever they can under some condition: It has to be simple, useful, reliable, fast and secure. Blockchain doesn’t meet these conditions apart form security and anonymity while on the blockchain.

Another problem with the blockchain is that you have to explain it to someone. It means that you have to convince other people in using it. Convincing often assumes that something isn’t right in the system. People don’t like that, they want to hear what it is good for in one sentence.

Blockchain can acquire critical masses only if it finds a way to solve a problem which the centralized system is not able to solve. Now the question is here, which problem hasn’t been solved by the centralized system? Nevertheless, we’ll have to wait for quite a long time until the blockchain establishes the new, decentralized Internet if it ever does.

People often compare the beginnings of the Internet with the blockchain. They argue how the Internet had to take some time to emerge. That’s true because the infrastructure did not exist and was introduced gradually. The blockchain is the Internet but another architecture of it. Now we come again to the first paragraph of the conclusion, why would someone want to use the same thing with another structure….. Why would someone use Minds social network over stable, big, secure, user-supported, with extremely minor issues Facebook, Twitter, Instagram.

Despite all, why do most of people “like” or so to say talk about the blockchain? They want to make big money fast. Literally you’ll see people on Reddit, Quora and other popular discussion communities asking about the short-term and longterm predictions regarding particular cryptocurrencies. They want to know which is the right one to invest in so they could get “rich” quickly.  This is how they start their journey on the blockchain… Unfortunately there only exists a low percentage of people who really care about decentralization and making the blockchain work smoothly, trying to solve problems, in order for it to become powerful one day and possibly open the gates for mass adoption.


Angular 2 Jasmine unit testing (quick overview)


  • describe: optional, describe the entire unit testing class
  • it: must include it when writing isolated unit test
  • async: tell the test framework to wait until the return promise or observable is completed before treating the test as completed. when all async operations are completed the next test (if exists) is able to start executing
  • beforeEach: for creating new instances for another test to start from the beginning
  • TestBed: creates components instance, configure module, simulate module
  • Access field/variable: fixture.componentInstance.some_variable_name OR if already instantiated then component.some_variable_name
  • detectChanges: only triggered when an property change occurs inside a .ts file
  • configureTestingModule: configures a “fake” module
  • toBe vs toEqual: toBe object(general) equality vs deep equality
  • fixture.whenStable().then(() => {}); executes after all async operations are executed/finished
  • tick() simulates the passage of time until all async operations above are finished. Must go with fakeAsync keyword, otherwise error will appear
  • fixture.whenStable() vs tick();
    They both do the same. tick() is more prudent to use because you have to give it (in the header of the test) a fakeAsync which means that everything is called synchronously inside the test. The code after the tick() method indicates that all code above has executed (async operations above) and that you can now proceed with testing the result of these above async operations.
    Fixture.whenStable() however can give a false positive if async() is omitted in the header of the test. Therefore the test will complete before fixture.whenStable executions.
  • A Spy is a feature of Jasmine which lets you take an existing class, function, object and mock it in such a way that you can control what gets returned from functions.

Configuring Test Module



    let fixture= TestBed.createComponent(AppComponent);
    let element1= fixture.debugElement.query(By.css(".heading")).nativeElement.textContent; //must include the point prefix (.)


  it ("test input innerHTML example", async()=>{
     let fixture= TestBed.createComponent(AppComponent);
     let element2= fixture.debugElement.nativeElement.querySelector(".heading");

input HTML tag

    it ("test input input-value attribute example", async()=>{
     let fixture= TestBed.createComponent(AppComponent);
     let element1= fixture.debugElement.nativeElement.querySelector("input");

CSS style

    it ("test input input-value attribute example", async()=>{
     let fixture= TestBed.createComponent(AppComponent);
     let element1= fixture.debugElement.nativeElement.querySelector("input");
    it ("test css style", async()=>{
     let fixture= TestBed.createComponent(AppComponent);
     let element1= fixture.debugElement.nativeElement.querySelector("h1");
     expect(element1.style.backgroundColor).toBe("blue"); // style attribute is the key for testing css

Class property testing

import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';

beforeEach(() => {
           declarations: [AppComponent]

it('check title class property', async()=> {
  let fixture= TestBed.createComponent(AppComponent);

Service testing

import { TestBed, async, inject } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { AppModule } from './app.module';
import { AppComponent } from './app.component'
import { MyServiceService } from './my-service.service'

beforeEach(() => {
let userServiceStub = {
isLoggedIn: true,
user: { name: 'Test User'}

//simulate module
declarations: [ AppComponent],
providers: [ {provide: MyServiceService, useValue: userServiceStub } ]

it('should test service object property value', inject([MyServiceService], (userService) => {
let fixture=TestBed.createComponent(AppComponent);


Pipe testing

import { TestBed, async } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { AppModule } from './app.module';
import { AppComponent } from './app.component'
import { TryPipe} from './try.pipe'

it ("should check pipe content", async()=>{
    let piping= new TryPipe();  //create an instance of the pipe
    expect(piping.transform("")).toEqual("something"); //transform returns something initially

Directive testing

import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { By } from '@angular/platform-browser';
import { FirstOneDirective } from './first-one.directive'
import { NO_ERRORS_SCHEMA }  from '@angular/core';

beforeEach(() => {
    declarations: [ AppComponent, FirstOneDirective ],
    schemas:      [ NO_ERRORS_SCHEMA ]

it('should have skyblue css background, set from the directive', async()=> {
 //checking the code from the directive implementation
  const fixture=TestBed.createComponent(AppComponent);
  const de = fixture.debugElement.query(By.css('.nesto'));
  const bgColor = de.nativeElement.style.backgroundColor;

([ngModel]) testing

  it('should pass twice, passes but because of two way data binding ngModel', async(() => {
    const fixture1 = TestBed.createComponent(ChangeRestApiComponent);
     fixture1.whenStable().then(() => {
       let input_val = fixture1.debugElement.query(By.css('#first')).nativeElement;
       input_val.value = 'localhost';

       input_val.dispatchEvent(new Event('input'));


Check something to be false (not to contain a substring)

  it('should not contain full url paths, protocol e.g. http://', () => {
    component.array.forEach((item) => {
        expect(item.url.indexOf('http') === 1).toBe(false);

Checking html CHECKBOX element “checked” attribute

  it('check if checkbox checked attribute changed from default false to true', async() => {
    const input = fixture.debugElement.query(By.css('.className')).nativeElement;
    component.testing = true;

Check value after BUTTON onClick event executes

it('check if on-button (click) event changes the value in the HTML', async() => {
     const div = fixture.debugElement.query(By.css('.clicking')).nativeElement;


Check new INPUT value after change event executes

  it('change input value and check if change occured', async() => {
   const input = fixture.debugElement.query(By.css('.inputlast')).nativeElement;
   component.changeMe = 'changed';

EventHandler(‘click’) testing


Routing testing


Local storage testing


Državna matura riješeni zadaci- matematika A (viša razina), LJETO 2017. god. (postupak)

Napomena: ukoliko ne znate riješiti neki zadatak iz matematike otiđite na: https://math.stackexchange.com i dobiti ćete rješenje vrlo brzo. Naravno, prije toga morate pokazati pokušaj u rješavanju zadataka. Jedino što morate znati je engl.jezik i po mogućnosti (nije obavezno) malo Latex-a. Latex je jednostavan za naučiti i uči se brzo.


U prilogu se nalaze riješeni zadaci (Matematika A razina) sa državne mature, ljeto 2017. god.
U prvom prilogu se nalazi prvih 15 zadataka dok su u drugom ostali zadaci.

Ukoliko imate kakvih nejasnoća pošaljite mail na eugen.sunic@live.com

Link na maturu, Matematika A razina 2017, ljeto: https://www.ncvvo.hr/drzavna-matura-2016-2017-ljetni-rok/


In the attachment below you can find solved problems from the 2017 (summer) math exam, level A.
Students across the country must pass this exam in order to inscribe them-self to a desired faculty.

If you have any question, refer to eugen.sunic@live.com

Riješeni zadaci s postupkom, 1.dio/solved problems with steps, first part:
MAT A, viša razina, ljeto 2017.god. 1.dio
MAT A, viša razina, ljeto 2017.god. 1.dio

Riješeni zadaci s postupkom, 2.dio/solved problems with steps, second part:

MAT A, viša razina, ljeto 2017.god. 2.dio
MAT A, viša razina, ljeto 2017.god. 2.dio

JS quick tips

Quick theory

– JS uses camel case, lower than uppercase to write a function.
– JavaScript is a loosely typed language (no int, string, bool, char array value types…).
– Declare all variables at the top of the function.
– JavaScript uses the Unicode character set.
– JavaScript Types are Dynamic.
– All functions in JavaScript are objects.
– JavaScript functions parameters are value types.
– In JavaScript, arrays use numbered indexes, they do not support named indexes like in python, object support named indexes.
– In fact, in JavaScript, all functions have access to the scope “above” them.
– JavaScript supports nested functions. Nested functions have access to the scope “above” them. (closures)
– JS doesn’t have pointers (there are pointers but they are called references).
– Closures: when you first call the function then you just invoke the outer function, when you invoke the variable function then you actually call the inner function every time. Basically you need a „double“function call to get the closures to work, no magic.
– The difference between solo functions and and prototype functions is that prototype functions can be applied with a dot (.) where as solo function can not do that.
– Very important: the event queue cannot go into stack-overflow, only the stack can go in such state.
– No, JavaScript objects cannot have duplicate keys. The keys must all be unique. (this is important for example when removing duplicates)
–  Strict keyword– enhances the proper writing of JS. It prevents undeclared variables, it catches some common coding bloopers, throwing exceptions. it prevents, or throws errors, when relatively “unsafe” actions are taken (such as gaining access to the global object). It prevents duplicate properties, eval becomes safer.
– NaN is a Number data type and appears when an arithmetic operation which had to be executed fails. Example: parsing a string to an integer which cannot be an integer when parsed, „abc“ to int.
– JS is asynchronous (non blocking) language
– JS is single threaded, one callstack, no parallel threads (multi-threads) only event loops
– The entire code inside the script block is the main function it doesn’t need a main function explicitly like in C#, Java, C etc.
– The event loop pushes the “result” from the queue to the stack if the stack is empty.

How does JS async work?

The function is pushed to the stack, the API is called for the function, the function executes and goes to the task queue. When the stack is empty the task queue pushes onto the single threaded stack.

Application of bitwise operators in JavaScript

First of all let us revise what bitwise operators are and why you should comprehend them in 2017. Bitwise operators are operators that work on a bit or two bits (comparing them and giving a result based on the comparison) at a time.

AND ( & ) will  be 1 only if both of the bits are 1, otherwise it will be 0.
Example (all combinations): 1&1=1;  1&0=0;  0&1=0;  0&0=0;

OR ( | ) will be 1 if there is a 1 present when comparing two bits,
Example (all combinations): 1|1=1;  1|0=1;  0|1=1;  0|0=0;

XOR ( ^ ) is 1 only if one bit is 1 and the other is 0 no matter the order (1 XOR 0 =1)
(0 XOR 1=1)

NOT ( ~ ) if the bit is 0 it will go to 1 if it is 1 it will go to 0. In this case there is no comparison with other data. If you have an integer, let’s say 5 which is 0101 then the NOT will bring it to 1010.

To see the truth tables go to this website
Practical applications of bitwise operators (real life):
0X1 represents 1 in hexadecimal.

  • We check if the value is odd. If it is, the program returns true it’s not (if it is even) then the program returns false:

(value & 0x1) > 0

Explanation: Let’s say we have a value of 8 and on the other side we have 0x1. We convert them to binary numbers (that’s what the computer only understands at the most bottom level). We write the numbers one below the other and start the calculation from the most right bit to the most left bit (refer to the and operator above)



The result is 0000 which is 0 in denary (decimal ). Zero is not greater than zero so the expression returns false. Which means that the number is even.

JS code:

console.log((8 & 0x1) > 0)
  • Use them for data encryption (encryption is all about bitwise operators)

a = 1903349;
b = 4542345;
c = 5834533;
hash = a ^ b ^ c;

The numbers will be converted to binary and will be hashed (they will be transformed in some boolean XOR equivalent data)


Bitwise operators are rarely used in JavaScript (as far as I’ve seen in 5 years of coding). I suppose interviewers use them for questions for future employees to see how deep the candidate went with their programming knowledge. Still, it is good to know them because once you see them and maybe have to do something with them you will have the basic knowledge in your head and solving the problem in front of you will require less time and frustration.

So, when doing operation with bitwise operators which are nothing else but boolean operations, always have in mind the truth tables which are easy to understand and learn.

My opinion is, try to avoid them because your code looks incomprehensible to others who may in the future maintain your application. The more clearer you are the better for everyone else.

Mathematics is done by the computer, problem solving not yet

I’ve been doing a lot of maths recently and whenever I come across a problem which I don’t know how to evaluate and solve at the end I ask WolframAlpha (https://www.wolframalpha.com) or Symbolab (https://www.symbolab.com). As you can see if you type any high school – college problem you will almost certainly get a positive result, a solution to the problem. Not only will you get the solution but you will also get the steps towards the solution which is insane.

Let’s go back to year 2000, no let’s got back to year 2010. You had none of this things alive. You were really great-full if you could get a script or a book with solved problems including the steps.

Now let’s see some of the stuff that you can easily do with WolframAlpha or Symbolab

  1. WolframAlpha quadratic equation solverhttp://www.wolframalpha.com/widgets/view.jsp?id=bf424cb7b0dea050a42b9739eb261a3a  We are all familiar with this one, it can be easily programmed and you can find thousands of such example on the Internet and of-course Casio Calculators are the best (the fastest and the easiest) for solving quadratic equations. You get the result instantly and see if an equation has 0, 1 or 2 results.
  2.  WolframAlpha  intersection points of two curves/lineshttp://www.wolframalpha.com/widgets/view.jsp?id=7b9037eb9f5f7493a73df97a38bc58e6  You can use this app to draw any desired function-graph no matter the order. You can draw a parabola, third order equations, of-course, lines (first order equations) etc. You instantly get the x coordinates and if you subscribe and pay (6 dollars per month for students you can see the steps towards the x solution). This can be useful if you don’t want to draw things on paper. As we all know computers will always be much more precise and accurate than humans. Although someone may think that is an easy app to program it certainly is not and takes much effort to achieve such thing.
  3.  WolframAlpha derivatives: http://www.wolframalpha.com/widget/widgetPopup.jsp?p=v&id=f4ccdf86d504bc91f8652fa6d7b76db6&title=+Derivative+Calculator&theme  Put the function from which you want to take the derivative from and you’ll get the result instantly. You can take the n-th derivative up to number 10 if you wish (maybe for Taylor series I cannot think why would you do it for anything else at this time). If you’ve got a function with a lot of x-is and a function which is really big and you know that the probability of making a mistake is high then I suggest you to use this app. Again, computers are “smarter” and cannot make a mistake. Well they can, but they don’t. Although this app is nice I think that this is time when Symbolab kicks in. Symbolab is magnificent at doing this job, also the output looks nice. Here is the link: https://www.symbolab.com/solver/derivative-calculator The greatest thing of all is that you get the steps for free at Symbolab. You don’t have to pay anything. The steps are much more nicer than at WolframAlpha. I think we really have to appreciate such things because the engineers have put great effort into it, I really don’t know how they earn their money to support such platform.
  4. Wolfram alpha Integralshttp://www.wolframalpha.com/calculators/integral-calculator/. Put inside whatever function you want and you will most certainly get the result. Again, I prefer Symbolab over Wolfram generally for all the calculus problems, but for the complex calculus problems WolframAlpha still beats Symbolab. Symbolab integrals link: https://www.symbolab.com/solver/definite-integral-calculator
  5.  WolframAlpha Surface & Integrals: http://www.wolframalpha.com/widgets/view.jsp?id=8ab70731b1553f17c11a3bbc87e0b605  Write in the functions (subtract functions of-course, see Newton-Leibniz rule) that you want to integrate over it and write down the limits for integration for the surface. Now if you are unsure about the limits of the two function then the best thing to do is to go to number 2 on the list and find the intersection points and insert them in the two boxes which represent the limits. Direct solutions (similar to this one) is not offered by Symbolab, however you can always use the definite integration if you know the limits of your integration, after you know them go to number 4 on the list
  6. WolframAlpha Function domain: http://www.wolframalpha.com/widgets/view.jsp?id=b0160688b805d84769cebe1afb71895   We all know how important that is and how many times we’ve searched for the domain whether it’s a function with multiple or just a single variable. There isn’t an equivalent at Symbolab but you don’t really need it. I believe this is one of the easiest problems in mathematics no matter which function is in the game…
  7. Symbolab Limits: https://www.symbolab.com/solver/limit-calculator Limits just kick ass at Symbolabs they can’t be compared to WolframAlpha. The steps are all shown and even the hardest problems are solvable here. The alternative WolframAlpha still deals with the most difficult limits to solve (I believe that the engineers at Symbolab will soon have solution for everything).

The counting goes on and on, almost all calculus types of differential equations can be solved, sequences, Laplace transformations, Fourier series and many others. In 2016 the computer can do a lot of things, consider that another lot of things is not revealed to the public. The reason why I posted so much mathematical stuff is because I’ve realized that we are taught mathematics in a wrong way. Through elementary and high school we are always doing some kind of equations and when we have to apply them on a problem the majority and when I say majority I mean 90% of us do not know how to apply the learned stuff (logarithms, roots, exponential equations, derivatives, limits, differential equations etc.). As we can see, all of this stuff that we are doing in school is solved in a couple of seconds by the computer. The point is, we should not be doing this stuff, well, we should but in low amounts. What we should do is concentrate on PROBLEM SOLVING stuff (word problems). Let’s be honest, word problems are nightmares for most of us. As soon as we see an example, task with a lot of words written people become frightened.

Word problems are indeed hard at the beginning but once our brains gets used to them, we begin to understand them. The most important thing is that we are becoming aware of the tools that we’ve learned in maths and can solve the problem sometimes in many ways. It’s better for us to spend a whole day on solving two word problems then to solve 50 long equations pulling the x out of them. There are multiple reasons why this word problem approach is better than the others but let’s focus on year 2016-2017.

As I’ve said, computers are here to help us and whenever we can use them we should do so to save us time and to put this time into something that computers are unable to do at this moment, but what we are doing is rejecting or partially rejecting the technology and following the education path of our parents/grandparents. Of-course, we should learn how to solve “equation problems” so that we can solve the word problem but the education is exaggerating with these type of problems because it assumes that the word problems will take too much of a time for a pupil to learn/grasp and therefore won’t learn anything or will learn very little but in contrary the pupil/student will benefit hugely out of it because it will try many ways to get to the result and therefore learn how not to solve the problems and how problems should be solved (depends on the type of problem being solved). We can see this kind of problem solving in programming. It takes a lot of time to develop something valuable, there are times when a computer programmer just sits and looks at three lines of code trying to work things out. The same should be applied on children early in school so that they develop a logical thinking habit.

The time of AI will certainly come at some point in the future and God knows what will happen then. I used to have an AI subject at my faculty and was skeptical with this field. I did not believe that something of that kind could ever be build in the future. As my exam was approaching and as I gained more knowledge I found out that I was wrong at the beginning. AI is indeed plausible, however, it will always be rejected from a person who has never done maths, programming and studying the AI (neural networks, deep learning etc.).

AI is basically mathematics trying to simulate a brain. With such concept, researchers are trying to make a software (and already have made quite few) which learns and applies the knowledge afterwards. Every once in a while we can see how a computer (software) outsmarted a human. For instance, the latest achievement  presents a software beating the world champion in “Go” game https://www.youtube.com/watch?v=EOWnzHAgPgE.  Experts could not believe that it happened so soon. This is one of many examples (but one of the most discussed examples recently) where AI algorithms surpass the human even though AI hasn’t yet come near its full potential.

AI will continue to expand, algorithms will appear, new concepts will emerge. We cannot stop it neither should we. Why is that so, why do we want to harm ourselves perhaps? It’s quite easy to answer the question because all the discoveries in the past as well the discoveries which haven’t happened yet are due to people’s CURIOSITY. We are curious on how things work and what things could do once build. Even if a government program against AI is to be introduced there will always be a good amount people digging and trying to build the forbidden (in this case AI).

As soon as we realize and accept the upcoming AI events, the better for all of us.

The summarize this article:

  • Learn how to think and solve problems don’t spend too much time on solving problems which a computer can easily solve such as solving numerous equations as mentioned above. Use On-line tools to speed up your work.
  • Adapt to current technologies
  • Practice daily on your field, no matter what type of field you are involved into.

Državna matura riješeni zadaci- matematika A razina, JESEN 2016. god. (postupak)


U prilogu se nalaze riješeni zadaci (Matematika A razina) sa državne mature, jesen 2016.god.
U prvom prilogu se nalazi prvih 15 zadataka dok su u drugom ostali zadaci.

Ukoliko imate kakvih nejasnoća pošaljite mail na eugen.sunic@live.com

Link na maturu, Matematika A razina 2016, ljeto: https://www.ncvvo.hr/drzavna-matura-2015-2016-jesenski-rok/


In the attachment below you can find solved problems from the 2016 (autumn) math exam, level A.
Students across the country must pass this exam in order to inscribe them-self to a desired faculty.

If you have any question, refer to eugen.sunic@live.com

Riješeni zadaci s postupkom, 1.dio/solved problems with steps, first part:
MAT A, viša razina, jesen 2016.god. 1.dio

Riješeni zadaci s postupkom, 2.dio/solved problems with steps, second part:

MAT A, viša razina, jesen 2016.god. 2.dio