© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma.

Slides:



Advertisements
Benzer bir sunumlar
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Advertisements

Yrd. Doç. Dr. Mustafa Akkol
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Diferansiyel Denklemler
Değişkenler ve bellek Değişkenler
Göstericiler (Pointers)
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
FAKÜLTE/BÖLÜM/ YÜKSEKOKUL ADI STRATEJİK PLANLAMA SUNUMU Not:Süreçler değişebilir…
KİŞİSEL KAMP MALZEMEN Kamp malzemelerini şu ana başlıklar altında düşünebilirsin. Uyku malzemesi Yemek malzemesi Temizlik malzemesi Zorluklara karşı hazır.
1 2 HE in General …………… EM…………… EM Projects …………….. VenueVenue MEU KYK Info on EM in General Yüksek Lisans ve Doktora Programları İçin Hareketlilik.
Atlayarak Sayalım Birer sayalım
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
String Kütüphanesindeki Arama Fonksiyonları
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Bölüm 10 Yapılar ve Birleşimler
Prof. Dr. Leyla Küçükahmet
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
Bölüm 3 – Yapısal Programlama
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
Gün Kitabın Adı ve Yazarı Okuduğu sayfa sayısı
TÜRKİYE KAMU HASTANELERİ KURUMU
İL KOORDİNASYON KURULU I.NCİ DÖNEM TOPLANTISI
Matematik 2 Örüntü Alıştırmaları.
MATRİSLER ve DETERMİNANTLAR
PROTOKOL.
HABTEKUS' HABTEKUS'08 3.
Anadolu Öğretmen Lisesi
Mukavemet II Strength of Materials II
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Nesne.
Chapter 6: Using Arrays.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Gelişmiş Envanter Uygulaması.
Yard. Doç. Dr. Mustafa Akkol
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Fonksiyonlar –Programı modüler hale getirir –Yerel değişkenler,
Bölüm 5 - Fonksiyonlar index 5.1 Giriş 5.2 C de Program Modülleri
Strateji Geliştirme Başkanlığı 1 DÜNYA EKONOMİSİ REEL SEKTÖR.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bu derste şunları öğreneceğiz: –CheckBox es kullanımı.
Bölüm 6 - Diziler indeks 6.1 Giriş 6.2 Diziler
Diferansiyel Denklemler
Bölüm 7 - Göstericiler İndeks 7.1 Giriş
1 DEĞİŞMEYİN !!!
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
Bankacılık sektörü 2010 yılının ilk yarısındaki gelişmeler “Temmuz 2010”
AB SIĞIR VE DANA ETİ PAZAR DURUMU 22 Ekim AB TOPLAM BÜYÜKBAŞ HAYVAN VARLIĞI CANLI HAYVAN May / June SURVEY CANLI HAYVAN May / June SURVEY.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 5.1 Test-Driving the Inventory Application.
Bölüm 4 – C’de Program Kontrolü
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 6 - Diziler indeks 6.1Giriş 6.2Diziler 6.3Dizilerin.
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
Bölüm 8 - Karakterler ve Dizgiler
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Veri.
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Bölüm 5 - Fonksiyonlar index 5.1 Giriş 5.2 C de Program Modülleri
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Faiz Hesaplama Uygulaması Amaçlar Bu derste öğrenilecekler:
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
1.HAFTA 26 Ağustos 2009 ÇARŞAMBA 2.HAFTA 01 EYLÜL 2009 SALI 3.HAFTA 09 EYLÜL 2009 ÇARŞAMBA 4.HAFTA 15 EYLÜL 2009 SALI 5.HAFTA 23 EYLÜL 2009 ÇARŞAMBA 6.HAFTA.
1.HAFTA 26 Ağustos 2009 ÇARŞAMBA 2.HAFTA 01 EYLÜL 2009 SALI 3.HAFTA 09 EYLÜL 2009 ÇARŞAMBA 4.HAFTA 15 EYLÜL 2009 SALI 5.HAFTA 23 EYLÜL 2009 ÇARŞAMBA 6.HAFTA.
ECHİNODERMATA Kambriyen – Güncel tümüyle denizel Filum
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 11 – Dosya İşleme Outline 11.1Giriş 11.2Veri.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 9 – Araba Ödeme Hesaplaması Uygulaması Bu.
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
Sunum transkripti:

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Bölüm 10 - Yapılar, Birlikler, Bit İşleme ve Sayma Sabitleri (Enumarations) Taslak 10.1 Giriş 10.2 Yapı Tanımlamaları 10.3 Yapılara İlk Değer Atamak 10.4 Yapı Elemanlarına Ulaşmak 10.5 Yapıları Fonksiyonlarla Kullanmak 10.6 Typedef 10.7 Örnek: Yüksek Performanslı Kart Karma ve Dağıtma 10.8 Birlikler (Unions) 10.9 Bit Operatörleri Bit Alanları Sayma Sabitleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 2 Bu dökümanda,aşağıdaki konular gösterilecek: –Yapıları, birlikleri ve Sayma sabitlerini oluşturup kullanabilmek. –Yapıları fonksiyonlara değere göre çağırma ve fonksiyona göre çağırma yöntemleri ile kullanabilme –Bit operetörlerini veriler üzerinde kullanabilmek. –Verileri compact bir şekilde kaydetmek için bit alanları oluşturabilme.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Giriş Yapılar –Yapılar, diğer tipte nesneler kullanılarak oluşturulan, türetilmiş veri tipleridir. Farklı veri tiplerinde değişkenler içerebilirler. –Genelde verileri dosyalara kaydetmek için kullanılır. –Göstericilerle birlikte kullanılarak, linked list,stack, queue ve tree oluşturulabilir.

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapı Tanımlamaları Örnek struct isim { char *adi; char *soyadi; }; –Struct anahtar kelimesi yapı tanımı başlatır. Kart tanıtıcısı yapı etiketidir. –Yapı etiketleri,yapı tanımına isim verir ve struct anahtar kelimesiyle kullanılarak yapı tipinde değişkenler bildirir. –kart tanımı,char * tipinde iki eleman içermektedir. adi ve soyadi

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapı Tanımlamaları Struct : –Bir struct kendi cinsinden bir değişken içeremez –Aynı yapı tipini gösteren bir işaretçiyi barındırabilir –Bir yapı tanımı hafızada yer ayırtmaz Tanımlar: –Diğer değişkenler gibi tanımlanır: struct isim a, sinif[ 52 ], *cPtr; –Virgülle ayrılmmış liste kullanabilir: struct isim { char *adi; char *soyadi; } a, sinif[ 52 ], *cPtr;

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapı Tanımlamaları

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapı Tanımlamaları Geçerli İşlemler –Bir yapıyı aynı tipteki bir yapıya atamak –Bir yapının adresini ( & ) almak –Bir yapının elemanlarına ulaşmak – sizeof operatörü ile yapının boyutunu belirlemek

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapılara İlk Değer Atamak Atama listesi –örnek: struct isim birisim = {"Murat", "Kara" }; Atama –Örnek: struct isim ogr1 = birisim; – ogr1’ı aşağıdaki gibi tanımlanabilir: struct isim ogr1; ogr1.adi = “Murat”; ogr1.soyadi = “Kara”;

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapı Elemanlarına Ulaşmak Yapı elemanına ulaşmak –Nokta operatörü (. ) ile ulaşılabilir struct isim ogr; printf( "%s", ogr.adi ); –Yapı gösterici operatörü ( -> ) ile ulaşılabilir struct isim *iPtr = &ogr; printf( "%s", iPtr->adi ); –iPtr->adi ile ( *iptr ).adi aynı sonucu verir.

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 10 fig10_02.c (Part 1 of 2)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 11 fig10_02.c (Part 2 of 2) Program Output Ace of Spades

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Yapıları Fonksiyonlarla Kullanmak Yapıları fonksyonlara geçirmek –Tüm yapıyı geçirmek Ya da sadece elemanları geçirmek –İkisi de değerle çağırılmakla geçirilir Referansla çağırarak fonksiyona geçirmek: –Adresi geçirmek Dizileri değerle geçirmek –Elemanı dizi olan bir yapı oluşturmak –Yapıyı geçirmek

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved typedef typedef –Önceden belirlenmiş data tiplerine eşanlamlı sözcükler oluşturur – typedef ile daha kısa tip isim oluşturur –Örnek: typedef struct Card *CardPtr; –Tip adı olan CardPtr ’ı struct Card *’ın eşanlamlısı olarak oluşturur –typedef Yeni data tipi oluşturmaz Sadece eşanlamlısını oluşturur

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Örnek: Yüksek Performanslı Kart Karma ve Dağıtma Pseudocode: –Kart yapısı dizisini oluşturmak –Kartları dizmek –Kartları karıştırmak –Kartları dağıtmak

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 15 fig10_03.c (Part 1 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 16 fig10_03.c (Part 2 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 17 fig10_03.c (3 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 18 fig10_03.c (4 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 19 Program Output Four of Clubs Three of Hearts Three of Diamonds Three of Spades Four of Diamonds Ace of Diamonds Nine of Hearts Ten of Clubs Three of Clubs Four of Hearts Eight of Clubs Nine of Diamonds Deuce of Clubs Queen of Clubs Seven of Clubs Jack of Spades Ace of Clubs Five of Diamonds Ace of Spades Five of Clubs Seven of Diamonds Six of Spades Eight of Spades Queen of Hearts Five of Spades Deuce of Diamonds Queen of Spades Six of Hearts Queen of Diamonds Seven of Hearts Jack of Diamonds Nine of Spades Eight of Hearts Five of Hearts King of Spades Six of Clubs Eight of Diamonds Ten of Spades Ace of Hearts King of Hearts Four of Spades Jack of Hearts Deuce of Hearts Jack of Clubs Deuce of Spades Ten of Diamonds Seven of Spades Nine of Clubs King of Clubs Six of Diamonds Ten of Hearts King of Diamonds

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Birlikler (Unions) union –Hafıza zaman içinde çok değişken kullanılır –Bir anda tek data elemanı içerir –union elamanları yeri paylaşırlar –Hafızayı korur –Son tanımlanan elemana ulaşılabilir union tanımları –Struct ile aynıdır union Number { int x; float y; }; union Number value;

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Birlikler (Unions) Geçerli union operatörleri –union aynı tip: = –Adres alırken: & –union elemanına ulaşmak için:. –Elemana işaretçiile ulaşmak için: ->

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 22 fig10_05.c (1 of 2)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 23 fig10_05.c (2 of 2) Put a value in the integer member and print both members. int: 100 double: Put a value in the floating member and print both members. int: 0 double:

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri Tüm data bit operatörleri ile gösterilir –Bit 0 ya da 1 olur –8 bit =1 byte

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 25 fig10_07.c (1 of 2)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 26 fig10_07.c (2 of 2) Enter an unsigned integer: =

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 28 fig10_09.c (1 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 29 fig10_09.c (2 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 30 fig10_09.c (3 of 4)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 31 fig10_09.c (4 of 4) Program Output The result of combining the following = = using the bitwise AND operator & is 1 = The result of combining the following 15 = = using the bitwise inclusive OR operator | is 255 = The result of combining the following 139 = = using the bitwise exclusive OR operator ^ is 76 = The one's complement of = is =

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 34 fig10_13.c (1 of 2)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 35 fig10_13.c (2 of 2)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 36 Program Output The result of left shifting 960 = bit positions using the left shift operator << is = The result of right shifting 960 = bit positions using the right shift operator >> is 3 =

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Operatörleri

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Alanları Bit alanı –Bit boyutu olan yapının elemanı belirlenir –Daha iyi hafıza sağlar –int ya da unsigned tanımlanır –Tek başına bitlere erişilemez Bit alanı tanımlama –Bit alanıunsigned yada int bir eleman isminden sonra iki nokta üste( : ) ve alanın genişliğini belirten bir tamsayı sabiti ile bildirilir. –Örnek: struct BitCard { unsigned face : 4; unsigned suit : 2; unsigned color : 1; };

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Bit Alanları İsimsiz bit alanı –Alan yapıda hizalamakta kullanılır –Bitlerde hiç birşeyde saklanmayabilir struct Example { unsigned a : 13; unsigned : 3; unsigned b : 4; }

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 41 fig10_16.c (1 of 3)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 42 fig10_16.c (2 of 3)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 43 fig10_16.c (3 of 3)

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 44 Program Output Card: 0 Suit: 0 Color: 0 Card: 0 Suit: 2 Color: 1 Card: 1 Suit: 0 Color: 0 Card: 1 Suit: 2 Color: 1 Card: 2 Suit: 0 Color: 0 Card: 2 Suit: 2 Color: 1 Card: 3 Suit: 0 Color: 0 Card: 3 Suit: 2 Color: 1 Card: 4 Suit: 0 Color: 0 Card: 4 Suit: 2 Color: 1 Card: 5 Suit: 0 Color: 0 Card: 5 Suit: 2 Color: 1 Card: 6 Suit: 0 Color: 0 Card: 6 Suit: 2 Color: 1 Card: 7 Suit: 0 Color: 0 Card: 7 Suit: 2 Color: 1 Card: 8 Suit: 0 Color: 0 Card: 8 Suit: 2 Color: 1 Card: 9 Suit: 0 Color: 0 Card: 9 Suit: 2 Color: 1 Card: 10 Suit: 0 Color: 0 Card: 10 Suit: 2 Color: 1 Card: 11 Suit: 0 Color: 0 Card: 11 Suit: 2 Color: 1 Card: 12 Suit: 0 Color: 0 Card: 12 Suit: 2 Color: 1 Card: 0 Suit: 1 Color: 0 Card: 0 Suit: 3 Color: 1 Card: 1 Suit: 1 Color: 0 Card: 1 Suit: 3 Color: 1 Card: 2 Suit: 1 Color: 0 Card: 2 Suit: 3 Color: 1 Card: 3 Suit: 1 Color: 0 Card: 3 Suit: 3 Color: 1 Card: 4 Suit: 1 Color: 0 Card: 4 Suit: 3 Color: 1 Card: 5 Suit: 1 Color: 0 Card: 5 Suit: 3 Color: 1 Card: 6 Suit: 1 Color: 0 Card: 6 Suit: 3 Color: 1 Card: 7 Suit: 1 Color: 0 Card: 7 Suit: 3 Color: 1 Card: 8 Suit: 1 Color: 0 Card: 8 Suit: 3 Color: 1 Card: 9 Suit: 1 Color: 0 Card: 9 Suit: 3 Color: 1 Card: 10 Suit: 1 Color: 0 Card: 10 Suit: 3 Color: 1 Card: 11 Suit: 1 Color: 0 Card: 11 Suit: 3 Color: 1 Card: 12 Suit: 1 Color: 0 Card: 12 Suit: 3 Color: 1

© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Sayma Sabitleri Sayma –Değerleri otomatik belirlenen sembolik sabitler kümesidir 0dan başlar ve 1 artar = ile değerler eşitlenir Sabit isimlerle gösterilir –Örnek: enum Months { JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; enum Months adında 0 ve 12 değerleri içeren yeni bir yapı oluşturur

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 46 fig10_18.c

Outline © Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 47 Program Output 1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August 9 September 10 October 11 November 12 December