Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 28.3.2009, 17:23   #1
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Cool Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Danas je bilo okružno takmičenje iz programiranja za osnovne škole (ja sam bio I kategorija, V i VI razred) pa rekoh da otkucam zadatke. Ove zadatke mogu da probaju da urade programeri početnici kao neku vežbu.

---------------------------------------------------------------------------------

Okružno takmičenje programiranja za učenike osnovnih škola
28. mart 2009
I kategorija (5. i 6. razred)

1. Na velikom turniru P.O.S.O.T u igranju kompjuterskih igrica, Žarko je odigrao četiri partije. Nakon završenih partija, zaključio je da mu je lakše da prati promenu rezultata između dve partije nego tačan broj bodova. Tako je zapamtio da je
  • u drugoj partiji imao tačno 1042 poena više nego u prvoj
  • u trećoj partiji imao koliko u prvoj i drugoj zajedno
  • u četvrtoj partiji duplo manje nego u trećoj.
Nakon završetka znao je tačan broj poena koje je ostvario u četvrtoj partiji. Napisati program kojim se za uneti broj poena u četvrtoj paritiji C izralunava koliko je Žarko osvojio poena u prvoj partiji.

Primer
Ulaz:
C = 2845
Izlaz:
2324

2. Na velikom turniru P.O.S.O.T. u igranju kompjuterskih igrica postoje ekipna takmičenja u kojima dve ekipe igraju jedna protiv druge. U prvom kolu u grupi O.S. igrale su tri ekipe čije su oznake bili brojevi 1, 2 i 3. Prvu rundu su odigrale ekipe 1 i 2 i zabeleženi su njihovi poeni (za ekipu 1 i 2 redom R11 i R12), u drugoj rundi su igrale ekipe 2 i 3 (njihovi poeni su redom R21 i
R23), a potom su igrale ekipe 2 i 3 (njihovi poeni su redom R32 i R33). U odigranoj rundi pobeđuje ona ekipa koja je imala veći broj bodova. AKo ekipe imaju izjednačen broj bodova, ne računa se ni pobeda ni poraz nijednoj ekipi. Nakon odigrane sve tri runde, određuje se pobednik kola. Pobednik kola je ekipa koja ima najveći broj pobeda. Ukoliko dve ekipe imaju jednak broj pobeda, koj je veći od broja pobeda treće ekipe, ili ukoliko su sve tri ekipe izjednačene po broju pobeda, igraju se dodatne partije koje nose oznaku DP. Napisati program u kome se unose redom vrednosti R11, R12, R21, R23 i R33, a zatim se određuje i ispisuje koja je ekipa pobednik ili se ispisuje da se igraju dodatne partije DP.

Primer
Ulaz:
R11 = 56
R12 = 254
R21 = 104
R23 = 198
R32 = 156
R33 = 148
Izlaz:
2
Ulaz:
R11 = 156
R12 = 154
R21 = 104
R23 = 104
R32 = 256
R33 = 137
Izlaz:
DP

3. Žarko u jednoj od igara koju igra na turniru P.O.S.O.T treba svojim likom, koji vodi u igrici, da prođe kroz sobu sa senzorima. Senzori su postavljeni na podu sobe u N paralelnih linija po širini sobe. Prva linija, koja je najbliža Žarkovom liku ima samo jedan senzor koji je tačno na sredini sobe. Druga linija ima tri senzora, pri čemu se srednji nalazi tačno iza senzora u prvoj liniji. Treća linija ima 5 senzora, pri čemu su središnja tri tačno iza senzora u drugoj liniji, a preostala dva su jedan sa jedne, a dreugi sa druge strane. Svaka naredna linija ima po dva senzora više tako što se u odnosu na prethodnu liniju dodaju po jkedan sa leve i desne strane. Rastojanje između dva susedna senzora na svakoj linije je jednako i iznosi R centimetara. Ovako postavljeni senzori formiraju trougao. Dimenzije sobe su dovoljno velike da stanu svi predviđeni senzori. Žarkov lik u igrici mora da prođe pravo po sredini sobe na drugu stranu, pri čemu će aktiviratio sve senzore preko kojih pređe. Ako je širina Žarkovog lika S centimetara, napisati program u kome se redom unose vrednosti N, R i S a zatim program izračunava koliko je senzora Žarkov lik aktivirao.

Primer
Ulaz:
N = 5
R = 1.1
S = 5.4
Izlaz:
19



Slika uz zadatak 3.
1. zadatak boduje se sa 30 poena
2. zadatak boduje se sa 35 poena
3. zadatak boduje se sa 35 poena

-------------------


Pozz svima!
PS Izvinjavam se zbog ružnoće slike, al mrzelo me da je glancam puno...
Geomaster je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Geomaster na korisnoj poruci:
allokin (7.4.2009)
Stara 28.3.2009, 17:28   #2
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Arrow Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Rešenja (nisu oficijalna, ja sam tako uradio zadatke):

Fajl utils.h koji vam treba da kompajlujete zadatke i treba da bude u istom folderu sa .cpp fajlom
Spoiler za utils.h:
Kod:
void GetInt(int *p, std::string name)
{
    std::string walker;
    walker = name;

    int o;

    walker.append(" = ");
    cout << walker.c_str();
    cin >> o;

    *p = o;
}

void GetDouble(double *p, std::string name)
{
    std::string walker;
    walker = name;

    double o;

    walker.append(" = ");
    cout << walker.c_str();
    cin >> o;

    *p = o;
}
Spoiler za 1. (zadatak1.cpp):
Kod:
#include <iostream>
#include <cstdlib>

using namespace std;
#include "utils.h"

#pragma message("**************************")
#pragma message("**************** Zadatak 1")
#pragma message("********** Davidovic David")
#pragma message("**************************")

int main()
{
    cout << "Zadatak 1 - Okruzno takmicenje iz informatike" << endl << "\tDavidovic David, VI4, OS ""Vuk Karadzic""" << endl << endl;

    //code goes here
    int p3,p4;
    GetInt(&p4, "C");

    p3 = 2 * p4;
    cout << "Osvojio je: " << (p3 - 1042) / 2 << " poena." << endl;
    
    system("PAUSE");
    return 0;
}
Spoiler za 2. (zadatak2.cpp):
Kod:
#include <iostream>
#include <cstdlib>

using namespace std;
#include "utils.h"

#pragma message("**************************")
#pragma message("**************** Zadatak 2")
#pragma message("********** Davidovic David")
#pragma message("**************************")

int main()
{
    cout << "Zadatak 2 - Okruzno takmicenje iz informatike" << endl << "\tDavidovic David, VI4, OS ""Vuk Karadzic""" << endl << endl;

    //code goes here
    int R11,R12,R21,R23,R32,R33;
    GetInt(&R11, "R11");
    GetInt(&R12, "R12");
    GetInt(&R21, "R21");
    GetInt(&R23, "R23");
    GetInt(&R32, "R32");
    GetInt(&R33, "R33");

    int pobede1 = 0,pobede2 = 0,pobede3 = 0;

    if (R11 > R12) { pobede1++; } else if (R11 < R12) { pobede2++; }
    if (R21 > R23) { pobede1++; } else if (R21 < R23) { pobede3++; }
    if (R32 > R33) { pobede2++; } else if (R32 < R33) { pobede3++; }

    if ((pobede1 == pobede2 && pobede2 == pobede3) || (pobede1 == pobede2 && pobede2 > pobede3) || (pobede2 == pobede3 && pobede3 > pobede1) || (pobede1 == pobede3 && pobede3 > pobede2)) { cout << "DP" << endl; system("PAUSE"); return 0; }

    if (pobede1 > pobede2 && pobede1 > pobede3) { cout << "1" << endl; system("PAUSE"); return 0; }
    if (pobede2 > pobede1 && pobede2 > pobede3) { cout << "2" << endl; system("PAUSE"); return 0; }
    if (pobede3 > pobede2 && pobede3 > pobede1) { cout << "3" << endl; system("PAUSE"); return 0; }


    system("PAUSE");
    return 0;
}
Spoiler za 3. (zadatak3.cpp):
Kod:
#include <iostream>
#include <cstdlib>
//#include <vector>

using namespace std;
#include "utils.h"

#pragma message("**************************")
#pragma message("**************** Zadatak 3")
#pragma message("********** Davidovic David")
#pragma message("**************************")

int main()
{

    cout << "Zadatak 3 - Okruzno takmicenje iz informatike" << endl << "\tDavidovic David, VI4, OS ""Vuk Karadzic""" << endl << endl;

    //code goes here
    int N;
    double R,S;
    GetInt(&N, "N");
    GetDouble(&R, "R");
    GetDouble(&S, "S");

    double maxS = int((S / R))/2;
    int active = 0;
    int cActive = 0;

    for (int i=0; i < N; i++)
    {
        if (i <= maxS) active += i * 2 + 1;
        if (i > maxS) active += maxS * 2+ 1 ;
        
    }

    cout << "Zarko je aktivirao " << active << " senzora." << endl;

    system("PAUSE");
    return 0;
}

Download exe fajlova za Windows


Poslednja ispravka: Geomaster (28.3.2009 u 17:47) Razlog: DL link
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 4:56   #3
rile
Član
 
Član od: 9.7.2007.
Poruke: 119
Zahvalnice: 2
Zahvaljeno 31 puta na 29 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Geomaster,

Svaka čast, bacio sam pogled na rešenja i izgledaju odlično. Interesuje me koji predmet se to uči za programiranje (moja starija ćerka će sada 4-ti razred - ali nisam čuo da se takav predmet uči).

U stvari, priznajem: zadivljen sam, mogu samo da priželjkujem da i moji klinci budu tako zainteresovani za programiranje.

Da li mogu da ti ukažem na nekoliko manjih, čisto programerskih, detalja (neću da govorim o rešenju, već čisto o nekim manjim finesama):

Komentari na utils.h.

Obično se zaglavlja pišu tako da uključuju potrebna zaglavlja. Na primer, koristiš std::string, znači potreban je <string>, za cout treba <iostream>

Druga, možda značajnija primedba je u vezi prosledjivanja string argumenta po vrednosti. Umesto toga, skoro uvek treba deklarisati "const std::string &". Time "štediš" jednu inicijalizaciju i kopiranje objekta.

Treća primedba manjeg značaja: s obzirom da radiš u C++, prosledjivanje reference je nešto elegantije rešenje nego prosedjivanje adrese. Na primer:

Kod:
void GetInt(int &p, std::string name)
{
...
Nešto dalje, nepotrebno pozivaš c_str(), umesto jednostavnog:
Kod:
  cout << walker;
I da zaključim komentare na utils.h: kako si definicije svojih funkcija dao u .h fajlu, mogao bi da očekuješ da u nekom zadatku imaš više .cpp fajlova u koje ga uključuješ, višestruka definicija istoimenih funkcija ne bi dozvolila linkovanje. Ukoliko ih, međutim, deklarišeš kao "static", svaka kompilaciona jedinica će dobiti svoju kopiju.

Dakle, sve primedbe u jednom:

Kod:
#ifndef UTILS_H_INCLUDED
#define UTILS_H_INCLUDED

#include <iostream>
#include <string>


static
void GetInt(int &i, const std::string &name)
{
    std::cout << name << " = ";
    std::cin >> i;
}

static
void GetDouble(double &d, const std::string &name)
{
    std::cout << name << " = ";
    std::cin >> d;
}

#endif

U svakom slučaju, svaka čast na znanju i srećno sa takmičenjem.
rile je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku rile na korisnoj poruci:
Geomaster (2.4.2009)
Stara 29.3.2009, 11:26   #4
Geomaster
V.I.P. Programiranje
 
Član od: 28.6.2007.
Lokacija: Beograd
Poruke: 2.342
Zahvalnice: 2.836
Zahvaljeno 1.047 puta na 507 poruka
Slanje poruke preko MSN-a korisniku Geomaster Slanje poruke preko Skypea korisniku Geomaster
Thumbs up Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

@rile:

Hvala na pohvalama, i hvala ti što si izdvojio vreme da mi ukažeš na ove greškice. Mnogo puta sam video to const std::string &name mada nikad nisam znao za šta to u stvari služi. Sada mi je jasno. Što se tiče predmeta, ne uči se nikakvo programiranje, tako da sam, od kada sam počeo da učim programiranje, kompletno samouk (izuzev nekih sitnica koje mi je pokazao Stevvan, i hvala mu na tome). Tutorijali sa Interneta i knjige, tako da ja mislim da se osnovno programiranje u Visual Basic-u 6 uči tek u osmom razredu OŠ, a kasnije i u srednjoj, mada nisam 100% siguran.

Hvala još jednom, razjasnio si mi neke stvari

PS Na takmičenju sam bio jedini učesnik iz Borskog okruga (osim jednog dečaka koji nije mnogo znao ) i tek sada shvatam koliko je malo interesovanje za programiranje.

Pozdrav i sve najbolje

Poslednja ispravka: Geomaster (29.3.2009 u 11:50)
Geomaster je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 17:52   #5
brainzor
Član
 
Član od: 6.1.2008.
Poruke: 40
Zahvalnice: 8
Zahvaljeno 19 puta na 3 poruka
Slanje poruke preko MSN-a korisniku brainzor
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

E bio sam i ja na okruznom, takodje osnovna skola, samo sto sam ja u sremskom okrugu i II sam kategorija. Takmicenje sremskog okruga je odrzano u Sidu, a bilo nas je 16. I i II kategorija su imale veoma slicne zadatke, 2 zadatka iz II kategorije su bila i u I kategoriji. Moram da se pohvalim da sam imao 100 bodova, i naravno da sam bio prvi.
brainzor je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 20:42   #6
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Штета па нема никаквих такмичења за осмаке.. мада не верујем ни да бих ишао. Превише ми је то цимања.
У мојој школи немамо компјутере, а камоли да се учи нешто око њих (сем можда у техничком што смо учили о Windows-у, пих смејурије).
И браво на решењима.
allokin je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku allokin na korisnoj poruci:
Geomaster (4.4.2009)
Stara 29.3.2009, 20:51   #7
G@Rtn3R
Nepotvrđena registracija
 
Član od: 10.2.2008.
Lokacija: Cybertron
Poruke: 418
Zahvalnice: 503
Zahvaljeno 346 puta na 111 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Citat:
Geomaster kaže: Pregled poruke
Tutorijali sa Interneta i knjige, tako da ja mislim da se osnovno programiranje u Visual Basic-u 6 uči tek u osmom razredu OŠ, a kasnije i u srednjoj, mada nisam 100% siguran.
... tek sada shvatam koliko je malo interesovanje za programiranje.
[/FONT][/FONT]
Ih... mi smo u 9-tom (vas osmi) dobili QBASIC u planu rada iz informatike, o necemu boljem nije ni bilo rijeci.
TEK sad u drugom srednje imamo programiranje i to Pascal...
Ja licno bih volio da sam to ucio jos u 4tom (osnovne) tako da ima interesovanja ali nema mogucnosti (jbg ja vec dva mjeseca molim profesoricu da pokaze c++, na kraju sam poceo citati onaj help i polako ulazim u stos)
G@Rtn3R je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 21:18   #8
boshkodj
Veteran
 
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Citat:
G@Rtn3R kaže: Pregled poruke
Ih... mi smo u 9-tom (vas osmi) dobili QBASIC u planu rada iz informatike, o necemu boljem nije ni bilo rijeci.
TEK sad u drugom srednje imamo programiranje i to Pascal...
Ja licno bih volio da sam to ucio jos u 4tom (osnovne) tako da ima interesovanja ali nema mogucnosti (jbg ja vec dva mjeseca molim profesoricu da pokaze c++, na kraju sam poceo citati onaj help i polako ulazim u stos)
Koji help?
Ako hoces vec ucis C++ ili bilo koji drugi prog. jezik , uzmi neku knjigu , help ti nista nece pomoci , osim ako hoces da se potsetis sintaxe ...
boshkodj je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 21:23   #9
G@Rtn3R
Nepotvrđena registracija
 
Član od: 10.2.2008.
Lokacija: Cybertron
Poruke: 418
Zahvalnice: 503
Zahvaljeno 346 puta na 111 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Pa "pocelo" je sa tim helpom.... samo sto sam se ja pogresno izrazio
G@Rtn3R je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 21:42   #10
Radiant
Član
 
Član od: 5.1.2009.
Poruke: 91
Zahvalnice: 69
Zahvaljeno 21 puta na 15 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Ponekad su učenici samo neobavešteni... U mojoj osnovnoj školi se takva takmičenja nisu ni pominjala, a bilo ih je (znam, jer su izlazila rešenja zadataka sa tih takmičenja u "Matematičkom listu").
Radiant je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 22:49   #11
LoshMeeBre
Starosedelac
 
Član od: 18.2.2006.
Lokacija: Zemun
Poruke: 1.436
Zahvalnice: 1.209
Zahvaljeno 370 puta na 287 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Citat:
allokin kaže: Pregled poruke
Штета па нема никаквих такмичења за осмаке..
Kako nema?? Koliko sam upucen 8aci i 7aci se zajedno takmice.. Bar je bilo tako pre 5 godina kad sam se ja takmicio. .
LoshMeeBre je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 22:55   #12
RuSkO_17
Novi član
 
Član od: 24.10.2008.
Lokacija: Sarajevo
Poruke: 26
Zahvalnice: 5
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

Citat:
G@Rtn3R kaže: Pregled poruke
Ih... mi smo u 9-tom (vas osmi) dobili QBASIC u planu rada iz informatike, o necemu boljem nije ni bilo rijeci.
TEK sad u drugom srednje imamo programiranje i to Pascal...
Ja licno bih volio da sam to ucio jos u 4tom (osnovne) tako da ima interesovanja ali nema mogucnosti (jbg ja vec dva mjeseca molim profesoricu da pokaze c++, na kraju sam poceo citati onaj help i polako ulazim u stos)
Gdje ideš u školu?
RuSkO_17 je offline   Odgovor sa citatom ove poruke
Stara 29.3.2009, 23:00   #13
kreator_
Banned
 
Član od: 16.11.2008.
Lokacija: Novi Beograd
Poruke: 695
Zahvalnice: 84
Zahvaljeno 200 puta na 108 poruka
Slanje poruke preko MSN-a korisniku kreator_
Određen forumom Re: Okružno takmičenje iz programiranja (5. i 6. razred OŠ)

U jbt, ja treca godina smera racunari pa ne znam ovo
Mada mene progis nikad nije zanimao niti ce.
kreator_ je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Pogodi avanturu Diego Avanturističke igre 5762 28.2.2017 5:07
Takmičenje iz informatike PeTkO Programiranje 13 2.12.2008 15:58
Stručna literatura! barjaktar Opšta kultura 24 11.1.2008 10:22
Zadaci iz informatike za 8. razred OŠ DobroslaV Programiranje 3 12.11.2007 23:03


Sva vremena su po Griniču +2 h. Sada je 0:22.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com