powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / podproqrammi
12 сообщений из 12, страница 1 из 1
podproqrammi
    #32816764
novichek1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ya s foxpro nedavno rabotayu i podproqrammami voobshi ne rabotal.
Uchitivaya eto pomoqite, pojalusta mne
U menya yest 2 massiv: 1.A=(a1,a2,a3); 2.B=(b1,b2,b3)
Nado cdelat podproqrammu vipolnyayushix nad nix sleduyushie opreatsii:

1) A+B= (a1+b1, a2+b2, a3+b3)
2) A*B= (a1*b1, a2*b2, a3*b3)
3) A-B= (a1-b3, a2-b2, a3-b1)
4) A/B = (a1/b1, a2/b2, a3/b3)

(k*a1, k*a2,k*a3) , k>0
5) k*A= (k*a3, k*a2, k*a3) , k<0
(0,0,0,) , k=0


6) A/B= (a1/b1, a2/b2,a3/b3)
...
Рейтинг: 0 / 0
podproqrammi
    #32816898
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай описание команд

FOR...ENDFOR
ALEN()
DIMENSION
EXTERNAL ARRAY

В FoxPro нет "групповых" команд над элементами массива (кроме операции присвоения всем элементам массива одного значения). Необходимо организовать цикл по перебору всех элементов массива и записи результата в другой массив.
...
Рейтинг: 0 / 0
podproqrammi
    #32817869
novichek1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To chto xotel ya cdelal:
*********************
CLEA
*USE QSE
*GO TOP
*BROW
q1='10,15,12'
q2='23,11,78'

a1=val(SUBSTR(Q1, 1, 2))
a22= SUBSTR(Q1, 4)
a2=val(SUBSTR(a22, 1, 2))
a3= val(SUBSTR(Q1, 7, 8))

b1=val(SUBSTR(Q2, 1, 2))
b22= SUBSTR(Q2, 4)
b2=val(SUBSTR(b22, 1, 2))
b3= val(SUBSTR(Q2, 7, 8))
c1=a1*b1
c2=a2*b2
c3=a3*b3
qsv=alltrim(str(c1))+','+alltrim(str(c2))+','+alltrim(str(c3))
?qsv
**********************
No, seychas takoy vopros:kak eto proqrammu universalno delat?
To yest, seychas vipolnyaem umnajenie 2-x znachniy chisel.A yesli podruqomu:
napirmer umnajenie 3-x znachniy na 4-x znachny,toqda kak?
...
Рейтинг: 0 / 0
podproqrammi
    #32817903
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimension a(10),b(10)
n=8
st=''
for i=1 to n
a(i)=i
b(i)=n-i+1
st=st+alltrim(str(a(i)*b(i)))+','
endfor
?left(st,len(st)-1)
...
Рейтинг: 0 / 0
podproqrammi
    #32818096
novicek1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ya ne ponyal chto delaet eto proqramma, ili Vi ne ponyali menya.
Yest 2 znachenie:
1) q1='10,15,12'
2) q2='23,11,78'
Rezultat doljen bit takoy:
rezultat=alltrim(str(c1))+','+alltrim(str(c2))+','+alltrim(str(c3))
Zdes:
1. c1=a1*b1
2. c2=a2*b2
3. c3=a3*b3
Eto ya sdelal.No yesli q1 i q2 budet dopustim vot tak:
1) q1='125,1250,12'
2) q2='19,348,55474'
toqda chto mojno delat?
...
Рейтинг: 0 / 0
podproqrammi
    #32818169
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть пара функция GetWordCount() и GetWordNum + цикл по количеству слов в строке и нет проблем.

c1=""
q1='125,1250,12'
q2='19,348,55474'
q1WordCnt=GetWordCount(q1,",")
q2WordCnt=GetWordCount(q2,",")
* Тут можно проверочку на q1WordCnt=q2WordCnt
for i=1 to q1WordCnt
c1=c1+","+alltrim(str(val(GetWordNum(q1,i))*val(GetWordNum(q2,i))))
next
c1=substr(c1,2)
...
Рейтинг: 0 / 0
podproqrammi
    #32818201
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начиная с версии VFP6, есть такая функция

ALINES()

Она разбивает символьную строку на отдельные "строки" и записывает каждую "строку" в отдельный элемент массива

q1='125,1250,12'
LOCAL laQ1(1), lnElements
lnElements = ALINES(laQ1,q1,4,",")

Полученный массив laQ1 будет содержать 3 элемента в каждом из которых содержиться свое значение. Количество элементов массива будет записано в переменную lnElements. Далее простой цикл по всем элементам массива.

В версии VFP6 функция ALINES() могла разбивать строку только по символам перевода каретки (CHR(13) или CHR(10)), поэтому, если у тебя именно эта версия, то можно поступить так:

lnElements = ALINES(laQ1,ChrTran(q1,",",CHR(13)))
...
Рейтинг: 0 / 0
podproqrammi
    #32818635
NOVICHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALEKSMED,
U menya foxpro 5.Eti funcsii tam net. Poetomu ustanavil foxpro 7.
yesli,
q1='121,3250,34'
toqda
?val(GetWordNum(q1,1))
vozvrashaet 1-ya slova:121
NO,
?val(GetWordNum(q1,2))
vozvrashaet:00
no ya dumayu chto doljen vozvrashat 2-u slovu:3250
Ili ya ne pravilno ponyal?
Vot eti 3 slova mne po otdelnosti nado:
1) 121
2) 3250
3) 34
...
Рейтинг: 0 / 0
podproqrammi
    #32818665
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как ф-ция GetWordNum по умолчанию считает разделителем пробел, табуляцию или перевод строки, поэтому поправочка:

c1=c1+","+alltrim(str(val(GetWordNum(q1,i,","))*val(GetWordNum(q2,i,","))))
...
Рейтинг: 0 / 0
podproqrammi
    #32818692
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, не знаю как для 5-ки, а для 6-ки эти функции были в FoxTools.fll
...
Рейтинг: 0 / 0
podproqrammi
    #32818735
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
они в и 5.0 и в 6.0 есть тока называюца без префикса Get
ЗЫ и в FPD они были. Тока библа звалась fpath.PLB
...
Рейтинг: 0 / 0
podproqrammi
    #32818967
novichek1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spasibo,poluchilos
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / podproqrammi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]