Реализовать процедуру или функцию, реализующую следующие операции над одномерными...

0 голосов
61 просмотров

Реализовать процедуру или функцию, реализующую следующие операции над одномерными массивами. Написать программу, использующую данные алгоритмы.
!Работу пррограммы организовать в виде функций! -Язык Программирования(Pascal)
1. Заменить положительные элементы массива единицами, отрицательные – нулями, посчитать количество положительных и отрицательных элементов.
2.Вывести на экран номера положительных элементов массива и посчитать количество таких элементов.
3.Найти сумму и среднее арифметическое значение модулей нечетных элементов массива.
Сделайте хотя бы одно из трёх заданий! Буду благодарен!


Информатика (575 баллов) | 61 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1214 от 09.04.2016
procedure ex1(a:array of integer; var nn,np:integer);
begin
  nn:=0; np:=0;
  for var i:=0 to a.Length-1 do
    if a[i]<0 then begin a[i]:=0; Inc(nn) end<br>    else
      if a[i]>0 then begin a[i]:=1; Inc(np) end
end;

begin
  var a:=ArrRandom(ReadInteger('n='),-20,20);
  a.Println;
  var kp,kn:integer;
  ex1(a,kn,kp);
  Writeln('Отрицательных ',kn,', положительных ',kp);
  a.Println
end.

Тестовое решение:
n= 15
-5 4 -10 15 12 -17 12 4 0 8 -2 -9 8 6 4
Отрицательных 5, положительных 9
0 1 0 1 1 0 1 1 0 1 0 0 1 1 1

// PascalABC.NET 3.1, сборка 1214 от 09.04.2016
procedure ex2(a:array of integer);
begin
  var k:=0;
  for var i:=0 to a.Length-1 do
    if a[i]>0 then begin Print(i+1); Inc(k) end;
  Writeln(NewLine,'Количество положительных элементов равно ',k)
end;

begin
  var a:=ArrRandom(ReadInteger('n='),-20,20);
  a.Println;
  ex2(a);
end.

Тестовое решение:
n= 13
15 -3 1 11 -20 17 -17 -12 -12 20 11 2 20
1 3 4 6 10 11 12 13
Количество положительных элементов равно 8

// PascalABC.NET 3.1, сборка 1214 от 09.04.2016
procedure ex3(a:array of integer);
begin
  var s:=0;
  var k:=0;
  var i:=0;
  while i    s+=abs(a[i]); Inc(k); i+=2
    end;
  Writeln('Сумма модулей нечетных элементов равна ',s);
  Writeln('Их среднее арифметическое равно ',s/k)
end;

begin
  var a:=ArrRandom(ReadInteger('n='),-20,20);
  a.Println;
  ex3(a);
end.

Тестовое решение:
n= 10
2 -1 -14 -12 11 13 1 17 20 6
Сумма модулей нечетных элементов равна 48
Их среднее арифметическое равно 9.6

(142k баллов)
0

Компилирую через обычную консоль в OC: OpenSuse, программу пишу через Lazarus. Мне кажется, нужен стандартный вид программы. Напишите пожалуйста.

0

1. Вы не указали в вопросе, что используете FPC. 2. Даже если бы я захотел что-то менять, ответ невозможно исправить через небольшой промежуток времени после того, как он был дан.

0

3. Не существует "стандартного вида" программы, потому что не существует ни одного компилятора Паскаля, который бы точно придерживался когда-то опубликованного "стандарта" языка.

0

Если я создам новый вопрос, вы сможете ответить? Ссылку кину сюда и нужно будет всего две программы, ну или хотя бы одну.

0

Ссылки, не относящиеся к текущему заданию, давать запрещено.

0

И еще - я не вижу смысла тратить время на писанину в FPC лишь потому, что кто-то где-то еще его использует. Это устаревшие технологии программирования.

0

Я согласен, но у нас к сожалению используют устаревшую версию. Будьте добры, сделайте одну задачу под первыми номером.

0

Вообщем вот вопрос, я надеюсь на вашу помощь и заранее спасибо. http://znanija.com/task/18165322

0

Уже ответил

0

Спасибо!