Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Garmin fēnix 7 / PRO / Saphi...

Care sunt cele mai mari regrete a...

Alfa Romeo Stelvio 2.2 jtd

Intrebari srl nou
 La multi ani @AndReW99!

Alegere masina £15000 uk

TVR vrea sa lanseze o platforma d...

Strategie investie pe termen lung...
 Modulator FM ptr auto alimentat p...

orange cablu f.o. - internet fara...

Robinet care comuta traseul

A fost lansata Fedora 40
 Samsung S24 plus

Imi iau un Dell? (Vostro vs others)

Abonati Qobuz?

transport -tren
 

Lucruri nentelese in QBasic

- - - - -
  • Please log in to reply
5 replies to this topic

#1
Nexgen

Nexgen

    Junior Member

  • Grup: Members
  • Posts: 118
  • Înscris: 18.05.2010
Salut!

Am si eu doua intrebari legat de limbajul QBasic:

1. De ce nu pot inmultii sau inpartii o variabila normala de tip integer cu o variabila array de tip tot integer, in timp ce adunarea si scaderea se poate realiza. Un exemplu este mai jos.
DIM Num(5) AS INTEGER
DIM x AS INTEGER
DIM Sum AS INTEGER

Num(1) = 10
Num(2) = 15
Num(3) = 50
Num(4) = 2
Num(5) = 19

CLS  

Sum = 0 

FOR x = 1 TO 5
   Sum = Sum + Num(x) 	
Next x

PRINT ?The sum of the array is: ?; Sum

Daca intre variabilele sum si num incerc sa pun semnul operatie de inmultire sau impartire, imi returneaza 0.

2.Nu reusesc sa imi dau seama cum functioneaza programul de mai jos, mai exact nu stiu cum functioneaza cele doua perechi de bucle. Ceea ce nu inteleg este care este ordinea de executare a perechilor de bucle. Din prima perece sa inteleg ca se executa bucla y pana ii se termina valoare si mai apoi x. Dar cealalta pereche de bucle cum functioneaza in raport cu prima? Sper ca intelegeti ce vreau sa zic :D
Mai jos este exemplul.
DIM x AS INTEGER
DIM y AS INTEGER
DIM Rank(13) AS STRING
DIM Suit(4) AS STRING
DIM Cards(4, 13) AS STRING   ?This Is The Multi-Dimensional Array

Suit(1) = "D"  'diamonds
Suit(2) = "S"  'spades
Suit(3) = "H"  'hearts
Suit(4) = "C"  'clubs

Rank(1) = "2"
Rank(2) = "3"
Rank(3) = "4"
Rank(4) = "5"
Rank(5) = "6"
Rank(6) = "7"
Rank(7) = "8"
Rank(8) = "9"
Rank(9) = "10"
Rank(10) = "Jack"
Rank(11) = "Queen"
Rank(12) = "King"
Rank(13) = "Ace"

'Load the Suit and Rank into the array to make a Multi-Dimensional array
FOR x = 1 TO 4
  FOR y = 1 TO 13
	Cards(x, y) = Suit(x) + Rank(y)
  NEXT y
NEXT x

CLS	  'clear the screen

'Print the cards to the screen
FOR x = 1 TO 4
  FOR y = 1 TO 13
	PRINT Cards(x, y) + "  ";   'using the; at the end will keep the text on one line
  NEXT y
NEXT x

P.S.: Sper ca am postat unde trebuie.
P.S.2:Folosesc FreeBasic

Edited by Nexgen, 18 November 2010 - 18:18.


#2
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006
1. iti returneaza zero pentru ca initial Sum este zero :)
daca vrei sa inmultesti toate numerele din array, ar trebui sa initializezi variabila Sum cu o valoare care sa nu afecteze inmultirea, iar acea valoare este 1.
la impartit nu stiu cu ce ai putea sa initializezi :)

2.asa cum ai tu acolo for-urile imbricate, o sa ai pe rand valorile:
1, 1 ; 1, 2 ; 1,3 ; ....
2, 1 ; 2,2 ; 2,3 ; ...

o varianta echivalenta ar fi asta:
x = 1
FOR y = 1 TO 13
    Cards(x, y) = Suit(x) + Rank(y)
NEXT y
x = 2
FOR y = 1 TO 13
    Cards(x, y) = Suit(x) + Rank(y)
  NEXT y
x = 3
FOR y = 1 TO 13
    Cards(x, y) = Suit(x) + Rank(y)
  NEXT y
x = 4
FOR y = 1 TO 13
    Cards(x, y) = Suit(x) + Rank(y)
  NEXT y

#3
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,438
  • Înscris: 10.08.2005

View Post_Smiley_, on 18th November 2010, 18:46, said:

1. iti returneaza zero pentru ca initial Sum este zero :)
daca vrei sa inmultesti toate numerele din array, ar trebui sa initializezi variabila Sum cu o valoare care sa nu afecteze inmultirea, iar acea valoare este 1.
la impartit nu stiu cu ce ai putea sa initializezi :)
cu orice diferit de zero
a/b=c <==> a=b*c
deci tot cu 1.

a/b=c <==> b!=0.

Edited by MarianG, 18 November 2010 - 18:53.


#4
Nexgen

Nexgen

    Junior Member

  • Grup: Members
  • Posts: 118
  • Înscris: 18.05.2010
Gata, m-am prins, multumesc amandurora  :coolspeak:

#5
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,026
  • Înscris: 24.02.2006

View PostMarianG, on 18th November 2010, 18:51, said:

cu orice diferit de zero
a/b=c <==> a=b*c
deci tot cu 1.

a/b=c <==> b!=0.

nu sunt chiar atat de sigur :)
intrebarea e ce vrea de fapt sa faca
pentru suma, e simplu: vrea sa adune valorile tuturor elementelor din array. deci e normal sa initializeze cu 0
pt inmultit, e la fel de simplu: vrea sa inmulteasca valorile tuturor elementelor din array. deci e normal sa initializeze cu 1
pt impartit, in schimb, nu-mi dau seama ce ar vrea sa faca. sa imparta toate elementele din array intre ele?

#6
Nexgen

Nexgen

    Junior Member

  • Grup: Members
  • Posts: 118
  • Înscris: 18.05.2010
Mai am o problema, nu inteleg de ce in urmatorul cod, variabilele x1,x2,... imi returneaza o valoare string, in tip ce eu le-am definit ca fiind single, iar valoritle lor (in unele cazuri) sunt tot de tip single.

dim d,x1,x2,re,im,x,a,b,c as single
input "Defineste primul termen din ecuatie (a): ";a
input "Defineste al II termen din ecuatie (b): ";b
input "Defineste al III termen din ecuatie (c): ";c


if a=0 then
	if b=0 then
		if c=0 then
			print "Nedefinit"
		else
			print "Incompatibil"
		end if
	else
		x=c/b
		print "X egal"; x
	end if
else
	d=b^2-4*a*c
	if d<0 then
		re=-b/(2*a)
		im=(-d)^(1/2)/(2*a)
		print "x1,2 = f(";re;",";im;")";
		print "delta="; d
	else
		x1=(-b+d^(1/2))/(2*a)
		x2=(-b-d^(1/2))/(2*a)
		print "x1=";x1
		print "x2=";x2
			 
	end if
end if
sleep


Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate