0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 16
1

Линейные массивы

09.03.2011, 21:55. Показов 1247. Ответов 16
Метки нет (Все метки)

1) Дана последовательность действительных чисел a1,a2,...,an.
Указать те ее элементы, которые принадлежат отрезку [c,d].

2)Дана последовательность действительных чисел a1<_ a2<_...<_ an.

Вставить действительное число b в нее так,чтобы последовательность осталась неубывающей.

3) Даны действительные числа a1,a2,...,an. Среди них есть положительные и отрицательные. Заменить нулями те числа, величина которых по модулю больше максимального числа (|ai|>max{a1,a2,...,an}).

4) Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2011, 21:55
Ответы с готовыми решениями:

Линейные массивы
1) У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i - того покупателя...

Линейные (списочные) структуры
Всё-таки я сделал заготовку списка учащихся. (это на тему – Линейные (списочные) структуры) uses...

Линейные (списочные) структуры
Вот такая заготовка списка учащихся. (тема – Линейные (списочные) структуры) CLS DIM A$(5)...

Линейные массивы
1. Написать программу, которая высчитывает, на какую из цифр больше всего заканчивается чисел в...

16
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
11.03.2011, 21:32 2
1.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
CLS : INPUT "Vvedite kol-vo chisel: ", n
PRINT "Vvedite otrezok [c, d]"
INPUT "  Vvedite c: ", c
INPUT "  Vvedite d: ", d
  FOR i = 1 TO n
    INPUT "Vvedite chislo", a
    IF a >= c AND a <= d THEN
     s$ = s$ + "Element nomer" + STR$(i) + " =" + STR$(a) + CHR$(13)
    END IF
  NEXT
CLS : PRINT s$
Добавлено через 42 минуты
4.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 CONST N = 10
 DIM A(N)
   DATA 1.1,  2, -10.4, 6, 3.5
   DATA  10, -4,    10, 2,   4
CLS
  FOR i = 1 TO N
     READ A(i): PRINT A(i);
  NEXT
    Max = A(1)
  FOR i = 1 TO N
     IF A(i) > Max THEN Max = A(i): k = i
  NEXT
  A(k) = 0: PRINT
  FOR i = 1 TO N
     PRINT A(i);
  NEXT
1
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 16
12.03.2011, 11:32  [ТС] 3
Спасибо!
Помогите со 2 и 3 задачкой.....Пожайлуста
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
12.03.2011, 13:52 4
3)
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CLS
INPUT "vvedite n"; n
DIM a(n)
FOR i = 1 TO n
    PRINT "vvedite a("; i; ")";
    INPUT a(i)
NEXT
FOR i = 1 TO n
    PRINT a(i);
NEXT
max = a(1)
FOR i = 1 TO n
    IF a(i) > max THEN max = a(i)
NEXT
FOR i = 1 TO n
    IF ABS(a(i)) > max THEN a(i) = 0
NEXT
PRINT: PRINT STRING$(n * 5, 196)
FOR i = 1 TO n
    PRINT a(i);
NEXT
Добавлено через 1 час 39 минут
2)
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
INPUT "vvedite n"; n
INPUT "vvedite b"; b
DIM a(n), b(n + 1)
FOR i = 1 TO n
    PRINT "vvedite a("; i; ")";
    INPUT a(i)
NEXT
FOR i = 1 TO n
    PRINT a(i);
NEXT
FOR i = 1 TO n
    IF (a(i - 1) <= b AND a(i) > b) AND (f = 0) THEN b(i) = b: f = 1
    b(i + f) = a(i)
NEXT
PRINT: PRINT STRING$(80, 196)
FOR i = 1 TO n + 1
    PRINT b(i);
NEXT
1
Платежеспособный зверь
8793 / 4220 / 1617
Регистрация: 28.10.2009
Сообщений: 11,355
13.03.2011, 00:04 5
softmob, прога №2 не работает для b большего последнего числа
1
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
13.03.2011, 10:12 6
2. Эту задачу более оптимально кодить двусвязным списком, но можно и так.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLS
INPUT "  Vvedite kol-vo chisel: ", n
DIM a(n + 1)
    ' Генерируем случайно (ввод можно заменить)
    RANDOMIZE TIMER
  FOR i = 1 TO n
    a(i) = RND * 30
    PRINT a(i),    'Выводим для просмотра
  NEXT
    ' Запрашиваем число
  INPUT "  Vvedite chislo b: ", a(n + 1)
    ' Сортировка
  FOR j = n TO 1 STEP -1: FOR i = 1 TO j
    IF a(i) > a(i + 1) THEN SWAP a(i), a(i + 1)
  NEXT: NEXT
    ' Вывод
  FOR i = 1 TO n + 1
    PRINT a(i),
  NEXT
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.03.2011, 12:49 7
можно наверное и так. только дана последовательность, а не набор цифр в начале и они должны быть по возрастанию а не убыванию.
переделал свой вариант, теперь должно норм работать.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CLS
INPUT "vvedite n"; n
INPUT "vvedite b"; b
DIM a(n + 1)
FOR i = 1 TO n
    PRINT "vvedite a("; i; ")";
    INPUT a(i)
NEXT
FOR i = 1 TO n
    PRINT a(i);
NEXT
DO WHILE a(i - 1) > b AND i - 1 > 0
    i = i - 1: f = f + 1
    SWAP a(n - f + 2), a(n - f + 1)
LOOP
a(i) = b
PRINT: PRINT STRING$(80, 196)
FOR i = 1 TO n + 1
    PRINT a(i);
NEXT
1
Платежеспособный зверь
8793 / 4220 / 1617
Регистрация: 28.10.2009
Сообщений: 11,355
13.03.2011, 15:05 8
Нерациональный путь решения: сортировать отсортированный массив. Применение вложенного цикла там, где достаточно одного прохода по массиву в МАИ, например, не прокатит - не зачтут.

У softmob решение более точное.
0
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
13.03.2011, 18:07 9
они должны быть по возрастанию а не убыванию
Исправил.

только дана последовательность, а не набор цифр
Я написал что можно заменить, так проще производить отлов багов.

Добавлено через 4 часа 17 минут
2. Специально для ненасытных...
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
WIDTH 80, 50
INPUT "  Vvedite kol-vo chisel: ", n
DIM a(n + 1)
    ' Ввод данных
  FOR i = 1 TO n
    PRINT "Chislo N" + CHR$(248); i; "= "; : INPUT "", a(i)
  NEXT
    ' Запрашиваем число
  INPUT "  Vvedite chislo b: ", b
    ' Сдвиг всего массива и вставка числа
  FOR i = n TO 1 STEP -1
    IF a(i) > b THEN a(i + 1) = a(i) ELSE EXIT FOR
  NEXT: a(i + 1) = b
    ' Вывод
  FOR i = 1 TO n + 1
    PRINT a(i)
  NEXT
1
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.03.2011, 18:37 10
по идее тоже самое что и в 7 сообщение только цикл другой.
убрал лишнее:
PureBasic
1
2
3
4
5
6
7
8
9
10
INPUT "vvedite n"; n: DIM a(n + 1)
FOR i = 1 TO n
    PRINT "vvedite"; i; "element";: INPUT a(i)
NEXT: INPUT "vvedite b"; b
DO WHILE a(i - 1) > b AND i - 1 > 0
    i = i - 1: SWAP a(i + 1), a(i)
LOOP: a(i) = b
FOR i = 1 TO n + 1
    PRINT a(i);
NEXT
1
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
13.03.2011, 20:51 11
Чё то мы мелочимся раз есть ":"
PureBasic
1
2
INPUT "  Kol-vo chisel: ", n: DIM a(n + 1): FOR i = 1 TO n: PRINT "Vvedite"; i; "chislo"; : INPUT a(i): NEXT: INPUT "  Vvedite chislo b: ", b: FOR i = n TO 1 STEP -1: IF a(i) > b THEN a(i + 1) = a(i) ELSE EXIT FOR
NEXT: a(i + 1) = b: FOR i = 1 TO n + 1: PRINT a(i); : NEXT
Добавлено через 3 минуты
Мне IF всё обломал , так бы в 1-у схлопнул)))))))

PS: Хоспаде, чем мы занимаемся)))
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.03.2011, 20:58 12
уместил в 1
PureBasic
1
INPUT "vvedite n"; n: DIM a(n + 1): FOR i = 1 TO n: PRINT "vvedite"; i; "element";: INPUT a(i): NEXT: INPUT "vvedite b"; b: DO WHILE a(i - 1) > b AND i - 1 > 0: i = i - 1: SWAP a(i + 1), a(i): LOOP: a(i) = b: FOR i = 1 TO n + 1: PRINT a(i);: NEXT
Добавлено через 1 минуту
":" хорош в меру....
0
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
13.03.2011, 21:01 13
Ахахах, красавец, о как надо!
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.03.2011, 21:01 14
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
PS: Хоспаде, чем мы занимаемся)))
а что еще делать остается?
0
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
13.03.2011, 21:15 15
а что еще делать остается?
Ох уж эти нравы и тенденции...

":" хорош в меру....
Если уж жесткачить, то конкретно.
Надо по-приколу придумать критерий, например количество ASCII символов исходника, так интереснее или работать без ":" ну или без IF одними логическими функциями колбасить))), от он будет класс.
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
13.03.2011, 21:42 16
Можно конечно, но этим код только осложнится.
Добавлено через 4 минуты
Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
ну или без IF одними логическими функциями колбасить))), от он будет класс.
класс + 'головная боль' преподам.
хотя посмотреть в реализации без if наверное будет интересно
0
4954 / 1627 / 408
Регистрация: 25.04.2010
Сообщений: 4,483
Записей в блоге: 1
14.03.2011, 13:16 17
но этим код только осложнится.
Но ведь мы и так его проще не делаем убирая CLS, комментарии с описанием работы конкретного блока, стараясь оптимизировать строки, а не количество операций.
Как по мне главное готовый результат, на нас нет огромной ответственности за жизни людей, мы здесь не пишем программы для ядерных реакторов, которые могут по малейшей неточности равнуть, ну написал, работает и ладно, чуть проще, чуть сложнее алгоритмически, тоже как бы не сильно роляет, программы ведь детские, навряд ли пользователь будет ставить жёсткие рамки при их тестировании...
Поэтому я считаю, что пытаясь допилить какую-либо программу до идеала,1) Мы этого конечно же не делаем т.к. идеал нам априори неизвестен(у каждого свой идеал) 2) Мы просто страдаем фигнёй, т.к. чаще всего ТС не просит что-то вылизывать(да и ему просто это не нужно), а мол хоть что-то чтобы было и работало. Я не хочу сказать, что нужно быть дилетантами всегда оставлять первый пришедший в голову вариант и не стремиться что-то улучшить, скорее мысль идёт в русло того, что нужно "напрягать мозги" там, где это крайне необходимо. Не воспринимай мою точку зрения в штыки, ибо просто мнение, коих на планете несколько миллиардов.

а что еще делать остается?
Например улучшать данный раздел...
Ты очень активно и грамотно помогаешь людям, посему если у тебя появятся идеи, о том как можно сделать данный тематический раздел лучше, всегда можешь рассчитывать на моё содействие!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2011, 13:16
Помогаю со студенческими работами здесь

линейные массивы
Написать программу, которая подсчитывает количество поло*жительных элементов в заданном массиве а ,...

Линейные массивы
В одномерном массиве, состоящем из N вещественных элементов, вычислить: минимальный элемент...

Линейные массивы
Дан массив действительных чисел, размерность которого N. Подсчитать сколько в нем отрицательных,...

Линейные массивы
Написать программу, которая упорядочивает по убыванию только те элементы заданной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru