![]() |
|
Модераторы: Poseidon |
![]()
|
|
| syoksana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Привет! Решала Задачи,но не получаются, где ошибка
1)пусть даны целые числа a1...an каждое из которых отлично от нуля. если в последовательности отрицательные и положительные элементы чередуются, то ответом должна служить сама исходная последовательность, иначе получить все отрицательные элементы последовательности сохранив порядок их следования for i:=1 to n do if (a[i]>a[i+1])or(a[i]<a[i+1]) then write (a[i]) else if a[i]<0 then write(a[i]) я не знаю как записать чередование положительных и отрицательных 2)пусть дана последовательность из 100 различных целых чисел найти среднее арифметическое чисел этой последовательности расположенных между первым максимальным и последним минимальным числами (в сумму включить и оба этих числа) max:=a[1];man:=a[1]; for i:=1 to n do if a[i]>max then max:=a[i]; if a[i]<min then min:=a[i]; for i:=1 to n do .....что дальше как найти 1 максимальный и посследний минимальный А это вот вообще не понимаю и не знаю как решить 3)пусть даны целые числа a1..a20 преобразовать эту последовательность по правилу большее из ai и a10+i примите в качестве нового значения ai меньшее в качестве нового значения a10+i Пожалуйста ответе мне Это сообщение отредактировал(а) syoksana - 19.2.2008, 16:06 |
|||
|
||||
| kuzyara |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
Как говорится, ошибка тут одна. Про 1 задачу: в условии не случайно говорится, что элементы отличны от нуля. Если a[i]*a[i+1]<0 то числа разные по знаку, вот как реализуем:
А здесь просто нужно ввести ещё переменные: индекс максимального и минимального элемента. Начала ты правильно, только begin...end поставить забыла.
Ну здесь вообще пару строчек, просто ПОДУМАТЬ надо.
Думай над задачами, они хитренькие. Мне такие нравяться)) syoksana, пожалуйста больше внимания уделяй правилам пунктуации, трудно читать. А то, что попыталась решить, это есть хорошо зы: volvo, зачот? Это сообщение отредактировал(а) kuzyara - 20.2.2008, 06:54 --------------------
подпись |
||||||
|
|||||||
| syoksana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Спасибо за ответ, только во второй задачи я не пойму: нужен 1 максимальный, как мне его найти?
и последний минимальный. например дана последовательность 3 5 -4 4 3 6 9. я наверное буду не права, но как я понимаю 1 максимальный это 3, а последний минимальный -4? Это сообщение отредактировал(а) syoksana - 19.2.2008, 19:41 |
|||
|
||||
| Bug_Hunter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 19.2.2008 Где: Бл. Подмосковье Репутация: нет Всего: нет |
||||
|
||||
| syoksana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
в 3 задаче: пусть даны целые числа a1..a20 преобразовать эту последовательность по правилу большее из ai и a10+i примите в качестве нового значения ai, меньшее в качестве нового значения a10+i
Что-то я снова ничего не поняла разъясните? For i:=1 to n-1 (почему, получается, что до 19?) Вообще говоря условие какое-то странное, как я понимаю, рассматривается вся последовательность и большее из этой последовательности записывается до а 10+1, меньшее после а10+1. возьмём пример из 6 элементов:3 2 4 -3 4 3, результатом должна служить последовательность 4 4 3 3 2 -3. верно? Если Вас не затруднит, помогите найти ошибку Пусть даны вещественные числа а1..аn, b1.. bn. Вычислите произведение (a1+bn)*(a2+bn-1)…(an+b1). Задаче лёгкая, но у мне надо сдать задачи по массивам какие решила, какие нет, посмотрите... Const n=5; Var a:array[1..n]of integer; B:array[1..n]of integer; I,j,p:integer; Begin Writeln (‘вв массив а’); For i:=1 to n do readln(a[i]); Writeln (‘вв массив b’); For j:=1 to n do readln (b[j]); P:=1; For i:=1 to n do For j:=n downto 1 do P:=p*(a[i]+b[n]); Writeln(p); End. |
|||
|
||||
| kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
--------------------
подпись |
|||
|
||||
| kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
Тебя наверно смутило, что именно первый максимальный и именно последний минимальный. Я так понимаю, что в ряду может быть несколько мин. и макс. элементов, а нужно выбрать только первый и последний соответственно. В твоем примере первый максимальный это 9, а последний минимальный это -4. А вот если бы ряд был вот такой: 9 5 4 9 4 3 6 5 8 3, то первый минимальный элемент это шестое число в последовательности(3), а последний максимальный это четвертая цифра(9) --------------------
подпись |
|||
|
||||
| kuzyara |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
Это сообщение отредактировал(а) kuzyara - 20.2.2008, 07:30 --------------------
подпись |
||||||||
|
|||||||||
| syoksana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Да-да, прошу прощения, это я что-то напутала, сегодня она работает,а вчера почему-то нет, спасибо за РАЗЪЯСНЕНИЯ!!!
|
|||
|
||||
| syoksana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
]
Ну посмотрите задачку, если Вас не затруднит, помогите найти ошибку Пусть даны вещественные числа а1..аn, b1.. bn. Вычислите произведение (a1+bn)*(a2+bn-1)…(an+b1). Задаче лёгкая, но у мне надо сдать задачи по массивам какие решила, какие нет, посмотрите... Сдавать нада Const n=5; Var a:array[1..n]of integer; B:array[1..n]of integer; I,j,p:integer; Begin Writeln (‘вв массив а’); For i:=1 to n do readln(a[i]); Writeln (‘вв массив b’); For j:=1 to n do readln (b[j]); P:=1; For i:=1 to n do For j:=n downto 1 do P:=p*(a[i]+b[n]); Writeln(p); End. Это сообщение отредактировал(а) syoksana - 20.2.2008, 14:45 |
|||
|
||||
| kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
перед_во_первых: для кода используй теги! Куда только смотрят модераторы...
Во-первых, переменную j можно вообще убрать и вместо неё использовать i. Во-вторых в условии сказано, что это вещественные числа, а у тебя? Во-третьих, что за абракадабра в последних строчках? В этом твоя беда. Сначала нужно продумать задачу, накрайняк записать мат. модель, если в уме не получается, а уже потом переводить эту математическую модель в язык програмирования! Математически это выглядит так: ![]() где "П" - значек произведения, так же как и "Е" - значек суммы. А код вот так:
Это сообщение отредактировал(а) kuzyara - 20.2.2008, 16:31 --------------------
подпись |
|||
|
||||
| syoksana |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
да я всегда пытаюсь понять с точки зрения математики, но вот про ...b[n-1+i], я не поняла, всё время отнимается единица и прибавляется, что? Я только учусь, и стараюсь, и пытаюсь научиться понимать, и решать самостоятельно не прибегая к помощи, но почему-то умишка не хватает, вот посмотрите на задачу: Пусть даны натуральные числа n,a1…an. Определите количество элементов ak последовательности a1…an удовлетворяющих условию 2K < ak < k! Как понимаю, аk – это количество элементов К – текущий элемент, да? Ну к! – это понятно, и 2K - тоже ясно, Тогда, не понимаю, например, дана последовательность: 2 1 4 3 5 2!=1*2=2 < ak < 22 =4 1!=1 < ak < 21=2 4!=1*2*3*4=24 < ak < 24=16 3!=1*2*3=6 < ak < 23=8 5!=1*2*3*4*5=120 < ak < 25 =32 Что должно стоять на месте ак??? |
||||
|
|||||
| kuzyara |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
Если ты не поняла это, то и не поняла мат. модель. П(a[i]+b[N-1+i]) означает, что для каждого i нужно взять i член массива а и i член с конца массива b и сложить, что означает соответственно a[i] и b[N+1-i]. Если не можешь понять код с первого взгляда, то нужно выполнить его у себя в голове, стать как бы компилятором и откомпилировать в мозгу. Тогда ты поймешь, что обозначает ...b[n-1+i] при i от 1 до N. А обозначает это пары (a[1],b[N]), (a[2],b[n-1]),(a[3],b[n-3]) ... (a[N],b[1]). Ещё раз: если i - это переменная, которая перебирает все числа от 1 до N, то N-1+i - перебирает все числа от N до 1.
Если вникнуть, можно понять, что от нас требуют: Пускай количество элементов это kol, тогда матмодель такая: ![]()
И всё-таки возникает ощущение, что прочитав в первый раз задачу и не поймя её - сразу пишешь на форум. Не все программы сразу пишутся. Подумай разок - другой, третий. Если сразу ничего не пришло в голову - это не значит, что не придет и в другой. Иначе как объяснить твой пример неравенств, когда по условию знак неравенства в-точности, да в другую сторону Это сообщение отредактировал(а) kuzyara - 21.2.2008, 06:27 Присоединённый файл ( Кол-во скачиваний: 6 )
formul.gif 1,49 Kb--------------------
подпись |
||||||
|
|||||||
| syoksana |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Конечно, у меня тут дома цело общежитие!!!
я поняла, но вот только что такое а[k]? где ошибка? текуший?
Это сообщение отредактировал(а) syoksana - 21.2.2008, 14:20 |
||||||
|
|||||||
| kuzyara |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 13.11.2006 Репутация: нет Всего: 1 |
a[k] текущий элемент. Вместо k могло бы стоять и i, просто составителям наверно надоело, все "ай", да "ай", вот "ка" и поставили. И ещё, оформляй код правильно, с отступами, самой же потом будет легче разобраться в чем ошибка. И все-таки для того, чтобы я понял, ЧТО ты не поняла, комментируй каждую сторочку кода. --------------------
подпись |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |