Люди добрые, помогите кто может решить эти задачи!!! - Форум
Воскресенье, 04.12.2016, 17:16
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Люди добрые, помогите кто может решить эти задачи!!!
Люди добрые, помогите кто может решить эти задачи!!!
Jane_LaneДата: Четверг, 05.03.2009, 17:11 | Сообщение # 1
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
1) Дан массив А(15). найти порядковый номер того из элементов,который наиболее близок к заданному с экрана числу.

2) В заданном массиве С(15) найти :
а) наибольший элемент из отрицательных.
б) наименьший элемент из положительных.

3) Записать подряд в массив А(6) элементы заданного массива В(12), стоящие на чётных местах , а элементы стоящие на нечётных местах, записать в массив С(6).

Люди добрые, помогите кто может решить эти задачи! в Basic!!!

 
vecjhДата: Четверг, 05.03.2009, 19:06 | Сообщение # 2
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
Первое задание (вначале создается массив и цикле заполняется случайными числами):

DIM a(15)
RANDOMIZE TIMER
PRINT "Массив случайных чисел:"
FOR i = 1 TO 15
a(i) = FIX(RND * 100)
PRINT "a("; i; ")="; a(i)
NEXT
PRINT

INPUT "Задайте число: ", n
num = 1
delta = ABS(a(1) - n)
FOR i = 2 TO 15
k = ABS(a(i) - n)
IF k < delta THEN
delta = k
num = i
END IF
NEXT

PRINT num, a(num)

Добавлено (05.03.2009, 18:58)
---------------------------------------------
2-е задание

DIM a(15)
RANDOMIZE TIMER
PRINT "Массив случайных чисел:"
FOR i = 1 TO 15
a(i) = FIX(RND * 200 - 100)
IF a(i) < 0 THEN
nmax = i
max = a(i)
END IF
IF a(i) > 0 THEN
nmin = i
min = a(i)
END IF
PRINT "a("; i; ")="; a(i)
NEXT
PRINT

FOR i = 1 TO 15
IF a(i) < 0 AND a(i) > max THEN
nmax = i
max = a(i)
END IF
IF a(i) > 0 AND a(i) < min THEN
nmin = i
min = a(i)
END IF
NEXT

PRINT "max <0", "a("; nmax; ")="; a(nmax)
PRINT "min >0", "a("; nmin; ")="; a(nmin)

Добавлено (05.03.2009, 19:06)
---------------------------------------------
DIM a(6)
DIM b(12)
DIM c(6)
RANDOMIZE TIMER
PRINT "Массив случайных чисел:"
FOR i = 1 TO 12
b(i) = FIX(RND * 200 - 100)
PRINT "b("; i; ")="; b(i)
NEXT
PRINT

FOR i = 1 TO 6
a(i) = b(2 * i)
c(i) = b(2 * i - 1)
PRINT "a("; i; ")="; a(i),
PRINT "c("; i; ")="; c(i)
NEXT

 
Jane_LaneДата: Четверг, 05.03.2009, 20:13 | Сообщение # 3
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
глупый вопрос, но в эта фраза , что означает?...
Первое задание (вначале создается массив и цикле заполняется случайными числами):
и что означает ABS? и FIX ?


Сообщение отредактировал Jane_Lane - Четверг, 05.03.2009, 20:16
 
vecjhДата: Четверг, 05.03.2009, 21:14 | Сообщение # 4
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
Сразу оговорюсь - проверяйте в своем бейсике, т.к. это все я писал по памяти, бейсик в глаза не видел лет 20 уже, на сайт зашел чтобы поискать какие-нибудь задания для своего сына.

фраза означает, что вот этот кусок программы
DIM a(15)
RANDOMIZE TIMER
PRINT "Массив случайных чисел:"
FOR i = 1 TO 15
a(i) = FIX(RND * 100)
PRINT "a("; i; ")="; a(i)
NEXT
PRINT
заполняет массив случайными числами (см. строку a(i) = FIX(RND * 100) )
rnd - генерация случайного числа от 0 до 1, например 0,654237
умножаем на 100 (получим 65,4237), т.е. мы получим число больше 0 но меньше 100
fix - округляем до целого (получим 65)
весь этот кусок программы можно было бы не писать, а написать просто
a(1)=13
a(2)=25
a(3)=11
...
и т.д., любые числа какие придут на ум, правда когда они случайным образом генерируются - то каждый раз будут новые, а если их прописать в программе, то от запуска к запуску программы они не изменятся.

ABS - абсолютная величина, модуль числа. нам же надо определить число, которое наиболее близко, поэтому мы вычисляем разность и берем модуль
например:
есть числа 53 и 58. какое из них ближе к 56?
53-56=-3
58-56=2
если бы мы сравнили -3 и 2, то получили бы, что -3<2 и какое число ближе?
поэтому мы берем модуль от числа
abs(53-56)=3
abs(58-56)=2
и сразу становится ясно, что раз 2<3, то 58 ближе к 56, чем 53.

Все понятно объяснил?

 
Jane_LaneДата: Пятница, 06.03.2009, 00:02 | Сообщение # 5
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
да, всё ясно....вроде как...спасибо)
просто что писать вместо "Массив случайных чисел:"
и "a("; i; ")="; a(i) ?
 
vecjhДата: Пятница, 06.03.2009, 09:10 | Сообщение # 6
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
Я рекомендую просто попробовать запустить программки и поэкспериментировать как они выполняются. Попытайтесь разобраться самостоятельно, я уверен, что это Вам по силам. Не бойтесь что-либо менять, например вместо "Массив случайных чисел:" напишите имя любимой собачки или кошечки, посмотрите каким будет результат;
вместо "a("; i; ")="; a(i) тоже что-нибудь впишите в кавычки... или замените ; на ,
не бойтесь ставить эксперименты и читать хелп.
Кстати мы не уточнили на каком бейсике Вас обучают... я исходил из предположения, что речь идет не об Visual, а о старом добром досовском QBasic.
 
Jane_LaneДата: Пятница, 06.03.2009, 14:49 | Сообщение # 7
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
я практически всю информатику и прохожу методом эксперимента, т.к. толком нам ничего не объясняют...
просто когда я вместо фразы *задайте число* ставлю "n", ничего не выходит,точнее получается,что он находит не максимально е число.а всегда берёт последнее...
да, на обучают по "старому" QBasic - это точно, а вот по "доброму" QBasic, я не уверена.)
 
vecjhДата: Пятница, 06.03.2009, 21:41 | Сообщение # 8
Рядовой
Группа: Новичок
Сообщений: 4
[ 0 ]
Статус: Offline
если Вы имеете ввиду эту строку
INPUT "Задайте число: ", n
то она работает так - на экране должна появиться надпись "задайте число" и компьтер будет ждать ввода числа и нажатия клавиши enter
когда Вы наберете какое-либо число (именно число, а не буквы!), то переменная n примет значение равное введенному Вами числу, которое позже используется тут:
delta = ABS(a(1) - n)
и тут:
k = ABS(a(i) - n)

А вообще предлагаю, если Вам требуются еще объяснения, напишите вопросы и Ваш e-mail, чтобы далее не засорять форум.

 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » Люди добрые, помогите кто может решить эти задачи!!!
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016