15.01.2012, 22:31 | #1 (permalink) |
Новичок
Регистрация: 15.01.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Pascal ABC. Массивы. Нахождение значения переменной Y
A9 – натуральный логарифм из суммы абсолютных значений элементов массива Х |
15.01.2012, 22:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Суть содержания этой темы схожа с этими темами Двумерные массивы и процедуры PASCAL Работа с простой переменной Нахождение конечной суммы ряда Помогите решить задачу по Pascal. Тема - массивы Pascal массивы Нахождение минимальных пересечений |
15.01.2012, 23:01 | #2 (permalink) |
Новичок
Регистрация: 15.01.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Я тут начал,а закончить не могу(((((((помогите
program qq; const n=4; var x: array [1..N]of integer; s,i: integer; A9,y: real; begin for i:=1 to n do readln; s:=0; for i:=1 to n do s:=s+x[i]; end; s:=0 for i:=1 to N do A9:= A9 + abs(x[i]); A9:= ln(A9); |
16.01.2012, 08:43 | #3 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
А зачем вам столько раз вводить абсолютно в никуда какие-либо значения? Возможно, вы хотели реализовать заполнение массива с клавиатуры? Тогда вам нужно исправить строку на следующее:
Код:
for i:=1 to n do readln(x[i]); Во-первых, выдаст ошибку из-за отсутствия точки с запятой, во-вторых, команда абсолютно бессмысленна в данном месте программы, так как вы предварительно уже в данной переменной подсчитали сумму элементов массива, зачем же ее опять обнулять без вывода значения на экран. Дальнейший листинг нужно просматривать с опорой на ваше задание, а качать неохота |
16.01.2012, 08:50 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Насколько я понял задание, вам нужно подсчитать сумму абсолютных значений элементов массива, а не обычную сумму элементов. Поэтому код следующий более правильный:
Код:
for i:=1 to n do s:=s+ABS(x[i]); |
16.01.2012, 09:59 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вообще-то стоило бы подвигнуть Вас на самостоятельное доведение программы до ума, да уж ладно. Вот отлаженный вариант, правда у меня нормальный Free Pascal, а не это... ну, в общем, АВС.
Код:
const n=4; var x:array [1..N] of real; i:integer; A9,y,s: real; begin s:=0; for i:=1 to n do begin write('x[',i:2,']= '); readln(x[i]); s:=s+abs(x[i]); end; A9:=ln(s); if A9>3.8 then y:=A9+Cos(A9)/1000 else y:=A9*A9*A9+2.5*Sqrt(1+A9); writeln('y = ',y:0:5); readln; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|