Internet Windows Android

Comanda filialei in totalitate si nu. Orientări și sarcini Algoritmi cu exemple de ramificare în BASIC

Subiecte: „Programe de ramificare și looping în BASIC, lucru

cu matrice.”

Sarcina constă din mai multe părți:

- citește materialul de curs pe tema (pag. 1-5) și analizează exemplele;

- a executaexercitiul 1(pag. 5);

- citește materialul de curs pe tema (pag. 6-8) și analizează exemplele;

- a executaexercițiu2 (Cu.8-9 );

- citește materialul de curs pe tema (pag. 9-14) și analizează exemplele;

- a executasarcina 3(pag. 14);

- familiarizează-te cu conceptul de „matrice” și exemple de lucru cu matrice (p. 15-17).

Trimite temele rezolvate la adresa de e-mail a școlii, într-o scrisoare către

În secțiunea „Subiect”, indicați „Kaverina N. E. informatică”. La începutul textului

literele indică numele dvs. de familie, clasa, data finalizării sarcinii și

numere de locuri de muncă (13 - 1 7 ). Copiați temele și apoi notați răspunsurile.

ATENŢIE! Misiunea trebuie depusă până pe 12 ianuarie.

Ramificare în algoritmi și programe.

Examinați materialul de curs pe această temă, analizați exemple,

Dacă aveți întrebări, adresați-le într-o scrisoare.

Algoritm de ramificare este un algoritm în care, în funcție de condiție, se realizează fie una, fie alta secvență de acțiuni.

În multe cazuri, este necesar ca o secvență de acțiuni să fie efectuată în anumite condiții, iar alta în alte condiții.

Întregul program este format din comenzi (operatori). Comenzile pot fi simple sau compuse (comenzi în cadrul cărora apar alte comenzi). Comenzile compuse sunt adesea numite constructe de control. Acest lucru subliniază faptul că aceste declarații controlează cursul ulterioar al programului.

Să luăm în considerare scrierea unei instrucțiuni condiționale în Basic.

O formă simplă a operatorului arată astfel:

DACĂ<УСЛОВИЕ>APOI<ОПЕРАТОР>

DACĂ<УСЛОВИЕ>
<ОПЕРАТОР 1>
<ОПЕРАТОР 2>

<ОПЕРАТОР
N> Sfârşit DACĂ

Dacă conditia este adevarata, apoi programul execută operatorul care vine după cuvântul cheie APOI(sau o serie de afirmații dintr-un cuvânt cheie APOI inainte de TERMINAT DACA), apoi urmează procedura obișnuită. Dacă condiție neexecutat , apoi operatorul după APOI(sau o serie de afirmații din APOI inainte de TERMINAT DACA) Nu efectuat, iar programul revine imediat la funcționarea normală.
Proiecta DACA ATUNCI permite, în funcție de validitatea condiției, fie executarea instrucțiunii, fie omiterea acestei instrucțiuni.
Proiecta IF...THEN...END IF permite, în funcție de valabilitatea condiției, fie să se execute un grup de operatori, fie să se omite acest grup de operatori.

Condițiile sunt un alt tip de expresie booleană. Ei folosesc următoarele operatori de comparare:

mai mult sau egal

mai putin sau egal

La dreapta și la stânga semnului de comparație ar trebui să fie cantități aparținând aceluiași tip. Din comparație rezultă o valoare logică care are valoarea TRUE sau FALSE.

Exemplu:
5<7 - ИСТИНА;
8=12 - FALSE (verificăm dacă 8 este egal cu 12, verificăm, nu afirmăm, că 8=12);

Proiectele anterioare vă permiteau să ocoliți sau să executați o serie de instrucțiuni în funcție de valabilitatea condiției. Nu era încă o ramură. Pentru a permite calculelor să se ramifică în mai multe direcții, proiectarea IF...THEN...ELSE...END IF.

DACĂ<УСЛОВИЕ>APOI
<ОПЕРАТОРЫ 1>
ALTE
<ОПЕРАТОРЫ 2>
TERMINAT DACA

Dacă condiția este adevărată (TRUE), atunci<операторы 1>(stă între APOIȘi ALTE), A<операторы 2>(stă între ALTEȘi TERMINAT DACA) va fi omis.
Dacă condiția nu este adevărată (FALSE), atunci<операторы 1>sunt ignorate și executate<операторы 2>.

DACA - daca, ATUNCI - atunci, ALTA - altfel.

Dacă E întuneric în cameră, Apoi trebuie să aprindă lumina.

Dacă va ploua, Apoi Trebuie să iau o umbrelă
in caz contrar, nu lua o umbrelă.

Exemplu: Verificați dacă numărul introdus este egal cu o anumită valoare și, dacă este egal, afișați pe ecran un mesaj despre egalitatea numerelor.

REM compara un număr cu o anumită valoare
INTRODUCERE „Introduceți a”, a
IF a=7 THEN PRINT „Numerele sunt egale”
Sfârşit

După pornirea programului, se verifică dacă valoarea introdusă este egală cu șapte sau nu. Dacă este egal, mesajul „Numerele sunt egale” este afișat pe ecran.

Exemplu: Determinați cel mai mare dintre două numere, afișați-l pe ecran, apoi înmulțiți-l cu două și afișați rezultatul pe ecran.


INTRODUCERE „Introduceți a”, a
INTRAȚI „Introduceți b”, b
DACA a>b ATUNCI
PRINT "Număr mai mare: ", a
с=2*a
ALTE
PRINT "Număr mai mare: ", b
с=2*b
TERMINAT DACA
PRINT "rezultat: ", c
Sfârşit

Mai întâi programul cere ambele numere, apoi verifică condiția a>b. Dacă condiția este adevărată, atunci numărul a este afișat pe ecran, atunci acest număr este dublat. În caz contrar, pe ecran este afișat numărul b, apoi numărul b este dublat. În cele din urmă, pe ecran este afișată de două ori valoarea numărului mai mare.

Vă rugăm să rețineți: programul are un dezavantaj - nu ia în considerare cazul în care numerele introduse sunt egale. Să remediam acest lucru utilizând imbricarea unei stări în alta.

REM determină cel mai mare dintre două numere...
INTRODUCERE „Introduceți a”, a
INTRAȚI „Introduceți b”, b
DACĂ a=b TNEN
PRINT "Numerele sunt egale"
с=2*a
ALTE
DACA a>b ATUNCI
PRINT "Număr mai mare: ", a
с=2*a
ALTE
PRINT "Număr mai mare: ", b
с=2*b
TERMINAT DACA
TERMINAT DACA
PRINT "rezultat: ", c
Sfârşit

În acest program există doi operatori condiționali, primul verifică condiția de egalitate a numerelor și, dacă este îndeplinită, va fi afișat un mesaj despre egalitatea numerelor, dacă numerele nu sunt egale, atunci se verifică a doua condiție. ...

Exemplu: Rezolvarea unei ecuații pătratice.
Soluția unei ecuații pătratice depinde de valoarea discriminantului.

REM Rezolvarea unei ecuații cuadratice
INTRARE "Introduceți coeficientul a: " și
INTRARE "Introduceți coeficientul b: ", b
INTRARE "Introduceți coeficientul c: ", c
d=b*b-4*a*c
DACA d<0 THEN
PRINT „Fără rădăcini”
ALTE
DACA d=0 ATUNCI
x=-b/(2*a)
PRINT "rădăcina ecuației: ", x
ALTE
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT "rădăcinile ecuației: ", x1, x2
TERMINAT DACA
TERMINAT DACA
Sfârşit

Exercitiul 1.

1. Scrieți un program pentru a vă testa cunoștințele despre tabla înmulțirii (o coloană la alegere). Folosiți comentarii pentru a explica următorii pași ai respondentului.

2. Se dau 3 numere (se introduc de la tastatura cu comentarii) a, b, c. Scrieți un program care selectează și imprimă numărul mai mare.

3. Scrieți un program pentru a calcula valoarea lui Y dacă știți:

o" apare în text, este necesar să parcurgeți toate literele. În ciuda simplității acestui program, este foarte dificil pentru o persoană să-l execute, dar pentru un computer aceasta este o sarcină care durează câteva secunde.

Algoritmul round robin - o descriere a acțiunilor care trebuie repetate de un anumit număr de ori sau până la îndeplinirea unei anumite condiții.

Lista acțiunilor repetate se numește corpul ciclului.

De exemplu, la o lecție de educație fizică trebuie să faci o serie de ture în jurul stadionului.

Astfel de cicluri se numesc - bucle contracate.

În Basic sunt scrise după cum urmează:

FOR Counter=StartValue TO EndValue
corpul buclei
NEXT [Contor]

Parametrii indicați între paranteze drepte sunt opționali (pot fi omiși). În mod implicit, pasul buclei este unul, adică de fiecare dată după trecerea prin corpul buclei, contorul este mărit cu unu.

Exemplu: Afișați toate numerele de la 1 la 100. Pentru a face acest lucru, puteți scrie următorul program:

REM Trimite numere de la 1 la 100
IMPRIMARE 1
IMPRIMARE 2
IMPRIMARE 3
IMPRIMARE 4
IMPRIMARE 5
IMPRIMARE 6
IMPRIMARE 7
...
TIPARĂ 98
TIPARĂ 99
TIPARĂ 100
Sfârşit

Doar vreo 102 de rânduri :-). Deși același program poate fi scris mult mai scurt:

REM Trimite numere de la 1 la 100
PENTRU I=1 LA 100
TIPARI I
URMĂTORUL
Sfârşit

Prin corectarea ușoară a programului, îl puteți face să imprime toate numerele de la a la b.

REM Tipăriți numerele de la a la b
a=55
b=107
FOR I=a TO b
TIPARI I
URMĂTORUL
Sfârşit

În acest caz, contorul de la prima trecere prin buclă ia valoarea variabilei a, după care sunt executate instrucțiunile până la cuvântul cheie NEXT. După aceasta, contorul se mărește cu unu și se compară cu valoarea variabilei b; dacă contorul este mai mic, atunci bucla este executată din nou.

Este ușor să faceți ca programul să imprime numerele în ordine inversă. Pentru a face acest lucru, pasul buclei trebuie să fie egal cu -1 (minus unu). În acest caz, valoarea contorului va fi scăzută cu una de fiecare dată când bucla este finalizată.

REM Tipăriți numerele de la b la a
a=55
b=107
PENTRU I=b LA UN PAS -1
TIPARI I
URMĂTORUL
Sfârşit

Exemplu: Calculați suma numerelor naturale din două cifre.

REM Calculați suma numerelor naturale din două cifre
PENTRU I=10 LA 99
s=s+I
URMĂTORUL
PRINT "Rezultat = ",s
Sfârşit

Programul parcurge numerele de la 10 la 99 de fiecare dată când efectuează acțiunile s=s+I. Din punct de vedere matematic, aceasta este o intrare complet lipsită de sens, dar să o privim mai atent.
Procesul de rezolvare a unei probleme de calcul este un proces de modificare secvențială a valorilor variabilelor. Ca urmare, se obține un rezultat în anumite variabile. Ca rezultat, variabila primește o anumită valoare sarcinile. Vă amintiți că atribuirea este introducerea unei anumite valori într-o celulă alocată pentru o variabilă ca urmare a executării unei comenzi.
Ca urmare a operațiunii a=5 variabil A primește valoarea 5.
Ca urmare a operațiunii с=a+b variabil Cu obține o valoare egală cu suma valorilor variabilelor AȘi b.
Ca urmare a operațiunii s=s+I variabil s obține o valoare egală cu suma valorii anterioare a variabilei sși valori variabile eu. Adică dacă înainte de operația de atribuire valoarea s a fost egal cu 5, iar variabila eu este 3, apoi după operație valoarea variabilei s va fi egal cu 8 (5+3, valoare veche s+ valoare eu).
Aceasta înseamnă că după executarea programului nostru, variabila s va stoca suma tuturor numerelor din două cifre de la 10 la 99.

REM Calculați factorialul unui număr
a=5
f=1
PENTRU I=1 LA a
f=f*I
URMĂTORUL
PRINT f
Sfârşit

Desigur, ați observat că înainte de începerea buclei i-am atribuit variabilei f o valoare egală cu unu. Altfel, am obține zero ca rezultat.

Sarcina 2.

1. Utilizarea operatorului PENTRU URMĂTORUL, scrieți un program pentru calcularea și imprimarea valorii funcției Y=5/X când argumentul X se schimbă de la -5 la +5 în trepte de 0,5.

2. Utilizarea operatorului PENTRU URMĂTORUL, Scrieți un program care va calcula suma primelor 10 numere întregi și va afișa rezultatul pe ecran.

3. Scrieți rezultatul executării programului:

10 PENTRU X=1,5 LA 0 PAS -0,5

Matrice . Matrice unidimensionale.

Când lucrați cu un număr mare de date de același tip, este foarte convenabil să utilizați matrice.

Deci, ce sunt matricele...
O matrice este un tip de variabilă. Vă permite să stocați câte valori doriți sub același nume. Fiecare valoare de matrice specifică trebuie accesată printr-un index numeric.

O matrice este un set de variabile care au același nume (identificator), dar diferă prin numere de serie (indici).

De obicei, matricele sunt folosite pentru a grupa variabile care au multe proprietăți comune. De exemplu, dacă există 30 de elevi într-o clasă, atunci numele fiecărui elev ar putea fi stocat într-o variabilă șir separată: nume1, nume2, ... Dar introducerea a 30 de variabile noi este extrem de incomod. Se poate face mai simplu: declarați o matrice name() cu 30 de elemente. Un index este plasat între paranteze atunci când este necesar să se facă referire la un anumit element.

Numărarea elementelor de matrice în multe limbi începe de la zero. Prin urmare, numele primului elev (conform registrului clasei) va fi stocat în variabila nume(0), al doilea - în variabila nume(1), iar ultimul (al treizecilea) - în variabila nume(29) variabil.

Pentru a utiliza o matrice, aceasta trebuie mai întâi declarată în program. Pentru a face acest lucru, utilizați operatorul DIM. Implicit (dacă nu există niciun operator DIMîn program) o matrice de 10 elemente este considerată dată.

DIM a(100) CA INTEGER
Aceasta este o matrice de o sută de elemente, fiecare dintre acestea putând fi un număr întreg.
Nume DIM(30) AS ȘIR
DIM mas(20)
Aceasta este o matrice de 20 de elemente, tipul variabilei nu este specificat în mod explicit.

DIM mas1(10) CA INTEGER

Accesarea elementelor matricei:

a(24)
nume (5)
mas(2)
mas(3)

Principalul avantaj al tablourilor față de setul obișnuit de variabile cu nume diferite este că. că indicele elementului dorit poate fi scris nu ca număr, ci ca variabilă sau chiar calculat folosind o expresie. Acest lucru face posibilă utilizarea matricelor în bucle - pentru asta au fost inventate. Dacă programul conține o matrice, atunci cel mai probabil veți găsi și o buclă în el.

De asemenea, puteți declara o matrice astfel:

DIM mas2(1 LA 10) CA INTEGER

sau chiar asa:

DIM a2(5 LA 10) CA INTEGER

Care este diferența? În acest caz, indexarea elementelor matricei nu începe de la zero, ci de la indexul de care aveți nevoie (în exemplu, tabloul mas2 are indici de la 1 la 10, matrice a2- de la 5 la 10).

Să presupunem că sunt 30 de elevi într-o clasă. Să presupunem că o matrice este creată pentru a-și stoca notele într-un subiect Marcaj DIM(30) CA INTEGER. Următorul program va acorda fiecărui elev o notă aleatorie de la 3 la 5. Desigur, nu puteți atribui note în acest fel, dar acest exemplu arată că programul nu devine mai complex dacă nu sunt 30 de elevi în clasă, ci o sută. și cincizeci de milioane. Combinația de matrice și bucle permite o simplitate uimitoare.

Notare REM :)
Marcaj DIM(30) CA INTEGER
PENTRU I=0 LA 29
marcaj(I)=3+INT(RND*3)
URMĂTORUL
Sfârşit

Pentru a crea numere aleatorii în limba de bază, utilizați funcția standard RND. Creează un număr aleatoriu în intervalul de la 0 la 1. Înmulțindu-l cu 3, obținem un număr aleatoriu de la 0 la 3. Și luând parte din el (folosind funcția INT), obținem un număr aleator întreg în variază de la 0 la 2. Adăugând la acesta numărul 3, dăm o estimare aleatorie care nu este mai mică de 3 și nu mai mult de 5.

Exemplu: Creați un program pentru a umple o matrice de 15 elemente cu numere aleatorii în intervalul de la 1 la 10. Asigurați-vă pentru afișarea matricei pe ecran.


DIM mas(15) AS INTEGER
PENTRU I=0 LA 14
mas(I)=1+INT(RND*10)
URMĂTORUL
CLS
PRINT „Ieșire matrice”
PENTRU I=0 LA 14
PRINT mas(I);
URMĂTORUL
Sfârşit

CLS- curățarea ecranului. Punct și virgulă (;) în declarație IMPRIMARE vă permite să scoateți elemente de matrice într-un șir.

Aceeași sarcină, dar diferită în declarația matricei:

REM Completarea și ieșirea unui tablou
DIM mas(1 TO 15) AS INTEGER
PENTRU I=1 LA 15
mas(I)=1+INT(RND*10)
URMĂTORUL
CLS
PRINT „Ieșire matrice”
PENTRU I=1 LA 15
PRINT mas(I);
URMĂTORUL
Sfârşit

Totul este foarte simplu. Ce opțiune să utilizați depinde de dvs.

Exemplu: Imprimați numărul de elemente negative ale matricei.

REM Tipăriți numărul de elemente negative

DIM mas(n) CA INTEGER
PENTRU I=0 LA n-1

URMĂTORUL
CLS
PRINT „Ieșire matrice”
PENTRU I=0 LA n-1
PRINT mas(I);
URMĂTORUL
PENTRU I=0 LA n-1
DACA mas(I)<0 THEN k=k+1
URMĂTORUL
IMPRIMARE
PRINT "Număr de elemente negative: ",k
Sfârşit

Numărul de elemente negative ale matricei este numărat într-o buclă:
PENTRU I=0 LA n-1
DACA mas(I)<0 THEN k=k+1
URMĂTORUL

Exemplu: Scrieți un program pentru a calcula cel mai mare element al unui tablou și numărul acestuia.

REM de calcul al celui mai mare element de matrice și numărul acestuia
INPUT „Introduceți numărul de elemente ale matricei”, n
DIM mas(n) CA INTEGER
PENTRU I=0 LA n-1
INPUT „Introduceți un element de matrice”, mas(I)
URMĂTORUL
CLS
PRINT „Ieșire matrice”
PENTRU I=0 LA n-1
PRINT mas(I);
URMĂTORUL
max=mas(0)
număr=1
PENTRU I=0 LA n-1
DACA mas(I)>max ATUNCI
max=mas(I)
număr=I+1
TERMINAT DACA
URMĂTORUL
IMPRIMARE
PRINT "Element maxim: ", max, " cu număr ", nomer
Sfârşit

Sarcina se realizează în rândurile:
max=mas(0)
număr=1
PENTRU I=0 LA n-1
DACA mas(I)>max ATUNCI
max=mas(I)
număr=I+1
TERMINAT DACA
URMĂTOR În primul rând, să considerăm că cel mai mare element este primul element al matricei mas(0). Apoi, parcurgând toate elementele unul câte unul, le comparăm cu valoarea max si daca mas(I)>max, atunci luăm acest element drept cel mai mare.

Exemplu: creați un program pentru a sorta o matrice în ordine crescătoare.

Sortarea matricei REM
INPUT „Introduceți numărul de elemente ale matricei”, n
DIM mas(n) CA INTEGER
PENTRU I=0 LA n-1
mas(I)=1+INT(RND*10)
URMĂTORUL
CLS
PRINT „Ieșire matrice”
PENTRU I=0 LA n-1
PRINT mas(I);
URMĂTORUL
Sortarea matricei REM
PENTRU I=0 LA n-2
PENTRU J=I+1 LA n-1
DACA mas(I)>mas(J) ATUNCI
REM dacă am găsit un element mai mic, atunci le vom schimba locurile
a=mas(I)
mas(I)=mas(J)
mas(J)=a
TERMINAT DACA
URMĂTORUL J
APOI EU
Sfârșitul REM a sortării matricei
IMPRIMARE
PRINT „Matrice sortată de ieșire”
PENTRU I=0 LA n-1
PRINT mas(I);
URMĂTORUL
Sfârşit

Uneori este convenabil să folosiți operatori pentru a introduce date DATEȘi CITIT.
DATE specifică valorile care urmează să fie citite de instrucțiunile ulterioare CITIT. CITIT citește aceste valori și le atribuie variabilelor. RESTABILI permite CITIT recalculați valorile din declarația specificată DATE.

constante DATE
CITEȘTE variabile

Exemplu: introducerea unei matrice folosind operatorul DATA.

REM Introducerea datelor din DATA
DIM mas(5) AS INTEGER
DATE 2, -4, 1, 5, 9
Intrare matrice REM
PENTRU I=0 LA 4
CITEȘTE mas(I);
URMĂTORUL
Ieșire matrice REM
PENTRU I=0 LA 4
PRINT mas(I);
URMĂTORUL
Sfârşit

Sarcina 3.

1. Scrieți un program pentru a calcula suma și produsul elementelor matricei mai mari decât 4. Matricea A este formată din 15 elemente.

2. Scrieți un program pentru a găsi elementul minim al tabloului B, format din 20 de elemente.

3. Date matrice A și B, formate din 20 de elemente. A) Scrieți un program pentru a obține un nou tablou X, format din 20 de elemente, dacă se știe că x(I)=2*a(i)-b(i). B) Scrieți un program pentru a obține un nou tablou Y, format din 15 elemente, dacă se știe că y(I)=a(i)+3*b(i).

Matrice. Matrice bidimensionale.

Matricele bidimensionale pot fi gândite ca tabele ale căror celule stochează valorile elementelor matricei, iar indicii elementelor matricei sunt numerele rândurilor și coloanelor.

Matricele bidimensionale sunt declarate în același mod ca și variabilele și tablourile unidimensionale. De exemplu, o matrice numerică întregă care conține 3 rânduri și 4 coloane este declarată după cum urmează:

DIM tabl(3 ,4) CA INTEGER

DIM tabl1(1 TO 3 ,1 TO 4) CA INTEGER

Folosind o matrice bidimensională 9x9 și două bucle imbricate, puteți crea cu ușurință un program care implementează tabelul de înmulțire. Factorii vor fi valorile indicilor rândurilor și coloanelor, iar produsele lor vor fi valorile elementelor matricei.

DIM tablum(1 TO 9 ,1 TO 9) CA INTEGER

REM Tabel de înmulțire
DIM tabum(1 TO 9, 1 TO 9) CA INTEGER
REM Completarea unui tablou - crearea unei tabele de înmulțire
PENTRU I=1 LA 9
PENTRU J=1 LA 9
tabum(I, J)=I*J
URMĂTORUL J
APOI EU

PENTRU I=1 LA 9
PENTRU J=1 LA 9
PRINT tabum(I, J);
URMĂTORUL J
IMPRIMARE
APOI EU
Sfârşit

Exemplu: Într-un tabel 3x4, calculați numărul de elemente negative, suma elementelor pare și produsul elementelor din al doilea rând.

REM calculează cantitatea...
DIM tabl(1 TO 3, 1 TO 4) CA INTEGER
Umplerea matricei REM
PENTRU I=1 LA 3
PENTRU J=1 LA 4
INPUT „Introduceți elementul matricei:”, tabl(I, J)
URMĂTORUL J
APOI EU
REM Afișarea unei matrice pe ecran ca tabel
CLS
PENTRU I=1 LA 3
PENTRU J=1 LA 4
fila PRINT(I, J);
URMĂTORUL J
IMPRIMARE
APOI EU
REM necesită calcule
k=0
s=0
p=1
PENTRU I=1 LA 3
PENTRU J=1 LA 4
tabel IF (I, J)<0 THEN k=k+1
DACA tabl(I, J) MOD 2 = 0 ATUNCI s=s+tabl(I, J)
DACA I=2 ATUNCI p=p*tabl(I, J)
URMĂTORUL J
APOI EU
IMPRIMARE
PRINT "rezultat:"
PRINT "elementele negative: ", k
PRINT "suma elementelor pare: ", s
PRINT "produsul elementelor din a doua linie: ",p
Sfârşit

Lecția 3

Ramificare în algoritmi și programe.

Un algoritm de ramificare este un algoritm în care, în funcție de condiție, se realizează fie una, fie alta secvență de acțiuni.

În multe cazuri, este necesar ca o secvență de acțiuni să fie efectuată în anumite condiții, iar alta în alte condiții.

Întregul program este format din comenzi (operatori). Comenzile pot fi simple sau compuse (comenzi în cadrul cărora apar alte comenzi). Comenzile compuse sunt adesea numite constructe de control. Acest lucru subliniază faptul că aceste declarații controlează cursul ulterioar al programului.

Să luăm în considerare scrierea unei instrucțiuni condiționale în Basic.

O formă simplă a operatorului arată astfel:

DACĂ<УСЛОВИЕ>APOI<ОПЕРАТОР>

DACĂ<УСЛОВИЕ> <ОПЕРАТОР 1>[:<ОПЕРАТОР 2>:…:<ОПЕРАТОР N>]

Dacă conditia este adevarata, apoi programul execută operatorul care vine după cuvântul cheie APOI(sau o serie de afirmații dintr-un cuvânt cheie APOI inainte de Sfârşit), apoi urmează procedura obișnuită. Dacă capturăNu corect, apoi operatorul după APOI(sau o serie de afirmații din APOI) Nu efectuat, iar programul revine imediat la funcționarea normală.
Proiecta DACA ATUNCI permite, în funcție de valabilitatea condiției, fie să se execute instrucțiunea, fie să se oprească această instrucțiune.Construcție DACA ATUNCI... permite, în funcție de valabilitatea condiției, fie să se execute un grup de operatori, fie să se omite acest grup de operatori.

Condițiile sunt un alt tip de expresie booleană. Ei folosesc următoarele operatori de comparare:

mai mult sau egal

mai putin sau egal

La dreapta și la stânga semnului de comparație ar trebui să fie cantități aparținând aceluiași tip. Din comparație rezultă o valoare logică care are valoarea TRUE sau FALSE.

5<7 - ИСТИНА;

8=12 -FALSE (verificăm dacă 8 este egal cu 12, verificăm, nu afirmăm, că 8=12);

Proiectele anterioare vă permiteau să ocoliți sau să executați o serie de instrucțiuni în funcție de valabilitatea condiției. Nu era încă o ramură. Pentru a permite calculelor să se ramifică în mai multe direcții, proiectarea DACA...Atunci...ALTUT...

DACĂ<УСЛОВИЕ>APOI<ОПЕРАТОРЫ 1>ALTE<ОПЕРАТОРЫ 2>
Dacă condiția este adevărată (TRUE), atunci<операторы 1>(stă între APOIȘi ALTE), A<операторы 2>(vin după ALTE) va fi omis.
Dacă condiția nu este adevărată (FALSE), atunci<операторы 1>sunt ignorate și executate<операторы 2>.

DACA - daca, ATUNCI - atunci, ALTA - altfel.

Dacă E întuneric în cameră, Apoi trebuie să aprindă lumina.

Dacă va ploua, Apoi Trebuie să iau o umbrelă in caz contrar, nu lua o umbrelă.

Exemplu: Verificați dacă numărul introdus este egal cu o anumită valoare și, dacă este egal, afișați pe ecran un mesaj despre egalitatea numerelor.

REM compara un număr cu o anumită valoare
INTRODUCERE „Introduceți a”, a
IF a=7 THEN PRINT „Numerele sunt egale”
Sfârşit

După pornirea programului, se verifică dacă valoarea introdusă este egală cu șapte sau nu. Dacă este egal, mesajul „Numerele sunt egale” este afișat pe ecran.

Exemplu: Determinați cel mai mare dintre două numere, afișați-l pe ecran, apoi înmulțiți-l cu două și afișați rezultatul pe ecran.


INTRODUCERE „Introduceți a”, a
INTRAȚI „Introduceți b”, b
IF a>b THEN PRINT „Număr mai mare: „, a:с=2*a
ELSE PRINT "Număr mai mare: ", b:с=2*b
PRINT "rezultat: ", c
Sfârşit

Mai întâi programul cere ambele numere, apoi verifică condiția a>b. Dacă condiția este adevărată, atunci numărul a este afișat pe ecran, atunci acest număr este dublat. În caz contrar, pe ecran este afișat numărul b, apoi numărul b este dublat. În cele din urmă, pe ecran este afișată de două ori valoarea numărului mai mare.

Vă rugăm să rețineți: programul are un dezavantaj - nu ia în considerare cazul în care numerele introduse sunt egale. Să remediam acest lucru utilizând imbricarea unei stări în alta.

REM determină cel mai mare dintre două numere...
INTRODUCERE „Introduceți a”, a
INTRAȚI „Introduceți b”, b
IF a=b TNEN PRINT "Numerele sunt egale":c=2*a
ELSE IF a>b ATUNCI PRIMĂ "Număr mai mare: ", a: с=2*a
ELSE PRINT "Număr mai mare: ", b: с=2*b
PRINT "rezultat: ", c
Sfârşit

În acest program există doi operatori condiționali, primul verifică condiția de egalitate a numerelor și, dacă este îndeplinită, va fi afișat un mesaj despre egalitatea numerelor, dacă numerele nu sunt egale, atunci se verifică a doua condiție. ...

Exemplu: Rezolvarea unei ecuații pătratice.
Soluția unei ecuații pătratice depinde de valoarea discriminantului.

REM Rezolvarea unei ecuații cuadratice
INTRARE "Introduceți coeficientul a: " și
INTRARE "Introduceți coeficientul b: ", b
INTRARE "Introduceți coeficientul c: ", c
d=b*b-4*a*c
DACA d<0 THEN PRINT "Корней нет"
ELSE IF d=0 THEN x=-b/(2*a): PRINT "rădăcina ecuației: ", x
ELSE x1=(-b-SQR(d))/(2*a): x2=(-b+SQR(d))/(2*a) : PRINT "rădăcinile ecuației: ", x1, x2
Sfârşit

Condiții logice sunt numite simplu, dacă ramura are două ramuri și complex, dacă există mai mult de două ramuri.

Si si

Sau sau

Nu Nu

calculati

Sarcina 1.

Definiți este un triunghi cu laturile A, B, C isoscel.

INTRARE „Introduceți dimensiunile laturilor triunghiului A, B, C”; A,B,C

O linie de cod dintr-un program Visual Basic se numește instrucțiune de program. O instrucțiune de program este o combinație de cuvinte cheie Visual Basic, proprietăți, funcții, operatori aritmetici sau logici și simboluri care formează împreună o instrucțiune validă recunoscută de compilatorul Visual Basic.

93. Matrice și operații în buclă

Lecția 22. Operatori de buclă pentru... Următorul și pentru fiecare

Buclele din VB.NET sunt similare cu buclele din alte limbaje de programare. În această lecție ne vom uita la două tipuri de bucle - For...Next și For Each bucle. For...Next buclele sunt executate de un anumit număr de ori. Adică, dacă știți dinainte de câte ori ar trebui să fie executată bucla dvs., atunci folosim bucla For...Next. Bucla For Each este folosită pentru a itera elementele colecțiilor și ale matricelor. De exemplu, folosind For Each puteți enumera (parcurge) toate elementele dintr-un formular sau procesați toate rândurile dintr-o bază de date.

Iată un exemplu pentru operatorul For...Next:

Dim A(10) As Integer

Dim i ca întreg

„Umpleți matricea cu pătrate de numere

„Recuperarea elementelor matricei

Console.WriteLine(A(i))

În acest exemplu, o matrice de 10 numere întregi este mai întâi umplută cu pătrate de numere, apoi elementele matricei sunt afișate pe ecran. În loc de linie

Poti sa scrii

În buclele For...Next, contorul de bucle (i în acest caz) se schimbă automat.

În exemplul dat, contorul este incrementat cu 1 de fiecare dată când trece bucla. Dacă aveți nevoie de un pas diferit, atunci folosim construcția cu Step:

Pentru i = 0 până la 9 Pasul 2

„Facem ceva

Această buclă va fi executată de 5 ori.

Acum să ne uităm la un exemplu folosind o buclă For Each:

Dim z As Integer

Dim A(10) As Integer

„Umpleți matricea A

Pentru fiecare z din A

Dacă z > 10 Atunci

Console.WriteLine(z)

După cum puteți vedea, în bucla noastră parcurgem toate elementele din tabloul A (acest lucru poate fi văzut din construcția In A). Dacă elementul matricei este mai mare de 10, îl afișăm pe ecran.

De obicei, buclele For Each sunt folosite pentru a enumera elemente din diferite colecții (de exemplu, elemente dintr-un formular sau toate fonturile din Windows).

Utilizarea seturilor de date la rezolvarea problemelor. Matrice în VB. Variabile indexate. Descrierea tablourilor. Ordinea în care sunt atribuite limitele inferioare și superioare ale indicilor matricei. Matrice de comenzi. Ordinea creării matricelor de controale. O matrice poate fi o serie de celule de memorie alocate pentru a stoca o variabilă indexată. X1,Y2, Zt+1, Mi,j+1 – variabile index. => X(1), Y(2), Z(i+1), M(I, f+1) – în YAPVU, conceput pentru lucrul cu serii de numere. dlina (1), dlina (2), dlina (3) – o matrice unidimensională. Dim dlina (1 la 3) As Integer – descrierea matricei din program, cu 1 fiind limita inferioară a matricei, 3 fiind limita superioară a matricei. Indexarea matricelor nu începe neapărat de la 0 sau 1. O matrice de controale se formează folosind proprietatea Index, prin alocarea proprietății Index, îi spunem computerului că acest obiect este considerat un element al matricei. O matrice de control este o serie de obiecte numerotate. Metoda de creare: 1) Atribuirea proprietății Index în faza de proiectare. 2) Prin copierea în Win (copy/paste). 3) Programatic (Încărcare text 1(1) - metoda). Load încarcă un obiect numit Text1(1) în formular. Matrice bidimensionale. Ele sunt specificate în mod similar cu cele unidimensionale: Dim dlina (1 la 3, 1 la 4) Ca Integer, unde limitele în două direcții sunt enumerate în paranteze separate prin virgule, primele (1 la 3) limite sunt verticale și secunde sunt orizontale (de la 1 la 4). Accesarea unui element dintr-un tablou bidimensional: dlina(1,3) – element din primul rând, a treia coloană.

Matricele de date sunt folosite pentru a stoca mai multe valori variabile:

Static x(2) Ca întreg (x=0,1,2).

Dacă dimensiunea matricei nu poate fi determinată în avans, atunci se utilizează o matrice dinamică:

Dim Y() ca întreg.

Pentru a defini constante, se folosește cuvântul cheie:

Const Pi = 3,142.

Array ca parametru de procedură

Rem Program_2.5 – Array ca parametru de procedură

Dim n ca întreg

Dim este singur

Dim x(2) As Single

x(1) = 5: x(2) = 15: s = 0

Apelați sumir(x(), n, s) ‘ apelați procedura de însumare a elementelor matricei

MsgBox "s = " și Str(e)

Sub sumir (x() ca unic, n ca întreg, s ca unic)

Dim i ca întreg

O funcție este înțeleasă ca un grup de operatori uniți sub un nume original. Ultimul caracter dintr-un nume de funcție determină tipul de valoare pe care o returnează.

Funcțiile definite de utilizator (nu funcțiile de bibliotecă compuse de utilizator) sunt declarate prin introducerea în fereastra de editare a codului a unui antet format din cuvântul cheie Function urmat de numele funcției cu argumentele necesare între paranteze. După aceasta, apare automat următorul șablon:

Funcția FUNCTION_NAME

Instrucțiunile necesare sunt inserate în spațiul dintre numele funcției și cuvintele cheie End Function.

Dacă, la apelarea unei funcții, trebuie să i se transmită orice valoare (argumente), atunci în antetul de după numele funcției trebuie listate variabilele corespunzătoare, separate prin virgule.

Sintaxa generală pentru definirea unei funcții este:

Funcția FUNCTION_NAME(PARAMETER_1[, PARAMETER_2]...)

OPERATOR_1

[OPERATOR_2]

FUNCTION_NAME = EXPRESIE

unde PARAMETER este un element de date transmis funcției atunci când este apelată; Static – dacă acest cuvânt cheie este prezent într-o declarație de funcție, variabilele locale declarate în corpul funcției își păstrează valorile între apelurile la această funcție.

Metode pentru apelarea funcțiilor: X = fun1(Y), sau Call fun1 Y.

Dacă o funcție trebuie să returneze o valoare de caracter (șir), atunci ultimul caracter din numele ei trebuie să fie semnul $.

Fiecare funcție returnează întotdeauna o singură valoare.

Exemple de funcții:

1. Transmiterea unui parametru dintr-o funcție

Rem Program_2.6 – Transmiterea unui parametru dintr-o funcție

Dim x ca single, y ca single, s ca single

s = sumir(x, y) ‘ numiți funcția de însumare a două numere

MsgBox "s = " și Str(e)

Suma funcției! (x!, y!) ‘ definiția funcției de însumare a două numere

sumir! = x! +y!

Pe lângă variabilele simple, puteți folosi matrice pentru a stoca valori. Un tablou este o colecție de variabile cu același nume și indici diferiți. Fiecare astfel de variabilă se numește element de matrice. Numărul de elemente stocate într-o matrice se numește dimensiunea matricei. Mărimea matricei este limitată de cantitatea de RAM și tipul de date al elementelor matricei. Toate elementele matricei au același tip. Cu toate acestea, dacă matricea este de tip variantă, atunci elementele individuale pot conține date de diferite tipuri. De exemplu, unele elemente pot fi numere, altele pot fi șiruri sau obiecte. În Visual Basic, există matrice de dimensiuni fixe și matrice dinamice. O matrice de dimensiune fixă ​​are o dimensiune fixă ​​care este specificată atunci când este declarată. Matricele dinamice pot schimba dimensiunea în timpul execuției. Ce este o matrice bidimensională? Acesta este un set de date de același tip, locația fiecărui element este determinată nu de un index, ci de doi. De exemplu, pentru cei care au jucat „bătălie pe mare” încă din copilărie, nu va fi o descoperire că fiecare celulă a terenului de joc este desemnată prin două simboluri - o literă și un număr, de exemplu, A5 - „ratat”, I10 - „lovit”, Z7 - „ucis” „. Numai în BASIC se obișnuiește să se folosească numere întregi ca indici. Un exemplu real de utilizare a matricelor bidimensionale sunt biletele de cinema sau de teatru, care au două coordonate pentru fiecare spectator - un rând și un loc.”

Matrice similare sunt descrise în BASIC folosind același operator dim, după care cele două dimensiuni ale matricei sunt indicate în paranteze - numărul de rânduri și numărul de coloane.

LIMBAJUL DE PROGRAMARE DE BAZĂ VIZUALĂ. SUCURSALE DE PROGRAMARE

Ramificarea în Visual Basic este organizată folosind:

  • instrucțiunea IF condiționată;
  • funcție IIF încorporată;
  • Operator de selecție CAZ.

Pentru a testa o condiție și a executa o instrucțiune sau un bloc de instrucțiuni, utilizați declarație condiționată DACĂ...Atunci. Acest operator poate fi folosit cu diferite sintaxe: cu o singură linie (liniar) și cu mai multe linii (bloc).

Operatorul liniar are următoarea sintaxă:

Dacă<условие>Apoi<операторы!>

Operatorul bloc are următoarea sintaxă:

Dacă<условие>Apoi
<блок операторов 1>
Încheiați dacă

Dacă condiția dată este True, blocul de instrucțiuni este executat, în caz contrar, blocul de instrucțiuni2 este executat. Dacă nu este specificată clauza Else, dacăCând condiția este îndeplinită, controlul este transferat imediat următorului operator după If.

Instrucțiunea If poate fi imbricată, adică situată în interiorul blocurilor de instrucțiuni. Pentru a testa mai mult de o condiție și a executa unul dintre mai multe blocuri de instrucțiuni, utilizați o instrucțiune condiționată extinsă de forma:

Dacă<условие 1>Apoi
<блок операторов 1>
Altfel<условие 2>Apoi
<блок операторов 2>
Altfel<условие n>Apoi
<блок операторов n>
Încheiați dacă

Pentru a selecta una dintre valorile în funcție de satisfacția sau eșecul unei anumite condiții, utilizați funcția condiționată IIF, care are următoarea sintaxă:

IIF(<условие>, <значение1>, <значение2>)

Această funcție returnează valoarea1 dacă condiția este adevărată și valoarea2 dacă condiția este falsă.

Puteți utiliza o expresie booleană ca o condiție care returnează Adevărat sau

Fals sau orice expresie aritmetică (o valoare zero este echivalentă cu Fals, iar o valoare diferită de zero este echivalentă cu adevărat).

instrucțiunea SELECT CASE folosit pentru a testa o singură condiție și pentru a executa unul dintre mai multe blocuri de instrucțiuni.

Format de înregistrare operator:

Selectați caz<проверяемое выражение>
Caz<список выражений 1>
<операторы 1>Caz<список выражений 2>
<операторы 2>Caz<список выражений 3>
<операторы 3>
Caz Altceva
<операторы группы Else>
Încheierea selectării

Expresia testată este evaluată la începutul instrucțiunii Select Case. Această expresie poate returna o valoare de orice tip (boolean, numeric, șir).

O listă de expresii este una sau mai multe expresii separate printr-un caracter delimitator standard (punct și virgulă).

Când se execută operatorul, se verifică dacă cel puțin unul dintre elementele acestei liste se potrivește cu expresia testată.

Această listă de expresii pensie alimentară poate lua una dintre următoarele forme:

  • <выражение>- verifică coincidenţa unei expresii date cu una dintre expresiile - elemente de listă;
  • <выражение 1>Acea<выражение 2>- verifică dacă o expresie dată se încadrează în intervalul specificat;
  • < Is <логический оператор> < выражение>- verifică îndeplinirea condiției specificate pentru o expresie dată.