Yaratan algoritmik dil. Rus algoritmik dili. Kütlece. Bu, problem çözme algoritması genel formda olduğu anlamına gelir, yani. Yalnızca kaynak veriler tarafından farklılık gösteren belirli bir görev sınıfına uygulanmalıdır. Aynı zamanda, isch
Herhangi bir programlama dili, çeşitli anahtar kelimeler, işlevler veya sınıflarla doludur. Kural olarak, hepsi yöntemleri veya argümanları tanımlayan İngilizce kullanır. Bazı ortamlarda, makine fonksiyonlarında basitçe azalmalar vardır. Bu, ilk aşamalarda gelişimin gelişimini büyük ölçüde engelledi. Anlayış oranını arttırmak için, anlaşılır ve uygun fiyatlı kelimelerden ve kombinasyonlarından, hatta hazırlıksız bir insandan oluşan bir dizi özel algoritmik programlama dili oluşturulmuştur.
Biraz tarih
İlk bilgisayarlarla iletişim kurmak için, programlama dilleri, sıfır ve birimlerden oluşan motor koduna mümkün olduğunca yakın kullanılmıştır. Doğal olarak, birçok takımın çok zor bir görev olduğunu unutmayın. Ek olarak, programlama sırasında hafıza dağıtım yöntemi, geliştiricinin omuzlarına tamamen sabitlendi. Ve eğer küçük bir hata kabul etmişse, her şeyi tekrarlamak gerekiyordu.
Makine dilinden daha uygun bir kişiye geçişinde büyük bir rol, düşük seviyeli bir assembler programlama dili tarafından oynandı. Mnemonic değerleri ve sembolleri kullanır. Geliştiricinin görevini basitleştirdi, çünkü şimdi, talimatlar ve sayısal kodların kombinasyonlarından bu yana, algoritmalarını daha verimli bir şekilde inşa edebilir. Tüm esneklik ve gücüne rağmen, dil de mastering içinde katlandı.
Eğitim kurumlarındaki eğitim ve algoritmalar için bir bayiye programlama dilinin tanıtılmasına başlandı. Zaten birçok takım içeriyordu, stajyerini anlayan anahtar kelimeler. Baisik hala programlama azes ustalaşmak için kullanılır.
Programlama - Algola'nın ilk algoritmik dilinin oluşturulmasıyla - Algola - algoritmaların gelişimi için anlamlı bir şekilde hızlandırıldı.
Bir algoritma nedir
Kuru teoriden ve tanımlardan uzaklaşırsanız, algoritma görevi çözmeyi amaçlayan bir eylem dizisidir. İfadenin tüm eski olmasına rağmen, bu kavramla, bir kişi her gün yüzleşir. Örneğin, çay içmek için aşağıdaki sırayı yapmanız gerekir:
- Su ısıtıcıyı ocağa koyun.
- Kaynar için bekleyin.
- Kaynar su suya dökün.
- Çay paketi bir fincan içine indirin.
- Gerekli miktarda şeker, süt veya bal ekleyin.
Ancak bu sekans çok basitleştirilmiştir, ancak en kolay algoritmadır.
Tıpkı bir kişi gibi, bilgisayar makinesi belirli bir görev dizisi yapabilme yeteneğine sahiptir. Bununla birlikte, onların açıkça anlamaları için, EMM için birçok belirgin kavram olmadığı akılda tutulmalıdır. Ek olarak, algoritma gerekli tüm eylemleri doğru bir şekilde tanımlamalıdır. Bu amaçla ve araba ile erkek arasında belirli bir köprü yaratan bir algoritmik dile hizmet eder.
Algoritmik dilin özellikleri ve özellikleri
Algoritmik, bilgisayar makinelerinde gerçekleştirmek için iddia edilen algoritmaları tanımlayan resmi bir dildir. Kural olarak, herhangi bir araba mimarisine bağlı değildir. Kodun yazımını önemli ölçüde artırmaya ve hızlandırmaya yardımcı olur. Parlak bir örnek olarak - Baysik'in algoritmik dili. Pascal ve Si, basit bir sözdizimi ve çalışmanın hızına sahip oldukları için de popülerdi.
Yapı, kodda açıklanan prosedürlerin birbiri ardına gerçekleştirilecek şekilde uygulanır. Yani, bir algoritma bir görevdir. Java olan dillerde fonksiyon veya yöntemlerin oluşturulmasına benzer.
Tüm kod, bir olayı veya değişkeni tanımlayan anahtar kelimelerden yapılmıştır.
Makine ve algoritmik dil arasındaki farklar
Makineye bağlı dilin parlak bir temsilcisi bir montajcıdır. Programlama, tercümanı özel etiketlerle, hangisinin ve nereye taşınacağı veya hangi veri alanının doldurulması için belirlenir. Assembler sözdizimi daha fazla bir makine gibi olduğundan, o zaman çalışın ve üzerine kod yazın. Aşağıda, takımların farklı işlemciler için nasıl görünebileceğini görüyorsunuz.
Bu nedenle, çok sayıda anahtar kelime ve isim anlaşılabilir bir şekilde resmi bir dil veya algoritmik oluşturulmuştur.
Anahtar kelimeler
Algoritmik dil, eylemlerin veya değişkenlerin tam olarak belirlenmesine indirgenmiş anahtar kelimelerden oluşur. Bu, kodun uzunluğunu azaltır ve aynı anda bırakır.
- Alg.. Bu anahtar kelimeden herhangi bir algoritmaya başlar. Adı ve parantez içindeki hangi argümanların hesaplanması gerektiğini ve bunun sonucunda ne olması gerektiğini belirtir.
- Arg. Algoritmanın argümanlarını gösterir. Kodda kullanılacak değerin türünü ve adını yansıtır.
- Kesmek. Bu anahtar kelime, hesaplamanın sonucunu yerleştirmek için gerekli olacağı değişkenin türünü ve adını belirlemek için kullanılır.
- Nark Algoritmanın yürütülmesinin hemen başlangıcını gösterir. KON'un anahtar kelimesine kaybolur. "Başlangıç" den "con" den tüm boşluk, mevcut algoritmanın gövdesi olarak adlandırılır.
- Con. Algoritmanın yürütülmesinin bittiğini bildirir.
- Dano. Bir algoritma veya sınırlamalar kullanmanın bazı özellikleri ve nüansları hakkında konuşur. Örneğin, burada komplo çizgilerinin uzunluklarının aynı olması gerektiğini belirleyebilirsiniz. "Verilen" anahtar kelimesini kullanmak isteğe bağlıdır.
- İhtiyacımız var. Algoritmanın yürütülmesinin bir sonucu olarak ne olması gerektiğinin daha ayrıntılı bir açıklaması. Tıpkı "verilen" gibi, iniş olabilir, ancak daha anlaşılır ve ayrıntılı bir kod oluşturmak için kullanımı önerilir.
Anahtar kelime verilerinin listesi, vücut algoritmasının başlığını ve atanmasını ifade eder. Ancak değişkenler için Lexemes gibi görünüyor:
- İyi. Değişken tamsayılar türü. Aralık, -32768'den 32767'ye kadar değişmelidir.
- Dışarı. Gerçek sayılar. Örneğin, üstel veya kesirli bir parça ile.
- Günlüğü.. Bu anahtar kelime, yalnızca "evet" veya "hayır" kabul etme yeteneğine sahip bir mantıksal tip değişkenin kullanılacağı anlamına gelir.
- SIM. Bu, tek sembollere sahip değerleri içerir, örneğin "A", "3".
- AYDINLATILMIŞ.. Tüm metin dizelerini içerebilecek dize değişkenleri.
- Sekmek. Belirli bir veri türüne sahip bir tabloyu gösterir. Diğer programlama dillerinden bir dizinin analogudur.
Ek servis sözleri
Bir sonraki kelimelerin listesi, dallanma ve döngüleri organize etmek için kullanılır.
- İçin. Belirli bir aralığın tüm değerlerini numaralandırmak için kullanılır. Döngüler için kullanılır, yani. Verilerdeki herhangi bir prosedürün sürekli yürütülmesi.
- Ve. Hangi değerlerin "için" tür bir döngüsünden geçmesi gerektiğini gösterir.
- A kadar. Ayrıca birkaç değeri numaralandırmaya yarar. Belirli bir durum yürütene kadar çalışmak için kullanılır.
- NC ve KC.. Algoritmik dilde "NC", döngünün vücudunun başlangıcı anlamına gelir ve "cc" sonudur. Bu iki anahtar kelime arasında, gerekli prosedürler gömülür.
- Eğer bir. Bu kelimeyle, dallanma yapısı uygulanır. Böylece, koşullar göz önüne alındığında, programın seyrini doğru yönde belirlemek mümkündür.
- Aksi takdirde. "İf" ile bir çiftte çalışan iki kelime. Ayrıca bir dal mekanizması oluşturun.
- Tercih. Aynı türden birkaç değerden dallanma için uygun bir araç. "" İle "ve" aksi takdirde "bir çiftle çalışır.
- Her şey. Şube mekanizmasının sonu anlamına gelir.
- Giriş. Bu anahtar kelime, kullanıcının sonraki işlemleri için program çalışması sırasında değişkenlerin değerlerini girmesini sağlar.
- Çıktı. Ekrana veri çıkışı üretmek.
Temel Dil Yapıları
Algoritmik Programlama Dili, bilgisayar fonksiyonlarını uygun bir biçimde üreten çeşitli yapılar oluşturmaya yardımcı olur. Genel olarak, herhangi bir dil belirli mekanizmayı ve kombinasyonlarını kullanabilir.
Yabancı yapı
Bu tür bir yapıyı tasarlarken, kod yürütülmesi doğrudan dize tarafından gerçekleşir. Genel örnek bu şekilde ifade edilebilir:
İki sayının ALG toplamı (Arg alımı A, B, Resh 2
sonuç "s \u003d", s
Bu örnekte, kullanıcı tarafından girilen iki sayının toplamı hesaplanır. Başlangıçta, "ALG" kelimesi, algoritmanın başladığını ve ne yaptığını kısaca açıkladığını göstermektedir. Parantez, programın çalışması için gerekli argümanlar ve sonuçları depolamak için bir kap olarak hizmet edecek değişkenler tarafından belirlenir. Daha sonra, ifadelerin ve prosedürlerin derhal kökeni gösteren bir anahtar kelime var. "Başlangıç" yanında, bazı ara değişkenleri tanımlayabilirsiniz.
Algoritmanın gövdesinde, "giriş" anahtar kelimesi kullanıcıdan veri alır ve bunları değişkenlere yazar. Sonra katlanırlar ve bunların toplamı S'ye atanır. Algoritmanın sona ermesinden önce, programın sonucu ekranda "çıktı" anahtar kelimesi ile görüntülenir. Algoritmik dildeki bu giriş, diğer birçok programlama ortamı için tipiktir.
Dallanma yapısı
Programın inme her zaman bir dize dizesi yoktur. Bazen duruma bağlı olarak belirli bir değişkenin değerini belirlemeniz veya değiştirmeniz gerekir. Örneğin, x \u003d 0, x'e bölünmemesi şartıyla.
Bunun için algoritmik programlama dili, çeşitli tasarım seçenekleri ve "ise", "o zaman", "aksi takdirde" veya "seçenek" kullanır. "Eğer" sonra bir durum başka bir dal için geçiş kriterinin belirleneceği bir durum belirlenir. Örneğin, şöyle:
Bu şekilde, değişkenlerin değerleri diğer faktörlere bağlı olarak değiştirilebilir. Bu örnek, olası tüm uygulamaları tam olarak kapsamıyor. Bu nedenle, tasarıma ek olarak, "Diğer" anahtar kelimesi uygulanır. Durum seçilen kriterlere uygun değilse, başka bir dala geçmenizi sağlar.
aksi takdirde Y \u003d 0
Yani, X sıfıra eşit olmadığında, daha önce sahip olduğu değerden bağımsız olarak da sıfırlanır.
Birden fazla seçimi uygulamak için daha uygun bir araç "seçim" tasarımıdır. Birkaç koşulu çözmenizi sağlar. Bunlardan biri tetiklendiğinde, bunun için belirtilen eylem gerçekleştirilecektir.
x \u003d 0: y \u003d 0
x \u003d 1: y \u003d 1'de
x \u003d 2: y \u003d 2'de
Bu örnek, değişkenin X'ten bağımlılığını gösterir. Program tüm verilerden geçer ve geçerli değeri belirtilen şartla karşılaştırır. Uygun olduğunda, eylem onu \u200b\u200btakip eder. Bu tasarım, hiçbir koşulun hiçbiri çalışmadığı, daha esnek çözümler için "diğer" bir anahtar kelime ile birleştirilebilir.
Döngü
Çevrimler programlamada çok önemli bir rol oynamaktadır. Bu tasarımı gerçekleştirmeden neredeyse hiç gelişme yapamaz. Genel olarak, döngüler aynı eylemi birkaç değişkenle art arda gerçekleştirme görevini çözer. Bu, örneğin, iyi bilinen bir formüle göre veri dizilerini doldururken, sıralaması veya bazı değerlerin hesaplanmasını doldururken uygundur.
"" İken "anahtar kelime, belirli bir koşulun yerine getirilinceye kadar belirli bir eylemin tekrarlanacağı bir döngü düzenlemenizi sağlar. Örneğin:
h.<= 3
Bu örnekte, X'in 3'ünden daha fazla hale gelinceye kadar artacaktır. Dönemin sonsuz olmaması için, X, her geçişte en büyük tarafa, örneğin, ikinci kod satırını yapan 1'de değiştirmeniz gerekir. .
"For" anahtar sözcüğü, onlarıyla herhangi bir işlemi sırayla gerçekleştirilecek şekilde sıralanacak belirli bir sayıya uygulanır. Bu tasarım, bitiş sayısı bilindiğinde kullanılır.
Sözdizimi şöyle görünür:
x için NC 1 ila 3
"'Dan" ve "daha önce" resmi kelimeleri, sıralanması gereken değerlerin aralığını göstermektedir. Böylece, ilk yinelemede x \u003d 1, geçiş sonucunda da bir değer elde ettim. Kontrolün devamı tekrar başlangıcına gitecek ve X şimdi sırasıyla 2 olacak, 3 olacak.
Döngü ve dallanma ortak yapılarını kullanarak, ışık görevlerini çözmek ve programlama dillerinin çalışmaları hakkında bilgi edinmek için en basit algoritmaları oluşturabilirsiniz.
Standart fonksiyonlar
Algoritmik dilde, zaten içine yerleştirilmiş standart fonksiyonlara sahiptir. Bazı rutin operasyonları sayılar ve ifadelerle hafifletebilirler. Algoritmik dilin düzenli fonksiyonları, karekökü, logaritmaları, modülleri, sinüsleri, kosunikleri vb. Hesaplayabilir.
- mutlak Modül - ABS (X);
- kare Kök - SQRT (X);
- doğal ve ondalık logaritmiya - ln (x) ve lg (x);
- minimum ve maksimum iki sayı - min (x, y), maksimum (x, y);
- sinüs, kosinüs, teğet, fatansent - günah (x), cos (x), tg (x), ctg (x).
Bu standart yetenekleri, en basit fonksiyonların düzenli araçlarla uygulanmasına yardımcı olan bir "bisiklet" oluşturulmasından kaçınmanıza izin verir.
Mantık ifadeleri
Mantıksal ifadeler, belirli bir işlemin durumu tatmin olup olmadığını yansıtır. Örneğin, X\u003e 0, X'deki "gerçek" değerine, 1, 2, 25 veya başka herhangi bir sıfıra eşittir. Algoritmik dil, standart matematiksel işlemlere ek olarak, aşağıdaki anahtar kelimeleri ve operatörleri kullanabilen mantıksal ifadeler içerir:
- VE. Anahtar kelimenin bulunduğu ifadelerin kesin durumunu yerine getirmesi gerektiği anlamına gelir: (x\u003e 0) ve (\u003e 0);
- Veya. İfadelerden biri durumunu, örneğin (x\u003e 0) veya (\u003e 0);
- Değil. İfadenin mantıksal değerini "çevirir". Örneğin, böyle bir tasarım değil (x\u003e 0), X'in hala sıfır olmaması gerektiği anlamına gelir.
Ayrıca karşılaştırma operatörleri var -<, >, \u003d bu birleştirilebilir, türün bir ifadesini oluşturabilir veya eşittir.
Algoritmik dil için küçük bir program
İşlemi anlamak için, kullanıcıyla etkileşime giren bir program düzenleyebilirsiniz. Bir sayı talep edecek ve araba bir kareye inşa etmektir.
Algoritmik dilin bileşenleri, kompozisyonlarında birçok anahtar kelimeye sahiptir. Programın başladığı ilk şey, algoritmanın duyurusu - ALG.
square'de Alga Kuruluş ()
Parantez içinde, kullanıcıdan ve sonuçtan bir değer olacak bir argüman belirtmeniz gerekir. Ayrıca, bu verilerin türlerinin duyurulmasını unutmayın.
Şimdi araba, bir tamsayı bir değişken tipi ile etkileşime girmesi gerektiğini bilecek ve operasyonunun sonucu S.
Yapılması gereken ilk şey veri girmek. Bu, "Giriş" anahtar sözcüğü kullanılarak yapılır.
Şimdi doğrudan algoritmanın gövdesinde, sayıların sayısının oluştuğu bir dizi komutları tanımlamanız gerekir.
sonuç "s \u003d", s
Komutları, ödevi uygulamanıza izin veren algoritmik dil, formda kaydedilmiştir: \u003d. Böylece, kendi üzerindeki X ürününün değeri değişkene düşer. Çıkışlı dize, ekrandaki sonucu gösterir. Bütün bunlar, "con" anahtar kelimesidir. Tam kod şimdi şöyle görünecek:
bir karede bir sayı oluşturulması (Arg 2, CH2)
sonuç "s \u003d", s
Bu, tanıtılan numaranın karesini hesaplamak için algoritma gerçekleştirilir. Program, tüm işlemlerin miktarını ekleyerek karmaşık olabilir. Ve sonra şöyle görünecek:
alga Meydandaki sayıyı ve toplamlarının hesaplanması (arg bal, Resh)
dano | x\u003e 0.
gerekir | S \u003d 1 * 1 + 2 * 2 + ... + x * x
nUC A.
giriş; S: \u003d 0
nC ve 1'den x arasında
sonuç "s \u003d", s
Bu düzenlemede, bir döngü kullanılır, bir ara değişken A ve "Dano" bölümlerinde ve "gerekli" bölümündeki görevin kısa bir göstergesidir. Şimdi, programa bir tür numara aktarırsanız, bir kareden çıkarır ve tüm sayıların karelerinin toplamını üretecektir.
Algoritmik dillerin kullanımı ve geliştirilmesi
Algoritmik dil, temel normları ve programlama kurallarını anlamak için öğrenme ortamında dağıtılmaktadır. Örneğin, birçok okulda tutulan temel. Böyle bir terimin tüm paradigmalarını mükemmel bir şekilde yansıtıyor, tüm komutların birbiri ardına sırayla gerçekleştirildiği zorunlu bir programlama dili olarak.
Açıklanan yapıların ve anahtar kelimelerin insan diline yaklaşmasından dolayı, tam makineden veya makineye bağımlı modellerden daha fazla kod yazmak çok daha kolay hale geldi. Programlama dilleri ailesi Algol, sözdizimi birkaç lokalizasyonda sunulduğundan beri her şeyden önce gelişiminde kalmıştır. Rusça bile kod yazabilirsiniz.
Genel olarak, algoritmik dillerin gelişimi büyük ölçüde programlamayı bir bütün olarak etkiledi ve çok sayıda insanın geliştirici olmasına izin verdi. Modern araçlar giderek daha uygun ve anlaşılabilir hale geliyor. Üst düzey programlama dilleri, konuşma adları ve isimleri ile daha fazla işlev görür. Kullanımlarının sınırları daha az ve daha az hale geliyor. Böylece gelecekte, gelişimin daha anlaşılır ve doğal bir uygulaması mümkündür.
Bilgisayar, yalnızca girdiği komutlar ikili makine kodunda bulunursa, programı yürütebilir. Alfabesi mantıksal birimlerden ve sıfırlardan oluşan dilde belirtildi. İlk bilgisayarlar için, program doğrudan programcıların ve yüksek işgücü maliyetlerinin yeterliliğini gerektiren makine kodlarında yapıldı, bu yüzden 40'lı yıllarda, programlama dillerinin geliştirilmesi, kelime hazinelerinde olduğu kadar yakın olacaktır. kişinin doğal diline mümkün. Bu programlama dilleri denir algoritmik.
Algoritmik dillerin gelişimine doğru bir ara adım dildi Montajcı. Assembler'de, ekipler ikili sayılar değil, aynı zamanda ekibin anlamını yeniden üretebilecek sembollerin (Mnemonic kodları) kombinasyonları biçiminde, makine dilinde programlamanın zorluklarını ve eksikliklerini önemli ölçüde ortadan kaldırır. Bununla birlikte, assembler ayrıca dezavantajlarda doğaldır - bu makine yönelimli bir dildir ve montajcı her bilgisayar için oluşturulur. Assemble'taki programlama, bilgisayarın bilgisayarın (cihaz) iyi bir bilgisinin bir programcısını gerektirir ve önemli işgücü maliyetleriyle ilişkilidir, aynı zamanda, bilgisayar kaynaklarını (hafıza, hız) Program, bu nedenle montajcı profesyonel programcılar arasında hala yaygındır.
İlk algoritmik dil oldu Fortran1957'de oluşturuldu. John Beckus'un liderliği altında IBM uzmanları. Şimdi çok fazla algoritmik dil var: Pascal, C, Algol, PL1, Temel, Lisp, Prolog ve diğerleri.
Algoritmik diller ve montajlar, sembolik kodlama dillerine aittir, yani. Makine kodlarıyla olmayan, ancak şartlı sembolistik sembollerle çalışan dillere, bu nedenle, bu dillerde hazırlanan programlar doğrudan bilgisayarda gerçekleştirilemez. Böyle bir programın kazandığı, metninin makine kodlarına dönüştürülmesi gerekir. Bunun için özel programlar var (tercümanlar). 2 tip tercüman derleyici ve tercüman vardır. Derleyici Programı bir kerede çevirir ve ondan sonra bunu yapmak mümkündür. Çevirmen - Bu daha basit bir tercümandır, program operatörlerini sırayla yayınlar ve ayrıca parçalarda da gerçekleştirir.
21) Programın C / C ++ 'da yapısı.
C ++ dil programı oluşur fonksiyonlar , açıklamalar ve Önişlemci yönergeleri . Fonksiyonlardan birinin adı olması gerekir ana. . Program, bu fonksiyonun ilk operatöründen başlar. İşlevin en basit tanımı aşağıdaki formata sahiptir:
Kural olarak, işlev herhangi bir değeri hesaplamak için kullanılır, bu nedenle işlev adı türünü göstermeden önce. Aşağıda işlevler hakkında en gerekli bilgi:
- İşlev bir değer döndürmemesi gerekiyorsa, boşluk türü belirtilir:
- İşlevin işlevi bloktur ve bu nedenle kıvırcık parantez içinde yatıyor;
- fonksiyonlar yatırılamaz;
- her operatör virgülle kadranla (bir kompozit operatör hariç) biter.
Ana, FL ve F2 işlevlerini içeren bir program yapısının örneği:
Program birkaç olabilir modüller (kaynak dosyaları).
C ++ 'da girme / çıkış hakkında birkaç yorum
C ++ 'da, yerleşik G / Ç araçları yoktur - standart kütüphanelerde bulunan özellikler, türler ve nesneler kullanılarak gerçekleştirilir. İki yöntem kullanılır: C ve C ++ nesnelerinden miras kalan fonksiyonlar.
Ana giriş / çıkış işlevleri:
iNT SCANF (Const Char * Format, ...) // Enter
İnt printf (const char * format, ...) // Sonuç
Biçimlendirilmiş giriş ve isteğe bağlı bir değerin format format çizgisine göre çıktısını yaparlar. Format dizgisi, akışa (ekranda) kopyalanan veya akıştan (klavyekten) girerken (klavyekten) ve% değerinin değeri ile başlayan dönüşüm özelliklerinden istenir, bu da belirli bir şekilde değiştirilir. değerler.
I / O işlevini stille kullanan bir programın örneği:
#Dahil etmek.
İnt main () () ()
int ben;
Printf ("bir integer \\ p girin");
SCANF ("% d", & i);
Printf ("% D sayısını girdiniz, teşekkür ederim!", İ);
Geri dönüş 0;
}
Bu programın ilk satırı - G / Ç fonksiyonları programında kullanılan G / Ç işlevlerinin açıklamasını içeren başlık dosyasının yerleştirildiği bir ön işlem direktifi (bu durumda, açısal braketler, dil). Tüm ön işlem direktifleri bir işaret # ile başlar.
Üçüncü satır, I adlı tamsayı tipi değişkeninin bir açıklamasıdır.
Dördüncü satırdaki PrintF işlevi "Bir tamsayı girin" istemini görüntüler ve kontrol sırasına göre yeni bir dizgiye gider \\ n. ScanF işlevi, klavyeden girilen tamsayı I (işaret ve adresi almanın çalışması anlamına gelir) ve bir sonraki operatör, dönüşüm şartnamesini değiştirerek içinde belirtilen dizgiyi görüntüler.
Bu sayının önemi.
Fakat aynı program C ++ sınıf kütüphanesini kullanmak nasıl görünüyor:
#Dahil etmek.
İnt main () () ()
int ben;
Cout.<< "Введите целое число\\ N."; Cin \u003e\u003e ben;
Cout.<< "Вы ввели число " << i << ", спасибо!";
Geri dönüş 0;
}
Başlık dosyası, giriş / çıkış için sınıf kümesinin bir açıklamasıdır. Standart CIN akış nesnelerini, klavyeye girmek ve ekranda görüntülemek ve akıştaki odanın çalışmasını sağlar.< < и чтения из потока >>.
22) C / C ++ 'da alfabe ve tanımlayıcılar.
ALFABE
Sermaye ve küçük harf latin harfleri ve alt çizgi işareti;
Arapça sayılar 0 ila 9 arasında;
Kör sembolleri: Boşluk, sekmeler, bir çubuğa geçiş sembolleri.
Özel İşaretler:
Dil Lexemes alfabenin sembollerinden oluşturulur:
tanımlayıcılar;
anahtar (ayrılmış) kelimeler;
Operasyonlar;
Sabitler;
Ayrılır (parantez, nokta, virgül, uzay aracı).
Tanımlayıcı
Latin harfleri, sayılar ve bir alt çizgi işareti tanımlayıcısında kullanılabilir;
Sermaye ve küçük harfler farklılık gösterir;
Tanımlayıcının ilk karakteri harfi veya alt çizgi işareti olabilir, ancak bir rakam olabilir;
İsimlerdeki isimler izin verilmez;
Tanımlayıcının standarda göre uzunluğu sınırlı değildir, ancak bazı derleyiciler ve bağlayıcılar üzerine kısıtlamalar getirir;
Tanımlayıcı anahtar kelimelerle çakışmamalıdır;
Alt çizgi sembolünden tanımlayıcıları başlatmak için önerilmez (sistem fonksiyonlarının veya değişkenlerin isimleri ile çakışabilir);
Dış değişkenleri belirlemek için kullanılan tanımlayıcılar;
Bağlayıcının sınırlamaları vardır (çeşitli bağlayıcıların veya linker versiyonlarının kullanılması, harici değişkenlerin adlarında farklı gereksinimler getirir).
Anahtar Kelimeler C ++
23) C / C ++ 'da tüm veri türleri.
Tüm bir veri türü, bilgisayarın hafızasındaki normal tamsayıları temsil etmek için tasarlanmıştır. Ana ve en yaygın ortak tip türüdür int.. Çok daha az sıklıkla çeşitlerini kullanıyor: kısa (kısa tamsayı) ve uzun. (uzun tamsayı). Ayrıca, türün türü içerir char. (sembol). Ek olarak, gerekirse, türü kullanabilirsiniz. uzunca. (Uzun-ön işleme!), standart tarafından tanımlanmayan, ancak birçok C ++ derleyicisi tarafından desteklenir. Varsayılan olarak, tüm tüm türler ikonik. Bu tür sayılardaki kıdemli bit, sayının işaretini belirler: 0 - Sayı pozitif, 1 negatif bir sayıdır. C ++ üzerindeki ikonik numaralara ek olarak, kullanabilirsiniz. yetersiz. Bu durumda, tüm deşarjlar bir tamsayı oluşumunda yer almaktadır. Spurovatif'i tarif ederken, kelime eklendi imzasız. (sinyal yok).
İkonik tamsayı veri türlerinin özeti tablosu:
Veri tipi | Boyut, bayt | Değer aralığı |
Char. | -128 ... 127 | |
Kısa | -32768 ... 32767 | |
int. | -2147483648 ... 2147483647 | |
Uzun. | -2147483648 ... 2147483647 | |
Uzunca. | -9223372036854775808 ... 9223372036854775807 |
İmzasız tamsayı veri türlerinin özeti tablosu:
Veri tipi | Boyut, bayt | Değer aralığı |
İmzasız karakter. | 0 ... 255 | |
İmzasız kısa | 0 ... 65535 | |
İmzasız int (basitçe imzasız olabilir) | 0 ... 4294967295 | |
Uzun süre imzasız. | 0 ... 4294967295 | |
Uzun zamandır imzasız. | 0 ... 18446744073709551615 |
Özellikle 4 veya 8 bayt için sınır değerlerini hatırlayın, bu, bu değerlerin en azından bir tür sırasını bilmek yeterlidir, örneğin, türü int. - yaklaşık 2 · 10 9.
Uygulamada, her yerde ana tüm tipi kullanmanız önerilir, yani. int.. Gerçek şu ki, ana tüm türün verilerinin neredeyse her zaman diğer veri verilerinden daha hızlı işlenmesidir. Kısa tipler ( char., kısa) Öğelerin değerlerinin bu tür için sınırların ötesine geçmemesi koşuluyla, hafızadan tasarruf etmek için büyük sayı dizilerini depolamak için uygundur. Yeterli tipte olmadığında bir durumda uzun tipler gereklidir int..
24) C / C ++ dilinde veri türü.
Gerçek (geçerli) sayıların bir özelliği, bilgisayarın hafızasında, neredeyse her zaman yaklaşık olarak depolandıkları ve bu tür veriler üzerinde aritmetik işlemler yaparken bir hesaplama hatası biriktirilir.
Üç gerçek veri türü var: şamandıra., Çift. ve uzun çift.. Ana şey türüdür Çift.. Dolayısıyla, varsayılanın tüm matematiksel fonksiyonları tam olarak türü ile çalışır Çift.. Aşağıdaki tablo, gerçek tiplerin ana özelliklerini göstermektedir:
Bir tür uzun çift. Halen bir kural olarak, tür ile çakışıyor Çift. Ve pratikte genellikle uygulanmaz. Eski 16 bitlik derleyiciler türünü kullanırken uzun çift. 10 baytlığa sahipler ve 19 ondalık basamağa doğru doğruluk sağlarlar.
Yalnızca her yerde yazmanız önerilir. Çift.. İle çalışmak her zaman daha hızlıdır, çok sayıda hesaplama ile doğruluk kaybını fark etme olasılığı daha düşüktür. Bir tür şamandıra. Görevi çözmek için yeterli olacağı, yalnızca büyük dizileri depolamak için faydalı olabilir.
25) C / C ++ 'da sembol veri türü.
C ++ standardında, gerçekten sembolik olarak kabul edilebilecek veri türü yoktur. Sembolik bilgileri sunmak için bu amaç için uygun iki tür veri vardır - bunlar türlerdir char. ve wchar_t.Her ikisi de bu türlerin her ikisi de esasen tüm türlerdir. Örneğin, "A" sembolünü alabilir ve 2 numaraya bölünür. Bu arada, ne olur? İpucu: Bir boşluğun sembolü. Örneğin, "normal" sembolik tipler için, örneğin Pascal veya C #, semboller için aritmetik işlemler yasaktır.
Bir tür char. ASCII kodlama sistemine uygun olarak karakterleri temsil etmek için kullanılır (Amerikan Standart Bilgi Değişim Kodu için Amerikan Standart Kodu). Yedi bit bir koddur, 0 ila 127 arasında kodlu 128 farklı karakteri kodlamak için yeterlidir. National fontları, sahte karakterleri vb. Kodlamak için 128 ila 255'e kadar kodlu semboller kullanılır.
Bir tür wchar_t. Örneğin Unicode, 1 bayt tarafından yeterli olmayan bir dizi karakterle çalışmak üzere tasarlanmıştır. Beden Çeşidi wchar_t. Genellikle 2 bayt'a eşittir. Programın gibi dize sabitlerini kullanması gerekiyorsa wchar_t.Sonra önek ile kaydedilirler L., örneğin, l "kelime".
26) Operatör atama ve C / C ++ 'da boş operatör
Uygulama operatörü - Bu en yaygın operatördür. Amacı, herhangi bir değişkenin yeni bir değerini atamaktır. C ++ bu operatörün üç formuna sahiptir.
1)Basit Atama Operatörü şöyle yazılmış:
değişken \u003d ifade;
Bu operatör aşağıdaki gibi çalışır: Başlangıçta, işlem sembolünün sağına yazılan ifade hesaplanır. = (eşit), daha sonra sonuç, işaretin solundaki değişkeneye atanır. = . Sonuç Türü, solda kaydedilen veya atıfta bulunulacak değişken türüyle çakışmalıdır.
İşaretin solunda = Sadece bir değişken olabilir, ayrıca sabiti ve değişkenleri ve genel olarak herhangi bir karmaşıklığın ifadesini de yazabilirsiniz.
Operatörler Örneği
y \u003d x + 3 * r;
s \u003d günah (x);
2)Çoklu ödev - Böyle bir operatörde, arkaya sağa sola doğru, birkaç değişken aynı değere atanır, örneğin:
a \u003d b \u003d c \u003d 1;
Böylece, örneğin bir eşkenar üçgeninde hemen belirleyebilirsiniz, tüm taraflar aynı numaraya eşittir. Yukarıdaki operatör, üç operatörün sıralı yürütülmesine eşdeğerdir:
Doğal olarak, bir operatörü kaydetmemiz daha kolaydır, üç değil. Program daha kısa, metnin doğal olarak göründüğü ve bu tasarım biraz daha hızlı çalışır.
3)Herhangi bir işlemin eşzamanlı yürütülmesi ile atama Genel olarak, bu şekilde yazılmıştır:
değişken Sign_aporatration \u003d İfade;
ve kayıtlara eşdeğer
değişken \u003d Değişken Sign_Operation İfadesi;
Örneğin, operatör:
s + \u003d 5; // 1. seçenek
operatörle aynı şeyi yapar
s \u003d s + 5; // 2. seçenek
yani: eski değeri değişkenden al s.Numara numarası ekle 5 ve tekrar değişkene tekrar alınan değer s..
Gördüğünüz gibi, 2. sürümün 1. versiyonunun daha kısa kaydını kaydetme ve değişkenin adresinin 1. sürümünde daha hızlı gerçekleştirilir. s. 1 kez hesaplanır ve 2. versiyonda - iki kez.
Boş operatör
Boş bir operatör, hiçbir şeyi yerine getirmeyen bir operatördür. Neden bir "işe yaramaz" operatöre ihtiyacınız var?
Herhangi bir operatörü kaydetmek için dil sözdiziminin gerekli olduğu durumlarda boş bir operatör kullanılır ve programın mantığına göre bir şey yapmayacağız. Böylece, herhangi bir şubede, programın metnine gitmek için ve bazen boş çevrim gövdesi için, herhangi bir şubeyi de gerçekleştirmek için herhangi bir dalın yapılması gerektiğinde, boş bir operatör gerekli olabilir.
Boş operatör tek bir semboldür ; (virgülle işaret), örneğin:
c \u003d A + B; ;
İşte ilk karakter ; (Virgülle işaret) Atama operatörünü tamamlar ve ikinci karakter sadece bize boş bir operatör verir. Bu durumda, boş operatör hiç gerekmez (ancak bir sözdizimsel hatadır!), Yalnızca açıklama için verilir. Boş bir operatör kullanmanın daha sonra "makul" örnekleri daha sonra ilgili konularda listelenecektir.
27) C / C ++ dilinde aritmetik işlemler.
Bunlar en yaygın kullanılan işlemlerdir. Onların anlamları, matematik gidişatından bilinenlere yakındır. Öyleyse onları listele:
Ekleme ve çıkarma işlemlerinin önceliği, kalıntının çarpılması, bölünmesi ve hesaplanması daha düşüktür. Hesaplama prosedürünü değiştirmek için, örneğin çarpma için yuvarlak braketler kullanırlar. 2 İki sayının miktarı A. ve B. Yazabilirsin:
Daha ileri. Elde edilen sonuçlardan görülebileceği gibi, C ++ bir işareti içinde / iki farklı işlem anlamına gelir. Bir veya her ikisi de gerçek ise, her iki işlem de tamsayı ise, bölüm gerçekleştirilirse, bölüm gerçekleştirilir ve sonuç, sonuçta bir tür olacaktır. Bu işlemin kullanılması, örneğin matematiksel ifadenin hesaplanmasını programlarsanız, bakımı gerektirir.
kelimenin tam anlamıyla, yani. Yani:
1/3 * günah (2 * x)
sonra sonuç değerden bağımsızdır. X. ifadesinden beri her zaman sıfır olacaktır 1/3 Bir odaklanma bölünmesi anlamına gelir. Sorunu çözmek için, gerçek yapmak için işlenenlerden yeterli.
1.0 / 3 * Günah (2 * x)
Kalıntının hesaplanmasının çalışması ( % ) Sadece tamsayı işlenenleri için geçerlidir.
İşaret değişikliği. Tek kullanımlık " - "İşareti değiştirmek anlamına gelir. Tüm işlemlerin ortak tablosundan görülebileceği gibi, çok yüksek bir önceliğe sahiptir - örneğin bir çarpma işlemidir. Bu nedenle, ifadede
başlangıçta, bir işaret değişikliği yapılır. A.ve sonra çarpma -A. üzerinde B..
Eşleştirilmiş için bir işlem var uNARED PLUS. yazılabilir
Hangi amaçlar için kullanmak? Söylemesi zor. Ama böyle bir fırsat var.
Daha ilginç ve en önemlisi, Autoways ve otomatiklerin operasyonları çok yaygındır.
Okul algoritmik dili
Algoritmik dil (Ayrıca rus algoritmik dili, cennet) - Algoritmaları kaydetmek ve incelemek için kullanılan programlama dili. Okullarda bilgisayar bilimlerini okurken, algoritmerinasyonun temellerini incelemek için, t. N. okul algoritmik dili (eğitim Algoritmik Dili), Kelimeleri Rusça'da anlaşılabilir kelimeleri kullanarak. Çoğu programlama dilinin aksine, algoritmik dili bilgisayar mimarisine bağlı değildir, makine cihazıyla ilişkili parçalar içermez.
Örnek
Algoritmik dildeki algoritma genellikle formda yazılır:
alg. Algoritmanın adı (argümanlar ve sonuçlar) dano Algoritmanın uygulanabilirliğinin koşulları İhtiyacımız var Algoritmanın yürütülmesinin amacı nach. Orta Değerlerin Açıklaması | İletişim dizisi (vücut algoritması) kON.Algoritmanın kayıtlarında, anahtar kelimeler genellikle cesur yazı tipleri tarafından tahsis edilmiştir. Mantıksal blokları vurgulamak için bir girinti kullanıldı ve bloğun başlangıcının ve sonunun eşyalarını dikey bir özelliğe bağlandı.
Karelerin toplamını hesaplama örneği:
alg. Kare toplamları ( arg İyi n, kesmek İyi S) dano | N\u003e 0 İhtiyacımız var | S \u003d 1 * 1 + 2 * 2 + 3 * 3 + ... + N * n nach. İyi Ben | giriş n; S: \u003d 0 | nc. 1'den N'den N'ye | | S: \u003d s + i * i | kC. | çıktı "S \u003d", s kON.E-atölye
Programlamanın teorik çalışmasını algoritmik dile göre güçlendirmek için, 1985 yılında Moskova Devlet Üniversitesi uzmanları bir derleyici editörü oluşturuldu. "E-Workshop" ("E" - Yershov'un onuruna), algoritmik dilde programları girmenize, düzenlemenizi ve çalıştırmanızı sağlar.
1986 yılında E-Workshop için bir dizi eğitim dünyası (sanatçı) piyasaya sürüldü: "Robot", "ressam", "Twitch", "Werethe", bu da algoritmanın kavramlarını tanıtmayı kolaylaştırdı. Bilgisayarlarda "E-Workshop" uygulandı: Yamaha, Corvette, Uknc ve yaygınlaştı.
Bu programlama dili sürekli olarak sonuçlandı ve "E-Workshop" ın daha sonraki bir sürümünün bir açıklaması 1990 ders kitabında ortaya çıktı. Bu ders kitabını destekleyen "Kumir" ("Eğitim Dünyalarının Kiti") ("Eğitim Kimi") 1990 yılında BİLGİSİ KONTROLÜ YOLCULUM. Bu sistemin dili de "idol" olarak adlandırılır.
1995 yılında Kumir, Rusya Federasyonu Eğitim Bakanlığı tarafından "Bilişim ve Bilgisayar Makinaları Temelleri" dersi konusundaki ana eğitim materyali olarak önerildi. G. Kushnirenko, G.v. Lebedeva ve R.a. Svoren. .
Eleştiri
Bununla birlikte, algoritmik dilin, bilgisayar mimarisinden doğrudan birbirine bağlayan parçaların yokluğunda, yine de algoli benzeri dillere atıfta bulunduğuna dikkat edilmesi gerektiğine dikkat edilmelidir, örtük olarak okul çocukları, makinelerin Arka Plan-Neumanovsk mimarisine güvenmesini sağlar. (Mimari Von Neumanan, Turing Makinesi olan daha önceki bir fikrin pratik bir uygulamasıdır. Turing fikrine ek olarak başka fikirler vardır. En popülerlerinin bir Lambda-Calculus adına sahiptir: Alunzo Checch onun üzerinde çalıştı. Lisp Araba, lambda -question'a dayanan bir mimaridir.)
Linkler
- A. P. Ershov. Bilişim ve bilgi işlem ekipmanlarının temelleri okulda algoritmik dili. 05/05/1985
- Rusça Programlama Dilleri ve Geliştirme Forumu
Wikimedia Vakfı. 2010.
Diğer sözlüklerde "okul algoritmik dili" neyin olduğunu izleyin:
Algoritmik dil, algoritmaları kaydetmek, uygulamak veya incelemek için kullanılan resmi bir dildir. Herhangi bir programlama dili bir algoritmik dildir, ancak tüm algoritmik dili bir dil olarak kullanım için uygun değildir ... ... wikipedia
Bu terimin de başka anlamları vardır, bkz. Algoritmik dil. Bir eğitim algoritmik dili, algoritmaları kaydetmek, uygulamak ve incelemek için kullanılan resmi bir dildir. Çoğu programlama dilinin aksine, bağlı değil ... wikipedia
Bu terimin başka değerleri var, ejderhaya (değerler) bakın. Örnek Şema Ejderhası Dragon Dragon Dragon (görsellik sağlayan, güleryüzlü Rus algoritmik dili) Visual ... ... ... wikipedia
Eğitim Dili Programlama Programlama Dili Eğitim için tasarlanmıştır. Bu nedenle, bu tür diller temel ve pascal olarak geliştirilmiştir. ABC Dili öğrenmesi, Python Güldü. Popüler dil, ... ... wikipedia
Bu makalenin kaldırılması için teklif edilir. Sebeplerin açıklaması ve uygun tartışma Wikipedia sayfasında bulunabilir: 28 Eylül 2012 Silmek için. Tartışma işlemi tamamlanmazken, makale ... Wikipedia
Algoritmik dil (ayrıca Rus algoritmik dili, cennet), algoritmaları kaydetmek ve incelemek için kullanılan programlama dili. Okullarda bilgisayar bilimlerini okurken, algoritmerinasyonun temellerini incelemek için, t. N. Okul algoritmik ... ... ... wikipedia
Bu terimin de başka anlamları vardır, bkz. İdol. Kumir ... Wikipedia
Edumandriva ... wikipedia
- (Kushnirenko'nun Eğitim Dünyaları veya Dünyaları) Programlama Sistemi, Orta ve Yüksek Okulda Bilişim ve Programlamanın ilk derslerini desteklemek için tasarlanmıştır. 1980'lerin ikinci yarısında geliştirilen tekniğe dayanarak ... ... Wikipedia
Kitabın
- Kushnirenko, Alertova L., Guseva hakkında düzenlenen algoritmik dilde programlama .. Bu kılavuz, öğretmenler ve öğrencilere, orta, kıdemli ve daha yüksek okulda bilgisayar bilimi ve programlama derslerini desteklemelerini amaçlamaktadır. . Ana aşamaları ele alır ve ...
Algoritmik Programlama Dili - Algoritmaları kaydetmek, uygulamak ve incelemek için kullanılan biçimsel dil. Çoğu programlama dilinin aksine, algoritmik dili bilgisayar mimarisine bağlı değildir, makine cihazıyla ilişkili parçalar içermez.
Algoritmasyonun temellerini keşfetmek için, sözde Rus algoritmik dili (Okul algoritmik dili), Rusça kelimelerle anlaşılabilir bir okul çocuğu kullanarak.
Rus sözdizimi olan algolo benzeri algoritmik dili, 1980'lerin ortalarında Academisyen A. P. Ershov tarafından bir "alevsiz" bir bilgisayar bilimi kursu için bir temel olarak tanıtıldı.
Algoritmik dilin ana servis sözleri
Algoritmanın açıklaması
- alg. (algoritma)
- arg (argüman)
- kesmek (sonuç)
- nach. (Başlangıç) - algoritmanın başlangıcı
- kON. (son) - algoritmanın sonu
- dano - Keyfi Formda Kaynak Veriler
- İhtiyacımız var - Algoritmanın amacı
Veri tipleri:
- İyi (bütün)
- dışarı (gerçek)
- sIM (sembol)
- aYDINLATILMIŞ. (Edebiyat) - Hat
- günlüğü. (mantıklı)
- sekmek(Tablo) - dizi belirlemek için
- uzunluk (Uzunluk) - dizi elemanlarının sayısı
Koşulların belirlenmesi
- eğer bir
- aksi takdirde
- tercih
- değer vermek
Döngülerin atanması
- nc. (Döngü Başlat)
- kC. (döngünün sonu)
- a kadar
İfadeler için mantık fonksiyonları ve değerleri
Giriş çıkış
- giriş
- çıktı
Algoritmanın genel görünümü
1
2
3
4
5
6
alg. Algoritmanın adı (argümanlar ve sonuçlar)
| Dano Algoritmanın uygulanabilirliğinin koşulları
| İhtiyacımız var Algoritmanın yürütülmesinin amacı
nach. Orta değerlerin açıklaması
|
İletişim dizisi (vücut algoritması)
kON.
Algoritmanın bir parçası alg. kelimeden önce nach. adı denir ve kısım kelimeler arasında sonuçlandı nach. ve kON. - Vücut algoritması.
Bir cümlede alg. Parantez içindeki algoritmanın adından sonra, özellikler belirtilir ( arg, kesmek) ve değer türü ( İyi, dışarı, sIM, aYDINLATILMIŞ. veya günlüğü.) Tüm giriş (argümanlar) ve hafta sonları (sonuçlar) değişkenleri. Dizileri (Tablolar) tanımlarken bir servis sözcüğü kullanılır sekmek, her dizi elemanları endeksi için sınır çiftleri ile tamamlanmıştır.
Algoritmanın kaydında, anahtar kelimeler genellikle kalın yazı tipleri ile öne çıkmıştır. Mantıksal blokları vurgulamak için, girintiler uygulanır ve bloğun başlangıcının ve sonunun eşyaları dikey bir özellik ile bağlanır.
Ana algoritmik yapılar
Bu makalede ana algoritmik yapıların ayrıntılı bir açıklaması verilmiştir. Aşağıda, bu yapıları algoritmik dilde derleme kalıplarıdır.
Eksik gelişme
| Eğer bir şart
| | bu hareketler
| her şey
Tam gelişme
1
2
3
4
5
| Eğer bir şart
| | bu Eylemler 1.
| | Aksi takdirde Eylemler 2.
| her şey
Şube
1
2
3
4
5
6
7
8
| Tercih parametre
| | anlamı ile Değer 1.
| | |
Eylemler 1.
| | anlamı ile Anlamı 2.
| | |
Eylemler 2.
| | Aksi takdirde
| | |
Varsayılan eylemler
| her şey
Önkoşul ile döngü
| Nc şart
| |
hareketler
| KC.
Postband ile döngü
Rusya Federasyonu Perm Devlet Teknik Üniversitesi Eğitim Bakanlığı
Bilgi Teknolojileri ve Otomatik Sistemler Bölümü
Vikentheva O. L.
"Algoritmik Diller ve Programlama" dersinde soyut dersler (Dilin temelleri C ++, i yarıyıl)
Giriş
İlk yarıyıl, C Dilinin temel tasarımlarını ve temel programlama teknolojisinin (yapısal programlama) tartışılmaktadır.
Yapısal Programlama, geliştirme süresini ve hataların sayısını azaltmak için belirli kurallara uymamıza izin veren programlar oluşturma teknolojisidir ve ayrıca programı değiştirme olasılığını kolaylaştırır.
1.1. Algoritma ve Program
Algoritma, değişken ilk verilerden gelen hesaplama işlemini nihai sonuca, yani bir hedefe ulaşmak için bir tarifi belirleyen doğru bir düzendir.
Algoritmanın bir hesaplama makinesi biçiminde temsili için fonların ve kuralların kombinasyonu programlama dili olarak adlandırılır, bu dilde kaydedilen algoritma programa çağrılır.
İlk olarak, eylemler algoritması her zaman geliştirilir ve ardından programlama dillerinden birinde yazılır. Programın metni Özel Hizmet Programları - Tercüman tarafından işlenir. Programlama dilleri yapay dillerdir. Doğal dillerden, sınırlı sayıda "kelime" ve kayıt komutları (operatörler) için çok katı kurallarda farklılık gösterirler. Bu gereksinimlerin birleşimi programlama dili sözdizimini oluşturur ve her tasarımın anlamı semantiğidir.
1.2. Deferanslar Algoritması
1. Kütle: Algoritma bir göreve değil ve benzer bir sorun sınıfına uygulanmalıdır (kare denklemini çözmek için algoritma, bir denklemi değil, tüm kare denklemleri çözülmelidir).
2. Etkinlik: Algoritma, belirli bir sayıda adım (1 ila 3 arasındaki bölünme, 0.33333 (3) periyodik bir fraksiyon elde edilir, nihai sonucu elde etmek için bir sonucun sonucuna neden olmalıdır. Nihai sonucu elde etmek için gereklidir; Bu fraksiyonu, örneğin, 4 ondalık işareti) elde edilmesi.
3. Tanım (Determinizm) - Algoritmanın her hareketi, sanatçısı için anlaşılabilir olmalıdır (Japonca, Japonca'yı Japonca konuşmayan bir kişi için talimatlar bir algoritma değildir, çünkü deterministiğin mülkiyeti yoktur).
4. Haksızlık - Süreç bölünmez kullanılarak tanımlanmalıdır.
her adımda yapılan işlemler (yani, adımlar daha küçük adımlara ayrılamaz).
Algoritmalar aşağıdaki formlarda gösterilebilir:
1) algoritmanın sözlü bir açıklaması.
2) algoritmanın grafik açıklaması.
3) algoritmik Programlama Dilini Kullanma
1.2. Derleyiciler ve Tercümanlar
Dan programlama dili kullanılarak önceden derlenen algoritmayı tanımlayan bir metin oluşturulur. Bir çalışma programı almak için, bu metni çevirmen olarak adlandırılan özel programlar kullanılarak gerçekleştirilen işlemci komut dizisine çevirmeniz gerekir. Çevirmenler İki tür vardır: Derleyici ve tercümanlar. Derleyici, kaynak modülünün metnini, bir sürekli işlem için nesne modülü olarak adlandırılan makine koduna çevirir. Aynı zamanda, ilk önce programın kaynak metnini sözdizimsel hatalar arayışı içinde geziyor. Tercüman, operatörün operatör modunda orijinal program modülünü gerçekleştirir,
İşin hareketi, her operatörü makine diline çevirir.
1.3. Programlama
Farklı işlemcilerin tipleri farklı bir komut kümesi vardır. Programlama dili belirli bir işlemci tipine odaklanırsa ve özelliklerini dikkate alırsa, düşük seviye programlama dili olarak adlandırılır. En düşük seviye dili, Mnemonics adlı özel sembolik semboller formundaki her bir makine kodunu temsil eden montajcı bir dildir. Düşük seviye dilleri kullanarak, geliştirici işlemcinin tüm yeteneklerine erişebildiğinden, çok verimli ve kompakt programlar oluşturulur. Çünkü Farklı işlemci modelleri için talimatlar da farklıdır, daha sonra her işlemci modeli assembler diline karşılık gelir ve üzerine yazılı olan program yalnızca bu ortamda kullanılabilir. Benzer diller, küçük sistem uygulamaları, cihazlar sürücüleri vb. Yazmak için kullanılır.
Üst düzey programlama dilleri, belirli bilgisayar mimarilerinin özelliklerini dikkate almazlar, bu nedenle kaynak metin seviyesinde oluşturulan programlar, onlar için uygun tercümanlar oluşturulursa, diğer platformlara kolayca aktarılır. Üst düzey dillerde programların geliştirilmesi, makine dillerinden çok daha kolaydır.
Üst düzey diller:
1. FORTRAN - İçinde Oluşturulan İlk Derlenmiş Dil50'li yıllar 20. yüzyıl. Programlamanın en önemli kavramlarını uyguladı. Bu dil için, istatistiksel komplekslerden değişen ve uydularla biten çok sayıda kütüphane oluşturulmuştur, bu nedenle birçok kuruluşta kullanılmaya devam etmektedir.
2. COBOL - Ekonomik Hesaplamalar ve Çözümler İçin Derlenen Dil60'ların başında geliştirilen iş görevleri. COBOL'da, harici ortamlarda depolanan çok miktarda veri ile çalışmanın çok güçlü bir yolu uygulandı.
3. Pascal - sonunda yaratıldı70'ler İsviçre Matematik Niklaus Virut tarafından özellikle eğitim programlaması için. Algoritmik düşünmeyi geliştirmenizi sağlar, kısa, iyi okunaklı bir program oluşturmanıza, algoritmasyonun temel tekniklerini göstermenizi sağlar, büyük projelerin uygulanması için de çok uygundur.
4. Baisik - yaratıldı60'lar da öğrenme programlaması için. Onun için derleyiciler ve tercümanlar var, en popüler programlama dillerinden biridir.
5. Si - 70'lerde yaratıldı, başlangıçta kütle programlama dili olarak kabul edilmedi. Aynı verimli ve kısa programları yaratabilmek için montajcının değiştirilmesi planlandı, ancak belirli bir işlemciye bağlı değil. Büyük ölçüde Pascal'a benzer ve hafıza ile çalışmak için ek fırsatlara sahiptir. Birçok uygulamalı ve sistem programının yanı sıra UNIX işletim sisteminin de yazılmıştır.
6. C ++ - 1980'de Biarny Sturastrup tarafından oluşturulan SI dilinin nesneye yönelik genişlemesi.
7. Java, başlangıçta güneş tarafından yaratılan bir dildir.90'lar C ++ 'a göre. BT'nin düşük seviyeli olanakları hariç tutarak C ++ üzerindeki uygulamaların geliştirilmesini kolaylaştırmak için tasarlanmıştır. Dilin ana özelliği, makine kodunda değil, platformdan bağımsız bir bayt kodunda derlenmesidir (her komut bir bayt). Bu kod, tercüman - Sanal Java makinesi (JVM) kullanılarak gerçekleştirilebilir.
2. C ++ üzerindeki programın yapısı
SI'deki program aşağıdaki yapıya sahiptir: ön işlemler
. . . . . . . . .
# PrepRocessor Direktifleri A () işlevi
operatörler ()
operatörler
void main () // Program yürütmesinin başladığı bir fonksiyon
açıklamalar
Ödevler
İşlev Boş Operatör
kompozit
geçiş
Ön İşlemci Direktifleri - Derlemeden önce program metni dönüşümünü kontrol edin. SI'de bir metin dosyası şeklinde hazırlanan kaynak programı 3 aşamayı geçer:
1) metnin ön işlemcisi dönüşümü;
2) Derleme;
3) düzen (bağlantılar veya montaj düzenleme).
Bu üç aşamadan sonra, yürütülebilir program kodu oluşturulur. Görev prepro-
cessor - Programın metninin derlemesinden önce dönüşümü. Ön işleme işlemlerinin kuralları, ön işlem direktiflerini kullanarak bir programcı tanımlar. Direktif # ile başlar. Örneğin,
1) #DEFINE - Metinde değiştirme kurallarını gösterir. # Sıfır 0.0define.
Sıfır programındaki her kullanımın değiştirileceği anlamına gelir.
2) #include.< имя заголовочного файла> - Standart kütüphanelerle birlikte verilen "Header Dosyaları" dizininden metin programının metnine dahil edilmesi amaçlanmıştır. Her kütüphane işlevi C, başlık dosyalarından birinde karşılık gelen bir açıklamaya sahiptir. Başlık dosyalarının listesi standart dille tanımlanır. Dahil eden yönergenin kullanımı uygun standart önlüğü bağlamaz
lyoteta, ancak yalnızca açıklama programının açıklamasını belirtilen başlık dosyasından eklemenizi sağlar. Kütüphane kodlarının bağlantısı, Yazı aşamasında, yani derlemeden sonra gerçekleştirilir. Başlık dosyaları standart fonksiyonların tüm açıklamalarını içermesine rağmen, yalnızca programda kullanılan işlevler program koduna dahil edilmiştir.
Programın metninde ön ayırma işlemlerini yaptıktan sonra, tek bir ön işlem direktifi yoktur.
Program bir dizi açıklamalar ve tanımlardır ve bir dizi fonksiyondan oluşur. Bu fonksiyonlar arasında her zaman ana olarak adlandırılmış bir işlev olmalıdır. Onsuz program yapılamıyor. Özellik adından önce, Bilgi İşlev tarafından döndürülen değer türüne (Sonuç Türü) yerleştirilir. İşlev hiçbir şey döndürmezse, boşluk türü belirtilir: Void Main (). Ana olarak da dahil olmak üzere her işlev bir parametreye sahip olmalıdır, boş olabilir, sonra parantez içinde (geçersiz).
İşlevin işlevi başlık fonksiyonunun arkasına yerleştirilir. Vücut fonksiyonu, kıvırcık parantez içine alınmış bir tanım, açıklamalar ve yürütülebilir operatörler dizisidir. Her tanım, açıklama veya operatör noktalı virgülle biter.
Tanımlar - nesneler tanıtıldı (nesne, işlenebilir verilerdeki verileri temsil etmek için gereken verileri temsil etmek için gerekli olan (nesne adlandırılmış bir bellek alanı, bir nesnenin özel durumudur). Örnek
int y \u003d 10; // float x sabiti adlı; //değişken
Açıklamalar - Programın diğer bölümlerinde açıklanan nesnelerin ve işlevlerin özellikleri ve adları için derleyiciyi bildirin.
Operatörler - Programın eylemlerini yürütmesinin her adımında tanımlayın
C'deki Örnek Program:
#Dahil etmek.
Kontrol soruları
1. C ++ programı hangi parçalar?
2. Tanım duyurudan nasıl farklılık gösterir?
3. C ++ 'da yürütülebilir bir program oluşturmak için adımlar gönderin.
4. Bir ön işlem nedir?
5. Ön hazırlık direktifi nedir? Ön İşlemci Direktiflerinin örneklerini oluşturun.
6. "İlk programım C ++" metnini yazdıran bir program yapın
2. C ++ 2.1'in temel araçları. Dil sost
Herhangi bir doğal dildeki metinde, dört ana element seçebilirsiniz: semboller, kelimeler, ifadeler ve öneriler. Algoritmik dili aynı zamanda bu tür unsurları da içerir, sadece kelimelerin Lexemes (ilkel yapılar), ifadeler - ifadeler, teklifler - operatörler denir. Lexemes sembollerden, Lexemes ve sembollerden ifadeler, ifadelerden ve sözlüksel sembollerden gelen ifadelerden oluşur (Şekil 1.1)
İncir. 1.1. Bu nedenle algoritmik dilin bileşimi, algoritmik dilin unsurları şunlardır:
Tanımlayıcılar C programlarının isimleridir. Latin harfleri, sayılar ve bir alt çizgi işareti tanımlayıcıda kullanılabilir. Sermaye ve küçük harfli harfler, örneğin, Prog1, Prog1 ve Prog1, üç farklı tanımlayıcıdır. İlk karakter harf veya alt çizgi (ancak bir rakam değil) olmalıdır. Tanımlayıcılardaki boşluklara izin verilmez.
Anahtar (ayrılmış) kelimeler, derleyici için özel bir değeri olan kelimelerdir. Tanımlayıcı olarak kullanılamazlar.
- Operasyon belirtileri, operands üzerindeki eylemi belirleyen bir veya daha fazla karakterdir. Operasyonlar, bu operasyona katılan işlenenlerin sayısındaki UNARL, İkili ve Ternar'a ayrılmıştır.
Sabitler değişmez değerlerdir. Tamsayı, gerçek, sembolik ve dize sabitleri var. Derleyici, sabiti bir Lexeme (temel tasarım) olarak vurgular ve görünüşüne göre türlerden biriyle ilişkilendirir.
Ayrılır - parantez, nokta, virgül alanı simgeleri.
2.1.1. C ++ içindeki sabitler
Sabit, sabit bir sayısal, dize veya sembolik değerin görüntüsünü temsil eden bir lexemadır.
Sabitler 5 gruba ayrılır:
Bütün;
- gerçek (kayan nokta);
Listelenmiş;
Simgesel;
Dize.
Derleyici, LEX'i vurgular ve belirli bir gruba verir ve sonra
programın metninde ve sayısal değerde kayıt formunda belirli bir türde üç grup.
Sabitler ondalık, oktal ve onaltılık olabilir. Ondalık sabiti, eğer 0 değilse, 0'dan (örnekler: 8, 0, 192345) olarak başlayan bir ondalık basamak dizisi olarak tanımlanır. Octal sabiti, 0'da 0'da her zaman başlayan bir sabittir. Octal sayıları takip eder (örnekler: 016 - Ondalık değer 14, 01). Hex sabitleri, 0x veya 0x karakterlerinden önce (örnekler: 0ha, 0x00F) karakterlerinden önce bir onaltılık sayılar dizisidir.
İÇİNDE tüm sabit derleyicinin değerine bağlı olarakfarklı şekillerde sunacak
içinde bilgisayar belleği (yani, derleyici karşılık gelen veri türüne sabit yardımcı olacaktır).
Gerçek sabitler, bilgisayarın hafızasında başka bir iç sunum şekli vardır. Derleyici, bu tür sabitleri formlarına göre tanır. Gerçek sabitler iki form formuna sahip olabilir: sabit bir nokta ve kayan nokta ile. Sabit nokta sabit görünümü: [Şekiller]. [Şekiller] (örnekler: 5.7, 0001, 41.). Kayan nokta sabitinin görünümü: [Şekiller] [.] [Şekiller] E | e [+ | -] [Rakamlar] (Geçerli: 0.5E5, .11E-5, 5E3). Gerçek sabitlerin kaydedilmesinde, bir bütün veya fraksiyonel kısım veya ondalık bir nokta veya derecenin bir göstergesi olan üstellerin bir işareti düşürülebilir.
Enum Anahtar Kelimesi kullanılarak numaralandırılmış sabitler girilir. Bunlar, özel ve kullanımı kullanımı uygun olan tüm sabitlerdir. Örnekler: Enum (bir \u003d 1, iki \u003d 2, üç \u003d 3, dört \u003d 4);
enum (sıfır, bir, iki, üç) - Listelenen sabitleri tanımlamada, işaretleri \u003d ve sayısal değerleri atarsanız, değerler varsayılana atfedilir. Bu durumda, sol tanımlayıcısı 0 değeri alır ve daha sonra her bir sonraki 1 artacaktır.
enum (on \u003d 10, üç \u003d 3, dört, beş, altı);
enum (Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Satır
Sembolik sabitler, kesme bölgelerinde bulunan bir veya iki karakterdir. Bir sembolden oluşan sembolik sabitler, bir tür char vardır ve hafızada bir bayt işgal eder, iki karakterden oluşan karakter sabitleri int tipine sahiptir ve iki baytı işgal eder. İşaretle başlayan diziler \\ yöneticiler denir, kullanılmıştır:
- Grafiksel bir ekrana sahip olmayan karakterleri temsil etmek için, örneğin:
\\ A - bip,
\\ b - Bir adım'a dönün, \\ n - satır çevirisi,
\\ T - yatay sekmesi.
- Karakterlerin sunumu için: \\, ',? , "(\\\\, \\ ', \\?, \\").
- Hexadecimal veya oktatik kodlu karakterlerin sunumu için (\\ 073, \\ 0xf5).
String sabiti, tırnak içine alınmış bir karakter dizisidir.
Satırların içinde kontrol karakterlerini de kullanabilir. Örneğin: "\\ nnoving string",
"\\ N \\" yüksek seviye programlamanın algoritmik dilleri \\ "".
2.2. C ++ içindeki veri türleri
Veriler dünyadaki programda görüntülenir. Programın amacı, verileri işlemektir. Veri farklı türleri farklı şekillerde depolanır ve işlenir. Veri türü belirler:
1) bilgisayarın hafızasında dahili veri sunumu;
2) bu türün değerlerini alabilen birçok değer;
3) bu tür verilere uygulanabilecek işlemler ve fonksiyonlar.
İÇİNDE görevin gereksinimlerine bağlı olarak, programcı program nesneleri için türünü seçer. C ++ tipleri basit ve kompozitlere ayrılabilir. Basit tipler, tek bir değer ile karakterize edilen türleri içerir. C ++ 'da 6 basit veri türü tanımlanmıştır:
int (bütün)
char (sembol)
wchar_t (gelişmiş sembol) bool (mantıksal) yüzer (gerçek)
Çift (çift doğruluk ile gerçek)
Dahili temsil ve standart tip aralığını belirten 4 tip belirtisi vardır.
kısa (kısa) uzun (uzun) imzalandı (işaret)
İmzasız (Beklenmemiş)
2.2.1. İnt yazın.
Bu türün değerleri tamsayılardır.
Int tipinin boyutu standart tarafından belirlenmez, ancak bilgisayara ve derleyiciye bağlıdır. 16 bitlik bir işlemci için, 32 bit - 4 bayt için 2 bayt atanır.
Kısa belirteç ILD'den önce durursa, numara 2 bayt verilir ve eğer uzun belirteç, daha sonra 4 bayt. Hafıza nesnesine atanan sayısından, bir nesneyi alabilecek birçok geçerli değere bağlıdır:
kısa INT - 2 bayt kaplar, bu nedenle bir aralığa -32768 .. + 32767;
uzun INT - 4 bayt rütbesi, bu nedenle, bir aralığa sahip -2 147 483 648 .. + 2 147 483 647
Int Tipi, 16 bitlikli PC'lerdeki Kısa INT tipi ile ve 32-bit PC'nin uzun vadeli ile çakışır.
İmzalı ve imzasız değiştiriciler, nesnenin alabileceği izin verilen değerler kümesini de etkiler:
İmzasız kısa İnt - 2 bayt kaplar, bu nedenle, 0.65536 aralığına sahiptir; İmzasız Uzun İnt - 4 bayt, bu nedenle, 0 .. + 4 294 967'dir.
2.2.2. Char yazın.
Bu tür değerler, normal sipariş edilen karakter kümesinin elemanlarıdır. Her karakter, sembol kodu adı verilen sayıya uygundur. Sembol tipinin boyutunda 1 bayt verilir. Char tipi imzalı ve imzasız özelliklerle kullanılabilir. Bu imzalanmış char tipinde, değerleri -128 ile 127 arasındaki değerleri saklayabilirsiniz. İmzasız karakter türünü kullanırken, değerler 0 ila 255 arasında olabilir. ASCII kodu kodlama için kullanılır ( Amerikan Standart Kodu Foe International Interchange). 0'dan 31'e kadar kodlu semboller hizmettir ve yalnızca G / Ç ifadelerinde bağımsız bir değere sahiptir.
Char tipi değerleri, sayıları belirtilen aralıktan saklamak için kullanılır.
2.2.3. Wchar_t yazın.
Unicode gibi 1 baytta olmayan kodlama için bir dizi karakterle çalışmak üzere tasarlanmıştır. Bu türün boyutu, kural olarak, kısa türüne karşılık gelir. Bu türdeki dize sabitleri L ön eki ile kaydedilir: l "string # 1".
2.2.4. Bool yazın
Bool Tipi Mantıksal olarak adlandırılır. Değerleri doğru ve yanlış değerler alabilir. Dahili temsilin yanlış şekli 0'dır, herhangi bir diğer değer doğru olarak yorumlanır.
2.2.5. Kayan nokta tipleri.
Gerçek sayının iç temsili 2 bölümden oluşur: Mantissa ve Sipariş. IBM uyumlu PC'de, şamandıra tipinin büyüklüğü 4 bayt, bir deşarj, Mantissa'nın belirtisi altında, 8 ve 24 - Mantissa'nın altında boşalma.
Çift Kişneli 8 Bayt, 11 ve 52 deşarjı türlerinin değerleri sırasıyla sipariş ve Mantissa uyarınca taburcu edilir. Mantissa'nın uzunluğu, sayının doğruluğunu ve aralığının uzunluğunu belirler.
Çift tip isminin önünde uzun bir belirteç varsa, baytlar büyüklük altında verilir.
2.2.6. Void türü
İçin ana tipler ayrıca bu türün birçok değerinin boşluğunu ifade eder -
2.3. Değişkenler
C ++ içindeki değişken, verilerin depolandığı adlandırılmış bir bellek alanıdır. Değişken bir isim ve değeri vardır. İsim, değerin depolandığı bellek alanına başvurmaya yarar. Kullanmadan önce, herhangi bir değişken açıklanmalıdır. Örnekler:
Açıklamanın açıklamasının genel görünümü:
[Hafıza Sınıfı] Tip Adı [Initartizer];
Hafıza sınıfı değer alabilir: Otomatik, Extern, Static, Kayıt. Hafıza sınıfı, değişkenin ömrünü ve kapsamını belirler. Hafıza sınıfı açıkça belirtilmezse, derleyici reklam bağlamı temelinde belirler. Yaşam süresi kalıcı olabilir - programın yürütülmesi sırasında veya geçici olarak - blok boyunca. Kapsam - Değişkene olağan erişimin varsaydığımız programın metninin bir parçası. Genellikle görünürlük kapsamı eylem alanı ile çakışır. Ek olarak, iç blokta aynı isimde bir değişken olduğunda durum.
Const - Bu değişkenin değiştirilemediğini gösterir (sabit olarak adlandırılır). Açıkladığınızda, bir başlangıç \u200b\u200bdeğeri değişkeni (başlatma) atayabilirsiniz. Hafıza Sınıfları:
otomatik otomatik yerel değişken. Otomatik özellikler yalnızca, örneğin vücut işlevinde blok nesnelerini belirlerken belirtilebilir. Bu değişken hafıza, üniteye girişte serbest bırakılır ve çıkarken serbest bırakılır. Bloğun dışında, bu tür değişkenler yoktur.
extern, küresel bir değişkendir, programın başka bir yerinde (başka bir dosyada veya metindeki paylaşım). Tüm program dosyalarında mevcut olan değişkenler oluşturmak için kullanılır.
statik statik bir değişkendir, sadece değişkenin tanımlandığı dosyanın sınırları dahilinde bulunur.
kayıt, otomatik olarak benzerdir, ancak işlemci kayıtlarında hafıza tahsis edilir. Böyle bir olasılık yoksa, değişkenler otomatik olarak işlenir.
int a; // Global Değişken Void Main () () ()
int b; // yerel değişken
extern Int X; // X değişken x statik int c; // local statik değişken a \u003d 1; // küresel bir değişken atama
int a; // yerel değişken a
a \u003d 2; // yerel bir değişken atama :: a \u003d 3; // Küresel değişken atama
int x \u003d 4; // tanım ve başlatma x
Örnekte, A değişkeni tüm blokların dışında belirlenir. A değişkesinin eylem alanı, yerel değişkenin kullanıldığı satırlar hariç tüm programdır. Değişkenler B ve C - Yerel olarak, görünürlük alanının bir bloktur. Yaşam ömrü: B bloğa girerken (varsayılan olarak, otomatik bellek sınıfı) çıkarken B bloğunu (varsayılan olarak, otomatik bellek sınıfı) piyasaya sürülürken serbest bırakılır. Program çalışırken (statik) olan bir değişken var.
Eğer, başlangıç \u200b\u200bdeğerini belirlerken, değişkenler açıkça belirtilmez, ardından derleyici küresel ve statik değişkenleri sıfırlar. Otomatik değişkenler başlatılmamış ..
Değişkenin adı, eylem alanında benzersiz olmalıdır.
Değişkenin açıklaması tamamlanabilir veya bir reklam olarak veya tanım olarak. AD, bellek sınıfı ve değişken türü hakkında bilgi içerir, bu bilgi ile birlikte tanım, bellek tahsis etmek için bir gösterge verir. Dış int x örneğinde; - Duyuru ve diğerleri - tanımlar.
2.4. C ++ içindeki işlemler
Operasyon belirtileri ifadelerin oluşumunu sağlar. İfadeler işlenenlerden, operasyonların ve parantez işaretlerinden oluşur. Her operand, sırayla, ifade veya özel ifadelerin olguları sabit veya değişkendir.
UNARY OPLUATLARI
& operand adresini almak
* Adrese itiraz (aralık)
- unrey eksi, aritmetik operandın işaretini değiştirir
++ Bir artar:
Önek Çalışma - Operasyonu kullanımına artırır