Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гаряка Асмик
Статус: Специалист
Рейтинг: 2742
∙ повысить рейтинг »
Vasiliy83
Статус: Бакалавр
Рейтинг: 1367
∙ повысить рейтинг »
Megaloman
Статус: Бакалавр
Рейтинг: 1095
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:994
Дата выхода:13.03.2010, 11:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:344 / 100
Вопросов / ответов:1 / 1

Вопрос № 177142: Не могу решить контрольную, помогите пожалуйста! 1. Имеется четыре A,B,C,D произвольных числа. ЭВМ должна ответить на вопрос: Правда ли что среди чисел есть четные? Ответ ЭВМ должна вывести в виде текста – слов ”Правда” или ”Неправда”. 2. Сост...



Вопрос № 177142:

Не могу решить контрольную, помогите пожалуйста!
1. Имеется четыре A,B,C,D произвольных числа. ЭВМ должна ответить на вопрос: Правда ли что среди чисел есть четные? Ответ ЭВМ должна вывести в виде текста – слов ”Правда” или ”Неправда”.
2. Составить программу вычисления и выдачи на печать суммы (или произведения) N элементов бесконечного числового ряда.
y=-2+5-8+11-14+...
3. Имеется массив А из N произвольных чисел А(N), среди которых есть положительные, отрицательные и равные нулю. Составить программу, выполняющую задачу.
Вычислить количество чисел, квадрат которых меньше 10. Например, если А={2,4,–3,3,5,–2,1}, результат: 5 (это числа 2, –3, 3, –2, 1).
4. Составить программу вычисления числового ряда для известного числа членов ряда N. Перед программированием следует выявить и написать необходимые аналитические соотношения, описывающие все имеющиеся зависимости.
Y=(2+1/81)-(4-2/27)+(8+4/9)-(16-8/3)+..
5. Выполнить действия над массивами. В таблице при формулировании задания для разъяснения его сути справа отображены примеры исходных Х и результирующих Y массивов с конкретными числами. Программа, естественно, должна обрабатывать любые числа. Предельная размерность массивов до 10, реальная размерность – N. Программа должна предъявлять исходные и новые (если требуется) массивы.
Переписать все элементы Х для 3<X(i)<10 в начало Y, подсчитать их количество и среднее арифметическое. В примере таких чисел 3. Среднее 18/3=6.
1__4__2__8__6__11__Х
4__8__6__..__..__..__Y

Отправлен: 08.03.2010, 11:03
Вопрос задал: ali-babaih2469, 1-й класс
Всего ответов: 1
Страница вопроса »


Отвечает Megaloman, Бакалавр :
Здравствуйте, ali-babaih2469. Вы не указали версию Basic. Вот решения (я их сделвл в QBasic) , которые можно скачать:
177142_1.bas (278 байт)
177142_2.bas (249 байт)
177142_3.bas (426 байт)
177142_4.bas (440 байт)
177142_5.bas (1.4 кб)
Вот код решений
1.
Код:
CLS
DIM a AS SINGLE, b AS SINGLE, c AS SINGLE, d AS SINGLE
DIM Y AS SINGLE

INPUT "a=", a
INPUT "b=", b
INPUT "c=", c
INPUT "d=", d

IF (a MOD 2) = 0 OR (b MOD 2) = 0 OR (c MOD 2) = 0 OR (d MOD 2) = 0 THEN
PRINT "Правда"
ELSE
PRINT "Неправда"
END IF

2.
Код:
CLS
DIM Y, Elem AS LONG, N, i, k AS INTEGER

PRINT "Ряд Y= -2 +5 -8 +11 - ..."
INPUT "Число элементов ряда N=", N

Y = 0
Elem = 2
k = -1

FOR i = 1 TO N
Y = Y + Elem * k
Elem = Elem + 3
k = -k
NEXT

PRINT "Сумма ряда Y="; Y

3.
Код:
CLS

DIM N, M, i AS INTEGER
INPUT "Число элементов массива N=", N

REDIM A(1 TO N) AS SINGLE

' ----- Ввод элементов мссива
PRINT "Введите элементы массива A(N)"
FOR i = 1 TO N
PRINT "A(" + STR$(i) + ")=";
INPUT A(i)
NEXT

' ----- Подсчет элементов квадрат которых <10
M = 0
FOR i = 1 TO N
IF A(i) * A(i) < 10 THEN M = M + 1
NEXT

PRINT "Кол-во элементов массива квадрат которых < 10 = "; M


4. Аналитические соотношения для членов ряда (i=1...N):
Первое слагаемое в скобке: 2^i
Второе слагаемое в скобке, числитель: (-1)^(i-1)*2^(i-1)
Второе слагаемое в скобке, знаменатель: 3^(5-i)
Множитель перед скобкой: (-1)^(i-1)

После упрощения общий член ряда (-1)^(i-1)*2^i*(1+(-1)^(i-1)/2/3^(5-i))
Код:
CLS

DIM N, i, k AS INTEGER
DIM Y AS DOUBLE
DIM E2, E3 AS LONG

PRINT "Ряд Yi = (-1)^(i-1)*2^i*(1+(-1)^(i-1)/2/3^(5-i))"

INPUT "Число элементов ряда N=", N

k = -1 ' (-1)^(i-1)
E2 = 1 ' 2^i
E3 = 243 ' 3^(5-i)
Y = 0 ' Cумма ряда

FOR i = 1 TO N
k = -k
E2 = E2 * 2
E3 = E3 / 3
Y = Y + k * E2 * (1 + k / E3 / 2)
PRINT k * E2 * (1 + k / E3 / 2)
NEXT

PRINT "Сумма элементов ряда = "; Y


5.
Код:
DIM N, M, i, K, Logika AS INTEGER
DIM S AS SINGLE

Logika = 1
DO WHILE Logika <> 0
CL S
INPUT "Число элементов массива N=", N
REDIM X(1 TO N), Y(1 TO N) AS SINGLE

' ----- Ввод элементов мссив а X
PRINT "Введите элементы массива X(i)"
FOR i = 1 TO N
PRINT "X(" + STR$(i) + ")=";
INPUT X(i)
NEXT

' ---- Перепишем элементы массива 3<X(i)<10 в массив Y
' Подсчитаем сумму этих элементов и их число
S = 0
M = 0
FOR i = 1 TO N
IF 3 < X(i) AND X(i) < 10 THEN
M = M + 1
Y(M) = X(i)
S = S + X(i)
END IF
NEXT

K = M

' ---- Перепишем элементы массива вне диапазона 3<X(i)<10 в массив Y
IF M + 1 <= N THEN
FOR i = 1 TO N
IF NOT (3 < X(i) AND X(i) < 10) THEN
M = M + 1
Y(M) = X(i)
END IF
NEXT
END IF

' ----- Вывод элементов мссива Y(i)
PRINT "Элементы массива Y(i)"
FOR i = 1 TO N
PRINT "Y(" + STR$(i) + ")=";
PRINT Y(i)
NEXT

PRINT "Кол-во элементов 3<X(i)<10 K=" + STR$(K)

' --- Среднее элементов массива 3<X(i)<10
IF K > 0 THEN
S = S / K
PRINT "Среднее этих элементов S=";
PRINT STR$(S)
END IF

Logika = 0
PRINT
PRINT "Для завершения программы нажмите Enter или введите 0"
INPUT "Для продолжения введите люое ненулевое значение ", Logika

LOOP



-----
Нет времени на медленные танцы

Ответ отправил: Megaloman, Бакалавр
Ответ отправлен: 08.03.2010, 17:52
Номер ответа: 259992

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 259992 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное