UČENJE NA DALJINU ZA TAKMIČARSKU GRUPU
Sadržaj časova: |
Zadaci za vežbu |
|
Zadaci sa kvalifikacija sa takmičenja 2019/2020 se nalaze u dokumentu koji možete preuzeti:
|
ČASOVI: 1-40
Datum: 14.11.2020. Tema: Nizovi u C jeziku
Osnovni način struktuiranja podataka.
Predstavlja skup uzastopnih podataka u memoriji istog tipa. Koristi se jedan identifikator za pristup i on pokazuje na prvi element.
Predstavlja skup uzastopnih podataka u memoriji istog tipa. Koristi se jedan identifikator za pristup i on pokazuje na prvi element.
pristupa se pomoću identifikatora npr ocene[3] daje vrednost sa pozicije numerisane sa 2, to je vrednost 2.5.
Broj elemenata je nepromenljiv(fiksan) i predstavlja dimenziju niza.
Više o nizovima pročitajte na strani: Nizovi u jeziku C/C++
Potrebno je znati i kako se određuje minimum i maksimum
Broj elemenata je nepromenljiv(fiksan) i predstavlja dimenziju niza.
Više o nizovima pročitajte na strani: Nizovi u jeziku C/C++
Potrebno je znati i kako se određuje minimum i maksimum
Postavka problema: Maksimalna suma podniza
Za zadati niz brojeva odrediti maksimalnu sumu njegovih podnizova. Zadatak pokušajte da rešite samostalno samostalno(40 min)
Diskusija i analiza: Preko zoom platforme a posle samostalnog rešavanja
Posle diskusije možete pogledati objašnjenje na webstrani: Maksimalna suma podniza
Zatim uraditi zadatak na osnovu definicije problema
Diskusija i analiza: Preko zoom platforme a posle samostalnog rešavanja
Posle diskusije možete pogledati objašnjenje na webstrani: Maksimalna suma podniza
Zatim uraditi zadatak na osnovu definicije problema
Datum: 21.11.2020. Tema: Ugnježdene petlje; Dvodimenzioni nizovi; Maksimalna suma podniza
Ugnježdene for petlje
Pročitati na web stranici: Ugnježdene petlje u C/C++
Dvodimenzioni nizovi-matrice
Pročitati na webstrani: Dvodimenzionalni nizovi - matrice
Kadaneov algoritam
Izanalizirati Kadaneov algoritam, a zatim uraditi prethodni zadatak pomoću njega. Vidi stranu: Kadaneov algoritam
Domaći zadatak
- Dvobojka-https://petlja.org/biblioteka/r/Zbirka2/dvobojka
- Susret- zadaci.py, prvi krug kvalifikacija 2019/2020
- Broj parova datog zbira - https://petlja.org/biblioteka/r/Zbirka2/broj_parova_datog_zbira3
Datum: 28.11.2020. Tema: Funkcije u jeziku C, Petlje, Nizovi, Induktivni algoritmi
Ponavljanje: Grananje u programu.
Pročitati: Grananje u programu u C/C++
Primer za vežbu: Unesi 3 prirodna broja 0 < A < B < n < 10000. Unesite zatim broj 0 < X < 10000 i ispitati kom intervalu pripada: (0, A), [A, B] ili (B, n)
Primer za vežbu: Unesi 3 prirodna broja 0 < A < B < n < 10000. Unesite zatim broj 0 < X < 10000 i ispitati kom intervalu pripada: (0, A), [A, B] ili (B, n)
Funkcije u jeziku C. Pročitati: Funkcije u C/C++
Primeri:
Funkcija za zamenu podataka: Napraviti funkciju koja menja dva učitana broja X i Y
Funkcija za zamenu elemenata niza: Učitati niz i dva cela broja x i y. Napraviti funkciju koja vrši zamenu elemenata niza na pozicijama x i y.
Zadaci
- Dvobojka-https://petlja.org/biblioteka/r/Zbirka2/dvobojka
- Aritmetički trougao - https://petlja.org/biblioteka/r/Zbirka2/aritmeticki_trougao
- Trobojka- petlja.org/biblioteka/r/Zbirka2/trobojka
Datum: 5.12.2020. Tema: Rekurzija
Rekurzija je metod u programiranju za rešavanje složenih problema iterativnim ponavljanjem određenog postupka(funkcije)koja rešava deo manjeg problema u tom složenom, koji se rešavaju ponavljanjem istog postupka(funkcije) više puta(rekurzivno).
Dati problem koji je složen se prvo podeli na više manjih problema, koje je lakše rešiti.Svaki taj potproblem se rešava nezavisno jedan od drugog i kada se svaki od nih reši, onda se ta rešenja kombinuju in a taj način rešava složen problem, od koga se pošlo.
Za razliku od petlji gde se određen postupak koji se ponavlja navodi u telu petlje, rekurzivni postupak je takođe iterativan, ali postupak koji se ponavlja je sam algoritam koji sam sebe poziva više puta direktno ili indirektno pozivanjem neke naredbe ili funkcije, koja onda poziva dati algoritam(funkciju).
Dati problem koji je složen se prvo podeli na više manjih problema, koje je lakše rešiti.Svaki taj potproblem se rešava nezavisno jedan od drugog i kada se svaki od nih reši, onda se ta rešenja kombinuju in a taj način rešava složen problem, od koga se pošlo.
Za razliku od petlji gde se određen postupak koji se ponavlja navodi u telu petlje, rekurzivni postupak je takođe iterativan, ali postupak koji se ponavlja je sam algoritam koji sam sebe poziva više puta direktno ili indirektno pozivanjem neke naredbe ili funkcije, koja onda poziva dati algoritam(funkciju).
Rekurzija primer: Izračunavanje stepena Xn
Xn=X*X*X* … *X= X*Xn-1 * X
Rešenje pomoću petlje:
int XN=1;
for(int i=0; i
{
printf("XN=%d\n",XN);
for(int i=0; i
XN=XN*X;
}printf("XN=%d\n",XN);
Rešenje pomoću rekurzije:
#include < iostream >
int stepen(int x, int n)
{
int main() {
using namespace std;
int stepen(int x, int n)
{
if(n==1)
}
return 1;
elsereturn x*stepen(x,n-1) ;
int main() {
int XN,X,N;
cin >> X;
cin >> N;
XN=stepen(X,N);
cout << XN << endl;
return 0;
}cin >> X;
cin >> N;
XN=stepen(X,N);
cout << XN << endl;
return 0;
Fibonacijev niz: 1 1 2 3 5 8 13 21 34 55….
U današnjoj lekciji potrebno je na strani: Fibonačijev niz
Uraditi sledeće zadatke :
Zadatak 1: Rekurzivni algoritam: Napraviti rekurzivni algoritam za određivanje n-tog elementa Fibonnacievog niza, a zatim za učitano n odrediti vrednost.
Zadatak 2:. Isti zadatak uraditi upotrebom petlji
Domaći zadatak
Uraditi sledeće zadatke :
Zadatak 1: Rekurzivni algoritam: Napraviti rekurzivni algoritam za određivanje n-tog elementa Fibonnacievog niza, a zatim za učitano n odrediti vrednost.
Zadatak 2:. Isti zadatak uraditi upotrebom petlji
Domaći zadatak
- Brojanje u igri žmurke- petlja.org/biblioteka/r/Zbirka2/brojanje_zmurke
- Trocifreni parni brojevi - petlja.org/biblioteka/r/Zbirka2/brojevi_trocifreni_parni
- Republicko 2015: https://petlja.org/biblioteka/r/Problems/FibonaciCifre
- Drugi na rang listi(uraditi rekurzijom): petlja.org/biblioteka/r/Zbirka2/drugi_na_rang_listi
- Broj i zbir cifara- petlja.org/biblioteka/r/Zbirka2/broj_i_zbir_cifara_broja
Datum: 12.12.2020. Tema: Složenost algoritma: Zamena iteracija formulom
Vreme izvršavanja nekog algoritamskog problema i te kako zavisi od načina na koji je taj algoritam rešen tj. od toga koliko je elementarnih operacija potrebno izvršiti da bi se problem do kraja rešio. Pročitaj više o tome na webstrani:
Zamena iteracija formulom
Zamena iteracija formulom
Uraditi zadatke sa webstrane: Zamena iteracija formulom-primeri
Datum: 19.12.2020. Tema: Složenost algoritma, rekurzija: Vežbanje
- Broj stringova koji počinju i završavaju sa 1- Zamena iteracija formulom-primeri
- Nedostajući broj - Zamena iteracija formulom-primeri
- Broj deljivih u intervalu: petlja.org/biblioteka/r/Zbirka2/broj_deljivih_u_intervalu
- Rastavljanje na proste činioce: petlja.org/biblioteka/r/Zbirka2/rastavljanje_na_proste_cinioce
- Drugi na rang listi(uraditi rekurzijom): petlja.org/biblioteka/r/Zbirka2/drugi_na_rang_listi
- Aritmetički trougao- Zamena iteracija formulom-primeri
Datum: 23.1.2021. Tema: Prosti brojevi. Faktorizacija
Upotreba Microsoft Teams platforme.
Efikasan algoritam za određivanje prostih brojeva. Algoritam faktorizacije brojeva. Pogledajte na strani:
Prosti brojevi i faktorizacija
Prosti brojevi i faktorizacija
Zadaci:
- Prost broj: Napisati program koji za učitani broj N odrediti da li je prost ili ne.
- Rastavljanje na proste činioce: Sa sajta petlja.org
- Rastavi. Sa sajta petlja.org(Opštinsko 2016)
Datum: 30.1.2021. Tema: Sortiranje nizova. Vektori(C++)
Poznate metode sortiranja niza u programskom jeziku C možete pročitati na web strani:
Sortiranje nizova
Sortiranje nizova
Više o vektorima, kao i funkciji sort pročitajte na strani Dinamički niz-vector
Zadaci:
- Sortiranje brojeva: Napisati program koji za učitani broj N učitava niz od n elemenata, a zatim ih uređuje u neopadajućem poretku i ispisuje na ekran.
- Sortiranje takmičara: Sa sajta petlja.org
- Najvredniji predmeti. Sa sajta petlja.org
Datum: 7.2.2021. Tema: Binarna pretraga. Opštinska takmičenja
Problemi pretraživanja zadatog elementa u nizu su problemi koji se mogu rešiti pomoću linearne pretrage, na neefikasan način, ako je u pitanju niz sa većim brojem elemenata i na mnogo efikasniji način pomoću binarne pretrage. Više o tome na strani Binarna pretraga
Zadaci:
- Pronalaženje zadatog karaktera: Napisati program koji sa standardnog ulaza unosi pomoću funkcije scanf nisku sa ne više od 20 karaktera i proverava da li niska sadrži znak @
- Pronalaženje zadatog karaktera-2: prethodni zadatak uraditi korišćenjem binarne pretrage
- Bar kodovi. Sa sajta petlja.org
- Broj parova datog zbira. Sa sajta petlja.org
Datum: 20.2.2021. Tema: Stringovi. Kvalifikacije za takmičenja
Rad sa tekstualnim podacima (stringovima). U jeziku C string je niz karaktera tipa char[] i koristi se datoteka cstring. U C++ stringovi su objekti, koji osim niza karaktera imaju i funkcije za rad sa stringovima. Pročitajte na strani Stringovi u C/C++ jeziku
Zadaci:
- Zapeta:
Postavka: Dat je niz ASCII karaktera, među kojima se pojavljuje tačno jedan znak “,” (zapeta) i na samom kraju tačno jedan znak “.” (tačka). Svi ostali znaci, ako ih ima, su slova engleske abecede, cifre, zagrade i razmaci i oni mogu da se ponavljaju.
Napisati program koji učitava dati niz karaktera, a na standardni izlaz ispisuje tekst u kome su deo do zapete i deo od zapete razmenili mesta, dok tačka ostaje na kraju teksta.
Ulaz: Na standardnom ulazu se u jednom redu nalazi niz od najviše 100 ASCII karak-
tera.
Izlaz: Na standardni izlaz ispisati izmenjeni niz karaktera.
Zadatak rešiti korišćenjem stringova u C++(funkcije: find_first_of, substr, find): Stringovi u C/C++ jeziku
Drugi način, rešenje preko vektora: Pogledati na sledećem linku: www.tutorialspoint.com/parsing-a-comma-delimited-std-string-in-cplusplus - Niska palindrom: Sa sajta petlja.org
- Horoskop. Sa 2. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja
- Artimograf. Sa 2. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja
Datum: 27.2.2021. Tema: Kvalifikacije za takmičenja. Mape u C++
Mape u C++ se koriste kao rečnik podataka, odnosno ako je potrebno podatke smestiti u kolekciju kao parove: ključ-vrednost. Više o tome pročitajte na web strani: Rečnik podataka-mape u C++
Zadaci:
- Dve police. Sa 2. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja
- Najveći broj od datih cifara. Sa 3. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja
- Prosek ocena-mape. Uneti imena učenika i njihove uspehe u školi, formirati rečnik podataka(mapu), a zatim ispisati sortirano od učenika sa najvećim do učenika sa najmanjim prosekom. Izračunati prosečan uspeh grupe. Dovršiti problem postavljen na strani Rečnik podataka-mape u C++
- Riziko. Sa 3. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja
- ATP pobednik. Sa 3. kruga kvalifikacija za okružno takmičenje 2019/2020. Tekst zadatka pročitati na strani Kvalifikacije za okružna takmičenja