ForumNeuro


Geri Git   ForumNeuro > Bilgisayar Dünyası > Programlama dilleri
Kayıt S.S.S Üye Listesi Ajanda Konuları Okundu İşaretle

Programlama dilleri ASP, Perl, Php, Html, Java gibi her tür programcılık dili için yardım...


Yanıtla
 
Forum Araçları Görüntüleme Biçimleri
Eski 24-10-2005, 23:23   #1 (permalink)
diko
Etkisiz Üye
 
Giriş Tarihi: 24-10-2005
Mesajlar: 22
Rep Gücü: 4
Rep Puanı : 15
diko Yavaş ama emin adımlarla geliyorum
Varsayılan C’de Temeller

C’de Temeller
Şimdi.Elinde builder bulunan arkadaşlar.Şu işlem sırasını izleyelim:
File>New>Console Wizard>WindowType Bölümüne(Console)Execution Type Bölünde(EXE)seçin ve oluşan unit.1cpp adlı
dosyanın içini külliyen silin(Builder 3 için)Buraya kodlarımızı yazacağız.
Builder 6 için ise: File>New>Other>Console Wizard>SourceType>C.Builder olmayan arkadaşlar compiler ın adnı yazın.Yanlız hiç birinize dev c++ onermiyorum.
Dersimize başlayalım.Aslıdan derslerimize Program Kontrol İfadeleri ile başlayacaktık ancak, 0 dan başlayan
arkadaşlarımız varmış.O yüzden bizde 0 dan başlayalımŞu kodları yazalım:

#include
main(){
printf("Merhaba");
return 0;
}

Bu program compile edildiğinde ekrana merhaba yazısını verir.
Yukarıdaki kodları sırasıyla inceleyelim şimdi:
#include bu satır bir kitaplık dosyasıdır.kitaplık dosyaları hep .h uzantılıdır.Bu kitaplk dosyaları içerisinde
girdi-çıktıların komutlarını içerisinde bulundurur.Zaten stdio açılımı standart input outputtur.printf bir outputtur.Programın başına


yazmadığımız sürece printf fonksyonu tanınmaz.Çünkü printf stdio.h içerisinde tanımlıdır.Her kütüphane dosyası içerisinde
farklı farklı fonksyonlar tanımlıdır.Yani kütüphane dosyaları her zaman karşımıza çıkacaktır.İlerde değişik fonksyonlara göre
farklı kütüphane dostlarıyla tanışacağız.Buradaki mantık anlaşılmıştır sanırım
İkinci satırdaki main() ise içine tüm fonksyonlarımızı yazacağımız bölümüdr.main i herzaman kullanacağız.main() yazdıktan

sonra
komutları açıp kapamış olduğumuz {} parantezleri içine yazacağız.Yani;
main()
{
Kodlarımız
}
şeklinde olacak.Ve geldik 3.satırdaki printf’e:Printf bunlar input output komutlardır.Bunları çook geniş olark anlatacam.Printf
ekrana çıktı vermek için kullanacağımız output tipinde tanımlı bir fonksyonudur
return 0 ise programın çıktısı olup olmadığını kontrol eder.Yanlız biz builder kullanıyoruz yani programlarımızın sonuna
return 0 ibaresini eklemzsek bir problem oluşmaz.Onemli bir nokta ise c de her fonksyondan sonra ";" işareti konmasıdır.
Her fonksyon sonunda muhakkak bulunur.Dikkat etmenizi istediğim diğer bir noktaysa c de büyük küçük har ayırımı vardır.
Eğer siz printf yerine Printf yazarsanız compiler hata verir.Ona göre))

Evet bu kodları yazdıktan sonra geldik compile olayına.Builder kullanan arkadaşlarımız once kodları yazdıkları unit1.cpp adlı
dosyamızı bir klasöre kaydetsinler.Ardından F9 tuşuna bastıkmı alın compile oldu işte exe dosyamız uniti kaydettiğimiz yerde
olacaktır.Ms-Dos komut sisteminden dosyayı kadettiğimiz dizine ulaşalım ve exe dosyamızı çalıştıralım.
Alın size çalıştı.Birdahaki derste görüşmek üzere buradaki mantıkları anlamanız onemli arkadaşlar.esasen .cpp uzantısı
c++ a aittir ancak on onemli değil bizler derlememizi yapabildiğimizden doalyı bir problem yok

Diğer compilerda compile ise:
Programımızı bir notpad de yazdıktan sonra bunu mesela "ilkprogramım.c" seklinde uzantısı .c olacak sekilde kaydediyoruz.
Sonra shell kullanıyorsak "gcc ilkprogramım.c" komutu ile compile ediyoruz.
Bulundugumuz klasorde a.out diye bir calıstırılabilir dosya olusucaktır. ./a.out yazarsanız program calısır.
exploit derleyenler bilirler Eger windowsda bi compiler kullanıyorsak.
Compilerın bulundugu klasore ilkprogramım.c yi atacaz ve compilerımızın kullanımına gore mesela
borland icin "bcc32 ilkprogramım.c" yazacaz komut isteminde.
(ama komut isteminde compilerın bulundugu klasore gelmemiz lazım once).
Sonra ilkprogramım.obj diye bi dosya olusturacak compiler.
Son adım olarak "make ilkprogramım.obj" yazarsak ilkprogramım.exe diye bi calıstırılabilir dosya olusucak.
Artık ilkprogramım.exe yazarak programı calıstırabiliriz.

arkadaşlar bir x değişkeni düşünelim.x in değeri herşey olabilir.harf,rakan,sayı.ama biz şu an oncelikle x i sayı değişkeni

olarak
tanımlayacağız.
İlk oğrendiklerimize şu kodları ekleyelim.

x=3;
printf(x);
Yukarıdaki kodları araya sokuverin.Daha sonra compile etmeye çalışın.Çalışın diyorum çünkü compile edemeyceksiniz.
Çünkü biz burada kafamıza göre bir harfe değer vermeye kalktık.c nerden bilcek bizim buna sayı değeri vereceğimizi,belkide
ben buraya harf değeri vercem.İşte c de böyle karışıklıklar olmaması için değişkenler vardır.Bizim en çok kullanacağımız

değişkenler:
int: integer tam sayı değişkeni
char: character yani harf değerleri
double ise virgüllü sayı.
Biz şimdilik tam sayı değiişkeni olan x üzerinde duracağız.Örn:
int x; diyerek bir x değişkeni tanımlayabilirz.Ama bu değişkenler üzerinde kontrol yapabilmemiz içide bazı operatörler vardır:
+:toplama ve birbirine ekleme operatörü
-:eksiltme
*:çarpma
/:bölme
%:bölmede kalanı verme.
=:değer atama ve eşitleme operatörü.Bizim şu an konumuz tam sayı olduğu için bunları bilmemiz şimdilik kafi

şu kodları yazalım:

#include

main(){
int x, y;
x=5;
y=x+1;
printf("%d",y);
}

Şimdi.İlk satırlardaki olayları geçen derste açıkladıdydık zaten.int x, y; diyerek x ve y tam sayı değişkeni olarak tanımladık.
x=5; diyerek = operaörüyle x e 5 değerini atadık.Daha sonra y=x+1; diyerek y’yi x değerinden +1 fazla ata dedik.
printf içerisinde "%d" gibi bir ifade var.Burada da ekrana y değerini verdikki programın çıktısı 6 olcaktır.
Burada ,y ile y tamsayısını oku denmektedir.
Peki buradaki %d ne oluyor???printf ile burada ekrana bir çıktı vermek istiyoruz yine.Ama sadece x bir tam sayıdır demek
yeterli değildir.printf e de okunacak olan değerin hakkında bilgi verek gerekir.Buda biçimleme belirteçleriyle olur:
%d:tam sayı oku
%c:karakter
%f:kayen noktalı sayı
%s:karakter katarı...
bunlar gibi bir çok belirteç var arkaşlar.sırası geldimi bunlarada değincez.buradaki %d de bir tam sayı oku demektir.Ynai
printf("%d", y); türkçe meali y tam sayısının değerini oku!Bu kadar basit arkadaşlar.Şimdi ise şu kodları yazalım ve derleyelim:

#include
main(){
int x;
scanf("%d",&x);
printf("x in degeri %d dir", x);
}

şimdi değerli öğrenciler))burada karşımıza şu ana kadar hiç çıkmayan bir fonksyon var . scanf. nedir bu scanf??
scanf input yani girdi alır.Yani bu nedemektir arkadaşlar scanf burada x e değer ataycaktır.Yani bir girdi alcaktır x değeri için.
Peki scanf in yapısını biraz inceleyelim:
Aynen printf gibi meali ise şöyle olabilir: "x in değeri için girdi al.x’e işle."zira program compile edilip çalıştırıldığında ekran

duracak
sizin bir değer girip enter basmanızı beklicekti.scanf içerisindeki &x ise değişik bir ifade.& "nın adresi"
gibi bir anlama sahiptir.x’e girilen değeri işlemek için & kullancas.Yani &x x’in adresi gibi bir anlama gelir.
sora grdiğiniz değeri tekrar size göstercektir.yani scanf printf gibi kullanılır şindiliki.
burada printf i biraz değişik kullandık."" işaretleri arasına cümle yazdık araya %d sıkıştırdık.Burada x değeri %d nin aldığı yere
çıktı olarak verilecektir.yani x’e 5 değeri verdiğinizi varsayarsak çıktı "x’in degeri 5 dir" olacaktır.yani bu araya cümle de

dıpabiliriz.

pritf kullanımında ki bazı inceliklere değincem şimdi.örneğin biz printf ile alt alta satırlarda yazı yazdırmak istiyoruz.İşte o

zaman
operatörünü kullancaz.Yani;
printf("amca amca");
çıktı şoyle olacaktır.
amca
amca

bu rada satırı alta geçirmek için kullancamız operatördür.%d yi zaten anlatmıştım ders ikide.Ama şole bir durum söz konusu
oldu diyelim:Ben printfe iki tan sayı yazdırmak istiyom.Hatırlarsanız %d olan kısma sayı değeri kendini yazdırırdı.
mesela şöyle bi şey desek:

int x=4, y=3;
printf("deger %d",y,x);

Burada c hangi değeri yazacakki %d ye sadece bir değeri oraya yazcak.o değerde y olacak neden çünkü ilk sırada y yer

alıyor.
Ama şu şekilde bir değişiklikle;
printf("deger %d %d",y,x);
dersek hem y hemde x değeri ekrana verilecektir.

scanf de de aynı şey geçerlidir:
scanf("%d", &y, &x ); gibi bir ifade yanlış olur.Bunun yerine
scanf("%d %d"&x,&y); ikisi içinde değerlerimizi girebiliriz.Eğer &y ile &x arasına "," koymasa idik değerleri 12 gibi yanyana
yazmak zorunda kalcaktık.

şimdi sıra geldi sorgu yapmak için kullanabileceğimiz kontrol ifadesi if-else yapısına;örneği inceleyelim.

if(i==3)
{
//işlemler dizisi
}

yukarıda if(i==3) diyerek eğer i 3 değerine eşitse { } parantezler arasındaki işlemleri gerçekleştir demektir.{ } arasına

işlemlerimizi
yazarız.birde else vardırki buda değilse olarak kullanılır yani;

if(i==3){
//işlemler dizisi
}
else{
//işlemler dizisi
}

burada i 3 değerine eşit olmadığı zaman else ifadesinin içerisindeki değerler işletilmeye başlanır.else değilse anlamına

getirilebiri.
if-else yapısını şu örneğimizle inceleyelim;

#include
main(){
int x=4;
if(x==5){
printf(" x 4 mus");
}
else{
printf("x 4 degilmis");
}
}

gibi.Sıra geldi switch e.Switch de aynen if gibi daha çok sorgulama işlemi yapmak için kullanılır.Yani örneğimize bakalım:

#include
main(){
int x;
scanf("%d", &x);
switch(x ){
case 1: printf("x 1 mis");
case 2: printf("x 2 imis");
case 3: printf("x 3 imis");
}
}

Yukarıyı sırasıyla inceleyek.ilk 4 satırı zaten biliyonuz.Gelelim switc(x) dedimiz yere.Burada switche kontrol etmesi gereken
değişkenin adını soledik daha sonra { } parantezleri içerisine case1: deidk.case 1 x 1 e eşitse demektir.yani case burada
sorgulama yapan kişidr))bir çok koşul ifadesi kullancağımız zaman switche başvurailiriz.

sıra geldi while döngüsüne.Döngü nedir derseniz kendisine verilen işlemleri tekrarlatılması gereken sayıda tekrarlayan
yapılar diyebiliriz.Örneğimizi inceleyebilirz.

#include
main(){
int x=0;
while(x<4){
printf("amca");
x++;
}
}

yukarıda while(x<4) dedik yani bu demektirki eğer x 4 ten küçükse x değeri 4 e eşit olana kadar ekrana amca yazdır.Hımm.
Bu durumda x i 4 e şitleyecek bi yapı olması lazım.While döngüsünün içine baltığımızda x++; görüyoruz.x++ demektirki
x in değerini her seferinde 1 artır.yani döngü her başa sardığında yazdır sora x değerini 1 artır.Yukarıdaki programı

çalıştırdığınızda
ekrana 4 tane amca yazısı gelcektir.

int deger, sayi;
deger=0;
while(deger<10){
sayi=deger+1;
printf(" deger % dir",sayi);
}

arkadaşlar hatırlarsanız bundan once sizlere while dongüsünü if-else switch yapılarını anlarmıştım.Bu dersimizde ise for

döngüsü
ve array yani dizilerden bahsedeceyim.
Şidi oncelikle örneğimizi inceleyelim:

int a;
for(a=0; a<4; a++){
printf("ferman");
}

Şimdi sırasıyla bu kısmı inceleycek olursak: a=0; dedik ve ardındanda a<4 dediik.Bu şu demek oluyor.Arkadaşlar biz dögüyü
4 kez tekrarlatmak istiyoruz.Yani eğer döngünün 3 kez tekrarlanmasını istiyor olsaydık a=1; a<4; yada a=0; a<3; gibi ifadelerde
kullanabilirdik.a=0 buradaki başlangıç değeridir.yani a eşitlenmesi gerekn sayıya eşitlenene kadar a++ diyerek

artırılabilir.Şimdi
for döngüsünü anlattığımıza göre döngüleri sonlandırmak için bir sonlandırma ifadesi kullanacağız.Bunun adı break.Bunu şu

şekilde
kullancaz.Örneğimizi inceleyelim:

int a=1, b;
for(b=0; b<4; b++){
if(a==1){
break;
}
printf("ferman");
}

Yukarıyı inceleyecek olursak for döngüsü içerisine birde if yapısı ekledik eğer a=1 ise break ile döngüyü sona erdirecek.Yani

ekrana
ferman çıktısı verilmeyecek.Bunun gibi birkaç program kontrol ifadeleri var ancak onları daha sonra göreceğiz.

Gelelim for döngüsünün çeşitlerine.Biz for döngüsü en sık yukardaki biçimde ve şu şekilde kullancağız.

for(;{
printf("ferman");
}

Yularıdaki döngümüzde for döngüsü içerisinde değişken v.s yok.Neden çünkü for döngüsü içerisindeki ;; sonsuz döngüyü

beliritr.
Yani yukardaki kodları derlenirse ekrana sürekli ferman çıktısı verilir.
for döngüsünde değişken döngü içersinde de tanımlanabilir.Örn:

for(int a=0; a<3; a++){
printf("ferman");
}

gibi.Yukarıdaki örnekte değişken for döngüsü içindedir.

-Array(Dizi)-
int a[20];
Yukarıdaki şekilde a adında 20 tane tam sayı değişken tutabilen bir array tanıttık.Esasen bunlar a[1] a[2] şeklinde gitmesi

lazımiken
ilk eleman[0] a atanıyor.Yani ikinci eleman a[1] de üçüncüsü ise a[2] de.Örneğin bu dizinin ilk elemanına bir değer atıyalım:
int a[0]=2;
Bu şekilde a[0] dizininin elemanını 2 yaptık.Şimdi basit bir program yapalım.Bizden üç tane tamsayı istesin ve bunlardan

2.dizideki
elemanı ekrana versin.

#include
main(){
int a[2];
for(int b=0; b<3; b++){
printf(" Bir sayi girin:");
scanf("%d",&a[b]);
}
printf("%d",a[1];
}

Şimdi yukarıdaki kodlarda aklınızı karıştıran yerler oldu sanırım ancak büyük ihtimalle. ve aklınızı en çok a[b]; bölümü

karıştırdı.
Oncelikle int a[2] diyerek üç tamsayı tutabiliecek bir dizi tanıttık.daha sonra for dongüsü ile 3 tane tam sayı girdisi alacağımız

için
döngüyü başlattık.sonra bu döngü içerisine scanf("%d",&a[b]); ifadesini koyduk.Neden???
Arkadaşlar bakın.örneğin 50 dizilik bir array tanıttığımız zaman her dizi için ayrı ayrı scanf kullanırsak olmaz.Adamın iflahı

kesilir.
Bu yüzden bakın burayı iyi anlamaya çalışın:
b=0 diyerek a[b] dedik yani b=0 olduğundan a[b]=a[0] olacaktır.Yani doğal olarak ilk girdiğimiz tamsayı a[0] a atanacaktır.
Daha sonra döngü başa donecek b++ ile b=1 olacak ve ardından a[1] dizisine girdiğimiz değer yazılcaktır.Aynı işlem b=2 için

de olcaktır.Yani
burada kısayol kullandık arkadaşlar.Bu ksımı anlamanız size yardımcı olacaktır.Yoksa aksi halde çok sayıda scanf ile
yakından arkadaşlığınız oluşacaktır

hatırlarsınız ki bundan onceki dersimizde dizileri görmüştük.Bu dersimizde ise stringleri gorebilirz demektir demektir bu.
Hatırlarsanız ders2 de değşkenlerden bahsetmiştik.int double float vs.vs.Ama bunların arasında char karşımıza

çıkmadı.Aslında
double ve float da çıkmadı ancak ama olsundouble ve float ondalıklı sayı için kullanılır.Neyse.char karakter harf tutmak için

kullanılan
bir değişkendi.E biz kelime ve cümlelerle uğraşacamıza göre bunları harf taşıyan dizilere yani stringlerle halledecez.Şimdi
bi stringimiz olsun ve içerisinde FermaN yazsın.int B[6]; gibi bir şekilde dizimizi tanıtmış oluyorduk.Peki stringlerimizi nasıl

tanıtacaz?_?
Tabiki aynı şekiin yandan yamiş şeklinde) char B[6]; şu anda elimizde 6 tane harf tutabilen bir stringimiz var.Şimdi buna

sırasıyla
harflerimizi yerleştirelim.

B[0]=’F’;
B[1]=’e’;
B[2]=’r’;
B[3]=’m’;
B[4]=’a’;
B[5]=’N’;
B[6]=’
diko is offline   Alıntı Yaparak Cevapla
Eski 02-01-2006, 15:28   #2 (permalink)
rxg
Onbaşı
 
Giriş Tarihi: 05-12-2005
Mesajlar: 12
Rep Gücü: 3
Rep Puanı : 49
rxg Yavaş ama emin adımlarla geliyorum
Varsayılan

Bu Çok Basİt OlmuŞ Senden Structlar Ve Poİntler Hakkinda Bİlgİ Rİca Edİyorum
rxg is offline   Alıntı Yaparak Cevapla
Eski 20-08-2006, 15:18   #3 (permalink)
metallica1164
Etkisiz Üye
 
Giriş Tarihi: 20-08-2006
Mesajlar: 2
Rep Gücü: 3
Rep Puanı : 10
metallica1164 Yavaş ama emin adımlarla geliyorum
Varsayılan

sturct {
char isim[];
char soyad[];
int yas;
} ogrenci;

yazıyon oluyo bitio
metallica1164 is offline   Alıntı Yaparak Cevapla
Eski 27-05-2007, 17:25   #4 (permalink)
catdog28
Onbaşı
 
Giriş Tarihi: 27-02-2007
Mesajlar: 13
Rep Gücü: 10
Rep Puanı : 2215
catdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya ben
Varsayılan

Saol iyi olmuş bu anlatım

Son Düzenleme catdog28 tarafından : 22-06-2007 at 12:00.
catdog28 is offline   Alıntı Yaparak Cevapla
Eski 27-05-2007, 18:13   #5 (permalink)
CaPTaiN_NeMo
Banned
 
Giriş Tarihi: 18-04-2006
Konum: Chiapas,Mexica
Mesajlar: 2,943
Rep Gücü: 0
Rep Puanı : 517101
CaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımazCaPTaiN_NeMo Beni kesseler acımaz
Varsayılan

Alıntı:
catdog28 tarafından gönderildi Mesajı Görüntüle
Ya arkdaşım. Bende borland c++builder 4 var
ama ben bunları yazdığımda eror: undefined object........ yazısı geliyo Yardımların için şimdiden teşekkürler
c++ derleyicisi c derlermi ?
CaPTaiN_NeMo is offline   Alıntı Yaparak Cevapla
Eski 21-06-2007, 23:17   #6 (permalink)
catdog28
Onbaşı
 
Giriş Tarihi: 27-02-2007
Mesajlar: 13
Rep Gücü: 10
Rep Puanı : 2215
catdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya bencatdog28 Ben var ya ben
Varsayılan

Daha yeni başladım. O yüzden bilmiyorum compiler diyordu ama onu hallettim teşekkürler başka bir program kullanmaya başladım. Ayrıca tekrar teşekkürler çok güzel anlatmışsın.
catdog28 is offline   Alıntı Yaparak Cevapla
Yanıtla


Forum Araçları
Görüntüleme Biçimleri

Gönderme Kuralları
Yeni konular açabilirsiniz --> izin yok
Yanıtlar gönderebilirsiniz --> izin yok
Eklentiler gönderebilirsiniz --> izin yok
Mesajlarınızı düzenleyebilirsiniz --> izin yok

vB koduAçık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Saat 13:45.

Porno

Powered by vB 3.6.7
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by 3.0.0
Tercüme Eden: ReSSaM

Reklam Vermek için ressam@gmail.com Adresine e-mail gönderiniz

For Advertising contact ressam@gmail.com




Forum
porno sex haber dizi izle dizi
1 2 4 5 6 7 8 10 11 12 13 14 15 16 22 23 24 25 29 30 31 32 33 34 35 36 37 38 39 44 45 46 47 48 50 51 52 53 54 59 66 70 77 78 83 84 85 86 87 88 89 90 91 92 94 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 115 116 119 120 124 125 126 127 128 130 131 132 133 134 135 136 137 138 140 141 143 144 145 146 147 148 149 150 151 152 153 154 159 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 240 249 250 251 253 256 257 260 267 268 269 270 272 273 274 275 277 278 279 280 281 283 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 306 307 309 310 312 313 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 346 347 348 349 351 352 353 354 356 357 358 359 360 361 362 363 364 365 366 367 369 370 371 372 373 374 402 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490