Одномерный массив |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Одномерный массив |
Merlin |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Помогите решить задачку :
Задан упорядоченный по невозрастанию одномерный массив. 1) Найти произведение отрицательных элементов массива; 2) Найти сумму положительных элементов массива; 3) Упорядоченный по невозрастанию массив преобразовать в упорядоченный по возрастанию, оставив по одному в каждой группе совпадающих элементов. -------------------- |
volvo |
Сообщение
#2
|
Гость |
Используй Поиск + FAQ ... Уже десятки раз решалось.
|
Merlin |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Насчёт пунктов 1 и 2 я почти разобрался, а вот как с 3). ? а именно :
Как сделать вот это : "оставив по одному в каждой группе совпадающих элементов." -------------------- |
volvo |
Сообщение
#4
|
Гость |
Цитата Как сделать вот это : "оставив по одному в каждой группе совпадающих элементов." Вот тебе пример: const |
Merlin |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Цитата Задан упорядоченный по невозрастанию одномерный массив Это понимать как : 1. const 2. Или надо сначала задать массив, а потом упорядочить по невозрастанию ? -------------------- |
volvo |
Сообщение
#6
|
Гость |
Ну, во-первых, у тебя в задании записано, что он уже задан как упорядоченный, значит ничего дополнительно с ним делать для этого не надо...
А во вторых, то что ты привел в предыдущем посте - ошибка, т.к. у тебя получается не массив чисел, а массив строк. Паскаль это не пропустит... Посмотри как у меня написано... |
Merlin |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Volvo, подскажи есть ли тут ошибки ? -------------------- |
GoodWind |
Сообщение
#8
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
такой вариант в ТМТ отработал на "ура", в ТП тоже все должно работать:
Program z; так вот -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Merlin |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Всё работает, спасибо , вот только
Цитата ) Упорядоченный по невозрастанию массив преобразовать в упорядоченный по возрастанию Как вы думаете пойдёт такой способ из FAQ'а ?
-------------------- |
klem4 |
Сообщение
#10
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Инверсия решит ;)
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Merlin |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: 0 |
Код Program z; const a: array [1..10] of integer = (5, 4, 3, 2, 2, 1, -1, -2, -3, -4); Var i , j , P, S, n :integer; temp: array [1..10] of integer; Begin n:=10; P:=1; for i:=1 to n do if a[i] < 0 then begin { произведение отриц. элем. } P:= P* a[i]; end; S:=0; for i:=1 to n do if a[i] > 0 then begin { Сумма положит. элементов } S:= S + a[i]; end; i := 2; while i <= n do if a[i] = a[i - 1] then begin for j := i to n - 1 do a[j] := a[j + 1]; dec(n); end else inc(i); for i:= 1 to n div 2 do begin temp: = a[i]; { Выдаёт ошибку type mismatch } a[i]:= x[n-i +1]; a[n-i+1]:=temp; end; for i := 1 to n do write(a[i]:4); writeln; writeln( ' Сумма положительных элементов S=', S:3); writeln( ' Произведение отрицательных элементов P=' ,P:3); end. Что с этой инверсией не так, что я сделал неправильно ? -------------------- |
klem4 |
Сообщение
#12
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
посмотри как у тебя описана temp ... она должна быть не тип массива, а тип элемента массива
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Текстовая версия | 17.05.2024 18:02 |