C++ zadaci,resenja,pitanja,tutoriali

Trebam uradit ove zadace (hitno imam neki rok 2-3 dana) da bih polozio neki test koji mi omogucava ulazak na studij

Molio bih sve one koji se razumiju oko proramiranje ako mognu da mi pomognu valjda se trebaju zadaci pravit u codeblocksu

Ako treba i spreman sam platit (iako sam u losoj ekonomskoj situaciji al mi je zelja upast na ovu it akademiju) pa traze samo ovo ,samo da mi neko pomogne koliko ko moze nek uradi pa nek mi posalje u zipovanoj datoteci

BIO BIH ZAHVALAN SVIMA OD SRCA !

evo link tih zadaca:

https://files.fm/u/2mcme6ff
 
Da li ima dobrovoljaca :D

Пројектовати и реализовати на језику C++ следеће класе:
 Предмет има једнословну ознаку врсте предмета. Може да се одреди
запремина и тежина премета, да се направи копија предмета и да се
предмет упише у излазни ток. Пише се ознака врсте предмета.
 Тело је хомогени предмет одређене специфичне тежине. У излазни ток
се пишу ознака врсте предмета и специфична тежина тела.
 Сфера, ваљак и купа су тела. У излазни ток се пишу ознака врсте,
специфична тежина и димензије.
 Склоп је предмет састављен од произвољног броја предмета
произвољне врсте. Ствара се празан, после чега се предмети додају
појединачно. У излазни ток се пишу подаци о садржаним предметима.
 Складиште може да садржи задат број предмета до задате укупне
запремине и тежине. Предмети се стављају појединачно на прво
слободно место. Предмети се ваде из складишта на основу редних
бројева места у складишту. Може да се добије списак садржаних
предмета.
 Радник има име. Сви радници морају да имају различита имена. Не сме
да се прави копија радника. Радник може да производи предмет
копирањем задатог предмета и да га одмах стави у задато складиште.
Предмет чија копија се прави и складиште у које се копија ставља може
да се промени.
 Радионица садржи једно складиште и низ предмета који се користе као
оригинали за производњу. Величина складишта и низ предмета за
производњу се задају приликом стварања радионице. Радници могу да
се запошљавају и отпуштају један по један. Раднику са задатим именом
може да се придружи предмет чије копије треба да производи и да се
затражи да производи један предмет. Може да се продаје предмет са
задатог места у складишту радионице. Сви подаци о радионици (списак
предмета које производи, садржај складишта и списак запослених
раднинка) могу да се упишу у излазни ток.
Написати на језику C++ интерактиван програм (са менијем) за руковање
радионицом. На почетку програма потребно је изградити почетни садржај
радионице коришћењем константних параметара (без читања с главног
улаза).
НАПОМЕНА: Обавезно је коришћење операторских функција и обрада
изузетака.

ako neko ima resenje ili je voljan da uradi neka posalje: vladacyborg@yahoo.com
 
[TUTORIJAL]

U ovoj temi smo zapostavili deo koji pominje tutorijale... ;)

Mogli bismo da obradimo neke zanimljive stvarcice koje su se pojavile u novim standardima, poput lambda izraza, pametnih pokazivaca i slicno...
Za pocetak, ukratko cu opisati mehanizam pametnih pokazivaca, a predlazem i ostalim korisnicima da se ukljuce i pomognu tako sto ce doprineti ovoj sekciji sa nekim zanimljivim temama. Kao literaturu, koristio sam ovu Veb lokaciju, i primeri su takodje preuzeti odatle.

- - - - - - - - - -

Ukratko, uloga mehanizma pametnih pokazivaca je da oslobodi korisnika od oslobadjanja dinamicki alocirane memorije tako sto ce vlasnistvo (eng. ownership) tog dinamicki alociranog objekta prebaciti na objekat koji je alociran na steku (eng. stack), tako da se prilikom unistavanja tog objekta u sklopu destruktora poziva kod koji oslobadja i dinamicki alocirani objekat. Glavni cilj je naravno izbegavanje curenja memorije (eng. memory leak). Ovaj mehanizam je zasnovan na takozvanom idiomu RAII (eng. Resource Acquisition Is Initialialization) kod kojeg je ideja da se resursi inicijalizuju u samom konstruktoru, prilikom inicijalizacije objekta, i da se oslobadjaju kada objekat koji ih koristi treba da se unisti, odnosno kad se pozove destruktor.

Upotreba pametnih pokazivaca je jednostavna:
-Inicijalizovati pametni pokazivac raw pokazivacom

Kod:
void UseSmartPointer()
{
    // Declare a smart pointer on stack and pass it the raw pointer.
    unique_ptr<Song> song2(new Song(L"Nothing on You", L"Bruno Mars"));

    // Use song2...
    wstring s = song2->duration_;
    //...

} // song2 is deleted automatically here.

Zahvaljujuci overload-ovanim operatorima -> i *, pametni pokazivaci se mogu koristiti kao i obicni.
Sve ovo naravno ima smisla ako je smart pointer deklarisan kao automatska promenljiva.

unique_ptr nije jedina vrsta pametnih pokazivaca:

unique_ptr - raw pointer mora da ima samo jednog vlasnika, inace ce doci do visestruke dealokacije istog objekta...
shared_ptr - ukoliko je neophodno da postoji vise vlasnika raw pointera, i u tom slucaju se koristi mehanizam brojaca referenci, kako bi se znalo kada je bezbedno dealocirati resurs
weak_ptr - koriste se zajedno sa shared_ptr, ne ucestvuju u brojanju referenci, i najcesce se koriste kod razbijanja ciklicnih referenci kod shared_ptr

Pametni pokazivaci su uvedeni od standarda c++11, i deklaracije su u headeru <memory>.
 
Poslednja izmena:
A da li znas zasto je auto_ptr deprecated u korist unique_ptr ? ;)

To ne znam, ali na osnovu ovoga sto pise na netu, deprecated je jer unique_ptr ima mnogo intuitivniji naziv, odnosno bolje opisuje svrhu, a usput su iskoristili rvalues reference i move semantiku kod dodele i copy konstruktora prilikom prebacivanja vlasnistva zarad performansi :)
 
Poslednja izmena:
Koliko je korisno imati privatne časove u toku prekvalifikacije? Ne biti apsolutno samouk
Зависи од твојих способности. Ако си јако добар да самостално истражујеш и посвећено утрошиш време да разумеш, а не да ти неко припреми одговоре као код професора, онда ти не требају приватни часови. Али ако си лењ (ништа погрдно) онда можеш платити тек толико да убрзаш процес. Али опет, посвети се томе. Немој да ти људи узимају новац сто година.
 
Moze li neko da mi uradi ovaj zadatak u C-u?

Write a program in C to count a total number of duplicate elements in an array.
C:
#include <stdio.h>
#define MAX_SIZE 100 

int main()
{
    int arr[MAX_SIZE];
    int i, j, size, count = 0;

    printf("Uneti velicinu niza : ");
    scanf("%d", &size);

    printf("Unesite elemente niza : ");
    for(i=0; i<size; i++)
    {
        scanf("%d", &arr[i]);
    }

    for(i=0; i<size; i++)
    {
        for(j=i+1; j<size; j++)
        {
       /* Ako postoji duplikat, povecaj za 1 */
            if(arr[i] == arr[j])
            {
                count++;
                break;
            }
        }
    }

    printf("\nTotalni broj duplikata u nizu je = %d", count);

    return 0;
}
 
C:
#include <stdio.h>
#define MAX_SIZE 100

int main()
{
    int arr[MAX_SIZE];
    int i, j, size, count = 0;

    printf("Uneti velicinu niza : ");
    scanf("%d", &size);

    printf("Unesite elemente niza : ");
    for(i=0; i<size; i++)
    {
        scanf("%d", &arr[i]);
    }

    for(i=0; i<size; i++)
    {
        for(j=i+1; j<size; j++)
        {
       /* Ako postoji duplikat, povecaj za 1 */
            if(arr[i] == arr[j])
            {
                count++;
                break;
            }
        }
    }

    printf("\nTotalni broj duplikata u nizu je = %d", count);

    return 0;
}
Hvala lepo, ovde na sajtu u resenju se definisu tri niza, sasvim je nerazumljivo, ovo je mnogo bolje. Mozes li mi samo reci cemu sluzi break;? Nisam nikada koristio tu naredbu.
 
Hvala lepo, ovde na sajtu u resenju se definisu tri niza, sasvim je nerazumljivo, ovo je mnogo bolje. Mozes li mi samo reci cemu sluzi break;? Nisam nikada koristio tu naredbu.
Да изађе из петље која се тренутно извршава. Пошто је ово унутрашња петља, њу гаси и повећава се бројач прве петље и опет испочетка.
 
C:
#include <stdio.h>
#define MAX_SIZE 100

int main()
{
    int arr[MAX_SIZE];
    int i, j, size, count = 0;

    printf("Uneti velicinu niza : ");
    scanf("%d", &size);

    printf("Unesite elemente niza : ");
    for(i=0; i<size; i++)
    {
        scanf("%d", &arr[i]);
    }

    for(i=0; i<size; i++)
    {
        for(j=i+1; j<size; j++)
        {
       /* Ako postoji duplikat, povecaj za 1 */
            if(arr[i] == arr[j])
            {
                count++;
                break;
            }
        }
    }

    printf("\nTotalni broj duplikata u nizu je = %d", count);

    return 0;
}
Ne valja, prvo sortiras niz onda jednostavno izbrojis duplikate. Ovo ce duplo brojati duple elemente.
 

Back
Top