Программирование на smart BASIC. Урок 5

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by Фант »

Может Вас это интересовало?
В данном данном примере значения считываются из DATA и записываются в одномерный массив A:

Code: Select all

option base 1
data 1,14,25
for i=1 to 3
read a(i)
print a(i)
next i

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: Программирование на smart BASIC. Урок 5

Post by Mr. Kibernetik »

Mark990530 wrote:А как в массиве записать вот , что бы a= 1 ; 12 ; 3/10 ....
И при этом с переменной b было бы что-то похожее
Индекс массива может быть только целым числом, потому что индекс - это порядковый номер.

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by MARK99 »

Фант wrote:Может Вас это интересовало?
В данном данном примере значения считываются из DATA и записываются в одномерный массив A:

Code: Select all

option base 1
data 1,14,25
for i=1 to 3
read a(i)
print a(i)
next i
Вот оно ...спасибо , извините , но просто я с нуля начинаю, в школе не уделяют синтаксису , там изучают логику (но без нё тож нельзя).
Ещё раз спасибо )
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by Фант »

Имейте ввиду что из DATA значения Считываются только один раз. Для того чтобы повторно считать надо сбросить счетчик данных командой RESTORE. После этого данные можно считывать повторно.

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by Фант »

Пример как из Data ввести значения сразу в два одномерных массива A и B

Code: Select all

option base 1
data 1,14,25,17.5,23,50.5
for i=1 to 3
read a(i),b(i)
C=a(i)*b(i)
print c
next i

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by MARK99 »

Фант wrote:Может Вас это интересовало?
В данном данном примере значения считываются из DATA и записываются в одномерный массив A:

Code: Select all

option base 1
data 1,14,25
for i=1 to 3
read a(i)
print a(i)
next i
Но в этом случае i не может быть боль 10, как сделать read a(31)?
Или так нельзя ?
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by Фант »

конечно можно.... вот для этого и существует команда DIM a(...)
этой командой Вы как раз и определяете размер созданного массива. автоматически создается массив на 10 значений. Если Вам надо 31 пишите в начале программы DIM a(31)

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by MARK99 »

Фант wrote:конечно можно.... вот для этого и существует команда DIM a(...)
этой командой Вы как раз и определяете размер созданного массива. автоматически создается массив на 10 значений. Если Вам надо 31 пишите в начале программы DIM a(31)
Ещё раз спасибо)
Image

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by Фант »

Mark990530 wrote:
Фант wrote:конечно можно.... вот для этого и существует команда DIM a(...)
этой командой Вы как раз и определяете размер созданного массива. автоматически создается массив на 10 значений. Если Вам надо 31 пишите в начале программы DIM a(31)
Ещё раз спасибо)
Без проблем! Всегда рад помочь в меру своей компетентности.

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Программирование на smart BASIC. Урок 5

Post by MARK99 »

Получилось() :idea:
Если кто подскажит , как уменьшить, буду благодарен)
Код:

Code: Select all

graphics

a1=screen_width() 'ширина экрана
a2=screen_height() 'высота экрана
if a2<a1 then 
a3=a2
end if
if a1<a2 then 
a3=a1
end if
GRAPHICS CLEAR 170/255,165/255,145/255

m=0
i1=1
do
OPTION BASE (1)

dim q(14)
data 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1
for i=1 to 14
read q(i)

if q(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,0 TO ((a3/15)+m),(a3/15)
end if
if q(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,0 TO ((a3/15)+m),(a3/15)
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim w(14)
data 1,0,0,1,0,1,1,0,1,0,0,0,1,0,1
for i=1 to 14
read w(i)

if w(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15) TO ((a3/15)+m),2*(a3/15)
end if
if w(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15) TO ((a3/15)+m),(a3/15)*2
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim e(14)
data 1,0,1,1,0,0,0,0,1,0,1,0,0,0,1
for i=1 to 14
read e(i)

if e(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*2 TO ((a3/15)+m),3*(a3/15)
end if
if e(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*2 TO ((a3/15)+m),(a3/15)*3
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,0,0,1,0,1,0,1,0,1,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*3 TO ((a3/15)+m),4*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*3 TO ((a3/15)+m),(a3/15)*4
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,0,0,0,1,0,0,0,1,0,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*4 TO ((a3/15)+m),5*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*4 TO ((a3/15)+m),(a3/15)*5
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,0,1,0,1,1,1,1,0,1,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*5 TO ((a3/15)+m),6*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*5 TO ((a3/15)+m),(a3/15)*6
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,1,1,0,1,1,0,0,1,0,1,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*6 TO ((a3/15)+m),7*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*6 TO ((a3/15)+m),(a3/15)*7
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,0,0,0,1,1,0,0,0,1,0,0,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*7 TO ((a3/15)+m),8*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*7 TO ((a3/15)+m),(a3/15)*8
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,1,1,0,0,0,1,1,1,1,0,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*8 TO ((a3/15)+m),9*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*8 TO ((a3/15)+m),(a3/15)*9
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,0,0,0,1,0,0,1,0,1,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*9 TO ((a3/15)+m),10*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*9 TO ((a3/15)+m),(a3/15)*10
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,0,1,0,1,0,1,1,0,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*10 TO ((a3/15)+m),11*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*10 TO ((a3/15)+m),(a3/15)*11
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,0,0,1,0,0,0,1,1,0,0,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*11 TO ((a3/15)+m),12*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*11 TO ((a3/15)+m),(a3/15)*12
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,1,1,0,1,0,0,1,1,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*12 TO ((a3/15)+m),13*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*12 TO ((a3/15)+m),(a3/15)*13
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,0,0,0,0,1,1,0,0,0,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*13 TO ((a3/15)+m),14*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*13 TO ((a3/15)+m),(a3/15)*14
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i

m=0
i1=1
do
OPTION BASE (1)

dim r(14)
data 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/15)*14 TO ((a3/15)+m),15*(a3/15)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/15)*14 TO ((a3/15)+m),(a3/15)*15
end if
i1=i1+1
m=m+(a3/15)
until i1>2
next i




Image

Post Reply