Algoritm. Principii de bază ale compilării algoritmilor

Programare

Sarcină

1.Acțiune

2. Proces


3 ALGORITM instrucţiuni.

4. PROGRAM

Nivel inferior compilator sau interpret.

Compilator

Interpret

Date de intrare (dispozitiv de intrare) -> Memorie (program) (date interne) -><->CPU.

Două componente principale ale unui computer:

1) MEMORIA date

Capacitate (dimensiune);

2) PROCESATOR

Reprezentarea datelor în memoria computerului. Conceptul de variabilă, constantă, tip, interval de valori.

În algoritmi și programe, datele apar sub formă de constante și variabile.

CONSTANT este o valoare constantă care este determinată de valoarea sa.

VARIABIL- o cantitate a cărei valoare se poate modifica în timpul procesului de calcul.

Variabila programului este un nume, iar o constantă de program este o zonă de memorie fără nume în care este stocată valoarea anumit tip. Particularitatea variabilelor programului este că au întotdeauna valori specifice și aceste valori pot fi modificate de multe ori în timpul calculelor.

Tipul unei constante este determinat de forma în care este scrisă. Tipul unei variabile este determinat de setul de valori pe care îl poate lua.

Principalele tipuri utilizate în algoritmii mașinii sunt intact, lucruri, jurnalŞi aprins.

Valorile variabilelor întregi sunt numere: 0, 1, -1, 2, -2,..., care sunt reprezentate exact în memoria mașinii.

Valorile variabilelor reale sunt numere reale, scris ca fracții zecimale: 0,5, 1,2*10^6. Numerele reale din memorie sunt prezentate cu rotunjire.

Valorile variabilelor booleene sunt valori booleene: adevărat (1) și fals (0).

Valorile variabilelor de litere sunt litere sau lanțuri de litere din anumite alfabete - rusă, latină etc.: „upchk!!!11”, „x=".

Când este plasată în memoria mașinii, fiecare constantă și variabilă este alocată parcelă separată memorie. Numele variabilei este adresa acestei secțiuni.

Fiecare instrucțiune de program ocupă și o zonă de memorie, a cărei lungime depinde de tipul de instrucțiune.

Datorită zonei limitate în care sunt situate variabilele și constantele, este imposibil să plasați și să formați numere și lanțuri de litere de orice dimensiune. Prin urmare, pentru fiecare computer și limbă, substantiv. valorile maxcel - max integer, minvesch, maxvesch și maxlit. Rezultă calculele ale căror rezultate se încadrează în afara acestor intervale situatii exceptionaleîn mașină.

Principala proprietate a acestor tipuri de date este indivizibilitatea valorilor lor. Fiecare valoare este un obiect care nu se descompune în componente. Astfel de obiecte sunt reprezentate în memoria mașinii prin variabile simple.

Variabilele formate din mai multe componente se numesc variabile structurale. O variabilă cu o structură matrice este o colecție de componente - variabile de același tip. Pentru a desemna componente, numele unei variabile matrice este folosit cu un index care indică în mod unic obiectul dorit.

Cerințe pentru calitatea unui produs software. Criterii de bază de calitate.

O condiție necesară producția în masă și implementarea sistemelor software este organizarea producției industriale a acestor sisteme. Prin urmare, trebuie să existe o tehnologie de programare, adică. o metodă de desfășurare a procesului de producție de software care asigură planificarea, dezvoltarea și livrarea la timp a sistemelor software. Programele trebuie să fie supuse cerințelor ca produs industrial care poate fi utilizat în afara organizației de dezvoltare și care trebuie furnizat pentru replicare, implementare, întreținere și dezvoltare.

LA produs software Se aplică următoarele cerințe:

1. Performanță- capacitatea de a rula programul pe o mașină existentă.

2. Corectitudine (corectitudine)- respectarea strictă a rezultatelor obținute în timpul execuției programului cu cerințele enunțului problemei pentru orice date inițiale acceptabile.

3. Fiabilitate- nu există erori în timpul execuției programului, chiar și pentru datele codificate incorect sau nevalide.

4. Eficiență- timp minim pentru a obține o soluție a problemei în ansamblu, incluzând atât timpul de execuție a programului, cât și timpul de dezvoltare, testare și depanare a programului și a datelor.

5. Documentare- disponibilitatea instrucțiunilor de utilizare și descrierilor logicii interne a programului.

6. Mobilitate- independenţa programului faţă de implementarea specifică.

7. Ergonomie- programul vă permite să minimizați eforturile utilizatorului în pregătirea datelor inițiale, prelucrarea datelor și evaluarea rezultatelor obținute.

8. Lizibilitate- programul trebuie să fie de înțeles.

Enunțarea problemei.

2. Analiza problemei și pregătirea specificațiilor programului- în această etapă se analizează problema, se clarifică formularea ei și se elaborează cerințele pentru program. Este creată o descriere completă și precisă a programului, numită specificația sa. De obicei sunt specificate patru puncte principale: date de intrare/ieșire, metodă și anomalii. Specificația sarcinii– document. Servește ca sarcină pentru dezvoltarea unui program (din el dezvoltatorul programului trebuie să extragă tot ce trebuie să știe despre sarcina cu care se confruntă); face parte dintr-un acord între clientul programului și dezvoltatorul acestuia, o descriere a sarcinii care este acceptabilă pentru client, care nu are neapărat cunoștințe în programare; ar trebui folosit pentru a verifica programul terminat (dacă programul dezvoltat rezolvă problema).

3. Proiectarea algoritmului și structurii datelor și proiectarea testelor- în această etapă se formează structura generala programe. Abordarea fundamentală a dezvoltării de programe și sisteme software este proiectarea de sus în jos. Designul de sus în jos se bazează pe ideea dezvăluirii treptate a detaliilor programului proiectat pe măsură ce se trece de la obiectivul general formulat la cel mai înalt nivel în enunțul problemei la nivelul obiectelor exprimate în termeni „înțeles de un computer. ” Algoritmul este scris într-un metalimbaj conceput pentru a descrie logica internă a programului, precum și pentru a capta deciziile de proiectare pentru organizarea calculelor.

4. Codarea algoritmului într-un limbaj de programare- în această etapă algoritmul este tradus dintr-un metalimbaj într-un limbaj de programare.

5. Depanare (inclusiv testare), prevenirea erorilor - scopul acestei etape este obtinerea unui program corect, i.e. un program în care nu există erori de proiectare (erori care pot apărea în toate etapele dezvoltării programului, inclusiv erori care apar din cauza unei discrepanțe între cerințele clientului și acțiunile contractantului). Tehnici de depanare: control vizual, control sintactic, control al structurii programului, testare.

6. Documentare- un proces de dezvoltare a programului bine structurat vă permite să primiți documentația în paralel, astfel încât până la sfârșitul depanării se obține aproape toată documentația necesară.

Executarea programului.

Primele 4 etape sunt efectuate secvenţial. A cincea etapă este distribuită în toate etapele - fiecare se încheie cu pregătirea documentației.

Tehnologia este un set de metode, precum si reguli si proceduri de aplicare a acestora, care asigura realizarea la timp a unui produs de calitate.

Tehnologia modernă programarea este invariabilă la un anumit limbaj, clasă de probleme și computer.

Tehnologie de programare structurată:

1. Proiectarea de sus în jos a algoritmilor și a datelor.

2. Succesiunea strictă a etapelor de programare.

3. Îndeplinirea cerințelor de calitate a produsului.

Introducerea datelor

Pentru a introduce datele sursă, se utilizează cel mai des procedura ReadLn:

ReadLn(A1,A2,...AK);

Procedura citește K valori ale datelor sursă și atribuie aceste valori variabilelor A1, A2, ..., AK.

La introducerea datelor sursă se produce o transformare de la forma externă de reprezentare la cea internă, determinată de tipul variabilelor. Variabilele care alcătuiesc lista de intrare pot fi de tip întreg, real sau de tip caracter. Citirea datelor brute tip boolean nu este permis în Pascal.

Valorile datelor sursă pot fi separate unele de altele prin spații și prin apăsarea tastelor Tab și Enter.

Nu este permisă separarea numerelor introduse prin virgule!

<оператор #1>;
<оператор #2>;
<оператор #3>;
. . .

Până <условие>

Se citește astfel: „Executați instrucțiunea #1, instrucțiunea #2.: până când condiția este îndeplinită”.

WHILE ciclu:

în timp ce este un ciclu în care starea se află în fața corpului. Mai mult, corpul buclei este executat dacă și numai dacă condiția adevărat; de îndată ce starea devine fals, execuția buclei se oprește.

While are formatul:

în timp ce < условие> do<оператор 1>; (La revedere... face....)

Acest ciclu potrivit doar pentru o singură instrucțiune, dacă doriți să utilizați mai multe instrucțiuni în codul dvs., ar trebui să le includeți între paranteze de instrucțiune - ÎNCEPEŞi Sfârşit; .

21. Implementarea unei bucle parametrice în Pascal. Sintaxa si semantica, restricții de utilizare.

Adesea, unele acțiuni trebuie repetate de mai multe ori, iar numărul de repetări poate fi calculat în avans. De exemplu, procesați secvențial elementele unei matrice. Pentru a implementa eficient acest tip de algoritmi în PL includ bucle cu parametru.

Instrucțiunile buclă sunt folosite pentru a repeta mai multe instrucțiuni în interiorul lor. În limbajul Turbo Pascal, există operatori de buclă precum progresie aritmetică(instrucțiune LOOP cu contor FOR) cu pas +1 sau -1 și instrucțiuni bucle de tip iterativ (While și Repeat)

Un operator de buclă de tip progresie aritmetică este utilizat dacă numărul de repetări ale buclei și pasul de modificare a parametrului buclei +1 sau -1 sunt cunoscute dinainte.

Pentru<параметр цикла>:=<выражение1>la <выражение 2> do <оператор(тело цикла>; - pasul de modificare a parametrului ciclului +1

Până la - -1

Var f1:text

assign(f1,"fișier.txt");

resetare(f1);

O procedură de intrare matrice poate avea diferite grade versatilitate

1) inițializarea fișierelor și introducerea lungimii matricei are loc în programul principal;

(ca în exemplul de mai jos); iar intrarea matricei este în procedură;

(Intrare: f– numele personal, n– lungimea matricei; Ieșire: X- matrice)

Procedură Input1_mas (var f: text; n: ind; var X: mas);

2) fișierele sunt inițializate în programul principal, iar lungimea matricei și a matricei în sine sunt introduse în procedură;

(Intrare: f– f.p. nume, ieșire: n– lungimea matricei; X- matrice)

Procedură Input2_mas (var f: text; var n:ind; var X: mas);

3) numele de fișiere externe sunt introduse în programul principal, iar inițializarea fișierelor și introducerea lungimii matricei și a matricei în sine sunt introduse în procedură;

(Intrare: Namef– nume de fișier extern, ieșire: n– lungimea matricei; X- matrice)

Procedură Input3_mas (Nume: str8; var n: ind; var X: mas);

4) procedura efectuează toate operațiunile: introducerea numelor de fișiere externe, inițializarea fișierelor și introducerea lungimii matricei și a matricei în sine

(intrare: --,ieșire: n– lungimea matricei; X- matrice)

Procedură Input4_mas (var n: ind; var X: mas);

Deoarece real Matricea (reala) este definită extern nume de fișier NamefŞi lungime n matrice, atunci aceste variabile sunt pe care este de dorit să le gestionăm în programul principal. Din acest punct de vedere, varianta cea mai preferată este:

5) numele fișierelor externe și lungimile matricei sunt introduse în programul principal, iar inițializarea fișierelor și intrarea matricei în sine sunt introduse în procedură;

(Intrare: Namef- nume de fișier extern, n– lungimea matricei; Ieșire: X- matrice)

Procedură Input5_mas (Namef: str8; n: ind; var X: mas);

Concepte de bază de programare. Acțiune, proces, algoritm, program.

Programare este o modalitate de a rezolva probleme folosind un PC.

Sarcină- aceasta este o întrebare la care trebuie să se răspundă sau o cerință care trebuie îndeplinită, pe baza condițiilor și ținând cont de restricțiile specificate în sarcină.

1.Acțiune-săvârșit de un anumit obiect și duce la un anumit rezultat (personaj, timp)

Cel mai mult concept important- ACȚIUNE. O acțiune este efectuată asupra unui obiect și duce la un anumit rezultat. Dacă o acțiune poate fi împărțită în părțile sale componente, atunci se numește PROCES. Dacă nu, aceasta este o acțiune elementară.

2. Proces- o actiune care poate fi descompusa in actiuni elementare.


Serial (unul după altul) paralel (simultan)

numit PROCESOR. un interpret care efectuează acțiuni elementare conform instrucțiunilor (uman, automat, computer).

3 . Fiecare acțiune poate fi descrisă folosind un limbaj sau un sistem de formule. ALGORITM- aceasta este o descriere a procesului, de ex. descrierea unei secvențe de acțiuni elementare care conduc la un rezultat specific. Fiecare acțiune elementară este numită. instrucţiuni.

4. PROGRAM numit algoritm care este scris într-un limbaj de înțeles calculator. Diferența dintre un algoritm general și un program de mașină este că în acesta din urmă regulile de comportament trebuie specificate până la cel mai mic detaliu și trebuie compilate în strictă conformitate cu regulile de înregistrare definite pentru mașina utilizată.

Există mai multe niveluri de limbaj. Nivel inferior- limbajul intern al mașinii (cod mașină: 0 și 1). Program în japoneză nivel înalt poate fi introdus în mașină, dar nu poate fi executat. Un program care traduce (traduce) un program dintr-o limbă de nivel înalt în limba internă a unei mașini se numește traducător: compilator sau interpret.

Compilator- un program care traduce codul dintr-un limbaj de nivel înalt în limbaj automat: mai întâi traducerea, apoi executarea programului (Pascal).

Interpret traduce fiecare acțiune și o execută imediat, operator cu operator (de bază).

2. Structura funcțională CALCULATOR. Dispozitive informatice de bază, caracteristicile lor funcționale.

Date de intrare (dispozitiv de intrare) -> Memorie (program) (date interne) -> Date de ieșire (dispozitiv de ieșire). Două săgeți în memorie<->CPU.

Două componente principale ale unui computer:

1) MEMORIA(memorie). Memoria conține obiecte codificate asupra cărora sunt efectuate acțiuni. Aceste obiecte codificate sunt numite. date. Principalele caracteristici ale memoriei:

Capacitate (dimensiune);

Viteza cu care datele sunt scrise și preluate din memorie.

2) PROCESATOR este un dispozitiv care îndeplinește 2 funcții principale:

Efectuează acțiuni asupra datelor;

Controlează succesiunea acțiunilor din programe.

În timp ce procesorul rulează, instrucțiunile programului și datele sunt preluate (citite) din memorie, iar rezultatele sunt scrise (scrise) în memorie.

Că. Memoria joacă rolul unei „camera de stocare” pentru procesor și este folosită atât pentru stocarea programelor, cât și pentru stocarea datelor.

Datele interne procesate de program constau din date de intrare, ieșire și date intermediare.

Datele de intrare, ale căror valori sunt cunoscute din condițiile de problemă, intră în memoria mașinii de la dispozitivul de intrare la cererea programului.

Datele de ieșire rezultate din rezolvarea problemei sunt transmise de program într-o formă care poate fi citită de om către dispozitivul de ieșire.

Datele intermediare, care sunt rezultatul calculelor intermediare ale programului, formează mediul intern al programului.

În viață, întâlnim adesea situații diferite în care realizăm aceleași acțiuni specifice. Pentru a ne trezi la timp, trebuie să ne amintim să pornim alarma. Pentru a ne potoli foamea, trebuie să urmam aceiași pași pentru a pregăti mâncare delicioasă. Pentru a face o muncă care ne este familiară, de multe ori facem același lucru.

Acest comportament poate fi numit diferit, în funcție de contextul în care este luat în considerare. Dacă o privim din perspectiva eficienței operaționale, aceste acțiuni pot fi numite obiceiuri sau aptitudini. Dacă o luăm în considerare din punctul de vedere al afișării procesului, atunci descrierea secvenței de acțiuni, a cărei execuție strictă duce la rezolvarea sarcinilor atribuite într-un anumit număr de pași, se numește algoritm de acțiune.

Cum sunt creați algoritmii de acțiune?

Ne întâlnim constant cu asta în viața de zi cu zi. Ce măsuri luăm pentru a ne umple contul? telefon mobil? Fiecare dintre noi este diferit. Deoarece există mai multe moduri de a reumple un cont, toți o facem diferit. Rezultatul, însă, este întotdeauna același - apariția fondurilor pe telefon.

Sau alt exemplu: pentru a copia o imagine sau un text, faceți clic clic dreapta mouse-ul pe imagine, apoi selectați „Copiere”, plasați-l în locația dorită, faceți clic dreapta pe „Lipire”, iar rezultatul este obținut.

Toate acestea sunt o anumită secvență de acțiuni, în urma căreia prin diverse mijloace sarcina este în curs de rezolvare. Dar pentru moment acestea sunt doar cunoștințele noastre, care se dezvoltă în abilități și abilități, iar dacă acest proces este descris, atunci vom putea vedea clar algoritmul acțiunilor noastre și îl vom transmite altor oameni. Nu totul este clar în cuvinte și nu este întotdeauna clar.

Descrieți succesiunea acțiunilor - va fi amintită

Crea algoritm de acțiuni posibil prin descrierea sau reprezentarea secvenței acesteia. Știe toată lumea ce trebuie făcut pentru a planta un copac? Poate că pașii de bază sunt clari pentru toată lumea, dar nu toată lumea își amintește când să ude un copac, înainte sau după plantare. Algoritmul creat va permite ca toate acțiunile să fie efectuate în secvența corectă.

Pentru a descrie o secvență mai complexă de acțiuni, va trebui să încercați să le scrieți pe toate în detaliu. Un exemplu poate fi luat din tot felul de reguli și instrucțiuni - ele descriu foarte clar pașii pe care trebuie să-i facem. Exista insa situatii in care o anumita actiune este urmata nu de un pas, ci de mai multe, in functie de rezultatul anterior. În acest caz, se înregistrează și acțiunile ipotetice, astfel încât persoana să poată naviga cu ușurință situatii diferiteși știa ce trebuie făcut.

Algoritmul acțiunilor în grafică este o organigramă

Dacă descriem algoritmi de acțiune grafic, folosind forme geometrice cu linii de legătură care arată ordinea în care este efectuată acțiunea, vom obține o diagramă. O diagramă de flux este cu mult superioară regulilor, instrucțiunilor și algoritmilor de acțiuni secvenționați în ceea ce privește claritatea și lizibilitatea sa.

Imaginează-ți că trebuie să înveți ceva altei persoane. Cunoști perfect toate acțiunile dintr-o anumită secvență. Sarcina ta este să arăți cum ar trebui făcut și să-ți transmiți cunoștințele, astfel încât cealaltă persoană să-și amintească și să le cunoască la fel ca tine. Transmiterea orală a cunoștințelor permite improvizația și unele arbitrari. Cel mai mult cel mai bun mod Va exista o diagramă care explică succesiunea și opțiunile posibile. De exemplu, iată un ghid distractiv pentru învățarea schemelor de blogging:

Cea mai bună condiție pentru obținerea rezultatelor este repetarea acțiunilor. Acest lucru afectează cu siguranță viteza de obținere a rezultatelor în viitor. Cu cât trebuie să repetați mai des aceleași acțiuni, cu atât mai repede veți învăța să efectuați succesiunea de acțiuni, ceea ce înseamnă că de fiecare dată ulterioară veți avea nevoie de mai puțin timp pentru a finaliza.

Diagramele sunt utilizate în vânzări

În vânzări, o astfel de instruire prin dezvoltarea algoritmilor și reprezentarea lor sub formă de diagrame de flux este larg răspândită. Cel mai adesea sunt folosite în scenarii de conversație telefonică în centre de apel și pentru apeluri „la rece”. Cultura corporativă ia amploare, așa că multe companii nu mai permit angajaților să facă „gags”, chiar și talentați, ci le oferă să acționeze conform unui scenariu pre-elaborat, reprezentând „fața companiei” în diferite etape. Efectul apare literalmente după câteva zile de făcut lucruri „pe hârtie”. De-a lungul timpului, mulți dintre algoritmii descriși sunt amintiți de către angajat și, în viitor, acesta poate comunica liber, fără teamă de direcția în care poate merge conversația.

Algoritmii de acțiune și schemele de blog sunt dezvoltați nu numai în vânzări. Ele sunt utilizate pe scară largă în formarea și practica medicilor, programatorilor, informaticienilor și a multor specialități tehnice.

Merită să încercați să învățați cum să operați folosind diagrame de flux similare. La urma urmei, atunci când întâlnești pentru prima dată o abundență de acțiuni și sarcini care este de neînțeles la început, te gândești cât de mult îți lipsește o organigramă dezvoltată. După mult chin, nu poți suporta asta și începi să te dezvolți și să creezi pe cont propriu. Oameni eficienti nu-mi plac timpul de nefuncţionare în afaceri. Și diagramele de flux simplifică foarte mult viața și vă permit să înțelegeți rezolvarea unor probleme complexe.

Servicii pentru elaborarea diagramelor de flux

Există servicii pe Internet care vă pot ajuta să creați astfel de diagrame. Unul dintre ei este Сacoo. Cu ajutorul acestuia, vă puteți transforma cu ușurință algoritmii în diverse diagrame, organigrame și grafice. Veți descoperi că este o activitate foarte plăcută și veselă să transformați ceea ce știți în știință pentru alți oameni.

buna dispozitie esti garantat. În etapa inițială, puteți utiliza funcțiile unui cont gratuit, dar pe viitor va trebui să plătiți pentru acces. Este firesc ca acces gratuit are limitări comparativ cu cele plătite. Dar pentru învățare și primii pași, funcționalitatea este destul de suficientă.

După ce au dezvoltat algoritmi de acțiune și i-am convertit în diagrame bloc Cu ajutorul lui Cacoo, poți crea o bună dispoziție pentru o lungă perioadă de timp nu numai pentru tine, ci și pentru alte persoane care învață elementele de bază.

Creați diagrame bloc de joacă pentru copiii dvs

Pentru a rezuma cele de mai sus, observ că acum puteți utiliza algoritmi de acțiune și diagrame de flux în diverse situații de viață. Chiar și copiii tăi vor avea o mare plăcere să nu îndeplinească cele mai interesante sarcini, urmând instrucțiuni clare. Dacă aveți idei unde și cum să îl utilizați algoritm de acțiuni, împărtășiți în comentarii, dragi cititori. Aș dori foarte mult să știu despre algoritmii tăi.

Diagrama mea

Aceasta este diagrama cu care am venit prima dată. Pentru a mări o imagine, faceți clic pe ea. După ce mergi la Cacoo, sub intrarea „vizualizează figura”, dați clic pe imagine. Se va deschide într-o fereastră mare. Noroc!

Algoritm? un set de instrucțiuni care descriu ordinea acțiunilor executantului pentru a obține rezultatul rezolvării unei probleme într-un număr finit de acțiuni. În vechea interpretare, în locul cuvântului „ordine” a fost folosit cuvântul „secvență”, dar odată cu dezvoltarea paralelismului în funcționarea computerului, cuvântul „secvență” a început să fie înlocuit cu un în termeni generali"comanda". Acest lucru se datorează faptului că funcționarea unor instrucțiuni ale algoritmului poate fi dependentă de alte instrucțiuni sau de rezultatele muncii lor.

Astfel, unele instrucțiuni trebuie executate strict după finalizarea instrucțiunilor de care depind. Instrucțiunile independente, sau instrucțiunile făcute independente prin completarea instrucțiunilor de care depind, pot fi executate în ordine aleatorie, în paralel, sau simultan, dacă procesorul și sistemul de operare utilizat permit acest lucru.

Un algoritm înseamnă o descriere exactă a unui anumit proces, instrucțiuni pentru implementarea acestuia. Dezvoltarea algoritmului este un proces complex și consumator de timp. Algoritmizare? Aceasta este o tehnică de dezvoltare (compunere) a unui algoritm pentru rezolvarea problemelor pe un computer. Diagrama bloc a algoritmului generalizat al programului este prezentată în Figura 3.9.

Figura 3.9 - Diagrama bloc a algoritmului programului

Pentru a înregistra algoritmul pentru rezolvarea unei probleme, se folosesc următoarele metode vizuale de reprezentare a acestora:

· descriere verbală și formulare;

diagramă bloc (diagrama simboluri grafice);

· limbaje algoritmice;

· diagrame operator;

· pseudocod;

Dezvoltare de produse software

De la apariția platformei .NET (în jurul anului 2001), API-urile au apărut printre bibliotecile de clasă de bază. numele Windows Formulare, reprezentate în principal de ansamblul System.Windows.Forms.dll. Instrumental Windows setat Forms oferă tipurile necesare pentru a construi grafice interfețe cu utilizatorul Pentru computere desktop, crearea de controale specializate, gestionarea resurselor (cum ar fi șiruri și pictograme) și efectuarea altor sarcini întâlnite la programarea pentru computerele utilizatorului. Există, de asemenea, un API suplimentar numit GDI+ (reprezentat de ansamblul System.Drawing.dll), care oferă tipuri suplimentare care permit programatorului să genereze Grafică 2D, interacționează cu imprimantele de rețea și procesează datele grafice.

Windows Forms (și GDI+) sunt native pentru platforma .NET 4.0 și vor exista probabil pentru ceva timp (posibil mult timp) ca parte a bibliotecii de clasă de bază. Adevărat, după lansarea .NET 3.0, Microsoft a lansat un API instrumental complet nou pentru numit Windows Fundația de prezentare (WPF).

Fără îndoială, cel mai important spațiu de nume Windows Forms este System.Windows.Forms. Tipurile din acest spațiu de nume pot fi împărțite în următoarele categorii mari:

· Infrastructură de bază. Acestea sunt tipurile care reprezintă operațiunile de bază ale programelor care utilizează Windows Forms (Form și Application) și diverse tipuri, conceput pentru a interacționa cu moștenirea elemente ActiveXși, de asemenea, pentru interacțiunea cu noile controale WPF personalizate;

· Elemente de control. Aceste tipuri sunt folosite pentru a crea interfețe grafice cu utilizatorul (cum ar fi Button, MenuStrip, ProgressBar și DataGridView), toate acestea derivând din clasa de bază Control. Controalele sunt personalizabile în timpul proiectării și vizibile (în mod implicit) în timpul rulării;

· Componente. Acestea sunt tipuri care nu sunt derivate din clasa de bază Control, dar încă pot furniza programe Windows Formează capacități vizuale (de exemplu, ToolTip și ErrorProvider). Multe componente (de exemplu, Timer și System.ComponentModel.BackgroundWorker) nu sunt vizibile în timpul execuției, dar pot fi totuși personalizate în timpul proiectării;

· Ferestre de dialog standard. Windows Forms vine cu mai multe casete de dialog predefinite pentru operațiuni obișnuite (de exemplu, OpenFileDialog, PrintDialog și ColorDialog).

În lumea Windows Forms, tipul de formular reprezintă orice fereastră dintr-o aplicație, inclusiv fereastra principală în sine. nivel superior, ferestre copil ale aplicațiilor cu o interfață de documente multiple (MDI), precum și casete de dialog modale și fără model. Tipul Form conține multe caracteristici moștenite din clasele sale strămoși, precum și din numeroasele interfețe pe care le implementează.

Pentru a genera complet tipul de formular, sunt necesare multe alte clase de bază și interfețe, dar chiar și un profesionist Dezvoltator Windows Forms nu trebuie să cunoască rolurile tuturor membrilor tuturor claselor sau interfețelor implementate.

Pentru a crea un nou proiect în Visual Studio, selectați „Nou” - „Proiect”, în fereastra care apare, selectați „Aplicație Windows Form” și completați câmpurile propuse.

Pentru transfer interogare SQL Metoda „GetSQLData” prezentată mai jos a fost implementată pe server și returnează rezultatul ca un set de rânduri (interogări selectate).

Metoda ia un șir de interogare ca parametru și are un tip „DataTable” ca valoare returnată? tabel de date.

public static DataTable GetSQLData(interogare șir)

DataSet ds = new DataSet();

myConnection.Open();

prinde (excepția e1)

SqlDataAdapter dataAdapter = SqlDataAdapter nou (comm);

ds = nou DataSet();

dataAdapter.Fill(ds);

MessageBox.Show("Eroare");

myConnection.Close();

prinde (excepție e3)

return ds.Tabele;

Pentru a transmite o interogare SQL către server fără a returna un rezultat (inserare, modificare și ștergere interogări), a fost implementată metoda „SetSQLData” prezentată mai jos. Metoda ia un șir de interogare ca parametru și nu are niciun tip de returnare.

public static void SetSQLData(interogare șir)

SqlConnection myConnection = SqlConnection nou (Config.ConnectionString);

myConnection.Open();

prinde (excepția e1)

MessageBox.Show(e1.ToString());

SqlCommand comm = nou SqlCommand(interogare);

comm.CommandType = System.Data.CommandType.Text;

comm.Connection = myConnection;

comm.ExecuteNonQuery();

myConnection.Close();

prinde (excepție e3)

MessageBox.Show(e3.ToString());

Pentru a se asigura că utilizatorul nu trebuie să introducă un șir de conexiune la baza de date, este, de asemenea, necesar să se creeze o clasă și un fișier de configurare care să stocheze și să permită modificarea setărilor aplicației. În aceste scopuri, au fost create clasa „Config” și, respectiv, fișierul de configurare „App.config”.

șir static public ConnectionString = GetParam("ConnectionStringSql");

Conexiune public string

returnează ConnectionString;

ConnectionString = valoare;

șir static public GetPathTo(șir ParamName)

returnează Application.StartupPath +

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).AppSettings.Settings.Value;

Variabila „Conexiune” a acestei clase este șirul pentru conectarea la server. Când este lansat, este inițializat din fișierul de setări folosind metoda „GetParam” prezentată mai jos.

șir static public GetParam(șir ParamName)

return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).AppSettings.Settings.Value;

„App.config” - un fișier XML care conține variabile și valorile specificate explicit sau implicit ale acestora. Textul documentului xml cu setările utilizatorului generat este afișat mai jos.

connectionString="Șir de conexiune valid;" />

Manipulatorii pentru diverse evenimente de elemente sunt creați în fila „Evenimente”. De exemplu, evenimentul „OnClick” înseamnă „a face clic pe un buton”. După dublu clic pe evenimentul solicitat, se va deschide codul de formular cu un handler declarat, în care trebuie să adăugați cod pentru a gestiona evenimentul emergent.

Să adăugăm următorul cod la handlerul de evenimente OnClick pentru a apela un alt formular de aplicație:

private void button1_Click (expedător obiect, EventArgs e)

NewTest obj = new NewTest();

obj.ShowDialog();

Vom apela toate formele de cerere într-un mod similar. Pentru a citi selecția în tabelul formularului nostru, vom adăuga metoda „Load_Tables” la codul său.

listView1.Items.Clear();

DateTime d = nou DateTime();

pentru (int i = 1; i< dt.Columns.Count; i++)

listView1.Items.Add(articol);

Linia „interogare” din această metodă este o interogare pentru selectarea bazei de date. Acum puteți începe să proiectați și să implementați alte forme ale aplicației.

Puteți adăuga un formular la proiectul curent din fereastra contextuală „Solution Explorer” sau prin meniul „Proiect” - „Adăugați formular Windows”. În fereastra care apare, introduceți numele formă creatăși faceți clic pe „Adăugați”.

Sarcinile pentru aceste elemente din acest formular vor fi următoarele:

1. GroupBox - grupare de câmpuri similare pentru introducerea sau selectarea informațiilor;

2. TextBox - un câmp pentru introducerea manuală a informațiilor care vor fi ulterior folosite în solicitări;

3. Etichetă - un indiciu pentru utilizator despre semnificația unui anumit câmp, precum și datele care trebuie introduse;

4. Buton - confirmare a acțiunii utilizatorului, citită de sistem.

Dacă selectați unul sau altul element „RadioButton” („Student” sau „Profesor”), câmpurile pentru introducerea datelor despre elev sau profesor vor fi deblocate, respectiv. Făcând clic pe butonul „Începe”, se efectuează autorizarea.

Următorul formular de cerere este formularul pentru adăugarea și modificarea datelor de testare.

Datele din câmpurile „Nume”, „Număr de întrebări” și „Profesor” sunt citite și trimise către serverul SQL folosind o solicitare de inserare în metoda „SetSQLData” din clasa „Conexiune”.

În caz de succes sau eșec, utilizatorului va fi afișat un mesaj corespunzător.

La încărcarea formularului, lista noastră drop-down „Profesor” (elementul „ComboBox”) trebuie să fie inițializată și completată cu un anumit set de valori pe care utilizatorul le poate selecta. Pentru a face acest lucru, adăugați metoda „LoadComboboxes” la codul formularului, al cărui cod este prezentat mai jos.

private void LoadComboboxes()

interogare = „Selectați profesorul dintre profesori”;

DataTable dt = Connection.GetSQLData(query);

comboBox1.DataSource = dt;

comboBox1.DisplayMember = "Profesor";

MessageBox.Show("Eroare la încărcarea directorului<Преподаватели>");

Următoarea formă a cererii este raportul „Rezultatele testelor”. Adăugăm un formular așa cum este descris mai devreme, plasăm elementul „ListView” pe formular și dăm formularului următorul aspect.

Acest raport grupează toate încercările studenților înregistrați de a trece cu succes testele folosind sistemul. Pentru a citi tabelul primit de la serverul SQL, adăugați metoda de mai jos la codul formularului.

private void Load_Tables (interogare șir)

listView1.Items.Clear();

DataTable dt = Connection.GetSQLData(query);

foreach (rând DataRow în dt.Rows)

DateTime d = nou DateTime();

ListViewItem item = nou ListViewItem(row.ToString());

pentru (int i = 1; i< dt.Columns.Count; i++)

dacă (i == dt.Columns.Count - 1)

d = Convert.ToDateTime(rând[i]);

item.SubItems.Add(d.ToShortDateString());

item.SubItems.Add(row[i].ToString());

listView1.Items.Add(articol);

Următoarea formă este formularul de testare a cunoștințelor. Elementul „DateTimePicker” este plasat pe formular pentru a urmări cu exactitate orele de început și de sfârșit ale testului. Acest articol ascuns utilizatorului și nu este afișat.

Pentru a lucra la schimbarea întrebărilor și răspunsurilor testului, vom adăuga un alt formular și îi vom da următorul aspect.

Formele rămase au fost create și implementate într-un mod similar. sistem automatizat testarea cunoștințelor la disciplina „Limba rusă”. Funcționalitatea programului este prezentată mai detaliat în secțiunea „Ghidul utilizatorului” și în anexa „Listarea codurilor de program”.

Te-ai gândit vreodată cât de tare ar fi să scrii singur programe? Dar nu aveți dorința de a învăța limbaje de programare? Apoi astăzi ne vom uita la un mediu de programare vizuală care nu necesită cunoștințe în domeniul dezvoltării de proiecte și aplicații.

Un algoritm este un constructor din care împletești programul. Dezvoltat în Rusia, algoritmul este actualizat constant și își extinde capacitățile. Nu este nevoie să scrieți cod aici - trebuie doar să faceți clic pe elementele necesare. Spre deosebire de, algoritmul este un program mai simplu și mai ușor de înțeles.

Cu ajutorul algoritmului poți crea cel mai mult diverse programe: din cel mai simplu „ Salut Lume” la browserul de internet sau joc de rețea. Destul de des, oamenii a căror profesie este strâns legată de calculele matematice apelează la algoritm, deoarece este foarte convenabil de utilizat pentru rezolvarea problemelor matematice și fizice. Totul depinde de răbdarea și dorința ta de a învăța.

Set mare de obiecte

Algoritmul are un set mare de obiecte pentru crearea de programe: butoane, etichete, diverse ferestre, glisoare, meniuri și multe altele. Acest lucru face posibil ca proiectul să fie mai atent, precum și să creeze o interfață ușor de utilizat. Pentru fiecare obiect, puteți seta o acțiune, precum și proprietăți unice.

Material de referință

Materialul de referință al algoritmului conține răspunsuri la toate întrebările. Puteți găsi informații despre fiecare element, puteți vedea exemple și vi se va solicita, de asemenea, să vizionați antrenament video.

Avantaje

1. Capacitatea de a crea programe fără cunoașterea unui limbaj de programare;
2. Un set mare de instrumente pentru crearea unei interfețe;
3. Interfață convenabilă și intuitivă;
4. Abilitatea de a lucra cu fișiere, foldere, registry etc.;
5. limba rusă.

Defecte

1. Algoritmul nu este destinat proiectelor serioase;
2. Puteți compila un proiect în .exe numai pe site-ul dezvoltatorului;
3. Funcționează cu grafică destul de mult timp.

Algoritmul este un mediu de dezvoltare distractiv care vă va încuraja să învățați limbaje de programare. Aici vă puteți arăta imaginația, puteți crea ceva unic și, de asemenea, puteți înțelege cum funcționează programele. Dar algoritmul nu poate fi numit un mediu cu drepturi depline - este încă doar un constructor în care puteți învăța elementele de bază. Dacă înveți cum să dezvolți proiecte cu ajutorul acestuia, atunci în viitor poți trece la învățarea Delphi și C++ Builder.

După cum știți deja, un computer este un sistem controlat de software pentru lucrul cu informații și este control softwareîl face atât de versatil. Această parte a cursului de informatică este dedicată modului în care sunt compilate programele. tehnologia de informație. Și o vom începe cu două concepte de bază: „algoritm” și „program”.

Algoritmul 1 este unul dintre conceptele fundamentale ale informaticii. Acest cuvânt denotă o prescripție precisă și de încredere a unei secvențe de acțiuni care se traduce dispozitiv automat din starea initialaîn rezultat. Aceste. Putem considera orice instrucțiune un algoritm dacă:

comenzile ei nu permit diverse opțiuni execuţie;

instrucțiunile sunt oferite pentru toată lumea opțiuni posibile evoluții ale evenimentelor.

Din acest punct de vedere, puteți crea, de exemplu, un algoritm de turnare de la gol la gol. Cu toate acestea, în practică, algoritmii sunt proiectați pentru a rezolva anumite probleme, de ex. obtinerea rezultatelor necesare din datele initiale date. Tipul de algoritm, și însăși posibilitatea de a-l scrie, depind de executant (aceasta poate fi fie o persoană, fie un dispozitiv automat), sau mai precis, de sistemul său de comenzi (adică un set de instrucțiuni pe care le „știe”. cum” să execute). Prin urmare, în cele ce urmează vom folosi următoarea definiție.

Un algoritm pentru rezolvarea unei probleme este o succesiune de comenzi valide ale executantului care determină acțiunile sale în trecerea de la datele inițiale la rezultatul dorit.

Ce proprietăți ar trebui să aibă un algoritm? Să le enumerăm:

discretitate2 -- algoritmul este împărțit în etape elementare separate;

certitudine - fiecare comandă determină în mod unic acțiunea executantului;

finitate (eficacitate) - algoritmul trebuie finalizat într-un număr finit de pași.

În plus, algoritmul poate avea o altă proprietate utilă (dar nu obligatorie) - disponibilitatea în masă. Aceasta înseamnă că va fi potrivit nu pentru o anumită sarcină, ci pentru o întreagă clasă de sarcini similare.

O caracteristică esențială care nu trebuie uitată este direct legată de certitudine: executantul realizează algoritmul în mod formal3, fără să se gândească deloc la sensul acțiunilor efectuate. Prin urmare, nu ar trebui să fii ofensat de un computer care „nu și-a dat seama” la ce ai vrut să spui - face sincer ceea ce ai scris.

Există multe moduri diferiteînregistrări ale algoritmilor: grafică (de exemplu, sub formă de organigrame), folosind limbajul natural, unele simboluri etc. Dar dacă vrem ca algoritmul să fie executat de un computer, trebuie să fie notat pe el limbaj special. O astfel de înregistrare se numește program4, iar limbajul se numește limbaj de programare.

Știți că toate informațiile dintr-un computer sunt reprezentate sub formă de coduri binare. În coduri, fiecare dintre acestea denota o acțiune simplă (cum ar fi „transfer un număr dintr-o celulă de memorie în alta”), era necesar să se scrie programe pentru primele computere. Dar această sarcină este foarte complexă și minuțioasă și, în plus, necesită cunoaștere aprofundată a caracteristicilor unei anumite mașini. Prin urmare, au fost inventate limbaje de programare de nivel înalt. Un program într-un astfel de limbaj este o succesiune de comenzi notate prin cuvinte din limbaj natural sau abrevierile acestora. Fiecare dintre ele corespunde unei secvențe de zeci sau chiar sute de instrucțiuni ale mașinii. Ca rezultat, înregistrarea este mult mai compactă și mai ușor de înțeles.

Dar procesorul nu înțelege comenzile de limbaj de nivel înalt, așa că trebuie mai întâi „traduse”. În acest scop se folosesc programe speciale - traducători5.

Acum în lume există multe limbaje de programare concepute pentru diverse domenii de aplicare. În cursul nostru vom folosi Logo6 - un limbaj special creat pentru predarea elementelor de bază ale programării. Acest limbaj este foarte simplu (apropo, spre deosebire de limbi profesionale programare, vă permite să scrieți comenzi în rusă), dar, în același timp, contribuie la formarea abilităților care vor apoi, dacă doriți, probleme speciale treceți la lucrul cu limbaje populare, cum ar fi C sau Pascal. Limbajul Logo este renumit în special pentru „grafica țestoasă”. Vom vorbi despre ce este aceasta în capitolul următor.

Note

Algorithmi (latină) este o corupție a numelui matematicianului din secolul al IX-lea al-Khwarizmi, care a propus o metodă de efectuare a calculelor aritmetice cu numere cu mai multe cifre.

Rețineți că abordarea definirii unui algoritm ca o secvență de operații nu este singura posibilă. Pe lângă această abordare procedurală (imperativă), este posibilă și o abordare funcțională, atunci când algoritmul este considerat ca un sistem de funcții.

Discret (engleză) -- format din părți separate

Formalis (lat.) -- strict conform regulilor stabilite

Programma (greacă) -- ordin

Translator (engleză) -- translator

Limbajul Logo (Logo, din greaca Logos - cuvant, gand) a fost dezvoltat in 1972 de Seymour Papert (Massachusetts Institute of Technology, SUA). „Progenitorul” său a fost cel mai faimos dintre limbajele de programare funcționale - Lisp, cu toate acestea, în procesul de dezvoltare, Logo a dobândit o serie de caracteristici care au făcut posibilă utilizarea atât a abordărilor funcționale, cât și a celor procedurale atunci când lucrați cu acesta.