Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 01.03.2015
Сообщений: 26
1

Заполнить массив случайными числами от -30 до 30 и распечатать

01.03.2015, 18:28. Показов 7234. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заполнить массив случайными числами от -30 до 30. (количество элементов 10). Распечатать массив.
1) Найдите сумму положительных элементов.
2) Подсчитать количество четных элементов.
3) Напечатать номера нечетных элементов.
4)Если элемент является четным числом, то прибавить к нему первый элемент массива, в противном случае - последний элемент массива. Первый и последний элементы массива не изменять.
5) Заменить элементы с k1-ого по k2-ой на противоположные по знаку.
6)Сформировать массив b, каждый элемент которого равен
b[i]=a[1]+a[2]........+a[i]
7)Все элементы массива, предшествующие последнему отрицательному элементу массива умножить на 10.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 18:28
Ответы с готовыми решениями:

Числовой массив заполнить случайными числами и распечатать столбиком
Помогите пожалуйста! Создаем числовой массив. Заполнить случайными числами в диапазоне от -10 до...

Заполнить случайными числами 3 массива и распечатать их
Заполнить случайными числами 3 массива и распечатать их. Найти сумму четных элементов каждого из...

Создать массив, заполнить случайными числами четные элементы массива, а нечетные заполнить квадратом их индекса
На паре задали сделать работу,но ничего не объяснили,а я до этого с массивами не работал,если кому...

Сформировать и распечатать одномерный массив из 30 элементов со случайными числами из интервала [-20;+30]
1. Сформировать и распечатать одномерный массив из 30 элементов со случайными числами из интервала...

4
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
02.03.2015, 02:32 2
Лучший ответ Сообщение было отмечено freejack как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var a, b: array [1..10] of integer;
    i, k1, k2, s, n: integer;
begin
  randomize;
  {Заполнить массив случайными числами от -30 до 30}
  for i := 1 to 10 do a[i] := 30 - random(61);
  {Распечатать массив}
  writeln('Массив a:');
  for i := 1 to 10 do write(a[i]:5);
  writeln;
  {Найдите сумму положительных элементов}
  s := 0;
  for i := 1 to 10 do if a[i] > 0 then s := s + a[i];
  writeln('Сумма положительных элементов: ', s);
  {Подсчитать количество четных элементов}
  n := 0;
  for i := 1 to 10 do if not odd(a[i]) then inc(n);
  writeln('Количество чётных элементов: ', n);
  {Напечатать номера нечетных элементов}
  write('Номера нечётных элементов:');
  for i := 1 to 10 do if odd(a[i]) then write(i:3);
  writeln;
  {Если элемент является четным числом, то прибавить к нему первый элемент массива,}
  {в противном случае - последний элемент массива.}
  {Первый и последний элементы массива не изменять.}
  writeln('К чётным числам прибавлен первый, к нечётным - последний элемент.');
  writeln('Первый и последний элемент не изменены:');
  write(a[1]:5);
  for i := 2 to 9 do
    begin
      if odd(a[i])
        then a[i] := a[i] + a[10]
        else a[i] := a[i] + a[1];
      write(a[i]:5)
    end;
  writeln(a[10]:5);
  {Заменить элементы с k1-ого по k2-ой на противоположные по знаку.}
  repeat
    write('k1 = ');
    readln(k1);
    if (k1 < 1) or (k1 > 9) then writeln('Диапазон k1: 1..9, повторите ввод.')
  until (k1 >= 1) and (k1 <= 9);
  repeat
    write('k2 = ');
    readln(k2);
    if (k2 < k1) or (k2 > 10) then writeln('Диапазон k2: ', k1, '..10, повторите ввод.')
  until (k2 >= k1) and (k2 <= 10);
  writeln('Элементы с ', k1, ' по ', k2, ' заменены на противоположные по знаку:');
  for i := 1 to 10 do
    begin
      if (i >= k1) and (i <= k2) then a[i] := -a[i];
      write(a[i]:5)
    end;
  writeln;
  {Сформировать массив b, каждый элемент которого равен b[i] = a[1] + a[2]+ ... +a[i]}
  writeln('Массив b, b[i] = a[1] + a[2]+ ... +a[i]:');
  b[1] := a[1];
  write(b[1]:5);
  for i := 2 to 10 do
    begin
      b[i] := b[i - 1] + a[i];
      write(b[i]:5)
    end;
  writeln;
  {Все элементы массива, предшествующие последнему отрицательному элементу массива умножить на 10}
  writeln('Элементы массива, предшествующие последнему отрицательному, умножены на 10:');
  for i := 10 downto 1 do
    if a[i] < 0
      then begin
        n := i;
        break
      end;
  if i = 1
    then writeln('Последнему отрицательному элементу не предшествует ни один элемент массива.')
    else for i := 1 to 10 do
      begin
        if i < n then a[i] := a[i] * 10;
        write(a[i]:5)
      end;
  readln
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
02.03.2015, 13:20 3
.NET
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{$reference System.Core.dll}
uses System, System.Linq, Arrays, System.Collections.Generic;
 
var sum : integer := 0;
function func(L : List<integer>; x : integer) : List<integer>;
begin
  sum := sum + x;
  L.Add(sum);
  result := L;
end;
 
type Pair = KeyValuePair<integer, integer>;
var 
  a, b :array of integer;
  rnd : System.Random := new Random;
  k1, k2 : integer;
  var last_index : Pair;
begin
  a := Enumerable.Range(1, 10).Select((i : integer) -> rnd.Next(-30, 30)).ToArray();
  a.Writeln(' ');
  writeln('Сумма положительных элементов: ', a.Where((i :integer) -> i > 0).Sum());
  writeln('Количество четных элементов: ', a.Where((i :integer) -> not Odd(i)).Count());
  write('Индексы нечетных элементов: ');
  a.Select((v : integer, i : integer) -> new Pair(v, i)).Where((p : Pair) -> Odd(p.Key)).Select((p : Pair) -> p.Value).ToArray().Writeln(' ');
  write('4 задание. Измененный массив: ');
  a := a.Select((v : integer, i : integer) -> ((i > 0) and (i < a.Length - 1) ? (Odd(v) ? v + a[a.Length - 1] : v + a[0]) : v)).ToArray();
  a.Writeln(' ');
 
  // проверку на корректность ввода не делал, но добавляется она очень просто
  write('k1 = '); k1 := ReadInteger() - 1;
  write('k1 = '); k2 := ReadInteger() - 1;
  write('5 задание. Измененный массив: ');
  a := a.Select((v : integer, i : integer) -> ((i >= k1) and (i <= k2) ? -v : v)).ToArray();
  a.Writeln(' ');
  
  b := a.Aggregate(new List<integer>, func).ToArray();
  write('6 задание. Массив b: '); b.Writeln(' ');
  write('7 задание. Измененный массив: ');
  var ix := a.Select((v : integer, i : integer) -> new Pair(v, i)).Where((p : Pair) -> p.Key < 0).ToArray();
  if ix.Length = 0 then writeln('Нет отрицательных элементов в массиве A')
  else 
  begin
    last_index := ix.Last();
    if last_index.Value = 0 then writeln('Перед последним отрицательным нет элементов')
    else 
    begin
      a := a.Select((v : integer, i : integer) -> (i < last_index.Value ? v * 10 : v)).ToArray();
      a.Writeln(' ');
    end;
  end;
end.
1
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
02.03.2015, 15:53 4
volvo, работает нормально, только всюду в строчке v : integer, i : integer запятую нужно заменить на ";"
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
02.03.2015, 17:15 5
erl27, это тебе нужно, потому что у тебя .NET 4 или выше. А в 3.5 должна быть запятая.
2
02.03.2015, 17:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2015, 17:15
Помогаю со студенческими работами здесь

Заполнить массив случайными числами
Добрый день, я только начинаю осваивать php. И уже появилась проблема: заполняю массив через рандом...

Заполнить массив случайными числами
1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на...

Заполнить массив случайными числами
необходимо заполнить массив случайными числами, но таким образом, чтобы сумма элементов массива...

Заполнить массив случайными числами
Помогите, пожалуйста, как заполнить массив случайными числами в диапазоне от -20 до 20.

Заполнить массив случайными числами
Заполнить массив arr длины 20 случайными целыми числами из промежутка . int A = new int; String...

Заполнить массив случайными числами
Заполнить массив случайными числами (положительными и отрицательными) из произвольного диапазона....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru