Страница 1 из 2
масивы в QBasic
Добавлено: 29 ноя 2008, 16:30
Verloren
№1.задан масив к1..к(n).определить последний дробный элемент масива.вычислить среднее арифметическое неотрицательных элементов с четными индексами.вывести на экран индексы элементов с нулевыми значениями.
№2.задан масив н1...н(n).сформировать из его дробных элементов с четными индексами новый мсив f. в масиве f подсчитать количество отрицательных элементов.
зы:
к 1му нужно еще критические ситуации учесть,когда нет дробных и когда среднее не вычисляется,помогите плиз оч надо=''''(((
помогите пожалуйста!!!
Re: масивы в QBasic
Добавлено: 29 ноя 2008, 16:51
Naeel Maqsudov
Код: Выделить всё
'Ввод массива
print "Введите N";
input N
dim K(1 to N)
for i=1 to n
print "K(";i;"):";
input K(i)
next
S=0:NNeg=0:IdxFrac=0
print "Индексы нулевых элементов ";
for i=1 to N
if K(i)=0 then print i;", "; 'вывод индекса нулевого элемента
if K(i)<>int(K(i)) then IdxFrac=i 'запоминаем индекс дробного (последним запомнится последний :) )
if K(i)>=0 and i mod 2=0 then 'сложим и сосчитаем четные неотр. элементы
S=S+K(i)
NNeg=NNeg+1
end if
next
print
if NNeg=0 then
print "Нельзя подсчитать среднее"
else
print "Среднее = "; S/NNeg
end if
if IdxFrac=0 then
print "Нет дробных элементов"
else
print "Индекс последнего дробного элемента - ";IdxFrac
end if
Re: масивы в QBasic
Добавлено: 30 ноя 2008, 14:46
Verloren
Naeel Maqsudov,
пасипа огроменое))а ко второму примеру можеш?я конечно понимаю что это наглость но информатика для меня темный лес...

Re: масивы в QBasic
Добавлено: 30 ноя 2008, 16:24
Naeel Maqsudov
Код: Выделить всё
'Ввод массива
print "Введите N";
input N
dim H(1 to N)
for i=1 to n
print "H(";i;"):";
input H(i)
next
'создание массива и подсчет отрицательных элементов
dim F(1 to N)
K=0:Neg=0
for i=2 to n step 2 'будем идти только по четным элементам
if H(i)<>int(H(i)) then
K=K+1
F(K)=H(i)
if F(K)<0 then Neg=Neg+1
end if
next
'вывод результатов
print "Массив F содержит ";K;" элем: ";
for i=1 to K
print K(i); ", ";
next
print
print "Отрицательных элементов в нем - ";Neg
Re: масивы в QBasic
Добавлено: 18 фев 2009, 15:03
Elliot
Народ, мне помогите пожалуйста, не могу лабораторную решить...
Вот задания в оригинале
a). Заповнити вектор за допомогою операторiв READ i DATA:
S(8)= (7; –12; 8; 6; 21; 2; 15; –9)
б). Вивести сформований вектор на екран.
в). Всі елементи сформованого вектора кратні 3 замінити нулями.
г). Впорядкувати елементи масиву за зростанням.
На русском но с ошибками
а). Заполнить вектор при помощи операторов READ и DATA
S(8)= (7; –12; 8; 6; 21; 2; 15; –9)\
б.) Вывести сформированный вектор на экран.
в.) Все элементы сформированного вектора кратные 3 заменить нолем.
г.) Сортировать элементы массива по возрастанию.
Первую часть пробовал сделать так
cls
dim s(8)
READ S(i)
data 7,-12,8,6,21,2,15,-9
for i = 1 to 8
print s(i), "";
next i
но не получилось
Re: масивы в QBasic
Добавлено: 18 фев 2009, 15:10
Naeel Maqsudov
для начала работа над ошибками
Код: Выделить всё
cls
data 7,-12,8,6,21,2,15,-9
dim s(8)
'a). Заповнити вектор за допомогою операторiв READ i DATA:
for i = 1 to 8
read S(i)
next
'б). Вивести сформований вектор на екран.
for i = 1 to 8
print s(i), ", ";
next i
Re: масивы в QBasic
Добавлено: 18 фев 2009, 15:21
Elliot
Спасибо большое
Добавлено: 18 фев 2009, 15:29
Naeel Maqsudov
в.) Все элементы сформированного вектора кратные 3 заменить нолем.
Код: Выделить всё
for i=1 to 8
if (s(i) mod 3)=0 then s(i)=0
next
не помню уже, есть ли mod в qbasic-е.... если нет, то вместо
(s(i) mod 3)=0
надо сделать
s(i)/3=int(s(i)/3)
Сортировка "пузырьком"
Код: Выделить всё
f=1
while f>0 do
f=0
for i=1 to 7
if s(i) > s(i+1) then
t:=s(i)
s(i)=s(i+1)
s(i+1)=t
f=1
end if
next
wend
Ну и вывод элементов на экран надо наверное вставить после каждой подзадачи.
Re: масивы в QBasic
Добавлено: 18 фев 2009, 15:37
Elliot
с с последним не получается, после while f>0 do пишет expected: end-of-statement
Re: масивы в QBasic
Добавлено: 18 фев 2009, 15:38
Naeel Maqsudov
Наверное DO тут лишнее