Monday, May 25, 2020

Програма за цртање PAINT

Преку овој пример, ќе видиме како може во Small Basic да се црта со помош на глувчето, користејќи настани и потпрограми:





Воочи: Програмата има две потпрограми (pocni и crtaj). Со потпрограмата pocni, се одредуваат координатите на глувчето според неговата позиција во моментот кога ќе се кликни на него. Со потпрограмата crtaj, се црта линија од почетната точка до друга точка каде што го придвижуваме глувчето. При тоа, ако кликниме и се движиме со левото копче од глувчето, се црта со зелена боја, а при клик на десното копче и движење на глувчето, се црта со сина боја.

Задача: Внеси ја програмата во Small Basic, изврши ја и пробај да црташ со притиснато лево иили десно копче. Ќе добиеш различни линии.
Обиди се да ставиш позадина на прозорчето и тоа, кога ќе црташ со левото копче, одбери жолта позадина, а кога ќе се црта со сина боја, одбери црвена позадина!

Monday, May 18, 2020

Примери за посложени алгоритми и програми

Пример: Ова е пример на програма која прикажува анимација во вид на топче кое се одбива од границите на прозорецот и при секое одбивање ја менува бојата.


GraphicsWindow .Width =450
GraphicsWindow .Height =450
GraphicsWindow .PenWidth =10

For m=1 To 5

      For x=0 To 200 Step 10
         GraphicsWindow . PenColor ="red"
         GraphicsWindow . BackgroundColor ="green"
         GraphicsWindow .DrawEllipse (0+x,200+x,50,50)
         Program .Delay (50)
         GraphicsWindow . Clear ()
     EndFor

     For x=0 To 200 Step 10

         GraphicsWindow . PenColor ="black"
         GraphicsWindow . BackgroundColor ="green"
         GraphicsWindow .DrawEllipse (200+x,400-x,50,50)
         Program .Delay (50)
         GraphicsWindow . Clear ()
    EndFor

    For x=0 To 200 Step 10
         GraphicsWindow . PenColor ="blue"
         GraphicsWindow . BackgroundColor ="green"
        GraphicsWindow .DrawEllipse (400-x,200-x,50,50)
        Program .Delay (50)
        GraphicsWindow . Clear ()
    EndFor

    For x=0 To 200 Step 10
          GraphicsWindow . PenColor ="yellow"
          GraphicsWindow . BackgroundColor ="green"
          GraphicsWindow .DrawEllipse (200-x,x,50,50)
          Program .Delay (50)
          GraphicsWindow . Clear ()
    EndFor

EndFor




Задача: Внесете ја програмата во Small Basic, извршете ја и обидете се да промените нешто во неа за да добиете слика и анимација по ваша креација. Експериментирајте со боите, формите, брзината,...

Monday, May 11, 2020

Еднодимензионални низи - Вежби

Решете ги дадениве задачи користејќи еднодимензионални низи:


Задача1: Напиши програма (квиз со прашања и одговори) со две низи, која во една низа сместува имиња на играчи - спортисти (фудбалери, ракометари,..), а во друга имиња на спортски клубови во кои игра избраниот играч, го брише екранот и по случаен избор поставува прашања за играчот, а вие давата одговор за клубот во кој тој играч игра.

Задача2: Напиши програма (квиз со прашања и одговори) со две низи, која во една низа сместува наслови на песни, а во друга имиња на изведувачи (пеачи) кои ја пеат соодветната песна, го брише екранот и по случаен избор поставува прашања за песната, а вие давата одговор за изведувачот на таа песна.

Бројот на прашања и одговори за двете задачи нека е најмалку 5.

Monday, May 4, 2020

Еднодимензионални низи

Дефинирање и декларирање на еднодимензионални низи

Еднодимензионалните низи претставуваат структура на податоци која многу често се користи во програмирањето. Најпрво ќе видиме која е потребата од користење на овие структури, а потоа и како се декларираат, дефинираат и користат еднодимензионалните низи.

Пример1: Анализа на пример програма во која се внесуваат повеќе податоци од ист тип кои потоа се користат во програмата. Односно, треба да внесеме 5 вида на јужно овошје кои се продаваат на нашиот пазар.

TextWindow.Write(“Vnesi juzno ovosje br.1:“)
ovosje1= TextWindow.Read ()
TextWindow.Write(“Vnesi juzno ovosje br.2:“)
ovosje2= TextWindow.Read ()
TextWindow.Write (“Vnesi juzno ovosje br.3:“)
ovosje3= TextWindow.Read ()
TextWindow.Write(“Vnesi juzno ovosje br.4:“)
ovosje4= TextWindow.Read ()
TextWindow.Write(“Vnesi juzno ovosje br.5:“)
ovosje5= TextWindow.Read ()
TextWindow.Write(“Na nasiot pazar se prodavaat slednite juzni ovosja: ")
TextWindow.Write(ovosje1+“, “+ovosje2+“, “+ovosje3+“, “+ovosje4+“,"+ovosje5+“, “)

TextWindow.WriteLine (““)

Што заклучуваме од овој пример на програмски код?

  • Програмскиот код е долг, се повторува истиот исказ за различна вредност на истиот тип на податок.


Што е подобро решение?

  • Наместо да се користи нова променлива за секој од податоците, податоците можат да се сместат во иста променлива која ќе додава различна ознака за секој нов податок.

Да запомниме:
  • Променливата која може да има повеќе од една вредност кои се различно означени се вика еднодимензионална низа или еднодимензионално поле.
  • Ознаките на податоците може да бидат бројни или текстуални и се викаат индекси
  • Податоците во низата обично се викаат и членови на низата.
  • Вредностите на членовите во низата може да бидат броеви или текстови.



Активност 1:Внеси ја пример програмата запишана со помош на низа и анализирај го кодот и излезот.


For i=1 To 5
     TextWindow . Write (“Vnesi juzno ovosje br.“+ i +“: “)
     ovosje[i] = TextWindow.Read ()
EndFor
TextWindow .Write (“Na nasiot pazar se prodavaat slednite juzni ovosja: “)
For i = 1 To 5
      TextWindow.Write (ovosje[i])
      if i<5 Then
          TextWindow.Write (“, “)
    EndIf
EndFor
TextWindow . WriteLine (““)

Воочи: Кое е името на низата? Како се означени членовите на низата? Колку членови има низата во програмата: Какви се вредностите на членовите; текстуални или бројни?

Активност 2: Напиши програма која внесува податоци за име, презиме и година на раѓање на 5 ученици од едно училиште.

For i=1 To 5

        TextWindow.Write (“Vnesi ime na ucenikot br.“ + i + “ : “)
        ime[i]= TextWindow.Read ()
       TextWindow.Write (“Vnesi prezime na ucenikot:“)
       prezime[i]= TextWindow .Read ()
       TextWindow.Write (“Vnesi ocenka po informatika na ucenikot:“)
       ocenka[i]= TextWindow .ReadNumber ()
EndFor
TextWindow . Clear ()
For i= 1 To 5
      TextWindow.Write (“Vnesi go redniot broj od 1 do 5 za ucenikot za koj sakas podatoci: “)
      indeks= TextWindow . ReadNumber()
      TextWindow . WriteLine (“Ucenikot “+ime[indeks]+“ “+prezime[indeks]+“ ima ocenka “ +   ocenka[indeks]+“ po informatika“)
EndFor


Размисли: Зошто е потребен исказот за бришење на екранот по внесување на податоци за членовите на низата?

Активност 3: Напиши програма (квиз со прашања и одговори) со две низи, која во една низа сместува имиња на држави, а во друга имиња на главни градови, го брише екранот и по случаен избор поставува прашања за главен град на секоја држава:

For i=1 To 5

      TextWindow.Write (“vnesi drzava:“)
      drzava[i]= TextWindow.Read ()
      TextWindow.Write (“Vnesi glaven grad:“)
      grad[i]= TextWindow.Read ()
EndFor
TextWindow.Clear ()
For i=1 To 5
      indeks= Math.GetRandomNumber (5)
     TextWindow.Write(“Koj e glaven grad na "+drzava[indeks]+“ ? ")
     odgovor= TextWindow.Read ()
    If odgovor = grad[indeks] Then
           TextWindow.WriteLine(“Odgovorot e tocen!“)
    Else
          TextWindow . WriteLine (“Odgovorot ne e tocen!“)
    EndIf
EndFor



Програма за цртање PAINT

Преку овој пример, ќе видиме како може во Small Basic да се црта со помош на глувчето, користејќи настани и потпрограми: Воочи: Пр...