Задатак 1. Број људи.
Колико људи је присуствовало митингу?


Задатак 2. Паковање бомбона.
Који од предложених начина паковања бомбона је најефтинији? (Погледајте видео, https://www.101qs.com/3038)
Задатак 1. Број људи.
Колико људи је присуствовало митингу?
Задатак 2. Паковање бомбона.
Који од предложених начина паковања бомбона је најефтинији? (Погледајте видео, https://www.101qs.com/3038)
I ove godine tradicionalno S.Š. „Nikola Tesla“ organizuje aktivnosti sa kojima je dat doprinos obeležavanju međunarodnog događaja „Dan inteligencije 2022“.
Organizatori događaja su zajedno sa svojim učenicima pokušali da u toku oktobra upriliče aktivnosti koje stimulišu logički način razmišljanja u cilju prepoznavanja darovite dece i pojačan rad sa njima.
Umeće rešavanja realnih situacija iz svakodnevnog života je top veština savremenog sveta. Za rešavanje problema iz svakodnevnog života problem solveri, pojedinci ili grupe, koriste znanje koje je prethodno stečeno, razmatraju novonastalu situaciju na kritički i kreativan način i pronalaze više rešenja od kojih analizom i proverom bijaju najoptimalnije.
Pogledajte prezentaciju.
Problemi prema težini mogu da budu prosti i komleksniji, složeni. Prosti problemi rešavamo u „hodu“ dez da budemo svesni da koristimo problem solving u njihovom rešavanju. Kompleksni problemi zahtevaju koncentaciju posvećenost, a često i neizvesnost oko pronalaženja rešenja.
Za događaj „Dan inteligencije 20 22“ pripremljeni su prosti solving problemi za koje treba da se nađe rešenje koje omogućava automatsko rešavanje problema kodiranjem. Proste solving kodove kreiraju učenici ETR21 podeljeni u grupama. Svaka grupa rešava zadatke na origialan način koristeći solving problem veštine.
U prilogu su pripremljeni zadaci.
Učenici odeljenja ETR21 formiraju tročlane timove koje imaju originalne nazive i prepoznatljive logoe. Svaki tim se trudi da kreiraju programe u C++-u za postavljene probleme. Prethodno analiziraju više načina i opcije rešavanja problema. Kreiraju algoritam koristeći Veb 2.00 alat Floworithm, a zatim kod u radnom okruženju DEV C++. Proverom konstatuju određene ndostatke koda koje rešavaju u „u hodu“. Razvijaju svoje komunikacione, logičke, matematičke, lingvističke i problem solving veštine. Svaka grupa svoje ideje, obrazloženja, algoritme i kodove skladišti na gugl drajv i deli sa članovima komisije „Dan inteligencije“. (Članovi komisije su profesori računarstva i informatike i programiranja: Biljana Ivanović, Mirjana Radosavljević, Srboljub Milosavljević.) Najbolje rešenje se prestavlja na javnom času koji ima za cilj da prikaže najbolje segmente događaja koji su u prijavljeni i realizovani u okviru međunarodnog projekta „DAN INTELIGENCIJE“ sa ciljem da se stimuliše rad sa darovitim učenicima. Najbolja ekipa dobija zahvalnicu škole za doprinos aktivnostima upriličenih za pomenuti događaj.
Pogledajte kako postupno timovi dolaze do rešenja.
Video pokazuje faze u procesu rešavanja prvig solving problema.
Timu koji je imao najbolju implementiranu solving problem ideju dodeliće se zahvalnice.
Na oglednom času koji je održan 10.11.2022.god pobednički tim je prezentovao ideju realizacije C++ solvin problem kod. Učenicima su podeljene zahvalnice koje su kreirani kao dokaz angažovanja za međunarodni događaj „Dan inteligencije 2022“
Učenici G41 iz predmeta računarstvo I informatika, u okviru nastavne teme “Rad sa bazama podataka”, imaju zadatak da osmisle, projektuju I kreiraju bazu podataka. Etapno, prateći nastavno gradivo, na časovima ali I kući učenici podeljeni u grupe od po tri člana polako stvaraju bazu podataka koja je originalna i jedinstvena kreativno koncipirana i ažurirana u toku izrade. Projektni zadatak zahteva logički pristup rešavanja problema. Za kreiranje ER dijagrama koristi se Veb 2.00 alat Dijagrams.net. Za kreiranje bazu koristi se SUBP SQLites.
Za dan inteligencije na javnom čas učenici pokazuju kako na drugačiji način može da se utvrdi gradivo koristeći mape uma. Svaka grupa kreira koristeći Veb 2.00 alat Mind mapu uma koja predstavlja logičko objašnjenje postupka projektovanja, kreiranja I ažuriranja baze. Tročlana komisija sastavljena od profesora: informatike, srpskog jezika i likovne kulture vrednuju pretstavljene mape uma i nagrađuju najbolju mapu sa prigodnim skromnim poklonom.
Najbolja mapa uma:
Ako želite da pogledate ostale mape uma pogledajte video
Proces izrade projektnog zadataka koji osmišljava, projektuje i kreira bazu podataka.
Učeničkom timu čija mapa uma je najbolja idodeliće se zahvalnice.
Međunarodna svetska organizacija Mensa pokrenula je akciju „Dan inteligencije“ u cilju obeležavanja 1. Oktobar kao dan osnivanja Mense. Inače, Mensa je osnovana 1/10/1946. god u Oksfordu, UK.
Mensa Srbije kroz ovu aktivnost, kao projekat koji traje od 22/09/2019. do 10/10/2019. god, želi da ukaže na značaj stimulacije intelektualnih sposobnosti kod dece.
SŠ „Nikola Tesla“ priključila se akciji „Dan inteligencije“, prijavljujući dva događja, radionica „Alogoritmi i mozgalice“ i istraživanje o „Istorijskom razvoju računarskih sistema“. Nosioci aktivnosti su bili učenici ETR21 i G11 pod mentorstvom Biljane Ivanović, pedagoški savetnik, nastavnik računarstva i informatike i programiranja.
Radionica „Algoritmi i mozgalice“ promoviše mozgalice kao sredstvo koje stimuliše logički način razmišljanja što je veština koja je neophodna za buduće programere, učenike drugog razreda obrazovnog profila elektrotehničar računara.
Prezentacija je trasirala tok radionice. Fotografije prenose delić atmosfere.
Učenici G11 su istraživali isorijat informacionih sistema i dali svoju projekciju na dalji razvoj informacionih sistema sa njihovog stanovišta.
Veština koja se u 21. veku podrazumeva, osim čitanja i pisanja, jeste i digitalna pismenost. Da li su današnji učenici digitalno pismeni, iako pripadaju Z generaciji, iako su digitalni urođenici?! Velika količina dostupnih informacija i različiti izvori iz kojih potiču te informacije su dominantne karakteristike doba u kojem živimo. Da li učenici mogu da prepoznaju relevantne izvore i od njih stvore znanje? Učenici prvog razreda gimnazije, imaju za cilj da na svoj način prezentuju istorijski razvoj računarskih sistema uz maksimalno angažovanje digitalnih veština. Nastavna jedinica o istorijatu razvoja računarskih sistema je zastupljena u svim obrazovnim profilima. Kako je naša škola mešovita, 4. obrazovna profila, interakcija između učenika predavača i slušaoca se podrazumeva. Istraživanjem različitih izvora, od uđbenika do veb izvora, učenici imaju zadatak da nastavnu jedinicu prezentuju na multimedijalan način. Rad u grupama, sublimacija radova više grupa, uz neophodnu interaktivnost i funkcionalnu primenu učeničkih digitalnih kompetencija, je ishod koji očekujem.
„Arduino za osnovce“ je radionica koju smo pripremili i izveli ja i moji ućenici u okviru ovogodišnje Evropske nedelje programiranja.
Razvijanje algoritamskog načina razmišljanja kod učenika nižih razreda je prioritet za postavljanje fundamenta nastavnog predmeta računarstvo i informatika. Cilj radionice je upravo približavanje programiranja učenicima od prvog do četvrtog razreda na vizuelan način koristeći Arduino i praveći paralele sa stvarnim svetom i primena u svakodnevnom životu. Najbolji učenici odeljenja ETR41 i ETR31 su bili voditelji radionice.
Pripremljene prezentacije
Programiranje za osnovce Arduino
Delić atmosfere
Jedan oblik organizacije dinamičkog čuvanja podataka je jednostruko povezana lista. Lista prestavlja skup čvorova, elemenata, povezani pokazivačima u jednom smeru. Svaki čvor je strukturna promenljiva koja ima najmanje dva polja: jedno za čuvanje podataka, ili informacija o čuvanju podataka, drugo za čuvanje pokazivača na sledećeg čvora liste.
struct cvor
{
char inf;
struct cvor *sledeci;
};
struct cvor *pocetak_liste;
Na početak liste pokazuje pokazivačka promenljiva početak_liste. Krajnji čvor liste u elementu za vezu (sledeći) sadrži vrednost NULL. Ako je lista prazna početak_liste takođe, ima vrednost NULL.
Da bi formirali listu, prvo inicijaliziramo praznu listu dodelom
pocetak_liste=NULL;
Kako bi se kreirao prvi dinamički objekat (čvor liste), neophodno je da se dodeli memorijski prostor,
novi=new cvor;, gde je novi pokazivač na strukturu cvor
Dinamičkom objektu novi, mogu se dodeliti vrednosti
novi→inf= „A“;
novi→ sledeci=pocetak_liste;
Da bi promenljiva pocetak_liste pokazivala na početak, treba joj dodeliti vrednost promenljivve novi, pocetak_liste=novi;
Prostor za novi cvor liste se odvaja operatorom novi=new cvor;
Nakon novi→inf=“B“;
novi→sledeci=pocetak_liste; Informacioni deo čvora dobija vrednost, uključuje se u listu i to na njen početak
Da bi promenljiva pocetak_liste pokazivala na početak, ponavlja se dodela pocetak_liste=novi;
Pr.1
Formirati i ispisati jednostruko spregnutu listu?
Rešenje:
#include <cstdlib>
#include <iostream>
using namespace std;
/* Definicija cvora liste*/
struct cvor
{
char pod;
cvor* sledeci;
};
/*Funkcija za ispis liste*/
void ispis(cvor *tekuci)
{
while(tekuci!=NULL)
{
cout<<tekuci->pod<<;
tekuci=tekuci->sledeci;
}
return;
}
int main(int argc, char *argv[])
{
char ceo;
cvor *pocetni, *novi;
pocetni=NULL;
cout<<„Unesi sadrzaj liste“<<endl;
cout<<endl;
while ((ceo=getchar())!=’ ‘)
{
novi= new cvor;
novi->pod=ceo;
novi->sledeci=pocetni;
pocetni=novi;
}
ispis(pocetni);
system(„PAUSE“);
return EXIT_SUCCESS;
}
Pr. 2
Kreiraj i ispisi jednostruko spregnutu listu ciji elementi su celi brojevi?
Rešenje:
#include <cstdlib>
#include <iostream>
using namespace std;
/* Definicija cvora liste*/
struct cvor
{
int pod;
cvor* sledeci;
};
/*Funkcija za ispis liste*/
void ispis(cvor *tekuci)
{
while(tekuci!=NULL)
{
cout<<tekuci->pod<<endl;
tekuci=tekuci->sledeci;
}
return;
}
int main(int argc, char *argv[])
{
int ceo;
cvor *pocetni, *novi;
pocetni=NULL;
cout<<„Unesi sadrzaj liste“<<endl;
cout<<endl;
while (ceo!=9999)
{
cout<<„Unesi ceo broj kao element liste“<<endl;
cout<<„Za kraj unesi 9999″<<endl;
cin>>ceo;
if (ceo!=9999)
{
novi= new cvor;
novi->pod=ceo;
novi->sledeci=pocetni;
pocetni=novi;
cout<<endl;
}
}
ispis(pocetni);
system(„PAUSE“);
return EXIT_SUCCESS;
}
Pr.
Kreiraj jednostruko spregnutu listu pri čemu novi čvor se ubacuje na kraj liste?
Rešenje:
#include <cstdlib>
#include <iostream>
using namespace std;
/* definicija strukturnog podatka cvor*/
struct cvor
{
char inf;
struct cvor *sledeci;
};
void pisi (cvor *tekuci)
{
while (tekuci!=NULL)
{
cout<<tekuci->inf<<endl;
tekuci=tekuci->sledeci;
}
return ;
}
int main(int argc, char *argv[])
{
cvor *novi;
cvor *pocl=NULL;
cvor *krajl=NULL;
char ch;
cout<<„Ünesi sadryaj liste“<<endl;
while ((ch=getchar())!=’ ‘)
{
novi= new cvor;
novi->inf=ch;
if(pocl==NULL)
{
pocl=novi;
}
else
{
krajl->sledeci=NULL;
}
krajl=novi;
krajl->sledeci=NULL;
cout<<„Sadrzaj liste“<<endl;
pisi(pocl);
}
system(„PAUSE“);
return EXIT_SUCCESS;
}
Pr. 1.
Napravite program koji sumira elemente celobrojnog niza koristeći dinamičke nizove, alociranu memoriju?
Rešenje:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i,n, s=0;
cout<<„Unesi broj elemenata niza“<<endl;
cin>>n;
int *pniz= new int (n);
for( i=0;i<n;i++)
{
cout<<“ Unesi „<<i+1<<“ element niza „<<endl;
cin>>pniz[i];
s+=pniz[i];
}
cout<<“ Suma elemenata alociranog niza je s=“<<s<<endl;
delete[]pniz;
system(„PAUSE“);
return EXIT_SUCCESS;
}
Isti zadatak, ali uradjen korišćenjem funkcije suma koja unosi elemente alociranog, dinamičkog niza i iste sumira
#include <cstdlib>
#include <iostream>
using namespace std;
int suma(int *pniz, int duzina)
{
int i, s=0;
for( i=0;i<duzina;i++)
{
cout<<“ Unesi „<<i+1<<“ element niza „<<endl;
cin>>pniz[i];
s+=pniz[i];
}
return s;
}
int main(int argc, char *argv[])
{
int i,n, s=0;
cout<<„Unesi broj elemenata niza“<<endl;
cin>>n;
int *pniz= new int [n];
cout<<“ Suma elemenata alociranog niza je s=“<<suma(pniz,n)<<endl;
delete[]pniz;
system(„PAUSE“);
return EXIT_SUCCESS;
}
Pr. 2. Šta ispisuje sledeći program?
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a[]={0, 1, 2, 3, 4};
int *p;
int i;
for (p=a, i=0;p<&a[4];p++)
{
cout<<*p<<endl;
}
cout<<“ „<<endl;
for (p=&(a[0]), i=0;p+i<a+4;p++,i++)
{
cout<<*(p+i)<<endl;
}
cout<<“ „<<endl;
for (p=a+4, i=0;i<=4;i++)
{
cout<<p[-i]<<endl;
}
system(„PAUSE“);
return EXIT_SUCCESS;
}
Rešenje:
Dinamička dodela memorije omogućava rad sa nizovima čiji broj elemenata se definiše u toku izvršavanja programa. To je moguće zato što pokazivač na neki tip podataka može da pokazuje ne samo na memorijski prostor veličine jednog takvog podatka, već i na prostor proizvoljne veličine.
Pr. Napišite program koji:
Rešenje:
#include
#include
using namespace std;
/* funkcija unos unosi elemente prvog niza*/
int unos (int *pok, int vrednost)// funkcija vraca vrednost, prebrojava koliko elemenata je negativno
{
int br=0, i;
for (i=0;i<vrednost;i++) { cin>> pok[i];
if (pok[i]<0)
{
br++;
}
}
return br;
}
/* funkcija ispis ispisuje elemente niza*/
void ispis (int *pok, int vrednost)
{
int i=0;
cout<<„elementi niza“<<endl;
for (i=0;i<vrednost;i++)
{
cout<<pok[i]<<endl;
}
return;
}
/* funkcija koji kreira novi niz ciji broj elemenata zavisi od broja negativnih elemenata prvog niza*/
void noviniz (int *pok1, int *pok2, int vrednost)
{
int i, j;
i=0;
j=0;
for (i=0;i<vrednost;i++)
{
if (pok1[i]<0)
{
pok2[j]=pok1[i];
j++;
}
}
return ;
}
int main(int argc, char *argv[])
{
int n1, n2;
cout<<„Unesi velicinu prvog niza?“<<endl; cin>>n1;
int *pokazivac1=new int (n1);//alociranje prvog niza
n2=unos(pokazivac1,n1);// pozivom funkcije unos dobija se broj elemenata drugog niza
cout <<„U prvom nizu koji ima „<<n1<<“ elemenata, negativni su „<<n2<<“ elementi“<<endl;
cout<<“ „<<endl;
cout <<“ Prikaz elemenata prvog niza“<<endl;
ispis(pokazivac1,n1);// elemeni prvog niza
delete []pokazivac1;
int *pokazivac2= new int(n2);// alokacija drugog niza
noviniz(pokazivac1, pokazivac2, n1);//kreiranje drugog niza
cout <<“ Prikaz elemenata drugog niza“<<endl;
ispis (pokazivac2,n2);
delete [] pokazivac2;
pokazivac1=0;
pokazivac2=NULL;
system(„PAUSE“);
return EXIT_SUCCESS;
}
Izvor:
Korišćenjem naredbama za definisanje podataka vrši se statička dodela memorijskog prostora, što znači, u vreme prevođenja programa se zna broj podataka koji se koriste u toku izvršavanja programa.
Deklaracijom niza definiše se tačan, maksimalan, broj elemenata niza, što može dovesti do nepotrebno zauzimanje memorije. U slučajevima kada je velik broj podataka može se desiti da obrada bude nemoguća.
Deo memorije u koji se smeštaju statički definisani podaci naziva se statička zona memorije.
Ponekad, veličina memorije koja će se zauzeti se nemože specificirati. Primer, šta ako treba kreirati niz elemenata tipa student, a broj studenata se može otkriti samo za vreme izvršavanja programa, kao parametar koji je specificiran od strane korisnika?
Ovaj problem se rešava dinamičkimim alociranjem memorije. Deo memorije u kojem se vrši dinamička dodela prostora u vreme izvršavanja programa, naziva se dinamička zona memorije. Podaci u dinamičkoj zoni memorije nazivaju se dinamički podaci. Dinamički podaci stvaraju se na zahtev programera i postoje dok programer ne zatraži njihovo uništenje. Neophodno je brisanje dinamičke zone memorije, kako bi se oslobodio memorijski prostor koji je bio zauzet stvanjem iste.
C++ omogućava dinamičko alociranje memorije korišćenjem operatora new, ako je potrebno alociranje za jedan element ili new[n], ako je potrebno alociranje memorije za n elemenata. Rezultat ovih operacija je pokazivač do bloka memorije koji je rezervisan.
Veoma je bitno, nakon korišćenja rezervisane memorije, da se ista obriše. C++ briše alociranu memoriju pomoću operatora delete, za jedan element i delete[], za više elemenata.
Pr.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int *pniz;
pniz = new int;
*pniz = 2;
cout << *pniz << endl; //stampa ‘2’
delete pniz; // VAZNO
int N = 100;
pniz = new int[N]; //niz od 100 elemenata
pniz[5] = 3;
cout << pniz[5] << endl; //stampa ‘3’
delete [] pniz; // VAZNO!!!
system(„PAUSE“);
return EXIT_SUCCESS;
}
Alociranje memorije
Pr. Kreiranje anonimne promenljive
Nabrajanje konstante su celobrojne simbolicke konstante kojima su vrednosti dodeljene eksplicitno ili implicitno, nabrajanjem njihovih imena u jednom nizu. Skup odjednom nabrojenih konstanti cini jedno nabrajanje, koje se moze smatrati tipom podataka koji je definisao programer.
Definisanje nabrajanja:
enum ime_nabrajanja {IME_KONSTANTE=vrednost,
IME_KONSTANTE=vrednost,…};
Ime nabrajanja je identifikator koji sluzi za identifikaciju datog nabrajanja. Moze da se izostavi, ali kasnije nije moguce definisati podaci tipa nabrajanja.
IME KONSTANTE je identifikator, koji predstavlja po jednu simbolicku konstantu. Uobicajeno je da imena konstante se pisu samo velikim slovima.
Vrednosti pojedinih simbolickih konstanti mogu da se odrede konstantnim celobrojnim izrazima. Ako iza konstante nema =vrednost, konstanta ce imati vrednost koja je za jedan veca od predhodne konstante u nizu. Ako iza prvog identifikatora u nizu nema vrednosti, prva konstanta imace vrednost 0.
Pr.
enum {NE, DA};
enum { MIN=10, MAX=100, POZELJNO=20};
enum Kvartal1{JAN=1, FEB, MART, APRIL};
typedef enum {CRNA, SIVA, SMEDJA, CRVENA} Boja;
typedef enum Kvartal1 mesec=JAN;
Boja booja=CRVENA +2;
Unije su složeni tipovi podataka koji omogućavaju da se u isti memorijski prostor, u različitim trenucima, smeštaju podaci različitih tipova.
Unije se difinišu naredbom union, sve ostalo je kao i kod struktura, navode se polja koja su različitog tipa.
Za razliku od struktura, kod kojih sva polja imaju definisanu vrednost, kod unije samo jedno polje u datom trenutku ima definisanu vrednost, polje kome je posljednje dodeljena vrednost.
Ako se inicijalizira unija, u zagradama se stavlja samo jedna vrednost i ako se ne navede čija je vrednost, dodeljuje se prvom polju
Pr.
struct s { union u {
int i; int i;
float d; float d;
char *c; char *c;
}; };
Prikaz u operativnoj memoriji:
s: s.i, s.d, s.c -sizeof s, polja se smeštaju u operativnoj memoriji jednoza drugim i svakom od polja se može dodeliti vrednost. Veličina strukture je jednaka zbiru veličine polja.
U slučaju unije, sva polja se smeštaju počev od iste adrese. Dodela vrednosti jednog polja uništava ranije dodeljenu vrednost nekom drugom polju. Veličina unije odgovara veličini najvećeg polja. (u: u.i
u.d
u.c
– sizeof u)
Pr.1
typedef union u{
int i;
float f;
char c;
} u;
main()
{
u unija;
unija.c=’A’;
unija.i=5;
/* Dozvoljen je pristup samo poslednje dodeljenom clanu unije */
cout<<„Trenutna vrednost unije je,unija.i“<<unija.i; /* U redu je */
/* Pogresno bi bilo da se napise
cout<<„Trenutna vrednost unije je unija.c“<<unija.c;
*/
}
Pr.2
#include
#include
using namespace std;
union ceo_ili_realan{
int ceo;
float realan;
};
int main(int argc, char *argv[])
{
ceo_ili_realan x;
cout<<„Unesi ceo broj?“<<endl; cin>>x.ceo;
cout<<“ Unija ima vrednost „<<x.ceo<<endl;
cout<<„Unesi realan broj ?“<<endl; cin>>x.realan;
cout<<“ Unija ima vrednost „<<x.realan<<endl;
system(„PAUSE“);
return EXIT_SUCCESS;
}
dnevnik naše sekcije - za ljubitelje programiranja stvari
Neformalni blog za brzo obaveštavanje učenika i profesora Prve niške gimnazije "Stevan Sremac"
ИКТ у школи и настави
Access je interesantan...dovoljno je da se zainteresujete...
Nastava iz računarstva i informatike
Centar za školovanje u inostranstvu, Makedonska 30, Beograd 0615544199
--- seniori ---