Algoritmi (zadaci 1-9)

Algoritam a1

Opisati/formirati algoritam koji ispisuje na izlaz poruku "Zdravo, svete!!!"

Na početku i na kraju savkog algoritma nalaze se simboli koji označavaju prekide: start i stop. Ovo su polazni i završni koraci svakog algoritma i svi ostali koraci se nalaze između njih.

shema

zdravo, svete

pseudo-jezik:
Algoritam Ispis
input: /*nema podataka sa ulaza*/
output: poruka /*Zdravo, svete!!!*/
{
output: " Zdravo, svete!!!"
}

programski jezik C:
#include <stdio.h>
main()
/*Zdravo, svete!!!*/
{
printf("Zdravo, svete!!!");
}

Ovo je bio primer algoritma sa linijskom strukturom, tj. pri izvršavanju takvog algoritma se kroz bilo koju njegovu granu prolazu najviše jednom.

 

Algoritam a2

Opisati algoritam koji za učitani broj sa ulaza ispisuje na izlaz poruku "Nije" ako vrednost broja nije 5, a u suprotnom ispisuje poruku "Uneti broj jednak sa 5"

shema

uslovno grananje

pseudo-jezik:
Algoritam Uslovi(a)
input: a /*broj sa ulaza -
algoritam je formiran tako da funkcioniše za bilo koji realan broj sa ulaza. Zbog toga se u algoritmu koristi promenljiva - ime koje označava promenljivu vrednost.*/
output: poruka
{
input: a;
/*Vrednost promenljive se može pročitati, promeniti, izdati na izlaz. U ovom slučaju se vrednost promenljive a čita. */
if (a=5) output: " Uneti broj jednak sa 5"
else output:"Nije"
}

U ovom algoritmu (blok-shemi) se može uočiti linija toka koja povezuje simbol uslovnog grananja i šemu dela programa koji se izvršava u slučaju istinitosti testiranog uslova ( na shemi označen sa YES ).

Linija toka koja povezuje simbol uslovnog grananja i šemu dela programa koji se izvršava u slučaju neistinitosti testiranog uslova ( na shemi označen sa NO ).

Algoritam a3

Opisati algoritam koji ispisuje na izlaz 10 puta poruku "Zdravo!"

shema

10 puta pozdrav

pseudo-jezik:
Algoritam CiklusIspis(a)
input:
output: poruka /*Zdravo!*/
{
i=1;
/*promenljiva i nije ni ulazna, ni izlazna, vec radna promenljiva. U ovom koraku promenljiva i dobija vrednost 1. */
output: " Zdravo"
while (i != 10)
{
i=i+1 ,br> /* U programiranju je moguće pisati i=i+1; , jer promenljiva predstavlja samo oznaku za vrednost koja se nalazi u memoriji računara. */
output: " Zdravo"
}

 

Možemo li skratiti kôd ?

Algoritam a4

Formirati/opisati algoritam koji za učitana dva broj sa ulaza ispisuje na izlaz njihov maksimum.

shema

max dva broja

pseudo-jezik:
Algoritam Max2Broja(x, y)
input: x, y /*broj sa ulaza*/
output: max
{
if (y>x) max=y
else max=x
output: max
}

Algoritam a5

Formirati/opisati algoritam koji za učitane nenula brojeva sa ulaza ispisuje na izlaz njihov zbir. Po dogovoru, zbir praznog niza brojeva je nula.

shema

zbir nenula brojeva

Broj 0 zovemo sentinelom.

Algoritam a6

Formirati/opisati algoritam koji za učitana dva prirodna broja m,n (m >= n) sa ulaza ispisuje na izlaz njihov proizvod koristeći samo operacije sabiranja i oduzimanja.

shema

proizvod bez operatora mnozenja

Algoritam a7

Formirati/opisati algoritam koji za učitana dva nenegativna cela broja sa ulaza ispisuje na izlaz njihov količnik i ostatak koristeći samo operacije sabiranja i oduzimanja. Voditi računa o deljenju nulom.

shema

celobrojno deljenje

Algoritam a7* - za domaci

Formirati/opisati algoritam koji za učitana dva nenegativna cela broja sa ulaza ispisuje na izlaz poruku da li je prvi broj faktor drugog broja. Koristiti samo operacije sabiranja i oduzimanja.

shema

pseudo-jezik:

Algoritam a8

Formirati/opisati algoritam koji za učitane koeficijente jednacina dve prave (oblika: y = ax + b) ispisuje na izlaz njihov presek ili odgovarajucu poruku ako su prave paralelne ili se poklapaju.

shema

odnos dve prave u ravni