Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 15:00   #1
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию Необходима помощь в доработке программы...

Задание:
Создать массив у, элементы которого вычисляют по формуле у = ln(k) - 3 где k = 1,2,.... 10. Построить массив g, состоящий из отрицательных элементов массива у. Вывести результаты вычислений на экран. Если искомых величин нет, то вывести соответствующее сообщение.
Вот моя программка:
Код:
Program Massiv;
Uses crt;
var y,g:array[1..10]of real;
k,n:integer;
s:real;
Begin
Clrscr;
n:=0;{Сначало кол-во элементов в G=0}
For k:=1 to 10 do
Begin
y[k]:=Ln(k)-2;
if y[k]<0Then {Проверяем условие}
Begin
{Увеличиваем количество элементов вектора G}
n:=n+1;
G[n]:=y[k];
{Определяем первый элемент}
End;
WriteLn('y(',k,')=',y[k]:7:2);
End;
if n=0 Then
WriteLn('Вмассиве у отрицательных элементов нет');
For k:=1 to n do {Выводим массив g}
Writeln('G[',k,']=',G[k]:7:2);
S:=g[3]+g[6];
Writeln('Сумма равна=',S);
Readkey;
End.
К ней задание:

Вывести номера и значения двух самых больших элементов. Вычислить их сумму.

Вот с ним у меня и возникает проблема
пожалуйста помогите с этим дополнительным заданием
hen вне форума Ответить с цитированием
Старый 02.06.2009, 15:12   #2
hen
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 96
По умолчанию

P.S.:
Задание к коду нужно делать по получившемуся массиву G
25 и 26 строчка в коде это не сюда забыл удалить
hen вне форума Ответить с цитированием
Старый 02.06.2009, 15:17   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

В чем проблема? Нужно найти максимум и сумму? По какому массиву?

Предположим есть массив А, тогда в max будет хранится индекс наибольшего элемента а sum - сумма элементов массива
Код:
max:=1;
sum:=0;
for i:=1 to n do
 begin
   if  a[i]>a[max] then max:=i;
   sum:=sum+a[i];
 end;
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 02.06.2009, 15:37   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
max:=2;
max2:=1;
sum:=0;
for i:=1 to n do
   if  a[i]>a[max] then 
    begin
      max2:=max;
      max:=i;
    end;
writeln('Элементы с номерами ',max,' и ',max2,' максимальны, их значения: ',a[max],' и ',a[max],' соответственно ');
sum:=a[max]+a[max2];
write('их сумма ровна: ', sum);
примерно так, если верно понял задание
Alar, верни репу!

Последний раз редактировалось Naive; 02.06.2009 в 15:57. Причина: ошибко
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходима помощь mrwhat Фриланс 7 19.05.2009 09:03
Необходима помощь в дописании программы ALIZE Паскаль, Turbo Pascal, PascalABC.NET 1 09.12.2007 18:13
Необходима помощь nimf Свободное общение 0 29.08.2007 10:43