Contacte

Exemple de limbaj algoritmic. Limbaj algoritmic rus. Exemple de scriere a expresiilor logice care sunt adevărate atunci când sunt îndeplinite condițiile specificate

Limbaj algoritmic școlar

Limbaj algoritmic(de asemenea Limbaj algoritmic rus, PARADISE) este un limbaj de programare utilizat pentru scrierea și învățarea algoritmilor. Atunci când studiați informatica în școli, așa-numitul. limbaj algoritmic școlar (limbaj algoritmic educațional), folosind cuvinte în limba rusă pe care elevul le poate înțelege. Spre deosebire de majoritatea limbajelor de programare, limbajul algoritmic nu este legat de arhitectura computerului, nu conține detalii legate de structura mașinii.

Exemple de

Algoritmul în limbajul algoritmic în general este scris în forma:

alg numele algoritmului (argumente și rezultate) dat condiții de aplicabilitate a algoritmului este necesar scopul algoritmului din timp descrierea valorilor intermediare | secvența de comenzi (corpul algoritmului) con

În evidența algoritmului, cuvintele cheie erau de obicei subliniate sau cu caractere aldine. Pentru a evidenția blocurile logice, s-au folosit indentări, iar cuvintele asociate de la începutul și sfârșitul blocului au fost conectate printr-o linie verticală.

Un exemplu de calcul al sumei pătratelor:

alg Suma patratelor ( arg intact n, a tăia intact S) dat| n> 0 este necesar| S = 1 * 1 + 2 * 2 + 3 * 3 + ... + n * n din timp intact eu | intrare n; S: = 0 | nts pentru i de la 1 la n | | S: = S + i * i | kts | ieșire„S =”, S con

Atelierul electronic

Pentru a consolida studiul teoretic al programării într-un limbaj algoritmic, specialiștii Facultății de Mecanică și Matematică a Universității de Stat din Moscova în 1985 au creat un editor-compilator „Atelierul electronic”(„E” - în cinstea lui Ershov), care vă permite să introduceți, să editați și să executați programe într-un limbaj algoritmic.

În 1986, un set de lumi educaționale (interpreți) a fost lansat pentru „E-workshop”: „Robot”, „Proiectant”, „Două picioare”, „Vehicul pentru toate terenurile”, care vă permit să introduceți pur și simplu conceptele a algoritmului. „Atelierul electronic” a fost implementat pe computere: Yamaha, Corvette, UKSC și a devenit răspândit.

Acest limbaj de programare a fost în permanență rafinat și în manualul din 1990 a apărut o descriere a versiunii ulterioare a „atelierului electronic”. Sistemul de programare „Kumir” („Set of Educational Worlds”), care susține acest manual, a fost publicat de întreprinderea „InfoMir” în 1990. Limbajul acestui sistem se mai numește „Kumir”.

În 1995, „Kumir” a fost recomandat de Ministerul Educației al Federației Ruse ca principal material didactic pentru cursul „Fundamentele informaticii și ingineriei computerizate” bazat pe manualele de A. G. Kushnirenko, G. V. Lebedev și R. A. Svoren. ...

Critică

Cu toate acestea, trebuie remarcat faptul că limbajul algoritmic, în absența detaliilor care îl conectează direct cu arhitectura computerului, totuși, referindu-se la limbajele de tip Algol, îi învață implicit pe elevi să se bazeze pe arhitectura von Neumann a mașinilor. (Arhitectura von Neumann este o implementare practică a unei idei anterioare numite Mașina Turing. În plus față de ideea Turing, există și alte idei. Cea mai populară dintre ele se numește calcul Lambda: Biserica Alonzo a lucrat la ea. Mașina Lisp este o arhitectură care se bazează pe Lambda-calcul.)

Link-uri

  • A.P. Ershov. Limbaj algoritmic în cursul școlar al elementelor de bază ale informaticii și tehnologiei computerizate. 05/07/1985
  • Forum despre limbaje de programare rusești și instrumente de dezvoltare

Fundația Wikimedia. 2010.

Vedeți ce este „Limbajul algoritmic școlar” în alte dicționare:

    Limbajul algoritmic este un limbaj formal folosit pentru a scrie, implementa sau învăța algoritmi. Fiecare limbaj de programare este un limbaj algoritmic, dar nu orice limbaj algoritmic este potrivit pentru a fi folosit ca limbaj ... ... Wikipedia

    Acest termen are alte semnificații, vezi Limbaj algoritmic. Limbajul algoritmic educațional este un limbaj formal folosit pentru a scrie, implementa și învăța algoritmi. Spre deosebire de majoritatea limbajelor de programare, nu este legat de ... Wikipedia

    Acest termen are alte semnificații, vezi Dragon (dezambiguizare). Un exemplu de diagramă bloc a unui algoritm în dragonul cu limbaj DRAGON al unei scheme DRAGON (Limbaj algoritmic rus prietenos care oferă vizibilitate) vizual ... ... Wikipedia

    Învățarea limbajului de programare Un limbaj de programare conceput pentru predare. Ca atare, au fost dezvoltate limbaje precum BASIC și Pascal. Dezvoltat pentru învățare, ABC a apărut din Python. Limbaj popular, ... ... Wikipedia

    Acest articol este propus spre ștergere. Puteți găsi o explicație a motivelor și discuția corespunzătoare pe pagina Wikipedia: De șters / 28 septembrie 2012. Deși procesul de discuție nu este finalizat, articolul poate ... Wikipedia

    Limbajul algoritmic (de asemenea, limbajul algoritmic rus, PARADISE) este un limbaj de programare utilizat pentru înregistrarea și studierea algoritmilor. Atunci când studiați informatica în școli, așa-numitul. școală algoritmică ... ... Wikipedia

    Acest termen are alte semnificații, vezi Idol. Kumir ... Wikipedia

    Edumandriva ... Wikipedia

    - (Set of Worlds Educational sau Mira Kushnirenko) un sistem de programare conceput pentru a susține cursurile inițiale de informatică și programare în licee și licee. Bazat pe o tehnică dezvoltată în a doua jumătate a anilor 1980 ... ... Wikipedia

Cărți

  • Programare în limbajul algoritmic Kumir, editat de AG Kushnirenko, Anelikova L., Gusev O .. Acest manual este destinat profesorilor și elevilor pentru a susține cursurile inițiale de informatică și programare în liceu, liceu și liceu. ... Acesta acoperă pașii principali și ...

Scrierea unui algoritm într-un limbaj algoritmic (formal) se numește program. Uneori însăși conceptul de algoritm este identificat cu înregistrarea acestuia, astfel încât cuvintele „algoritm” și „program” sunt aproape sinonime. O ușoară diferență este că atunci când este menționat un algoritm, de regulă, înseamnă ideea de bază a construcției sale, care este comună tuturor limbajelor algoritmice. Programul este întotdeauna asociat cu înregistrarea algoritmului pe un anumit limbaj formal.

Când prezentați ideea unui algoritm, de exemplu, când publicați în articol științific, nu este întotdeauna recomandabil să folosiți un limbaj de programare specific, pentru a nu aglomera prezentarea cu detalii nesemnificative. În astfel de cazuri se folosește un limbaj algoritmic informal, cât mai aproape de natural. Acest tip de limbaj se numește pseudo cod... Nu este dificil pentru un specialist să rescrie un program din pseudocod în orice limbaj de programare specific. Scrierea unui algoritm în pseudocod este adesea mai clară și mai clară, vă permite să alegeți liber nivelul de detaliu, începând de la descrierea în termenii cei mai generali și terminând cu o prezentare detaliată.

Pseudocoduri Sunt descrieri semi-formalizate ale algoritmilor pe limbaj algoritmic condițional, incluzând atât elementele unui limbaj de programare, cât și expresiile limbajului natural, notația matematică general acceptată și multe altele.

Pseudocodul este un sistem de notare și regulă conceput pentru a înregistra în mod constant algoritmi.

Pseudocodul este intermediar între limbajul natural și limbajele de programare. Pe de o parte, este aproape de un limbaj obișnuit, natural, astfel încât algoritmii pot fi scrise și citite în el ca un text obișnuit. Pe de altă parte, unele construcții formale și simboluri matematice sunt utilizate în pseudocod, ceea ce aduce notarea algoritmului mai aproape de notația matematică general acceptată.

Pseudocodul conține de obicei unele construcții care sunt inerente limbajelor de programare. Acest lucru facilitează trecerea de la scrierea în pseudocod la scrierea unui algoritm într-un limbaj de programare pentru un anumit computer. În special, în pseudocod, precum și în limbaje de programare, există cuvinte funcționale, al căror sens este determinat definitiv. Acestea sunt evidențiate cu caractere aldine în textul tipărit și subliniate în textul scris de mână.

Forma generală algoritm:

alg numele algoritmului (argumente și rezultate)

dat condiții de aplicabilitate a algoritmului

este necesar scopul algoritmului

din timp descrierea valorilor intermediare

succesiune de comenzi(corpul algoritmului)

O parte a algoritmului din cuvânt alg la cuvânt din timp numit titlu și partea dintre cuvinte din timp și con - corpul algoritmului.

Într-o propoziție alg după numele algoritmului, între paranteze, sunt indicate caracteristicile (arg, res) și tipul valorii (întreg, lucru, sim, aprins sau jurnal) a tuturor variabilelor de intrare (argumente) și de ieșire (rezultate). Când se descriu tablouri (tabele), se folosește un cuvânt special filă, suplimentat cu perechi de graniță pentru fiecare index al elementelor matrice.

Exemple de propoziții alg :

alg Volumul și aria cilindrului (arg. R, H, res. V, S)

alg Rădăcini KvUr ( arg lucrurile a, b, c, a tăia lucru x1, x2, rez lit t)

alg Excludeți elementul ( arg int N, arg fila lucrului rez A)

alg Diagonal ( arg int N, arg cel tab A, rez lit Otvet)

sugestii dat și este necesar opțional. Se recomandă să scrieți în ele declarații care să descrie starea mediului executorului algoritmului, de exemplu:

alg Înlocuire (arg lit Str1, Str2, arg rez lit Text)

dat | lungimile șirurilor de caractere Str1 și Str2 sunt aceleași

este necesar | peste tot în șirul de caractere text șirul Str1 este înlocuit cu Str2

alg Numărul de maxime (arg întreg N, arg substanță tab A, rez întreg K)

dat | N> 0

este necesar | K - numărul de elemente maxime din tabelul A

alg Rezistența (arg lucru R1, R2, arg int N, res lucru R)

dat | N> 5, R1> 0, R2> 0

este necesar | R - rezistența circuitului

Aici în propoziții dat și este necesar după „|” comentariile sunt înregistrate. Comentariile pot fi plasate la sfârșitul oricărei linii. Nu sunt procesate de traducător, dar fac algoritmul mult mai ușor de înțeles.

Cuvinte de serviciu de bază limbaj algoritmic:

alg (algoritm) sim (simbolic) dat pentru da

arg (argument) aprins (scrisoare) ar trebui de la nr

res (rezultat) jurnal (logic) dacă înainte la

fila start (start) (tabel) apoi alegerea valorii

end (end) nts (start of cycle) altfel și input

int (întreg) kts (sfârșitul ciclului) toate sau ieșire

lucru (real) lungimi (lungime) încă nu a fost aprobat

Comenzi de bază:

1. Comanda de atribuire. Servește pentru evaluarea expresiilor și atribuirea valorilor acestora variabilelor. Forma generală: A: = B unde este semnul ":=" înseamnă comanda pentru a înlocui valoarea anterioară a variabilei din partea stângă cu valoarea calculată a expresiei din partea dreaptă.

De exemplu: a: = (b + c) * sin (Pi / 4); i: = i + 1.

Comenzi de intrare și ieșire.

intrare nume variabile (introducere tastatură)

ieșire nume variabile, expresii, texte. (ieșirea datelor pe ecran)

Comenzi de ramificare.

Aceste comenzi oferă, în funcție de rezultatul verificării stării (da sau nu), alegerea uneia dintre modalitățile alternative de operare a algoritmului. Fiecare dintre căi duce la o ieșire comună, astfel încât algoritmul va continua să ruleze indiferent de calea luată.

Structura de ramificare are patru arome principale:

1. Echipă daca atunci;

în cazul în care un condiție

atunci acțiuni

2. Echipă dacă - atunci - altfel;

în cazul în care un condiție

atunci acțiunea 1

in caz contrar acțiunea 2

3. Echipă alegere;

Alegere

la condiția 1: acțiuni 1

la condiția 2: acțiuni 2

. . . . . . . . . . . .

la condiția N: acțiuni N

4. Echipă alegerea este diferită.

Alegere

la condiția 1: acțiuni 1

la condiția 2: acțiuni 2

. . . . . . . . . . . .

la condiția N: acțiuni N

in caz contrar acțiuni N + 1

Comenzi ciclice.

Oferă executarea multiplă a unui anumit set de acțiuni, care se numește corpul buclei.

Există două comenzi pentru organizarea buclelor:

1. Tip buclă Pana cand - Instruiește executarea corpului buclei atâta timp cât este îndeplinită condiția scrisă după cuvânt pana cand.

nts pana cand condiție

bucla corpului

(secvențializare)

kts

2. Tip buclă Pentru - Instruiește executarea corpului buclei pentru toate valorile unei variabile (parametru buclă) în intervalul specificat.

nts pentru eu din i1 inainte de i2

bucla corpului

(secvențializare)

kts

LIMBAJE DE PROGRAMARE

În prezent, există câteva sute de limbaje de programare utilizate în lume. Fiecare are propria sa zonă de aplicare.

Orice algoritm, după cum știm, este o secvență de instrucțiuni care poate fi urmată într-un număr finit de pași pentru a merge de la datele inițiale la rezultat. În funcție de nivelul de detaliu al instrucțiunilor, nivelul limbajului de programare este de obicei determinat - cu cât este mai puțin detaliat, cu atât este mai mare nivelul limbajului.

Limbaj de programare(limbaj algoritmic) - un set de reguli care determină ce secvențe de caractere alcătuiesc un program (reguli de sintaxă) și ce calcule descrie programul (reguli semantice).

Limbajele de programare au următoarele caracteristici:

  • Nivel de limbă - caracterizat de complexitatea sarcinilor rezolvate folosind acest limbaj.
  • Puterea limbii - caracterizat prin numărul și varietatea sarcinilor, algoritmii de rezolvare care pot fi scrise folosind acest limbaj.
  • Fiabilitate - limba ar trebui să ofere un minim de erori la scrierea programelor. Mai mult, limbajul trebuie să fie astfel încât programele greșite să fie greu de scris.
  • Lizibilitate b - ușurința percepției umane asupra programelor. Această caracteristică este importantă în munca în echipă, atunci când mai multe persoane lucrează cu aceleași texte ale programului.
  • Completitudine - caracterizează capacitatea de a descrie o clasă de probleme într-un anumit domeniu.
  • Flexibilitate - caracterizează ușurința exprimării acțiunilor necesare.

Prin acest criteriu, se pot distinge următoarele niveluri de limbaje de programare:

  • mașinărie;
  • orientat spre mașină (asamblori);
  • independent de mașină (limbi nivel inalt).

Limbajele de mașină și limbile orientate către mașini sunt limbaje de nivel scăzut care necesită specificarea unor mici detalii despre procesarea datelor. Limbile de nivel înalt, pe de altă parte, imită limbile naturale folosind unele dintre cuvintele limbii vorbite și simboluri matematice comune. Aceste limbi sunt mai prietenoase cu oamenii.

Limbile de nivel înalt sunt împărțite în:

  • procedural (algoritmic)(Basic, Pascal, C etc.), care sunt concepute pentru a descrie fără echivoc algoritmi; pentru a rezolva o problemă, limbajele procedurale necesită într-o formă sau alta să scrie în mod explicit procedura de rezolvare;
  • joc de inteligență ( Prolog, Lisp etc. ) , care se concentrează nu pe dezvoltarea unui algoritm pentru rezolvarea problemei, ci pe o descriere sistematică și formalizată a problemei, astfel încât soluția să rezulte din descrierea scrisă;
  • orientat obiect(Object Pascal, C ++, Java etc.), care se bazează pe conceptul de obiect care combină date și acțiuni asupra noastră. Un program într-un limbaj orientat obiect, care rezolvă o anumită problemă, descrie în esență o parte a lumii legată de această problemă. Descrierea realității sub forma unui sistem de obiecte care interacționează este mai naturală decât sub forma unor proceduri de interacțiune.

Crearea unui program de calculator include următoarele etape:

§ analiza;

§ proiectare;

§ programare;

§ testarea și depanarea;

§ exploatare.

Până în prezent, există șase generații de limbaje de programare. Fiecare dintre generațiile următoare este diferită calitativ de cea anterioară în ceea ce privește capacitatea sa funcțională.

  • Prima generatie: Limbaje de mașini. Au apărut la mijlocul anilor 40 ai secolului XX.
  • A doua generație: Asamblatori. De fapt, acestea sunt aceleași limbaje mașină, dar mai frumos „înfășurate”. A apărut la sfârșitul anilor 50 ai secolului XX
  • A treia generatie: Limbaje procedurale. Au apărut la începutul anilor 60 ai secolului XX. Această generație include limbaje universale de nivel înalt care pot fi utilizate pentru rezolvarea problemelor din orice domeniu (de exemplu, Algol-60).
  • A patra generație: Limbi pentru a sprijini structuri complexe de date(de exemplu, SQL). Au apărut la sfârșitul anilor 60 ai secolului XX.
  • A cincea generație: Limbaje de inteligență artificială(de ex. Prolog). Au apărut la începutul anilor 70 ai secolului XX.
  • A șasea generație: Limbaje de rețea neuronală(limbi auto-învățate). Lucrările de cercetare în acest domeniu au început la mijlocul anilor 80 ai secolului XX.

CONCLUZIE

Pentru ca un computer să efectueze o sarcină, trebuie să execute un anumit program. Programul trebuie scris conform unor reguli stricte, într-o formă disponibilă pentru procesare pe computer. Un astfel de set de reguli se numește limbaj de programare sau limbaj algoritmic. Știind principiu general construind și scriind programe pe un computer, puteți rezolva aproape orice problemă necesară în lucrul cu prelucrarea informațiilor de date.

Un limbaj algoritmic educațional este un mijloc de înregistrare a algoritmilor într-o formă intermediară între înregistrarea unui algoritm într-un limbaj natural (uman) și o înregistrare într-un limbaj de computer (limbaj de programare).

Avantajele limbajului algoritmic educațional includ simplitatea acestuia, precum și faptul că algoritmul este scris în limba rusă folosind un anumit număr limitat de cuvinte, al căror sens și metoda de utilizare sunt strict definite. Aceste cuvinte se numesc cuvinte de serviciu.

Pentru a distinge cuvintele de serviciu de alte cuvinte ale limbii, acestea sunt subliniate la scriere.

O înregistrare algoritmică într-un limbaj algoritmic educațional constă dintr-un antet și un corp al algoritmului. Corpul algoritmului este între cuvinte cheie din timpși conși este o succesiune de instrucțiuni ale algoritmului. Titlul include numele algoritmului, reflectând conținutul acestuia, liste de date de intrare (argumente) și rezultate.

Semnătura antetului algoritmului este cuvânt cheie alg.

Deci, algoritmul scris în limbajul algoritmic educațional are următoarea formă:

alg numele algoritmului

arg lista de date sursă

a tăia lista rezultatelor

secvența de comandă a algoritmului

Este recomandabil să începeți studiul limbajului algoritmic școlar cu comanda de atribuire, este una dintre comenzile principale.

Este scris astfel:

<переменная> := <выражение>

Semnul „: =” citește „atribui”.

În cazul în care valoarea căreia i se atribuie valoarea este inclusă în partea dreaptă a comenzii, se întâmplă următoarele:

1) valoarea expresiei scrise în partea dreaptă a comenzii de atribuire este calculată utilizând valorile curente ale tuturor valorilor incluse în această expresie;

2) noua valoare curentă calculată este atribuită variabilei. În acest caz, valoarea anterioară a variabilei este distrusă.

Prin urmare, comanda b: = a + b înseamnă că valoarea variabilei a este adăugată la valoarea curentă anterioară a valorii b și rezultatul obținut devine noua valoare curentă a valorii b.

Acest exemplu ilustrează cele trei proprietăți principale ale atribuirii:

1) până când unei variabile i se atribuie o valoare, aceasta rămâne nedefinită;

2) valoarea atribuită unei variabile este stocată în ea până la următoarea atribuire a unei noi valori acestei variabile;

3) noua valoare atribuită variabilei înlocuiește valoarea sa anterioară.

Acum, să ne luăm cunoștință de structurile de bază, să începem cu o astfel de operație ca „urmați”. Formată printr-o succesiune de acțiuni care urmează una după alta:

acțiunea 1

acțiunea 2

. . . . . . . . .

acțiune n

În continuare, vom analiza structura de ramificare de bază. Acesta oferă, în funcție de rezultatul verificării stării (da sau nu), alegerea uneia dintre modalitățile alternative de operare a algoritmului. Fiecare dintre căi duce la o ieșire comună, astfel încât algoritmul va continua să ruleze indiferent de calea luată. Structura de ramificare are patru arome principale:



1. dacă-atunci;

în cazul în care un condiție

atunci acțiuni

2. dacă-atunci-altfel;

în cazul în care un condiție

atunci acțiunea 1

in caz contrar acțiunea 2

alegerea

lacondiția 1: acțiuni 1

lacondiția 2: acțiuni 2

. . . . . . . . . . . .

la condiția N: acțiuni N

{in caz contraracțiuni N + 1}

Și, în cele din urmă, structura de bază a buclei utilizând limbajul algoritmic școlar va arăta astfel.

Un computer poate executa un program numai dacă instrucțiunile conținute în acesta sunt reprezentate în codul binar al mașinii, adică exprimat într-o limbă al cărei alfabet este format din logice și zerouri. Pentru primele computere, programele au fost compilate direct în coduri de mașini, care necesitau calificări ridicate ale programatorilor și costuri ridicate ale forței de muncă, prin urmare, deja în anii 40, a început dezvoltarea limbajelor de programare, care în vocabularul lor ar fi cât mai aproape posibil la limbajul natural al omului. Astfel de limbaje de programare sunt numite algoritmic.

Un pas intermediar către dezvoltarea limbajelor algoritmice a fost limbajul Asamblator... În Assembler, instrucțiunile nu sunt reprezentate de numere binare, ci ca combinații de caractere (coduri mnemonice), prin care poate fi reprodus sensul instrucțiunii, ceea ce elimină în mod semnificativ dificultățile și dezavantajele programării în limbajul mașinii. Totuși, Assembler are și dezavantaje - este un limbaj orientat spre mașină și propriul limbaj de asamblare este creat pentru fiecare computer. Programarea în Assembler necesită ca un programator să aibă o bună cunoaștere a arhitecturii (dispozitivului) unui computer și este asociată cu costuri semnificative ale forței de muncă, în același timp, cu ajutorul Assembler puteți utiliza cât mai bine resursele computerului într-un program (memorie, viteză), prin urmare Assembler este încă distribuit pe scară largă printre programatorii profesioniști.

Primul limbaj algoritmic a fost Fortran, creat în 1957. de către specialiștii IBM sub conducerea lui John Beckus. Există multe limbaje algoritmice acum: Pascal, C, Algol, PL1, Basic, Lisp, Prolog și multe altele.

Limbajele algoritmice și asamblatoarele sunt limbaje de codificare simbolică, adică limbajelor care funcționează nu cu coduri de mașină, ci cu notații simbolice convenționale, prin urmare programele scrise în aceste limbi nu pot fi executate direct pe computer. Pentru ca un astfel de program să funcționeze, textul acestuia trebuie convertit în coduri de mașină. Pentru aceasta, există programe speciale de traducere (traducători). Există 2 tipuri de traducători - compilator și interpret. Compilator difuzează întregul program simultan și numai după aceea este posibilă executarea acestuia. Interpret este un traducător mai simplu, traduce secvențial instrucțiunile programului și, de asemenea, îl execută în părți.

21) Structura programului în C / C ++.

Un program C ++ constă din funcții , descrieri și directive preprocesator ... Una dintre funcții trebuie să aibă un nume principal ... Executarea programului începe cu prima instrucțiune a acestei funcții. Cea mai simplă definiție a funcției are următorul format:


De regulă, o funcție este utilizată pentru a calcula o valoare, astfel încât tipul acesteia este indicat înaintea numelui funcției. Mai jos sunt cele mai esențiale informații despre funcții:

  • dacă funcția nu trebuie să returneze o valoare, este indicat tipul de gol:
  • corpul funcției este un bloc și, prin urmare, este închis în acolade;
  • funcțiile nu pot fi imbricate;
  • fiecare enunț se încheie cu punct și virgulă (cu excepția unei afirmații compuse).

Un exemplu de structură a unui program care conține funcțiile main, fl și f2:

Programul poate consta din mai multe module (fișiere sursă).

Câteva note despre I / O în C ++

C ++ nu are I / O încorporată - este implementat folosind funcții, tipuri și obiecte conținute în biblioteci standard... Există două moduri: funcții moștenite din limbajul C și obiectele C ++.

Caracteristici de bază I / O în stil C:

int scanf (format const char *, ...) // intrare
int printf (format const char *, ...) // ieșire

Aceștia efectuează intrarea și ieșirea formatată a unui număr arbitrar de valori în funcție de șir. format format... Șirul de format conține caractere care sunt copiate în flux (pe ecran) la ieșire sau solicitate din flux (de la tastatură) la intrare și specificații de conversie care încep cu un semn% care sunt înlocuite cu valori specifice la intrare și ieșire.

Un exemplu de program care utilizează funcții I / O stil C:

#include
int main () (
int i;
printf ("Introduceți un număr întreg \ n");
scanf ("% d", & i);
printf („Ați introdus numărul% d, mulțumesc!”, i);
retur 0;
}

Prima linie a acestui program este o directivă de preprocesare, conform căreia un fișier antet este inserat în textul programului conținând o descriere a funcțiilor de intrare / ieșire utilizate în program (în acest caz, parantezele unghiulare sunt un element de limbă). Toate directivele preprocesatorului încep cu un semn #.

A treia linie este o descriere a unei variabile întregi numită i.

Funcția printf de pe a patra linie tipărește promptul „Introduceți un număr întreg” și mergeți la linie nouă conform secvenței de evadare \ n. Funcția scanf introduce un număr întreg introdus de la tastatură în variabila i (semnul & înseamnă operațiunea de obținere a unei adrese), iar următoarea instrucțiune afișează șirul specificat pe ecran, înlocuind specificația de conversie
asupra valorii acestui număr.

Iată cum arată același program folosind biblioteca de clase C ++:

#include
int main () (
int i;
cout<< "Введите целое число\ n"; cin >> i;
cout<< "Вы ввели число " << i << ", спасибо!";
retur 0;
}

Fișierul antet conține o descriere a unui set de clase pentru controlul I / O. Acesta definește obiecte de flux standard cin pentru intrare de la tastatură și cout pentru ieșire pe ecran, precum și operațiuni de flux.< < и чтения из потока >>.

22) Alfabetul și identificatorii în limbajul C / C ++.

ALFABET
litere majuscule și minuscule latine și subliniere;
Cifre arabe de la 0 la 9;
caractere de spațiu alb: spațiu, file, caractere de linie nouă.
caractere speciale:

Lexemele lingvistice sunt formate din simbolurile alfabetului:
identificatori;
cuvinte cheie (rezervate);
semne de operare;
constante;
delimitatori (paranteze, punct, virgulă, spațiu alb).

IDENTIFICATORI
Identificatorul poate folosi litere, cifre și subliniere latine;
Literele mari și mici sunt diferite;
Primul caracter al unui identificator poate fi o literă sau un subliniat, dar nu un număr;
Spațiile din nume nu sunt permise;
Lungimea unui identificator nu este limitată de standard, dar unii compilatori și linkeri îl limitează;
Identificatorul nu trebuie să fie același cu cuvintele cheie;
Nu se recomandă pornirea identificatorilor cu un caracter de subliniere (pot coincide cu numele funcțiilor sau variabilelor de sistem);
Pe identificatorii folosiți pentru definirea variabilelor externe;
Există limitări ale linkerului (utilizarea diferitelor linkere sau versiuni de linker impune cerințe diferite pentru numele variabilelor externe).

Cuvinte cheie C ++

23) Tipuri de date întregi în C / C ++.

Un tip de date întregi este conceput pentru a reprezenta numere întregi obișnuite în memoria computerului. Principalul și cel mai comun tip întreg este tipul int... Soiurile sale sunt folosite mult mai rar: mic de statura(întreg scurt) și lung(întreg lung). Tipurile întregi includ și tipul char(caracter). În plus, dacă este necesar, puteți utiliza tipul lung lung(lung-lung!), care, deși nu este definit de standard, este acceptat de multe compilatoare C ++. În mod implicit, toate tipurile de numere întregi sunt simbolic, adică cel mai semnificativ bit din astfel de numere determină semnul numărului: 0 este un număr pozitiv, 1 este un număr negativ. În plus față de numerele semnate în C ++, puteți utiliza nesemnat... În acest caz, toate cifrele sunt implicate în formarea unui număr întreg. Când se descriu variabile întregi nesemnate, se adaugă cuvântul nesemnat(nesemnat).

Tabel rezumat al tipurilor de date întregi semnate:

Tipul de date Dimensiune, octeți Gama de valori
char -128 ... 127
mic de statura -32768 ... 32767
int -2147483648 ... 2147483647
lung -2147483648 ... 2147483647
lung lung -9223372036854775808 ... 9223372036854775807

Tabel rezumativ al tipurilor de date întregi nesemnate:

Tipul de date Dimensiune, octeți Gama de valori
caracter nesemnat 0 ... 255
scurt nesemnat 0 ... 65535
nesemnat int (puteți doar nesemnat) 0 ... 4294967295
nesemnat lung 0 ... 4294967295
nesemnat lung mult 0 ... 18446744073709551615

Cu greu merită să ne amintim valorile limită, în special pentru numere întregi de 4 sau 8 octeți, este suficient să știm cel puțin în ce ordine pot fi aceste valori, de exemplu, de tip int- aproximativ 2 · 10 9.

În practică, se recomandă utilizarea tipului întreg de bază peste tot, adică int... Ideea este că datele de tip întreg de bază sunt aproape întotdeauna procesate mai repede decât datele altor tipuri întregi. Tipuri scurte ( char, mic de statura) sunt potrivite pentru stocarea unor matrice mari de numere pentru a economisi memorie, cu condiția ca valorile elementelor să nu depășească limita pentru aceste tipuri. Sunt necesare tipuri lungi într-o situație în care nu există suficient tip int.

24) Tipuri reale de date în limbajul C / C ++.

O caracteristică a numerelor reale (reale) este că acestea sunt aproape întotdeauna stocate în memoria computerului aproximativ și, atunci când se efectuează operații aritmetice pe astfel de date, se acumulează o eroare de calcul.

Există trei tipuri reale de date: pluti, dublași lung dublu... Se ia în considerare tipul principal dubla... Deci, toate funcțiile matematice implicit funcționează cu tipul dubla... Tabelul de mai jos prezintă principalele caracteristici ale tipurilor reale:

Un fel lung dublu este în general același cu tipul dublași de obicei nu este folosit în practică. Când utilizați compilatoare mai vechi de 16 biți, date precum lung dublu au o dimensiune de 10 octeți și sunt corecte până la 19 cifre zecimale.

Este recomandat să folosiți doar tipul peste tot dubla... Lucrul cu acesta este întotdeauna mai rapid, există mai puține șanse de pierdere vizibilă a preciziei cu un număr mare de calcule. Un fel pluti poate fi util numai pentru stocarea matricilor mari, cu condiția ca acest tip să fie suficient pentru rezolvarea sarcinii la îndemână.

25) Tipul de date de caracter în C / C ++.

Nu există un tip de date în standardul C ++ care să poată fi considerat cu adevărat simbolic. Pentru a reprezenta informații simbolice, există două tipuri de date care sunt potrivite în acest scop - acestea sunt charși wchar_t, deși ambele tipuri sunt inerent tipuri întregi. De exemplu, puteți lua caracterul „A” și îl puteți împărți la numărul 2. Apropo, ce se întâmplă? Sugestie: caracter spațial. Pentru tipurile de caractere „normale”, cum ar fi Pascal sau C #, operațiile aritmetice pe caractere sunt interzise.

Un fel char folosit pentru a reprezenta caractere în conformitate cu sistemul de codificare ASCII (American Standard Code for Information Interchange). Acesta este un cod de șapte biți, este suficient să codificați 128 de caractere diferite cu coduri de la 0 la 127. Caracterele cu coduri de la 128 la 255 sunt utilizate pentru a codifica fonturi naționale, caractere pseudo-grafice etc.

Un fel wchar_t este conceput pentru a funcționa cu un set de caractere pentru care 1 octet nu este suficient, de exemplu, Unicode. Tastați dimensiunea wchar_t de obicei 2 octeți. Dacă programul trebuie să utilizeze constante de tip șir, cum ar fi wchar_t, apoi sunt scrise cu prefixul L de ex. L "Cuvânt".

26) Operatorul de atribuire și operatorul gol în C / C ++

Operator de misiune este cel mai des utilizat operator. Scopul său este de a atribui o nouă valoare unei variabile. Există trei forme ale acestui operator în C ++.

1)Operator simplu de atribuire este scris astfel:

variabilă = expresie;

Acest operator funcționează după cum urmează: mai întâi, este evaluată expresia scrisă în dreapta simbolului operației = (egal), atunci rezultatul este atribuit variabilei din stânga semnului = ... Tipul rezultatului trebuie să fie același cu tipul variabilei scrise în stânga sau să fie reductibil la aceasta.

În stânga semnului = nu poate exista decât o variabilă, în dreapta puteți scrie atât o constantă cât și o variabilă și, în general, o expresie de orice complexitate.

Exemplu de operatori

y = x + 3 * r;

s = sin (x);

2)Atribuire multiplă- într-un astfel de operator, secvențial de la dreapta la stânga, mai multor variabile li se atribuie aceeași valoare, de exemplu:

a = b = c = 1;

Deci, puteți determina imediat, de exemplu, că într-un triunghi echilateral toate laturile sunt egale cu același număr 1. Operatorul de mai sus este echivalent cu executarea secvențială a trei operatori:

Bineînțeles, este mai ușor pentru noi să scriem un operator, nu trei. Programul este mai scurt, textul arată mai natural și această construcție funcționează puțin mai repede.

3)Atribuire în timpul efectuării unei operațiiîn formă generală este scris astfel:

variabilă op_sign = expresie;

și este echivalent cu scrisul

variabilă = variabilă op_sign expression;

De exemplu, operatorul:

s + = 5; // prima opțiune

face la fel ca operatorul

s = s + 5; // a doua opțiune

și anume: luați vechea valoare din variabilă s, adăugați la acesta numărul 5 și scrieți valoarea rezultată înapoi în variabilă s.

După cum puteți vedea, înregistrarea primei variante este mai scurtă decât înregistrarea celei de-a doua variante și se execută mai repede, deoarece în prima variantă adresa variabilei s este calculat de 1 dată, iar în a 2-a variantă - de două ori.

Operator gol

O afirmație goală este o afirmație care nu face nimic. De ce ai nevoie de un operator „inutil”?

Un operator gol este utilizat în cazurile în care, în conformitate cu sintaxa limbii, este necesar să notăm orice operator, dar conform logicii programului, nu vom face nimic. De exemplu, o declarație goală poate fi necesară într-o instrucțiune de ramificare atunci când nu trebuie făcut nimic pe o ramură, precum și pentru a defini o etichetă pentru un salt în textul programului și, uneori, pentru un corp de buclă goală.

Un operator gol este un singur caracter ; (punct și virgulă), de exemplu:

c = a + b; ;

Iată primul personaj ; (punct și virgulă) completează declarația de atribuire, iar al doilea caracter ne oferă doar o declarație goală. În această situație, un operator gol nu este deloc necesar (dar nici nu este o eroare de sintaxă!), Este furnizat doar pentru clarificare. Exemple mai „rezonabile” de utilizare a operatorului gol vor fi date mai târziu în subiectele aferente.

27) Operații aritmetice în C / C ++.

Acestea sunt cele mai frecvent utilizate operațiuni. Semnificația lor este apropiată de ceea ce se știe dintr-un curs de matematică. Deci, să le enumerăm:

Prioritatea operațiilor de adunare și scădere este mai mică decât cea a înmulțirii, împărțirii și restului. Pentru a schimba ordinea de calcul, utilizați paranteze, de exemplu, pentru a multiplica cu 2 suma a două numere Ași B poti sa scrii:

Mai departe. După cum puteți vedea din rezultatele obținute, în C ++ un semn / înseamnă două operații diferite. Dacă unul sau ambii operanzi sunt reali, atunci se efectuează împărțirea obișnuită, dacă ambii operanzi sunt numere întregi, atunci se efectuează împărțirea întregi și rezultatul va fi de tip întreg. Utilizarea acestei operații necesită o atenție deosebită, de exemplu, dacă programați calculul unei expresii matematice

literalmente, adică Asa de:

1/3 * sin (2 * X)

apoi rezultatul indiferent de valoare X va fi întotdeauna zero, deoarece expresia 1/3 înseamnă întreagă diviziune. Pentru a rezolva problema, este suficient să faceți unul dintre operanzi real

1,0 / 3 * sin (2 * X)

Operația de calcul a restului ( % ) este aplicabil numai pentru operanzi întregi.

Schimbare semn... Operație unară " - „Înseamnă o schimbare de semn. După cum puteți vedea din tabelul general al tuturor operațiunilor, are o prioritate foarte mare - mai mare decât, de exemplu, operația de multiplicare. Prin urmare, în expresie

mai întâi, semnul este schimbat pentru Ași apoi multiplicare -A pe B.

Pentru asociere, există și o operație plus unar, adică poate scrie

În ce scopuri se folosește? Este greu de spus. Dar există o astfel de posibilitate.

Mai interesante și, cel mai important, foarte frecvente sunt operațiile de autoincrementare și autodescreștere.

O parte a algoritmului din cuvânt alg la cuvânt din timp numit titlu și partea dintre cuvinte din timpși con- corpul algoritmului.

Într-o propoziție alg după numele algoritmului, între paranteze, sunt indicate caracteristicile (arg, res) și tipul de valori (întreg, lucru, sym, lit, jurnal) pentru toate variabilele de intrare (argumente) și de ieșire (rezultate).

Când se descriu tablouri (tabele), se folosește un cuvânt special filă, suplimentat cu perechi de graniță pentru fiecare index al elementelor matrice.

Exemple de propoziții alg:

alg Volumul și aria cilindrului (arg. item R, H, res. item V, S)

alg Roots QvUr (arg lucru a, b, c, rez lucru x1, x2, rez lit t)

alg Exclude element (arg întreg N, arg rez thing tab A)

diagonală alg (arg cel N, arg cel tab A, res lit Otvet)

Propoziții cu cuvinte datși este necesar opțional. Se recomandă să scrieți în ele declarații care să descrie starea mediului executorului algoritmului, de exemplu:

Alg Replacement (arg lit Str1, Str2, arg rez lit Text) dat | lungimile șirurilor de caractere Str1 și Str2 sunt aceleași trebuie | peste tot în șirul de caractere text șirul Str1 este înlocuit cu Str2

Alg Numărul de maxime (arg întreg N, arg material tab A, res întreg K) dat | N> 0 trebuie | K - numărul de elemente maxime din tabelul A

Alg Resistance (arg lucru R1, R2, arg int N, res lucru R) dat | N> 5, R1> 0, R2> 0 trebuie | R - rezistența circuitului

Aici în propoziții datși este necesar după „|” comentariile sunt înregistrate. Comentariile pot fi plasate la sfârșitul oricărei linii. Nu sunt procesate de traducătorul computerizat, dar facilitează foarte mult înțelegerea algoritmului.

Comenzile limbajului de programare școlar AYa

Operator de misiune... Servește pentru evaluarea expresiilor și atribuirea valorilor acestora variabilelor. Vedere generală a operatorului: A: = B, unde semnul ": =" înseamnă o operație de atribuire, adică comanda pentru a înlocui valoarea anterioară a variabilei A din partea stângă cu valoarea calculată a expresiei B din partea dreaptă.


De exemplu, a: = (b + c) * sin (Pi / 4);

i: = i + 1 .

Pentru intrare și ieșire comenzi de utilizare a datelor

· intrare nume variabile

· ieșire nume variabile, expresii, texte.

Pentru ramificare algoritmul folosește comenzile - în cazul în care unși alegere.

Pentru organizație cicluri - echipe pentruși pana cand descris mai jos.

Un exemplu de scriere a unui algoritm în limba școlii AYa.

Alg Suma de pătrate (arg int n, tăiat intact S) dat | n> 0 trebuie | S = 1 * 1 + 2 * 2 + 3 * 3 + ... + n * ninit întreg eu intrare n; S : =0 nts pentru i de la 1 la n S : = S + i * i kts ieșire "S =", Scon



Ți-a plăcut articolul? Împărtășește-l