PASCAL - Zadaci, resenja, problemi, izazovi...

Koliko ja vidim ovo ce iscrtati pravougli trougao, jer u svakom redu pise po jedan karakter vise...
nesto kao:
*
**
***
****
*****
******

Rekoh da je u pitanju prepravljeni JS kod, ako se stavi funkcija u center blok ispsivace se jednakokraki trougao,
U C# konzoli centrirati text se moze ovako:

Kod:
nt leftOffSet = (Console.WindowWidth / 2); 
 int topOffSet = (Console.WindowHeight / 2);
 Console.SetCursorPosition(leftOffSet, topOffSet);
 Console.Write("blbalablabla");
 Console.ReadKey();
 
Poslednja izmena:
За ASCII Art вам чак не треба позиционирање курсора. Математички може да се дефинише векторска слика као низ симетрично поређаних и све већих троуглова који чине јелку. Онда се та слика логички позиционира у центар платна 80 x 25*. Тиме још увек ништа није исцртано, само постоји модел, и величине платна су познате.

Да би се слика исцртала, креће се од позиције 1,1 и проверава се како то поље треба офарбати. Онда 2,1, па 3,1, итд.

Ако хоћете да јелка светлуца или да се нешто (пас?) врпољи око ње, требаће позиционирање курсора. :)

Знам да је JS пример дат са наменом да буде псеудо-код, али не могу да не приметим да у JS можемо да ђипимо и на WebGL.

* - Задњи пут када сам с овим радио, то је био QBASIC, он је могао 80 x 24, јер 25. ред прелази у нови ред.
 
Poslednja izmena:
Шта то је то, да(ва)ј свој OCC. :)

Мислим да данас може и боље од примера из 2007.

Да додам на пост. Мој пример може и овако да се напише:

Kod:
#include <stdio.h>
#define W(U) ma## in(U)
#define U 1
#define Y int


            Y
           j=1
          ,k=0,
         p;W(Y i
        ){return(
       (i%0120==U\
      &&i!=U)?++j,k
     =(!((j-2)&3))?j
    /2:k+U:0),p=(i%80
   )-U,putchar((p>=40-
  k&&p<40+k)?0x2d:42),(
     i==0x7d0)?0:W(i
          +U);}
 
Poslednja izmena:
evo, Misa stajl (skoro)
Kod:
#include <stdio.h>
#include <cstdlib>
#include <cstring>
#define Y int
#define W putchar
#define f for

Y pt(Y mw,Y l=0){
	f(Y i=0;i<=((mw/2)-l);W(0x20),i++);
	f(Y i=0;i<=l*2;W(0x2A),i++);W(0x0A);
	return (l==mw/2)?0:pt(mw,++l);
}
Y main(Y ac,char *av[]){
	(ac!=2)?printf("usage : %s tree_width\n",av[0]):pt(atoi(av[1]));
	return 0;
}

Kompajlirajte ovo (bez ikakvih flagova) i onda pokrenite u fazonu ./jelka.out 25

EDIT : evo i mini verzija, bez parametara :
Kod:
#include <stdio.h>
#define W(U) main(U)
#define Y int
Y mw = 25;
W(Y l){
  for(Y i=0;i<=((mw/2));putchar(0x20),i++);
  for(Y i=0;i<=l*2;putchar(0x2A),i++);putchar(0x0A);
  return (l==mw/2)?0:W(++l);
}
 
Poslednja izmena:
Шта то је то, да(ва)ј свој OCC. :)

Мислим да данас може и боље од примера из 2007.

Да додам на пост. Мој пример може и овако да се напише:

Kod:
#include <stdio.h>
#define W(U) ma## in(U)
#define U 1
#define Y int


            Y
           j=1
          ,k=0,
         p;W(Y i
        ){return(
       (i%0120==U\
      &&i!=U)?++j,k
     =(!((j-2)&3))?j
    /2:k+U:0),p=(i%80
   )-U,putchar((p>=40-
  k&&p<40+k)?0x2d:42),(
     i==0x7d0)?0:W(i
          +U);}

:worth:
 
Ako moze pomoc oko ovog zadatka, hitno je... pls.
Data je datoteka “odeljenje.dat” koja se sastoji iz sloga.Polja sloga su ime i ocene (ocene su date u nizu ocena(oko 5 ocena)).Napisati program koji izracunava srednju vrednost ocena odeljenja. Broj ucekija nije poznat.Formirati datoteku popravni koja sadrzi imena ucenika koji idu na popravni(oni koji imaju jednu ili dve negativne ocene). Formirana datoteka je tekstualna.
 
Да будем направо, тек сада ово видим. Пробао сам оба да компајлирам помоћу BCC32 и није прошло.

Првом треба stdlib због atoi. Други не пролази као C, пошто нема све параметре дефинисане на почетку функције. Не пролази ни као C++99, јер позива main у main.
 
Bio bi zahvalan ako bi neko mogao da uradi makar 1-2 od ovih zadataka
CdYIxza.jpg

Hvala
 

Back
Top