Zadaci

Gynphoo

Aktivan član
Poruka
1.345
Ajde malo da resavamo zadatke :D
Ja cu da ubacim neke ali ubacite i vi ako mozete.

Kod:
Zadatak:
Napisi program koji pretvara brojeve iz dekadnog u binarni. ( 2 textbox-a,1 button)

Kod:
Zadatak:
Napisi program koji ce iscrtati krug na sredini picturebox-a poluprecnika r koji kosnik unosi u textbox

Za sada ta 2. Imam jos dosta dobio sam neki prirucnik od profesorke :D
Ko voli da se zanima neka radi.
Ako neko ne zna ili ne razume neka pita za objasnjenje( vazi i za buduce zadatke koje cu da ubacujem).

Ako vam se svidja ideja ubacivacu jos zadataka.
 
Kreirati aplikaciju za slanje maila. Kada se klikne na TextBox kontrolu pored labele OD pojavljuje se kontekstni meni koji sadrži email adrese korisnika aplikacije. Iz kombo boksa se bira adresa primaoca poruke. DropDownStyle svojstvo kombo boksa je podešeno na podrazumevanu vrednost DropDown, tako da je u kombo boks moguće uneti adresu ukoliko se ona ne nalazi u padajućoj listi.
Dugme DodajFajl služi za dodavanje Attachmenta u email poruku.
Dugme Salji služi za slanje prethodno napisane poruke. Nakon završetka slanja poruke sistem obaveštava korisnika da je slanje poruke završeno
 
Mislim da je jedna ovakva tema vec postojala, ali je kasnije zamrla... :P
Mislim da je bolje da ne postavljamo drugi zadatak, dok prvi ne bude resen, idemo po redu... :)
Mozete dodati neki zadatak koji ste sastavili u glavi, ili mozete sa Z Treninga nesto cak... :)

Kreirati aplikaciju za slanje maila. Kada se klikne na TextBox kontrolu pored labele OD pojavljuje se kontekstni meni koji sadrži email adrese korisnika aplikacije. Iz kombo boksa se bira adresa primaoca poruke. DropDownStyle svojstvo kombo boksa je podešeno na podrazumevanu vrednost DropDown, tako da je u kombo boks moguće uneti adresu ukoliko se ona ne nalazi u padajućoj listi.
Dugme DodajFajl služi za dodavanje Attachmenta u email poruku.
Dugme Salji služi za slanje prethodno napisane poruke. Nakon završetka slanja poruke sistem obaveštava korisnika da je slanje poruke završeno

Super, postavljajte sto vise zadataka, ali vise bih preferirao da to bude neki problem, a program da bude odgovor na taj problem, da malo mucnemo glavom, evo iSpectrum je postavio jedan takav... :)
 
Mislim da je jedna ovakva tema vec postojala, ali je kasnije zamrla... :P
Mislim da je bolje da ne postavljamo drugi zadatak, dok prvi ne bude resen, idemo po redu... :)
Mozete dodati neki zadatak koji ste sastavili u glavi, ili mozete sa Z Treninga nesto cak... :)



Super, postavljajte sto vise zadataka, ali vise bih preferirao da to bude neki problem, a program da bude odgovor na taj problem, da malo mucnemo glavom, evo iSpectrum je postavio jedan takav... :)

Problem je sto dobre teme zamru, ovakve teme idu pod sticky.

Ovi njegovi zadaci su bas za muckanje,pokusavao sam 2 puta i nisam uspeo.

otprilike sam isao ovako u grubim crtama

-dekadni broj-textbox1
-dekadni2 broj-textbox1

radi
deli dekadni sa 2 & dekadni2 % 2
dok je uslov tacan, a uslov je da je (dekadni broj >=0)

prikazi(dekadni2 i smesti ga u textbox2)

pokusao sam na tu foru, ali negde ima greska, nemam nesto vremena za razbijanje glave, ali otprilike je to u grubim crtama prvi, sa eventualno malim izmenama.

E drugi ne znam, slabo znam Graficku klasu, znam da iscrtam krug po formi, ali pictureboxu pojma ne'am. :(


Ovaj moj je klasika.


Ajde evo novi:
Kod:
Napraviti program koji pretvara tekst napisan na latinici u cirilicu i obratno.
 
Poslednja izmena:
Kad u'vatim vremena odradicu to za picturebox.

Sto se tice tvog zadatka, to je smesno za pominjati, postoji jedan dll koji je Microsoft pravio za prevod sa cirilice na latinicu ili obrnuto, sto se moze iskoristiti u C#.
 
Kad u'vatim vremena odradicu to za picturebox.

Sto se tice tvog zadatka, to je smesno za pominjati, postoji jedan dll koji je Microsoft pravio za prevod sa cirilice na latinicu ili obrnuto, sto se moze iskoristiti u C#.

Pa sta ako to postoji? Sustina je vezba, ajde sam da probas da skuckas program koji ce da konvertuje latinicu u cirilicu. Vecina ljudi programira slepo, tako sto nauci bukvalno napamet gde sta ide, a ne kontaju kako bi to sami uradili.
 
Kod:
Zadatak:
Napisi program koji ce iscrtati krug na sredini picturebox-a poluprecnika r koji kosnik unosi u textbox

Evo napravio sam za ovo, dajem samo funkciju, krug se iscrtava pri svakoj promeni vrednosti u textbox-u
Kod:
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                pictureBox1.Refresh();
                Graphics g = pictureBox1.CreateGraphics();
                SolidBrush cetkica = new SolidBrush(Color.Black);
                int r=Convert.ToInt32(textBox1.Text), centarX=pictureBox1.Width/2, centarY=pictureBox1.Height/2;

                g.FillEllipse(cetkica, centarX-r, centarY-r, 2*r, 2*r);

                g.Dispose();
                cetkica.Dispose();
            }

            catch 
            {
                if (textBox1.Text != "")
                    MessageBox.Show("Pogresna vrednost!");
            }
        }

E sad imam ja dva zadatka :D
evo prvog http://www.boi2011.ro/resurse/tasks/pawns.pdf
pitanje je da li mogu da radim bruteforce, zbog ogranicenja, ili postoji nesto pametnije

a drugi: http://www.boi2011.ro/resurse/tasks/puzzle.pdf
za njega ne mogu da smislim nista normalno sto bi moglo brzo da radi
 
Evo, 5 min posla :)
Kod:
public Form1()
{
       InitializeComponent();
       textBox2.ReadOnly = true;
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
       if (!Char.IsDigit(e.KeyChar)&&e.KeyChar!='\b')
                e.Handled = true;
}

private string obrni(string str)
{
      string temp = "";
      for (int i = str.Length - 1; i >= 0; i--)
           temp += str[i];
      return temp;
}

private void button1_Click(object sender, EventArgs e)
{
            long temp;
            string bin = "";
            if (textBox1.Text != "")
            {
                temp = Convert.ToInt64(textBox1.Text);
                while (temp != 0)
                {
                    if (temp % 2 == 0)
                    {
                        bin += "0";
                    }
                    else
                    {
                        bin += "1";
                    }
                    temp /= 2;
                }
                textBox2.Text = obrni(bin);
            }
            else
                textBox2.Text = "Unesi br.";
 }
 
Evo recimo sad nesto sa z-treninga mozete, recimo ovaj :)
Šumadija, nekada prebogata šumama, danas se više time ne može ponositi. Zbog zaštite životne sredine pokušava se na svaki nacin spreciti nesavesna seca drveca. Lokalni, novopeceni bogataš, kupio je poveliko kvadratno parce zemlje, na njemu želi da izgradi što je vece mogucu kucu i to tako da i njena osnova bude kvadratnog oblika sa stranama paralelnim stranama placa. Mapa imanja je sastavljena iz kvadratica dimenzija 1x1. Jedno drvo zauzima tacno jedan takav kvadratic. Pošto je imanje veliko, vrlo je teško naci najveci kvadrat sa stranama paralelnim stranama placa na kome nema drveca. Vaš zadatak je da za zadatu mapu imanja na kojoj se nalaze pozicije drveca, nadete kvadrat cija je strana najduža na kome nema stabala. Dužina strane je broj kvadratica 1x1 duž njegove strane.

Sa standardnog ulaza se ucitava sledece: U prvom redu broj n (n <= 200) koji je dužina strane imanja. Sledeci red sadrži broj p, broj stabala na imanju. Narednih p redova sadrže po dva broja koji su koordinate stabala. Na standardni izlaz treba ispisati samo jedan broj, dužina stranice najveceg kvadrata koji ne sadrži ni jedno drvo.

Primer

Ulaz:
5
3
2 2
4 2
4 4

Uzlaz:
3

Koordinate gornjeg levog temena traženog kvadrata su 1 3, a donjeg desnog 3 5.

Ja sam ga uradio, prosao je sve testove, brzina izvrsavanja i memorija su u redu, nije nesto preterano tezak ali treba razmisljati... :)
 
Evo, 5 min posla :)
Kod:
public Form1()
{
       InitializeComponent();
       textBox2.ReadOnly = true;
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
       if (!Char.IsDigit(e.KeyChar)&&e.KeyChar!='\b')
                e.Handled = true;
}

private string obrni(string str)
{
      string temp = "";
      for (int i = str.Length - 1; i >= 0; i--)
           temp += str[i];
      return temp;
}

private void button1_Click(object sender, EventArgs e)
{
            long temp;
            string bin = "";
            if (textBox1.Text != "")
            {
                temp = Convert.ToInt64(textBox1.Text);
                while (temp != 0)
                {
                    if (temp % 2 == 0)
                    {
                        bin += "0";
                    }
                    else
                    {
                        bin += "1";
                    }
                    temp /= 2;
                }
                textBox2.Text = obrni(bin);
            }
            else
                textBox2.Text = "Unesi br.";
 }

A daa, islo je (!=) razlicito od 0 :S
 
Poslednja izmena:
Pa sta ako to postoji? Sustina je vezba, ajde sam da probas da skuckas program koji ce da konvertuje latinicu u cirilicu. Vecina ljudi programira slepo, tako sto nauci bukvalno napamet gde sta ide, a ne kontaju kako bi to sami uradili.
Pa kak bi ti napisa taj program . Nije to tak lak kao sto izgleda
 
Evo prvi zadatak:
int dekadni = Convert.ToInt32(textbox.Text);
string binarni = "";
while (dekadni > 0)
{
int ostatak = dekadni % 2;
binarni = ostatak.ToString() + binarni;
dekadni /= 2;
}
textbox2.Text = binarni;

a evo jos jednog zanimljivog
Zadatak:
Naci sve "dobre" brojeve od 1 do n. Broj je "dobar" ako je zbir kubova cifara jednak zbiru cifara. (Mislim da tako ide zadatak prosle godine sam ga video negde)
 
Poslednja izmena:
to je to... :D
Kod:
#include <iostream.h>
#include <math.h>

using namespace std;

bool dobar(long br)
{
     int zbir=0,zbirk=0,c;
     while(br>0)
     {
                 c=br%10;
                 br/=10;
                 zbir+=c;
                 zbirk+=pow(c,3);
     }
     return (zbir==zbirk)?true:false;
}

int main()
{
    long n;
    cout << "N-ti broj: ";
    cin >> n;
    for(long i=1;i<n;i++)
    if(dobar(i))
    cout << i << endl;
    return 0;
}
 
Evo jedan zadatak, ae... ;)
U Bajtogradu se otvara novi tržni centar. Na otvaranje je doshlo n stanovnika Bajtograda. Tržni centar je ogroman i ima više spratova. Svaki sprat ima drugačije prodavnice. Ljudi su upoznati koje prodavnice su na kom spratu, pa je svako u skladu sa tim odlučio koji sprat će prvo da obiđe.
Međutim, vlasnici tržnog centra nisu očekivali toliki broj ljudi, pa su postavili samo jedan lift. Srećom, taj lift je iz nove serije V2512 super-brzih liftova. Liftu je potrebna samo jedna sekunda da se popne ili spusti za jedan sprat. U lift može da stane najviše c osoba.
Lift, kao i svi ljudi, na početku se nalaze u prizemlju - na spratu 0. Ako je poznato na koji sprat svaka osoba želi da ode i ako je vreme zaustavljanja lifta zanemarljivo, odredite koliko je minimalno vreme potrebno da sve osobe odu na željeni sprat.
Ulaz:
(Ulazni podaci se nalaze u datoteci lift.in.) U ulaznoj datoteci se u prvom redu nalaze dva broja n i c (1 ≤ n, c ≤ 1.000), broj ljudi i kapacitet lifta, respektivno. U sledećem redu nalazi se n brojeva iz intervala [0, 100.000], koji predstavljaju na koji sprat svaka od n osoba želi da ode.
Izlaz:
(Izlazne podatke upisati u datoteku lift.out) U prvom i jedinom redu izlazne datoteke ispisati minimalno vreme u sekundama potrebno da svaka osoba stigne na željeni sprat.
Primer:
lift.in
4 2
1 2 4 2

lift.out
8

Objašnjenje.
U lift uđu dve osobe koje žele da idu na 2. sprat. Lift potroši 4 sekunde da se popne do 2. sprata i vrati do prizemlja. Zatim u lift uđu osoba koja ide na 1. sprat i osoba koja ide na 4. sprat. Lift se popne do 1. sprata na kom izađe jedna osoba i zatim nastavi do 4. sprata gde izađe i druga. Za to je potrebno još 4 sekunde, pa je ukupno vreme 8 sekundi.
Primer:
lift.in
5 3
6 4 6 4 2

lift.out
14

Objašnjenje.
U lift uđu tri osobe koje idu na spratove 2, 4 i 4. Lift potroši 4 sekunde da ostavi osobe na željenim spratovima i 4 sekunde da se vrati na prizemlje. Zatim u lift uđu dve osobe koje idu na 6. sprat, te lift potroši još 6 sekundi da dođe do 6. sprata. Ukupno vreme je 14 sekundi.

EDIT: Zadatak je sa okruznog takmicenja... :)
 
Lagano, aj dalje.......onaj prvi sto si postavio ce malo da saceka, popio sam koju u gradu sad, pa mi se ne da razmisljat'

Kod:
#include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>

using namespace std;

int main(){
    vector<int> v;
    int n,c,h,res=0;
    scanf("%d%d",&n,&c);
    for(int i=0;i<n;scanf("%d",&h),v.push_back(h),i++);
    sort(v.begin(),v.end());
    for(int i=c;i<n;res += v[i-1]*2, i+=c);        
    res += v[n-1];
    printf("%d\n",res);
    system("PAUSE");
    return 0;
}
 
Nemoj graficke, daj neke konzolne za razmisljanje... :)
Evo ovog zadatka za JMBG, sve sa datumom, mesecom i godinom rodjenja:
Kod:
#include <string.h>
#include <iostream.h>
#include <ctype.h>

using namespace std;

string datum(string JMBG)
{
      return JMBG.substr(0,2)+"/"+JMBG.substr(2,2)+"/"+JMBG.substr(4,3);
}

bool ok(string JMBG)
{
     for(int i=0;i<JMBG.length();i++)
             if(!isdigit(JMBG[i]))
             return false;
     return true;
}

int main()
{
    string jmbg;
    do
    {
           cout << "Unesite vas 13-cifreni JMBG: ";
           cin >> jmbg;
    }
    while(jmbg.length()!=13||!ok(jmbg));
    cout << datum(jmbg) << endl;
    return 0;
}
 
Poslednja izmena:
Ajde da napravi neko program za obradu aritmetickih izraza.

Dakle da ti izracuna ovo
5+2*3+6/2-1+2
Ako se ne varam ovo je 15.
Bez zagrada, pa kad uradite to, moze i zagrade :D
Kad postavite rjesenje postavicu i ja moje pa da uporedimo.
 
Evo jedan lagani :D


Hocete i neke graficke zadatke?
Taj je lak :)

Daj jedan meni za Grafiku vezan. Krenuo sam da vezbam System.Drawing klase pa da vidim znam li ista. haha


Sto se tice onog konvertera mog, trenutno ne mogu da ga nadjem.

Uglavnom, sustina je ova:

Kod:
Kreirati string Metodu1() sa parametrom string1
                        V
  stringu1 dati vrednost textboxa1.Text
                        V
stringu1 dati vrednost latinicnih slova (A-Z, a-z)
                        V
         vratiti vrednost stringa1
---------------------------------------------------------------------

Kreirati string Metodu2() sa parametrom string2
                        V
    stringu2 dati vrednost textboxa2.Text
                        V
stringu2 dati vrednost cirilicnih slova (A-S, a-s)
                        V
         vratiti vrednost stringa2
--------------------------------------------------------------------
U Buttonu napraviti jos jedan string3 i setovati da je 
                        V
string3=string3.Replace(Metoda1(),Metoda2())


Uglavnom to je to, sa ponekim izmenama, secam se da sam se mucio oko nekih izuzetaka sa 'posebnim' slovima, ali eto za Vas da uradite, mrzi me kucati celu azbuku i abecedu, mada verovatno postoji neka fora sa Encoding klasom. :)

P.S mozda ide i char umesto stringa,probajte i char ako ne mogne string.
 
Poslednja izmena:

Back
Top