Programiranje 1

Podela na grupe za praktikum (.pdf)
(na vežbe idu obe grupe zajedno svake nedelje) Konsultacije (29.11.2011.), getchar(): Dodatni čas pred kolokvijum, za obe grupe, biće održan u petak,
od 13 do 14h, u sali DLAB.
Čas je prevashodno namenjen vežbanju upotrebe funkcija putchar() i getchar().


Zadaci sa dodatnog časa:
  1. brojiSvasta.c, prebrojavanje malih slova, slova i cifara.
  2. brSlovaa.c, broj pojava slova a. Staje se kad se unese tačka.
  3. zagrade.c, provera da li je jednak broj otvorenih i zatvorenih uglastih zagrada. Staje se kad se unese tačka.
  4. ceoBroj.c, računanje vrednosti neoznačenog celog broja čije se cifre unose kao karakteri
  5. realan.c, računanje vrednosti neoznačenog celog ili realnog broja čije se cifre unose kao karakteri
DA NE
for(i=1; i<=n; i++) for(i=1, i<=n, i++)
for(i=1; i<=n; i++) for(i=1; i<=n; i++);
while(i<=n) while(i<=n);
printf("unesite a:\n"); printf("unesite a:\n", a);
scanf("%d %lf", &n, &x); scanf("%d %lf", n, x);

nizovi i funkcije, zadaci za vežbanje (iz skripte za I smer)
Rešenja: fibonacci.c

Još neki zadaci
I još neki zadaci...
Strukture
Opet stringovi
Neću više. Obećavam! :)

Preusmeravanje (redirekcija) ulaza i izlaza.

Program, npr. "prog.c" se piše na uobičajeni način, i prevodi na uobičajeni način: gcc -o prog prog.c
(eventualno uz opciju -lm ukoliko se koristi zaglavlje math.h)
  • Da bi "prog" čitao iz datoteke "ulaz.txt" umesto sa standardnog ulaza (tastature),
    program se pokreće sa:
    ./prog <ulaz.txt ("šiljak" je usmeren ka programu)
    Program piše na standardni izlaz.


  • Da bi "prog" pisao u datoteku "izlaz.txt" umesto na standardni izlaz (ekran),
    program se pokreće sa:
    ./prog >izlaz.txt ("šiljak" je usmeren ka datoteci).
    Program čita sa standardnog ulaza.


  • Moguće je istovremeno preusmeriti i ulaz i izlaz:
    ./prog >izlaz.txt <ulaz.txt
    ili
    ./prog <ulaz.txt >izlaz.txt
    Onda "prog" čita iz "ulaz.txt", a piše u "izlaz.txt".
Između < i imena ulazne datoteke može se pisati i blanko.
Takođe, između > i imena izlazne datoteke može se pisati blanko.


Operatori Asocijativnost
() [] -> .  sleva nadesno
! ~ ++ -- + - * & (type) sizeof  zdesna nalevo
* / %  sleva nadesno
+ -  sleva nadesno
<<  >>  sleva nadesno
< <= > >=  sleva nadesno
== !=  sleva nadesno
&  sleva nadesno
^  sleva nadesno
|  sleva nadesno
&&  sleva nadesno
||  sleva nadesno
?:  zdesna nalevo
= += -= *= /= %= &= ^= |= <<= >>=  zdesna nalevo
,  sleva nadesno


Reverse engineering

Rešenje jednog studenta (zadatak je sa kolokvijuma iz 2008.):

#include<stdio.h>
main()
{
   int k, n;
   printf(”Unesite broj n: \n”);
   scanf(”%d”, &n);
   for(n<=10; 0<k<=n; k!=1*2*3*4*…*(k-1)*k);
   printf(”k!=%d\n”, k!);
}

Nagradno pitanje: Kako je glasio tekst zadatka? :)







˙(0Ɩ=>u) ǝɹnʇɐʇsɐʇ ɐs oʇɐpɐz u ǝɾ ǝpƃ
(u=>ʞ>0) ʞ oʞɐʌs ɐz ¡ʞ ǝɾnsıdsı ıɾoʞ ɯɐɹƃoɹd ıʇıʌɐʇsɐs
:ɹoʌoƃpo

Verovali ili ne

(Odgovori na kolokvijumu 2012.)
  • Celobrojni tip u C-u je program ispisan brojevima.
  • Dejstvo naredbe continue je da nastavi pisanje programa.

    Zgodna neka naredba taj continue :)