Home | BAC/Teze | Biblioteca | Jobs | Referate | Horoscop | Muzica | Dex | Games | Barbie

 

Search!

     

 

Index | Forum | E-mail

   

Aceasta pagina de informatica se adreseaza incepatorilor in general, celor care doresc sa se documenteze pe o anumita tema, dar si profesorilor de Informatica interesati, care pot gasi aici prezentari multimedia, in conformitate cu programa MEN, recomandate pentru lectii si predare la clasa.

 

 
 
 
 
 Meniu rapid  Portalul e-scoala | CAMPUS ASLS | Forum discutii | Premii de excelenta | Europa





 

 

 

Inapoi la cuprins

Solutii Capitolul 3

În rezolvarea unor probleme în variantă QBASIC am folosit definirea unui subprogram de tip procedură, definire care se face în felul următor:

 

SUB nume[(listă_param)] [STATIC]

  [bloc_instrucțiuni]

END SUB

- nume             Numele procedurii, având până la 40 de caractere, fără sufix de specificare a tipului

- listă_param  Una sau mai multe variabile care specifică parametri ce vor fi utilizați la apelul procedurii:

                        variabilă[( )] [AS tip] [, variabilă[( )] [AS tip]]...

                        variabilă                      Numele unei variabile (dacă este tablou, va fi urmat de ( ) )

                        tip                    Tipul variabilei (INTEGER, LONG, SINGLE, DOUBLE, STRING sau tip definit de utilizator)

            - STATIC        Calculatorul va salva valorile variabilelor locale între două apeluri ale procedurii

            - La apelarea procedurii, putem determina ca valoarea unui parametru să rămână neschimbată prin scrierea acestuia în paranteză

                        Ex.: afis a,b,(c) - valoarea parametrului c va rămâne neschimbată după revenirea din procedura afis.

 

Pentru a asigura o introducere corectă a datelor am folosit instrucțiunile repetitive DO...LOOP:

DO [{WHILE | UNTIL} condiție]

    [bloc_instrucțiuni]

LOOP

 

DO

    [bloc_instrucțiuni]

LOOP [{WHILE | UNTIL} condiție]

 

            - condiție         O expresie care poate fi evaluată ca adevărată (diferită de zero) sau falsă (zero)

           

 Programul 1

Varianta 1

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0

30 FOR I = 1 TO N

40 LET S = S + I

50 NEXT I

60 PRINT "S="; S

70 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0

FOR I = 1 TO N

        S = S + I

NEXT

PRINT "S="; S

END

 

Varianta 2

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0: LET I = 1

30 LET S = S + I

40 LET I = I + 1

50 IF I <= N THEN GOTO 30

60 PRINT "S="; S

70 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0: I = 1

DO

        S = S + I

        I = I + 1

LOOP UNTIL I > N

PRINT "S="; S

END

 

Varianta 3

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = (1 + N) * N / 2

30 PRINT "S="; S

40 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = (1 + N) * N / 2

PRINT "S="; S

END

 

Programul 2

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0

30 FOR I = 1 TO N

40 LET S = S + I ^ 2

50 NEXT I

60 PRINT "S="; S

70 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0

FOR I = 1 TO N

        S = S + I ^ 2

NEXT

PRINT "S="; S

END

 

Programul 3

10 INPUT "INTRODUCETI UN NR. NATURAL IMPAR N="; N

20 LET A = N - 2 * INT(N / 2)

30 IF A = 0 THEN PRINT "ATI INTRODUS UN NR. PAR!": GOTO 10

40 LET S = 0

50 FOR I = 1 TO N STEP 2

60 LET S = S + I ^ 3

70 NEXT I

80 PRINT "S="; S

90 STOP

 

DO

            INPUT "Introduceti un nr. natural impar:", N

            IF N MOD 2 = 0 THEN PRINT "Ati introdus un numar par!"

LOOP UNTIL N MOD 2 = 1

S = 0

FOR I = 1 TO N STEP 2

            S = S + I ^ 3

NEXT

PRINT "S="; S

END

 

Programul 4

10 INPUT "INTRODUCETI UN NR. NATURAL K="; K

20 LET N = -(3 * K + 1): LET S = 0

30 FOR I = -1 TO N STEP -3

40 LET S = S + I

50 NEXT I

60 PRINT "S="; S

70 STOP

 

 

INPUT "Introduceti un nr. natural:", K

N = -(3 * K + 1): S = 0

FOR I = -1 TO N STEP -3

        S = S + I

NEXT

PRINT "S="; S

END

 

Programul 5

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0

30 FOR I = 1 TO N

40 LET S = S + I * (I + 1)

50 NEXT I

60 PRINT "S="; S

70 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0

FOR I = 1 TO N

        S = S + I * (I + 1)

NEXT

PRINT "S="; S

END

 

Programul 6

10 INPUT "INTRODUCETI UN NUMAR NATURAL N="; N

20 LET P = 1

30 FOR I = 1 TO N

40 LET P = P * I

50 NEXT I

60 PRINT "P="; P

70 STOP

 

INPUT "Introduceti un numar natural:", N

P = 1

FOR I = 1 TO N

        P = P * I

NEXT

PRINT "P="; P

END

 

Programul 7

Varianta 1

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0

30 FOR I = 1 TO N

40 LET P = 1

50 FOR J = 1 TO I

60 LET P = P * J

70 NEXT J

80 LET S = S + P

90 NEXT I

100 PRINT "S="; S

110 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0

FOR I = 1 TO N

        P = 1

        FOR J = 1 TO I

                P = P * J

        NEXT

        S = S + P

NEXT

PRINT "S="; S

END

 

Varianta 2

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0: LET P = 1

30 FOR I = 1 TO N

40 LET P = P * I

50 LET S = S + P

60 NEXT I

70 PRINT "S="; S

80 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0: P = 1

FOR I = 1 TO N

        P = P * I

        S = S + P

NEXT

PRINT "S="; S

END

 

Programul 8

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0: LET P = 1

30 FOR I = 1 TO N

40 LET P = P * I

50 LET S = S + 1 / P

60 NEXT I

70 PRINT "S="; S

80 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0: P = 1

FOR I = 1 TO N

        P = P * I

        S = S + 1 / P

NEXT

PRINT "S="; S

END

 

Programul 9

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET J = 1: LET S = 0

30 FOR I = 1 TO N

40 LET J = J * (-1)

50 LET S = S + I ^ J

60 NEXT I

70 PRINT "S="; S

80 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

J = 1: S = 0

FOR I = 1 TO N

        J = J * (-1)

        S = S + I ^ J

NEXT

PRINT "S="; S

END

 

Programul 10

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET J = 1: LET S = 0

30 FOR I = 1 TO N

40 LET S = S + I ^ J: LET J = J * (-1)

50 NEXT I

60 PRINT "S="; S

70 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

J = 1: S = 0

FOR I = 1 TO N

        S = S + I ^ J

        J = J * (-1)

NEXT

PRINT "S="; S

END

 

Programul 11

Varianta 1

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0: LET J = 1

30 FOR I = 1 TO N

40 LET S = S + J / (I ^ 2)

50 LET J = J * (-1)

60 NEXT I

70 PRINT "S="; S

80 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0: J = 1

FOR I = 1 TO N

        S = S + J / (I ^ 2)

        J = J * (-1)

NEXT

PRINT "S="; S

END

 

Varianta 2

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 LET S = 0: LET J = 1

30 FOR I = 1 TO N

40 LET S = S + J * I ^ (-2)

50 LET J = J * (-1)

60 NEXT I

70 PRINT "S="; S

80 STOP

 

INPUT "Introduceti un nr. natural nenul:", N

S = 0: J = 1

FOR I = 1 TO N

        S = S + J * I ^ (-2)

        J = J * (-1)

NEXT

PRINT "S="; S

END

 

 

 

Programul 12

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL M="; M

20 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

30 IF N > M + 1 THEN GOSUB 80: LET E = E / (N - M - 1): GOTO 60

40 IF N < M + 1 THEN GOSUB 90: LET E = E / (N + M + 1): GOTO 60

50 LET E = N

60 PRINT "E="; E

70 STOP

80 LET A = N: LET B = M: GOSUB 100: RETURN

90 LET A = M: LET B = N: GOSUB 100: RETURN

100 LET E = A

110 FOR I = 1 TO B

120 LET E = E + I

130 NEXT I

140 RETURN

 

DECLARE SUB CALC (A!, B!)

INPUT "Introduceti un nr. natural nenul M:", M

INPUT "Introduceti un nr. natural nenul N:", N

IF N > M + 1 THEN

        CALC N, M

        E = E / (N - M - 1)

ELSEIF N < M + 1 THEN

        CALC M, N

        E = E / (N + M + 1)

ELSE

        E = N

END IF

PRINT "E="; E

END

 

SUB CALC (A, B)

        SHARED E

        E = A

        FOR I = 1 TO B

                E = E + I

        NEXT

END SUB

 

Programul 13

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 INPUT "INTRODUCETI UN NR. NATURAL NENUL M="; M

30 IF M > N THEN PRINT "M TREBUIE SA FIE <= DECAT N!": GOTO 10

40 LET B = N: GOSUB 80: LET A = E

50 LET B = N - B: GOSUB 80: LET A = A / E

60 PRINT "A="; A

70 STOP

80 LET E = 1

90 FOR I = 1 TO B

100 LET E = E * I

110 NEXT I

120 RETURN

 

DECLARE FUNCTION FACT! (N!)

INPUT "Introduceti un nr. natural nenul N:", N

INPUT "Introduceti un nr. natural nenul M:", M

DO WHILE M > N

        PRINT "M trebuie sa fie <= decat N!"

        INPUT "Introduceti un nr. natural nenul N:", N

        INPUT "Introduceti un nr. natural nenul M:", M

LOOP

A = FACT(N) / FACT(N - M)

PRINT "A="; A

END

 

FUNCTION FACT (N)

        P = 1

        FOR I = 1 TO N

                P = P * I

        NEXT

        FACT = P

END FUNCTION

 

Programul 14

10 INPUT "INTRODUCETI UN NR. NATURAL NENUL N="; N

20 INPUT "INTRODUCETI UN NR. NATURAL NENUL M="; M

30 IF M > N THEN PRINT "M TREBUIE SA FIE <= DECAT N!": GOTO 10

40 LET A = M: GOSUB 90: LET C = B

50 LET A = N - M: GOSUB 90: LET C = C * B

60 LET A = N: GOSUB 90: LET C = B / C

70 PRINT "C="; C

80 STOP

90 LET B = 1

100 FOR I = 1 TO A

110 LET B = B * I

120 NEXT I

130 RETURN

 

DECLARE FUNCTION FACT! (N!)

INPUT "Introduceti un nr. natural nenul N:", N

INPUT "Introduceti un nr. natural nenul M:", M

DO WHILE M > N

        PRINT "M trebuie sa fie <= decat N!"

        INPUT "Introduceti un nr. natural nenul N:", N

        INPUT "Introduceti un nr. natural nenul M:", M

LOOP

C = FACT(N) / (FACT(N - M) * FACT(M))

PRINT "C="; C

END

 

FUNCTION FACT (N)

        P = 1

        FOR I = 1 TO N

                P = P * I

        NEXT

        FACT = P

END FUNCTION

 

Programul 15

10 INPUT "A="; A

20 LET B = ABS(A): LET I = 1

30 IF B / 10 ^ I >= 1 THEN LET I = I + 1: GOTO 30

40 PRINT "NUMARUL DE CIFRE ESTE"; I

50 STOP

 

INPUT "A=", A

B = ABS(A)

I = 1

DO WHILE B / 10 ^ I >= 1

        I = I + 1

LOOP

PRINT "Numarul de cifre este"; I

END

 

Programul 16

Varianta Commodore 64

 

10 INPUT "INTR. UN NR. NATURAL DE 3 CIFRE:"; N1

20 INPUT "INTR. CELALALT NR. NATURAL DE TREI CIFRE (DIFERIT DE PRIMUL):"; N2

30 IF N1 < N2 THEN GOTO 50

40 Z = N1: N1 = N2: N2 = Z

50 FOR I = N1 TO N2

60 A$ = RIGHT$(STR$(I), 3)

70 A1 = VAL(MID$(A$, 1, 1))

80 A2 = VAL(MID$(A$, 2, 1))

90 A3 = VAL(MID$(A$, 3, 1))

100 IF I = A1 * A1 * A1 + A2 * A2 * A2 + A3 * A3 * A3 THEN PRINT I

110 NEXT I

120 STOP

 

Varianta Spectrum

10 INPUT "INTR. UN NR. NATURAL DE 3 CIFRE:"; N1

20 INPUT "INTR. CELALALT NR. NATURAL DE TREI CIFRE (DIFERIT DE PRIMUL):"; N2

30 IF N1 < N2 THEN GOTO 50

40 LET Z = N1: LET N1 = N2: LET N2 = Z

50 FOR I = N1 TO N2

60 LET U = I

70 LET C3 = U - INT(U / 10) * 10

80 LET U = (U - C3) / 10

90 LET C2 = U - INT(U / 10) * 10

100 LET C1 = (U - C2) / 10

110 IF I = C1 * C1 * C1 + C2 * C2 * C2 + C3 * C3 * C3 THEN PRINT I

120 NEXT I

130 STOP

 

INPUT "Introduceti un nr. natural de trei cifre:", N1

INPUT "Introduceti celalalt nr. natural de 3 cifre (diferit de primul):", N2

IF N2 < N1 THEN SWAP N1, N2

FOR I = N1 TO N2

        U = I

        C3 = U MOD 10

        U = (U - C3) / 10

        C2 = U MOD 10

        C1 = (U - C2) / 10

        IF I = C1 * C1 * C1 + C2 * C2 * C2 + C3 * C3 * C3 THEN PRINT I

NEXT

END

 

Home | BAC/Teze | Biblioteca | Referate | Games | Horoscop | Muzica | Versuri | Limbi straine | DEX

Modele CV | Wallpaper | Download gratuit | JOB & CARIERA | Harti | Bancuri si perle | Jocuri Barbie

Iluzii optice | Romana | Geografie | Chimie | Biologie | Engleza | Psihologie | Economie | Istorie | Chat

 

Joburi Studenti JOB-Studenti.ro

Oportunitati si locuri de munca pentru studenti si tineri profesionisti - afla cele mai noi oferte de job!

Online StudentOnlineStudent.ro

Viata in campus: stiri, burse, cazari, cluburi, baluri ale bobocilor - afla totul despre viata in studentie!

Cariere si modele CVStudentCV.ro

Dezvoltare personala pentru tineri - investeste in tine si invata ponturi pentru succesul tau in cariera!

 

 > Contribuie la proiect - Trimite un articol scris de tine

Gazduit de eXtrem computers | Project Manager: Bogdan Gavrila (C)  

 

Toate Drepturile Rezervate - ScoalaOnline Romania