30 Aralık 2009 Çarşamba

24 Aralık 2009 Perşembe

Processing

www.reas.com

UCLA profesorlerinden biri olan Casey Reas'ın Processing kullanarak yaptığı çalışmalar

24 aralık sıralama

PROGRAM siralama;

USES crt;

VAR
Dizi1:ARRAY[1..5] of integer;
i,j, temp : integer;

BEGIN
clrscr;
WRITELN('5 adet tam sayi degeri giriniz');

for i := 1 to 5 do
READ(Dizi1[i]);


for j := 4 downto 1 do

begin

for i := 1 to j do
if(Dizi1[i] < Dizi1[i+1]) then
BEGIN
temp := Dizi1[i];
Dizi1[i] := Dizi1[i + 1];
Dizi1[i + 1]:= temp;
END;

end;



for i := 1 to 5 do
WRITE(Dizi1[i]:2,' ');
READLN;



READLN;
END.

17 Aralık 2009 Perşembe

17 Aralık- Dizinin Elemanlarının Ortalaması ve Sıralama

5 elemanlı bir dizinin elemanlarını gerçek sayı olarak klavyeden girelim.
Dizinin:
a) En buyuk elemanını;
b) En kucuk elemanını;
c) Elemanlarının ortalamsını ekrana yazdıran bir program yazalım.

d) Diznin elemanlarını buyukten kucuge dogru sıralayalım.

Ekrana carpi yazdirilmasi

program yildiz;
var i,j : integer;
begin
for i := 1 to 15 do
begin
for j := 1 to 15 do
begin
if (i = j) or (i + j = 16) then
write ('*') else write('-');
end;
writeln;
end;
readln;
end.

YILDIZ-4

aynı şeklin ayarlısı:

PROGRAM YILDIZ;
USES CRT;
VAR i, j, a :INTEGER;

BEGIN
CLRSCR;

WRITELN('KLAVYEDEN TEK BIR SAYI GIRINIZ');
READ(a);

FOR
i:=1 TO a DO
BEGIN
FOR j:=1 TO a DO
BEGIN
IF (j=(a+1)/2) OR (i=(a+1)/2) THEN
WRITE('*')
ELSE
WRITE('-');
END;
WRITELN();
END;

READLN;
READLN;
END.

YILDIZ-4

---*---
---*---
---*---
*******
---*---
---*---
---*---

İÇİN;


PROGRAM YILDIZ;USES CRT;VAR i, j :INTEGER;
BEGINCLRSCR;
FORi:=1 TO 7 DO
BEGIN
FOR j:=1 TO 7 DO
BEGIN
IF (j=4) OR (i=4) THEN
WRITE('*')
ELSE
WRITE('-');
END;
WRITELN();
END;

READLN;
END.

17.12.2009 Dizilerle ilgili ornekler

For döngüleri ve dizileri kullanarak aşağıdaki oruntuleri ekrana ve dosyaya yazdıralım.



----*
---**
--***
-****
*****


-****
-****
--***
---**
-----

----*----
---***---
--*****--
-*******-
*********


---*---
---*---
---*---
*******
---*---
---*---
---*---

********
*------*
*------*
*------*
*------*
*------*
********

a[]= { 4, 8, 3, 1, 18, 9, 21, 20, 5, 17}

****
********
***
*
******************
*********
*********************
********************
*****
*****************



1 2 3
4 5 6
7 8 9
10 11 12



1 1 1
2 2 2
3 3 3
4 4 4
5 5 5


1 2 3
1 2 3
1 2 3
1 2 3
1 2 3

10.12.2009-Dizideki Maksimum Sayıyı Bulma

PROGRAM MAKSIMUM;
TYPE SAYI= ARRAY[1..5] OF INTEGER;
VAR DIZI: SAYI;
i, max: INTEGER;

BEGIN


WRITELN('5 SAYI GIRINIZ.');
FOR i:= 1 TO 5 DO
READLN(DIZI[i]);

max:=DIZI[1];

FOR i:= 1 TO 5 DO
BEGIN
READLN(DIZI[i]);
IF DIZI[i] > max THEN
max := DIZI[i];
END;

WRITLN('EN BUYUK SAYI= ', max);

READLN;
END.

10 Aralık 2009 Perşembe

Mario'nun Pascal Hali

Mario Dosyasının Pascal Grafik komutları kullanarak oluşturulan görüntüsü

Dizilerle İlgili Çeşitli Görseller


Kunsthaus, Graz




Başka bir örnek...!

Diziler-Dosya OKuma-Yazdırma












gorsellerin uyarlandigi kaynak: http://www.abitare.it/events/grid-pattern-grid-pattern-grid-pattern/


veri1.txt
6 6

1 1 1 2 1 2
0 0 2 1 2 1
1 1 1 2 3 2
0 2 1 3 0 1
2 1 2 3 0 3
1 3 2 3 3 2

veri2.txt
3 3

1 2 3
3 2 1
2 1 3

Matrisle Tanım Tekniği ve Diziler



Yukaridaki gorsele iliskin yapilmasi beklenen şunlardır:
(a) renk farkliligi bilgisini iceren veri dosyasinin olusturulmasi;
(b) bu verilerin dosyadan okunarak, renklerin hangi oranlarda bulundugunun hesaplatilarak baska bir dosyaya yazdirilmasi.
Örnek:
Beyaz: % XXX oranında,
Kırmızı: % XXX oranında,
Turuncu : % XXX oranında,
Siyah: % XXX oranında kullanılmıştır.

6 Aralık 2009 Pazar

ÖDEV-3





veri dosyasinda yer alacak olan bolum:

23 5

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1


0.8 2.15 1.5 2.15 1.5 2.15 1.5 2.15 1.5 2.15 1.5 3 1.5 2.15 1.5 2.15 1.5 2.15 1.5 2.15 1.5 2.15 0.8

1.5 0.425 1.075 2.75 0.7

sonuc dosyasinda istenenler:
- duvarın opak kısmının (1 nolu bölgelerin) alanı
- duvarın saydamlık oranı ( boş alanların toplam alana oranı)
- duvardaki kapı ve pencere oranları

5 Aralık 2009 Cumartesi

Pascalda Dosyalama ,yazdırma-okutma,bir dosyadan digerine işlem yaparak aktarma.

Program ORNEK1;

uses crt;

var n1,n2:integer;
veri1:text;

begin

clrscr;

writeln('Program basladı');
assign(veri1,'D:/DATA.txt');
reset(veri1);
repeat
readln(veri1,n1);
writeln(n1);
until eof(veri1);{Until end of file=until eof=Kontrol amaçlı}
writeln('Program sonuclandı');
close(veri1);
readln;

end.

Program ORNEK2;

uses crt;
var n:integer;
sonuc1:text;
begin
clrscr;

writeln('Program basladı');
assign(sonuc1,'D:/cikti.son');
rewrite(sonuc1);
writeln(sonuc1,'Program basladi');
writeln('Program sonuclandı');
close(sonuc1);
writeln('Bir tusa basınız');
readln;

end.

Program ORNEK 3;

var n1,n2:integer;
sonuc1,veri1:text;
TOP,CARP:integer;
begin

writeln('Program basladı');
assign(veri1,'D:girdi.txt');
reset(veri1);
assign(sonuc1,'D:/cikti.abc');
rewrite(sonuc1);
readln(veri1,n1);
readln(veri1,n2);
TOP:=n1+n2;
CARP:=n1*n2;
writeln(sonuc1,' 2 sayinin toplam');
writeln(sonuc1,TOP:6);
writeln(sonuc1,' 2 sayinin carpim');
writeln(sonuc1,CARP:6);
close(sonuc1);
close(veri1);
writeln('Bir tusa basınız');
readln;

end.

Program ORNEK1;

uses crt;

var n1,n2:integer;

veri1:text;
begin

clrscr;

writeln('Program basladı');

assign(veri1,'D:/DATA.txt');

reset(veri1);

repeatreadln(veri1,n1);

writeln(n1);

until eof(veri1);

writeln('Program sonuclandı');

close(veri1);

readln;
end.

Program ORNEK2;

uses crt;

var n:integer;

sonuc1:text;
begin

clrscr;

writeln('Program basladı');

assign(sonuc1,'D:/cikti.son');

rewrite(sonuc1);

writeln(sonuc1,'Program basladi');

writeln('Program sonuclandı');

close(sonuc1);

writeln('Bir tusa basınız');

readln;
end.

Program ORNEK 3;

var n1,n2:integer;

sonuc1,veri1:text;
TOP,CARP:integer;

begin
writeln('Program basladı');

assign(veri1,'D:girdi.txt');

reset(veri1);

assign(sonuc1,'D:/cikti.abc');

rewrite(sonuc1);

readln(veri1,n1);

readln(veri1,n2);

TOP:=n1+n2;

CARP:=n1*n2;

writeln(sonuc1,' 2 sayinin toplam');

writeln(sonuc1,TOP:6);

writeln(sonuc1,' 2 sayinin carpim');

writeln(sonuc1,CARP:6);

close(sonuc1);

close(veri1);

writeln('Bir tusa basınız');

readln;
end.

3 Aralık 2009 Perşembe

Matris kullanarak tanımlanan bir planın Pascal'a okutulması ve sonuçlarının bir dosyaya yazdırılması

Girdi Dosyası (plan.txt)

6 6
1 1 1 1 1 1
1 2 2 1 3 3
1 2 2 1 1 1
1 2 2 1 1 6
1 1 1 5 1 6
1 4 1 1 1 1


0.2 4.5 0.2 2.0 1.2 2.0
0.2 0.5 0.2 2.0 1.2 7.0

____________________________________________

Pascal Kodu

program alan;
uses crt;
type kat=array[1..30,1..30] of integer;
dizi=array[1..30] of real;
var m:kat;
x,y:dizi;
i,j,is,js:integer;
t,top,t1,t2,t3,t4,t5,t6:real;
plan,cikti:Text;
begin
clrscr;
assign(plan,'z:plan.txt');
assign(cikti,'z:cikti.txt');
reset(plan);
rewrite(cikti);
read(plan,is,js);
writeln(cikti,'sonuclar');
write(cikti,'is ve js degerleri:');
write(cikti,is:2,js:2);
writeln(cikti);
writeln(cikti,'konutun plan duzeni:');
for i:= 1 to is do
begin
for j:= 1 to js do
begin
read(plan,m[i,j]);
write(cikti,m[i,j]);
end;
writeln(cikti);
end;
write(cikti,'x[j]:');
for j:=1 to js do
begin
read(plan,x[j]);
write(cikti,x[j]:6:1);
end;
writeln(cikti);
write(cikti,'y[i]:');
for i:=1 to is do

begin
read(plan,y[i]);
write(cikti,y[i]:6:1);
end;
writeln(cikti);
t1:=0;
t2:=0;
t3:=0;
t4:=0;
t5:=0;
t6:=0;
for i:=1 to is do
begin
for j:=1 to js do
begin
if m[i,j]<>0 then
t:=x[j]*y[i];
case m[i,j] of
1:t1:=t1+t;
2:t2:=t2+t;
3:t3:=t3+t;
4:t4:=t4+t;
5:t5:=t5+t;
6:t6:=t6+t;
end;
end;
end;
top:=t1+t2+t3+t4+t5+t6;
writeln(cikti,'duvar alani:',t1:6:2);
writeln(cikti,'sirkulasyon alani:',t2:6:2);
writeln(cikti,'yasama alani:',t3:6:2);
writeln(cikti,'banyo alani:',t4:6:2);
writeln(cikti,'yatak odasi alani:',t5:6:2);
writeln(cikti,'cocuk odasi alani:',t6:6:2);
writeln(cikti,'toplam alan:', top:6:2);
writeln('program sona erdi');
close(cikti);
close(plan);
readln;
end.

____________________________________________


Çıktı Dosyası (cikti.txt)

sonuclar
is ve js degerleri: 6 6
konutun plan duzeni:
111111
122133
122111
122116
111516
141111
x[j]: 1.0 1.0 1.0 1.0 1.0 1.0
y[i]: 0.2 4.5 0.2 2.0 1.2 2.0
duvar alani: 31.80
sirkulasyon alani: 13.40
yasama alani: 9.00
banyo alani: 2.00
yatak odasi alani: 1.20
cocuk odasi alani: 3.20
toplam alan: 60.60