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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2015, 12:56   #1
VadimPascal
Пользователь
 
Регистрация: 19.09.2015
Сообщений: 10
По умолчанию Помогите, с массивом.

Задано массив целых чисел
K [20]. Превратить его по правилу: четные элементы разделить нацело на целую часть среднего арифметического отрицательных элементов.
VadimPascal вне форума Ответить с цитированием
Старый 23.11.2015, 15:40   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Кроме как через стринг не придумал как получить целую асть среднего.
Код:
uses crt;
var
  a : array [1..20] of integer;
  i,bzero:integer;
  avg:real;
  s:string;
begin
clrscr;
randomize;
bzero:=0;
for i:= 1 to 20 do
    begin
         a[i] :=a[i] + random(20)-10;
         write(a[i]:4);
         if a[i]<0 then
            begin
                 avg:=avg+a[i];
                 inc(bzero);
            end;
    end;
if bzero>0 then avg:=avg/bzero;
writeln;
writeln('average below zero ',avg:3:3);
str(avg:3:3,s);
s:=Copy(s,1,pos('.',s)-1);
val(s,bzero,i);
writeln;
for i:=1 to 20 do
begin
     if not odd (a[i]) then a[i] := a[i] mod bzero;
     write(a[i]:4);
end;
readln;
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.11.2015, 16:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
не придумал как получить целую часть среднего.
в общем случае можно воспользоваться функцией trunc()

но что-то мне подсказывает, что целую часть даст банальное
Код:
avg div количество
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2015, 16:42   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Serge_Bliznykov, да, trunc() выход
Код:
uses crt;
var
  a,b : array [1..20] of integer;
  i,bzero,bzero1:integer;
  avg,avg1:real;
  iavg:integer;
  s:string;
begin
clrscr;
randomize;
bzero:=0;
for i:= 1 to 20 do
    begin
         a[i] :=a[i] + random(20)-10;
         write(a[i]:4);
         if a[i]<0 then
            begin
                 avg:=avg+a[i];
                 inc(bzero);
            end;
    end;
b:=a;bzero1:=bzero;
writeln;
writeln('----TRUNC--------');
iavg:=trunc(avg/bzero1);
for i:=1 to 20 do
begin
     if not odd (b[i]) then b[i] := b[i] mod iavg;
     write(b[i]:4);
end;

writeln('----STRING--');
if bzero>0 then avg:=avg/bzero;
str(avg:3:3,s);
s:=Copy(s,1,pos('.',s)-1);
val(s,bzero,i);
for i:=1 to 20 do
begin
     if not odd (a[i]) then a[i] := a[i] mod bzero;
     write(a[i]:4);
end;
readln;
end.
с
Цитата:
avg div количество
чето косячу
Изображения
Тип файла: jpg ATT.jpg (98.2 Кб, 43 просмотров)
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.11.2015, 16:58   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
чето косячу
сумму сделайте ЦЕЛОГО типа и всё сработает!

и ещё, в цикле Вы потом элементам делаете mod (остаток от деления),
а надо div (целочисленное деление)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2015, 17:11   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вот смотрю на
Цитата:
нацело на целую
понимаю что надо оперировать парой int-div а всеодно пишу операнды работы "до комы-после комы". сумма Целая - работает.
Ну ведь ТС имеет примеры данных вход-выход и проверит? Или он спросил и сам не знает что хочет? а вдруг мы рандомом выдадим 20 чисел и скажем - вот решение?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с массивом Прелесть1 Паскаль, Turbo Pascal, PascalABC.NET 2 28.10.2015 18:31
Помогите с массивом! Снежанка Помощь студентам 4 29.11.2009 18:29
Помогите с массивом Кронос Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 21.08.2007 22:54