Вопрос № 165112: Дорогие эксперты. Прошу помочь решить 2 задачи по qbasic. 1) Дан массив из 10 элементов. Все члены его начиная с первого положительного уменьшить на 0,5 2) Дан массив (размерность задается пользователем). Выяснить какое число встречается в мас...
Вопрос № 165.112
Дорогие эксперты. Прошу помочь решить 2 задачи по qbasic. 1) Дан массив из 10 элементов. Все члены его начиная с первого положительного уменьшить на 0,5 2) Дан массив (размерность задается пользователем). Выяснить какое число встречается в массиве раньше : положительное или отрицательное. подсчитать кол-во тех и других. Если все члены последовательности равны 0, то сообщить об этом
Заранее спасибо
Отправлен: 16.04.2009, 13:30
Вопрос задал: Kindghost (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Botsman
Здравствуйте, Kindghost! Помогаю с первой задачей. Код в приложении. Комментарии - внутри. Рад был помочь!
Приложение:
--------- Хочешь победить Excel? Спроси меня как! ;)
Ответ отправил: Botsman (статус: Студент)
Ответ отправлен: 16.04.2009, 15:32
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247642 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо большое!
Отвечает: Megaloman
Здравствуйте, Kindghost! Привожу решения. Готовый текст программ (объединены для простоты передачи в один файл) можно загрузить.
Код:
M = 10
REDIM Mas(M - 1) AS SINGLE ' Помним, что по умолчанию в массиве нумерация
элементов с 0
CLS PRINT "Исходный массив" FOR i = 0 TO M - 1 PRINT USING "###"; i; PRINT USING "######.#"; Mas(i) NEXT
iPol = -1 iOtr = -1
nPol = 0 nOtr = 0
FOR i = 0 TO M - 1
IF Mas(i) > 0 THEN nPol = nPol + 1 IF iPol < 0 THEN iPol = i END IF
IF Mas(i) < 0 THEN nOtr = nOtr + 1 IF iOtr < 0 THEN iOtr = i END IF
NEXT
PRINT IF iPol < 0 AND iOtr < 0 THEN PRINT "В массиве все элементы нулевые" ELSE IF iOtr < 0 OR (iPol > iOtr AND iOtr > 0) THEN PRINT USING "&"; "В массиве положительный элемент номер"; PRINT USING "###"; iPol; PRINT USING "&"; " встретился раньше отриц
ательного" ELSE PRINT USING "&"; "В массиве отрицательный элемент номер"; PRINT USING "###"; iOtr; PRINT USING "&"; " встретился раньше положительного" END IF
PRINT USING "&"; "Число положительных элементов ="; PRINT USING "###"; nPol
PRINT USING "&"; "Число отрицательных элементов ="; PRINT USING "###"; nOtr
PRINT USING "&";
"Число нулевых элементов ="; PRINT USING "###"; M - nPol - nOtr
END IF
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Нет времени на медленные танцы
Ответ отправил: Megaloman (статус: Практикант)
Ответ отправлен: 16.04.2009, 17:07
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247649 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.