Ljudi upomoc!
Mladjem bratu treba, a ja nemam pojma. Ako je neko voljan da pomogne, biću mu zauvek zahvalan...
imam par zadataka u Pascalu, pa ukoliko ima neko da može da resi nabrzaka neka se javi!
1. Napisati program koji će izracunati slobodan prostor na disketi ako se na nju snimi jedna datoteka odredjene velicine. Velicina datoteke i praznog prostora na disketi se izrazava u KB, a disketa je kapaciteta 1,44 MB.
2. Napisati program koji datom cetvorocifrenom broju određuje broj koji se dobija ispisom cifara u 
obrnutom poretku. Broj se unosi preko jedne promenljive. Uneti potrebne komentare.
3. Data su tri realna broja. Napisati program za ispitivanje koji od datih brojeva pripada 
intervalu (a,b). Velicine a i b su takođe date.
4. Napisati program koji racuna funkciju f na sledeci nacin:
f = } a² - cos(a)/3-b       za x≥3
      3*a/b                    za 0<x<3
      |b+1| - a                za x=0
      nije definisano       za x<0
gde je a=x/y i
          b=x-y
HVALA UNAPRED!!!
		
		
	 
Znači, ovako:
1. Važi da je 1 MB = 1024 KB. Dakle, 1,44 MB = 1474,56 KB. Rešenje je razlika ovog broja i unetog broja koji predstavlja veličinu datoteke. Pretpostavimo da je veličina datoteke manja od 1,44 MB.
	
	
	
		Kod:
	
	
		program zad1;
const
  kapacitet = 1474.56;
var
  velicina, rezultat : real;
begin  // glavni deo koda
  readln (velicina);                 // ulaz
  rezultat := kapacitet - velicina;  // dobijanje resenja
  writeln (rezultat, ' KB');         // izlaz
end.
	 
 
2. Koliko sam ja shvatio, ide nekako ovako:
n = 4513
4513 -> 3154
Ono što treba uraditi jeste dodeliti svakoj cifri posebnu promenjivu, tj. za ovaj primer izdvojiti 
a1 = 3; 
a2 = 1; 
a3 = 5; 
a4 = 4. Ideja izdvajanja cifara je ta da treba primeniti kombinacije operacija MOD i DIV. Postupak dobijanja svake od promenljivih može se obaviti na razne načine, a jedan od njih je:
a1 := n mod 10;
a2 := (n mod 100) div 10;
a3 := (n mod 1000) div 100;
a4 := n div 1000;
Svaki od ovih primera analiziraj.
Recimo da je broj koji treba da se ispiše 
m. Tada je 
m = 1000 · 
a1 + 100 · 
a2 + 10 · 
a3 + 
a4. Time je zadatak rešen!
Jedino ne znam gde su ti "obavezni" komentari - oni samo pomažu programeru da se u svom kodu snađe.
	
	
	
		Kod:
	
	
		program zad2;
var
  n, m           : integer;                 // n - polazni broj; m - izlazni broj
  a1, a2, a3, a4 : byte;                    // moze i integer ako ne zna koja je razlika
begin  // glavni deo koda
  readln (n);                               // ulaz
  a1 := n mod 10;                           // izdvajanje cifara
  a2 := (n mod 100) div 10;
  a3 := (n mod 1000) div 100;
  a4 := n div 1000;
  m := 1000 * a1 + 100 * a2 + 10 * a3 + a4; // resenje
  writeln (m);                              // izlaz
end.
	 
 
3. Ovo se radi preko običnog IF grananja. Recimo da se u prvoj liniji unose 
a i 
b, a u drugoj 
x, 
y i 
z. Tada bi jedan primer izgledao ovako:
Unesi granice intervala -> -3.4 11.58
Unesi tri realna broja -> 8.9 -7.1 5
Prvi broj pripada datom intervalu.
Drugi broj ne pripada datom intervalu.
Treci broj pripada datom intervalu.
Svaki od tri broja (x, y, z) treba da prođe kroz testiranje - da li pripada datom intervalu. Broj k pripada intervalu (m, n) (za n > m) ukoliko važe dve stvari:
I) k > m
II) k < n
Pretpostavljam da se u postavci zadatka podrazumeva da je a < b. Ako ne, to se lako može ispraviti zamenom njigovih vrednosti.
Moguće je uraditi i ovo: recimo da testiramo promenljivu x. Prvo ćemo napisati 'Prvi broj ' pomoću write (), a onda ćemo testirati da li x 
NE pripada intervalu (a, b). Ako ne pripada, onda u istom redu ispisuje 'ne '. Nakon te provere ispisujemo 'datom intervalu.' i prelazimo u novi red. Tada testiramo sledeću promenljivu.
Nepripadanje intervalu možemo uraditi na dva načina:
I) korišćenjem NOT u uslovu (not ((k > m) and (k < n)))
II). korišćenjem OR ((k ≤ m) or ( k ≥ n))
Ja ću koristiti ovaj prvi način. Takođe, radi čitljivosti, ostavio sam razmak između nekih delova koda.
	
	
	
		Kod:
	
	
		program zad3;
var
  a, b    : real;
  x, y, z : real;
begin  // glavni deo koda
  write ('Unesi granice intervala -> ');
  readln (a, b);
  writeln ('Unesi tri realna broja -> ');
  readln (x, y, z);
  write ('Prvi broj ');
  if not ((x > a) and (x < b)) then
    write ('ne ');
  writeln ('pripada datom intervalu.');
  write ('Drugi broj ');
  if not ((y > a) and (y < b)) then
    write ('ne ');
  writeln ('pripada datom intervalu.');
  write ('Treci broj ');
  if not ((z > a) and (z < b)) then
    write ('ne ');
  writeln ('pripada datom intervalu.');
end.
	 
 
4. Očigledno, da bismo odredili ovu funkciju f (x, y), nephodne su nam realne promenljive 
x i 
y. 

 Takođe, biće nam potrebne dve pomoćne promenljive, 
a i 
b. Rešenje će biti zaokruženo na četiri decimale. Sve ostalo je običan razgranat algoritam.
Međutim, zadatak je neodređen i ne kazuje šta treba da se radi u slučaju da je 
y = 0. Zato ću dodati još jedan uslov koji će, u slučaju da je y = 0, ispisati "nije definisano". Takođe, ukoliko je x = y i 0 < x < 3 opet imamo deljenje nulom.
Takođe, pošto je moguće da funkcije još nisu rađene, apsolutna vrednost zahteva još jedan IF.
Što se provere pripadnosti intervalu tiče, pogledaj rešenje prethodnog zadatka:
	
	
	
		Kod:
	
	
		program zad4;
var
  x, y : real;
  a, b : real;
  m    : real;
begin  // glavni deo koda
  readln (x, y);
  if y = 0 then
    writeln ('nije definisano')
  else
    begin
      a := x / y;
      b := x - y;
      if x < 0 then
        writeln ('nije definisano')
      else
        begin
          if x = 0 then
            if b + 1 < 0 then
              writeln (-(b + 1) - a : 0 : 4)
            else
              writeln (b + 1 - a : 0 : 4)
          else
            if (x > 0) and (x < 3) then
              if x = y then
                writeln ('nije definisano')
              else
                writeln (3 * a / b : 0 : 4)
            else
              writeln (sqr (a) - cos (a) / 3 - b : 0 : 4);
        end;
    end;
end.
	 
 
Nadam se da je ovo bilo od pomoći i da nije bilo konfuzno. 
