Помогите, очень надо.... решить задачку на паскале???
"В одномерном массиве, состоящем из n вещественных элементов, вычислить: сумму положительных элементов, и произведение элементов массива, расположенных между max по модулю и min по модулю элементами" плиззззз.... |
проверьте, плизззз, так не так...
uses crt; var a:array[1..100] of integer; n, max, min, i, Pmx, Pmn,P1,P2:Integer; sum,proz:Longint; begin Clrscr; Write('Введите размерность массива: '); Readln(n); Randomize; For i:=1 to n do begin a[i]:=random(20)-10; Write(a[i]:4); end; writeln; max:=abs(a[1]); min:=abs(a[1]); For i:=1 to n do //Находим минимум и максимум, и их позиции в массиве begin if max<abs(a[i]) then begin max:=abs(a[i]); Pmx:=i; end; if min>abs(a[i]) then begin min:=abs(a[i]); Pmn:=i; end; End; sum:=0; Proz:=1; if pmx>pmn then //чтобы цикл for правильно работал(от меньшего к большему) begin p1:=pmn; p2:=pmx; end Else Begin p2:=pmn; p1:=pmx; end; For i:=P1 to P2 do //Находим сумму положительных и произведение begin if a[i]>0 then sum:=sum+a[i]; Proz:=Proz*a[i]; End; Writeln('Минимальный элемент по модулю: ',a[pmn],' позиция: ',Pmn); Writeln('Максимальный элемент по модулю: ',a[pmx],' позиция: ',Pmx); Writeln('Сумма: ',sum); Writeln('Произведение: ',Proz); readkey; end. _________________ не мы такие - жизнь такая |
Андрю}{А
кажется ты неверно понял условие задачи что Андрю}{А писал(а): расположенных между max по модулю и min по модулю элементаминадо искать сумму и произвдение числе которые abs(min)<n<abs(max) а так на первый взгляд код верный |
Андрю}{А писал(а): "В одномерном массиве, состоящем из n вещественных элементов, вычислить:Андрю}{А писал(а): a:array[1..100] of integer;чет мне кажется или integer малость не вещественный тип??? Добавлено спустя 3 минуты 27 секунд: neil эт ты малость условия не понял по моему... на запятые посмотри повнимательнее сумму всех положительных а произведение только между abs(min) и abs(max) Добавлено спустя 12 минут 20 секунд: попробуем следующее:
_________________ Мы рождены чтоб сказку сделать кодом... |
[DD]
ой какие глупые ошибки в коде. в паре случаев из 10000 может и выдаст верный ответ Последний раз редактировалось: neil (2008.04.23 16:26.08), всего редактировалось 1 раз |
вы, прежде чем писать код, алгоритм на русском языке напишите. а потом оно само на выбраный язык всё ляжет _________________ Ин дер гросен фамилие нихт клювен клац-клац |
neil
согласен... одно условие я не написал... при просчете суммы необходимо написать
больше ошибок я не нашел(ну может гденить ещё написал "=" вместо " := " ) andy ice алгоритм прост... забиваем начальные значения для переменных tMax(максимальный по модулю элемент префикс t показывает что он нам нужен временно) =0(надеюсь понятно почему), tMin(аналогично tMax)=max(так как больше чем константа max быть не может), summ=0(тоже на мой взгляд понятно), mult=1(аналогично); затем забиваем массив случайными числами одновременно с этим ищем индексы мин и макс по модулю элементов, а так же сумму положительных(эт как раз где я условие забыл написать); затем идет проверка что раньше макс или мин элемент и в зависимости от этого запускаем цикл прощета произведения от +1 до -1 от соответствующих индексов(так как по условию сказано что нам нужны элементы только м/у ними) и все... выводим найденные значения P.S. neil ошибки возможно и действительно глупые... но я этот код просто в браузер написал без тестов а потом с добавленным условием дома проверил... конечно 10000 раз я этого не делал но вот раз 20 точно... результат всегда верный... _________________ Мы рождены чтоб сказку сделать кодом... |
[DD]
алгортим пишется построчно, а не кашей как ты написал. пока мыслишь кашей - так и будешь кашей писать (и забывать IF) Добавлено спустя 1 минуту 2 секунды: а лучше блок-схемой и заполнение массива - выносится как отдельная задача (лучше вообще через функцию), ибо в задачках данные обычно через файл дают. _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice
как алгоритм писать я в курсе... тока в падлу про if я полностью согласен ошибка полного ламера... забивать код отдельными проходами по массиву тож чет не охота... к томуж ни кто не мешает считывать из файла в этом же цикле(если зарание известно что элементов именно 10) если не нравится то пожалуйста
_________________ Мы рождены чтоб сказку сделать кодом... |
вот он вред олимпиадных задач - делать всё и сразу, чтоп быстрее работало. потом приходится переучивать _________________ Ин дер гросен фамилие нихт клювен клац-клац |
согласен что навыки олимпиадников не сильно-то помогут для работы в команде(это сугубо мое мнение)...
но если им использоват хотябы часть правил хорошего тона в программировании то думаю получится очень даже не плохо _________________ Мы рождены чтоб сказку сделать кодом... |
[DD] писал(а): больше ошибок я не нашелищи.. _________________ |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |