Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

Pelerinaj in Egipt

Caut aplicatie android inregistra...

Factura Orange marita
 Pentru lipsa de procedura, amana ...

[ANCOM] Toti operatorii de telefo...

Lovitura de stat (dejucata) in Ge...

Boxe PA audio home use - nivel av...
 Boxe wifi

Modem WiFi Huawei

Recomandare scaun de birou

E mai bine sa te dai de alta nati...
 Cosmin Seleși, la Pro TV, di...

The Men Who Sold the World Cup (2...

La multi ani @WestPoint!

Problema joc de pe Steam
 

Gasire X cel mai apropiat intr-un tabel (x,y) cu afisare Y corespunzator

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

#1
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Salutare amatorilor de vba !


Sunt mai multe valori X care trebuiesc comparate cu mai multe perechi (X,Y).
Pentru fiecare X trebuie gasita perechea cea mai apropiata superioara si inferioara
X nu are valoare exacta ca vreo pereche (X,Y) din tabel.

Va rog indrumati-ma spre niste functii vba ca sa rezolv aceasta problema.
As putea face cu comparatie directa (si poate este mai simplu), dar poate exista o functie VBA .


Multumesc !

Edited by xr400, 13 July 2018 - 17:55.


#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005
Avand o serie de puncte definesti o functie care aproximeaza acele valori( cu ce precizie vrei sau dispus sa lucrezi)

p.s. ne poti arata valorile ?

#3
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Daca am 2-300 de puncte, cum definesc functia ?

#4
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005
local pe un subset

#5
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Nu intzeleg. Poti fi mai explicit ?
Valorile sunt coordonatele unui grafic digitalizat, care grafic este oarecare .
La digitalizare poti solicita orice numar de puncte. 2-300 ar fi optim.

Edited by xr400, 14 July 2018 - 06:42.


#6
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
suma de diferente Riemmann: https://ro.wikipedia...
https://atelieruldem...emann.gif?w=500
Baza fiecarui dreptunghi este x[i+1] - x[i]. Ei bine X-ul tau pt fiecare dreptunghi  baleiaza intre x[i] si x[i+1] al fiecarui dreptunghi.
Precizia pe care o definesti decide in ce parte X-ul tau se va duce pentru fiecare dreptunghi: fie la x[i] sau x[i+1]
Daca se duce catre x[i] atunci iei perechea x[i], y[i]
Daca se duce catre x[i+1] atunci iei perechea x[i+1], y[i+1]

Foloseste functia  round(x) => https://msdn.microso....round(v=vs.110).aspx
astfel:
daca round(x) <= x[i] ,atunci  alege perechea x[i], y[i]
daca round(x) >= x[i+1], atunci alege perechea x[i+1], y[i+1]
Si asta pt fiecare dreptunghi i din figura de mai sus
cu i intre 1 si numarul de perechi pe care il ai

Edited by WinstonMontana, 14 July 2018 - 11:20.


#7
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Multzumesc pentru raspunsuri,
Link-ul care l-ai dat nu functioneaza
Conform definitiei functiei round
http://www.excelfunc...d-function.html
fie rotunjeste un numar zecimal la cate zecimale hotarasti, sau rotunjeste la numarul intreg cel mai apropiat.
Nu ma ajuta. X este zecimal, (X,Y) este zecimal

Am crezut ca exista o scurtatura si nu o gasesc eu
.
O sa fac un algoritm clasic de comparat X cu fiecare pereche (X,Y),
si eventual o interpolare fatza de pereche superioara, perechea inferioara cand calculez Y.

Multzumesc inca odata ca v-ati uitat pe intrebare

#8
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Postxr400, on 14 iulie 2018 - 12:49, said:

Multzumesc pentru raspunsuri,
Link-ul care l-ai dat nu functioneaza
Conform definitiei functiei round
http://www.excelfunc...d-function.html
fie rotunjeste un numar zecimal la cate zecimale hotarasti, sau rotunjeste la numarul intreg cel mai apropiat.
Nu ma ajuta. X este zecimal, (X,Y) este zecimal

Am crezut ca exista o scurtatura si nu o gasesc eu
.
O sa fac un algoritm clasic de comparat X cu fiecare pereche (X,Y),
si eventual o interpolare fatza de pereche superioara, perechea inferioara cand calculez Y.

Multzumesc inca odata ca v-ati uitat pe intrebare
Rounds a value to the nearest integer or to the specified number of fractional digits.
Am corectat linkul
https://msdn.microso...(v=vs.110).aspx

Edited by WinstonMontana, 14 July 2018 - 13:10.


#9
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
vezi si :
Ceil
https://msdn.microsoft.com/en-us/library/zx4t0t48(v=vs.110).aspx
Floor
https://msdn.microsoft.com/en-us/library/e0b5f0xb(v=vs.110).aspx



#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005
cate o diferenta pe intreg sirul de X?

#11
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Multzumesc WinnstonMontana,
X si (X,Y) sunt numere rationale. Ceiling si Floor returneaza intregii cei mai apropiatzi. Nu ma ajuta.


Scuze, nu intzeleg intrebarea MarianG

Edited by xr400, 14 July 2018 - 13:41.


#12
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005
pentru fiecare valoare din lista X in scazi valoarea 'X ceruta',
vei avea o listsa noua, iar perechea pe care o cauti se va afla la index-ul cu cea mai mica valoare.

#13
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Corect MarianG,
E o varianta de algoritm. Cele mai mici 2 numere in modul sunt cele mai apropiate.

Edited by xr400, 14 July 2018 - 13:56.


#14
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
daca am
lista = ((23.56,34.69),(10.98, 70.65),(32.89, 45.98),(3.45, 98.67))
X = (5.90, 34.85, 25.74)

scrie ce ar trebui sa  returneze algoritmul pentru cazul de mai sus

Edited by WinstonMontana, 14 July 2018 - 14:29.


#15
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
X =5.9  nu are inferior si superior
X=34.85 nu are inferior si superior
X=25.74 ar trebui sa gaseasca inferior (23.56  34.69) si superior (32.89  45.98)
si ar trebui facuta o interpolare

(25.74/ 23.56) x 34.69

rezultatul trebuie sa fie mai mare decat 34.69 cu procentul care 25.74 este mai mare decat 23.56

eu zic ca am scris interpolarea corect

Edited by xr400, 14 July 2018 - 15:22.


#16
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005

View PostWinstonMontana, on 14 iulie 2018 - 14:29, said:

daca am
lista = ((23.56,34.69),(10.98, 70.65),(32.89, 45.98),(3.45, 98.67))
X = (5.90, 34.85, 25.74)

scrie ce ar trebui sa  returneze algoritmul pentru cazul de mai sus
prima data sorteaza lista dupa X

5.9 este intre 10.9 si 3.45

#17
xr400

xr400

    New Member

  • Grup: Junior Members
  • Posts: 9
  • Înscris: 13.07.2018
Formula corecta cu interpolarea este
(25.74-23.56) /(32.89-23.56) x(45.98-34.6) +34.69

View PostMarianG, on 14 iulie 2018 - 15:36, said:

prima data sorteaza lista dupa X

5.9 este intre 10.9 si 3.45

Corect,

Pot sa scriu algoritmul
Credeam ca e vreo functie de vba care nu o gasesc eu. Aceasta este intrebarea.
Multzumesc

#18
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 28,269
  • Înscris: 10.08.2005
FORECAST ?
https://support.offi...e4-7ad38bbeda99

Anunturi

Bun venit pe Forumul Softpedia!

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