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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 18:48   #1
popadina.a
Новичок
Джуниор
 
Регистрация: 02.12.2014
Сообщений: 1
По умолчанию помогите решить задачу ПАСКАЛЬ!!!

Задание 1
В целочисленном векторе vectorn определить среднее арифметическое положительных и отдельно среднее арифметическое отрицательных элементов вектора, расположенных между минимальным и максимальным его элементами. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой).

Входные данные:
n=10
v_min=-5
v_max=10
Исходный вектор:
7 0 1 -5 -2 5 2 0 -1 9

Выходные данные:
max=9 n_max=10
min=-5 n_min=4
sr_arifm_otr=-1.50
sr_arifm_pol= 3.50

Задание 2
В целочисленном прямоугольном массиве matrixnm найти наименьший элемент, встречающийся более одного раза. Предусмотреть случай, когда такого элемента нет.

Входные данные для n=5, m=6:

v_min=-20
v_max=10
Исходный массив:
7 -2 -18 3 -5 8
5 2 0 10 1 -2
-15 9 -12 8 -18 9
0 -10 9 -13 4 -16
-1 -17 10 4 -18 -9

Выходные данные:
min=-18 count_min=3
popadina.a вне форума Ответить с цитированием
Старый 05.12.2014, 10:32   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Задание 1
Код:
const n=10;
      v_min=-5;
      v_max=10;
var i,min,max,n_min,n_max,k,s:integer;
    sr_arifm_otr,sr_arifm_pol:real;
    v:array[1..n] of integer;
begin
   {v[1]:=7;
   v[2]:=0;
   v[3]:=1;
   v[4]:=-5;
   v[5]:=-2;
   v[6]:=5;
   v[7]:=2;
   v[8]:=0;
   v[9]:=-1;
   v[10]:=9;}
   Randomize;
   For i:=1 to n do
   begin
      v[i]:=v_min+Random(v_max-v_min+1);
      Write(v[i],'  ');
   end;
   Writeln('');
   n_min:=1;
   n_max:=1;
   For i:=2 to n do
   begin
      If v[n_min]>v[i] then
         n_min:=i;
      If v[n_max]<v[i] then
         n_max:=i;
   end;
   Writeln('v[',n_min,'] = ',v[n_min]);
   Writeln('v[',n_max,'] = ',v[n_max]);
   If n_min>n_max then
   begin
      s:=n_min;
      n_min:=n_max;
      n_max:=s;
   end;
   s:=0;
   k:=0;
   For i:=n_min+1 to n_max-1 do
      If v[i]<0 then
      begin
         s:=s+v[i];
         k:=k+1;
      end;
   If k=0 then
      Writeln('No') else
   begin
      sr_arifm_otr:=s/k;
      Writeln('sr_arifm_otr = ',sr_arifm_otr);
   end;
   s:=0;
   k:=0;
   For i:=n_min+1 to n_max-1 do
      If v[i]>0 then
      begin
         s:=s+v[i];
         k:=k+1;
      end;
   If k=0 then
      Writeln('No') else
   begin
      sr_arifm_pol:=s/k;
      Writeln('sr_arifm_pol = ',sr_arifm_pol);
   end;
   Readln;
end.
Задание 2
Код:
const n=5;
      m=6;
      v_min=-20;
      v_max=10;
var i,j,min,count_min:integer;
    v:array[1..n,1..m] of integer;
begin
   Randomize;
   For i:=1 to n do
   begin
      For j:=1 to m do
      begin
         v[i,j]:=v_min+Random(v_max-v_min+1);
         Write(v[i,j],'  ');
      end;
      Writeln('');
   end;
   min:=v_min;
   Repeat
      count_min:=0;
      For i:=1 to n do
         For j:=1 to m do
            If v[i,j]=min then
               count_min:=count_min+1;
      If count_min>1 then
      begin
         Writeln('min = ',min);
         Writeln('count_min = ',count_min);
         Break;
      end;
      min:=min+1;
   Until min=v_max;
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 05.12.2014 в 10:41.
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите Решить задачу на Паскаль RAVEN23 Помощь студентам 2 04.06.2009 16:46
Помогите решить задачу(Паскаль) KocT9 Помощь студентам 1 02.06.2008 22:22