<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5_2%2F%D0%91%D0%BB%D0%BE%D0%BA_2</id>
	<title>Програмирање 2/Блок 2 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5_2%2F%D0%91%D0%BB%D0%BE%D0%BA_2"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5_2/%D0%91%D0%BB%D0%BE%D0%BA_2&amp;action=history"/>
	<updated>2026-06-04T10:21:07Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5_2/%D0%91%D0%BB%D0%BE%D0%BA_2&amp;diff=722&amp;oldid=prev</id>
		<title>Ivan Pešić: dodati primeri</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5_2/%D0%91%D0%BB%D0%BE%D0%BA_2&amp;diff=722&amp;oldid=prev"/>
		<updated>2020-07-28T17:50:52Z</updated>

		<summary type="html">&lt;p&gt;dodati primeri&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Transponovanje matrice==&lt;br /&gt;
Sastaviti na jeziku C program za transponovanje pravougaone matrice celih brojeva. Program na početku učitava broj vrsta i kolona matrice, a zatim i same vrste matrice u zasebnim redovima. Matricu je neophodno smestiti u dinamičku zonu memorije. Postupak treba ponavljati sve dok se za dimenzije matrice ne unesu nekorektne vrednosti. Voditi računa o ispravnom korišćenju dinamičke memorije.&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    int row, col;&lt;br /&gt;
    int **matrix;&lt;br /&gt;
    int **transposed;&lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
        scanf(&amp;quot;%d %d&amp;quot;, &amp;amp;row, &amp;amp;col);&lt;br /&gt;
        if(row &amp;lt;= 0 || col &amp;lt;= 0)&lt;br /&gt;
            break;&lt;br /&gt;
        matrix = malloc(row*sizeof(int*));&lt;br /&gt;
        if(!matrix)&lt;br /&gt;
            exit(0);&lt;br /&gt;
        for(int i = 0; i &amp;lt; row; i++)&lt;br /&gt;
        {&lt;br /&gt;
            matrix[i] = malloc(col*sizeof(int));&lt;br /&gt;
            for(int j = 0; j &amp;lt; col; j++)&lt;br /&gt;
            {&lt;br /&gt;
                scanf(&amp;quot;%d&amp;quot;, &amp;amp;matrix[i][j]);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        transposed = malloc(col * sizeof(int*));&lt;br /&gt;
        for(int i = 0; i &amp;lt; col; i++)&lt;br /&gt;
            transposed[i] = malloc(row * sizeof(int));&lt;br /&gt;
        &lt;br /&gt;
        for(int i = 0; i &amp;lt; col; i++)&lt;br /&gt;
        {&lt;br /&gt;
            for(int j = 0; j &amp;lt; row; j++)&lt;br /&gt;
            {&lt;br /&gt;
                transposed[i][j] = matrix[j][i];&lt;br /&gt;
                printf(&amp;quot;%d&amp;quot;, transposed[i][j]);&lt;br /&gt;
                if(j != row-1)&lt;br /&gt;
                    putchar(&amp;#039; &amp;#039;);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
             putchar(&amp;#039;\n&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        for(int i = 0; i &amp;lt; col; i++)&lt;br /&gt;
            free(transposed[i]);&lt;br /&gt;
        free(transposed);&lt;br /&gt;
        &lt;br /&gt;
        for(int i = 0; i &amp;lt; row; i++)&lt;br /&gt;
            free(matrix[i]);&lt;br /&gt;
        free(matrix);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Rotacija niza==&lt;br /&gt;
===Prva funkcija===&lt;br /&gt;
Napisati funkciju na programskom jeziku C sa potpisom int are_equal(int *a, int *b, int count) koja proverava da li su dva niza a i b jednaka. Oba niza sadrže count elemenata. Ukoliko su nizovi jednaki povratna vrednost funkcije je 1, u suprotnom je 0.&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int are_equal ( int *a, int *b, int count ) {&lt;br /&gt;
    for(int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
    {&lt;br /&gt;
        int flag = 1;&lt;br /&gt;
        for(int j = 0; j &amp;lt; count; j++)&lt;br /&gt;
        {&lt;br /&gt;
            if(a[i] == b[j])&lt;br /&gt;
                flag = 0;&lt;br /&gt;
        }&lt;br /&gt;
        if(flag)&lt;br /&gt;
            return 0;&lt;br /&gt;
    }&lt;br /&gt;
    return 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Druga funkcija===&lt;br /&gt;
Napisati na programskom jeziku C funkciju void r_rotate_one(int *a, int count) koja rotira niz a čija je veličina count za 1 mesto udesno.&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void r_rotate_one ( int *a, int count ) {&lt;br /&gt;
    &lt;br /&gt;
    int val = a[count -1];&lt;br /&gt;
    &lt;br /&gt;
    for(int i = count; i &amp;gt; 0; i--)&lt;br /&gt;
        a[i] = a[i-1];&lt;br /&gt;
    &lt;br /&gt;
    a[0] = val;&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Treća funkcija===&lt;br /&gt;
Korišćenjem prethodno realizovanih funkcija napisati na programskom jeziku C funkciju int is_rotation(int *a, int *b, int count) koja proverava da li se prvi niz a može dobiti rotacijom drugog niza b za odgovarajući broj mesta udesno. Oba niza su dužine count. Povratna vrednost funkcije predstavlja broj mesta za koji je potrebno rotirati drugi niz, odnosno -1 ukoliko prvi niz nije moguće dobiti rotacijom drugog niza. &lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int is_rotation ( int *a, int *b, int count ) {&lt;br /&gt;
    for(int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
    {&lt;br /&gt;
        if(are_equal(a,b,count))&lt;br /&gt;
        {&lt;br /&gt;
            return i;&lt;br /&gt;
        }&lt;br /&gt;
        r_rotate_one(b, count);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    return -1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Četvrta funkcija===&lt;br /&gt;
Korišćenjem prethodno realizovanih funkcija sastaviti na jeziku C program koji učitava dva niza i ispisuje da li od drugog može doći do prvog niza primenom određenog broja rotacija udesno. Program najpre treba da pročita dužinu nizova, a zatim i same nizove. Program na kraju ispisuje koliko je rotacija potrebno da bi se od drugog niza dobio prvi niz. Voditi računa o ispravno korišćenju dinamičke memorije.&lt;br /&gt;
&amp;lt;syntaxhighlight lang = &amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    int size;&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;, &amp;amp;size);&lt;br /&gt;
    &lt;br /&gt;
    int *a = malloc(size*sizeof(int));&lt;br /&gt;
    int *b = malloc(size*sizeof(int));&lt;br /&gt;
    &lt;br /&gt;
    for(int i = 0; i &amp;lt; size; i++)&lt;br /&gt;
    {&lt;br /&gt;
        scanf(&amp;quot;%d&amp;quot;, a+i);&lt;br /&gt;
    }&lt;br /&gt;
    for(int i = 0; i &amp;lt; size; i++)&lt;br /&gt;
    {&lt;br /&gt;
        scanf(&amp;quot;%d&amp;quot;, b+i);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    int res = is_rotation(a,b,size);&lt;br /&gt;
    printf(&amp;quot;%d&amp;quot;, res);&lt;br /&gt;
    &lt;br /&gt;
    free(a);&lt;br /&gt;
    free(b);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Програмирање 2]]&lt;/div&gt;</summary>
		<author><name>Ivan Pešić</name></author>
	</entry>
</feed>