0 / 0 / 0
Регистрация: 22.12.2017
Сообщений: 4
1

Дан массив целых чисел (n=12), заполненный случайным образом числами

10.01.2018, 13:48. Показов 5935. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив целых чисел (n=12), заполненный случайным образом числами из промежутка [-10,60]. − удалить из него все элементы, в которых последняя цифра четная, а само число делится на нее. − вставить число k перед и после всех элементов, заканчивающихся на данную цифру (k вводить с клавиатуры). −переставить элементы следующим образом: a[1], a[12], a[2], a[11], …, a[5], a[8], a[6], a[7]
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2018, 13:48
Ответы с готовыми решениями:

Дан массив целых чисел из 25 элементов, заполненный случайным образом числами из промежутка [-35,75]:
(пожалуйста с процедурами и функциями) Дан массив целых чисел из 25 элементов, заполненный...

Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-80,150]
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка . ...

Дан массив чисел (n=5), заполненный случайным образом числами из промежутка [-20,50]
Дан массив чисел (n=5), заполненный случайным образом числами из промежутка 1) удалить из него...

Дан массив из 10 целых чисел заполненный случайными числами из интервала [-15; 15]
Дан массив из 10 целых чисел заполненный случайными числами из интервала . Определить является ли...

3
Модератор
9656 / 4976 / 3265
Регистрация: 17.08.2012
Сообщений: 15,476
10.01.2018, 20:04 2
А если после вставки числа k рамер массива получится не равным 12? Как переставлять?
1
4 / 4 / 12
Регистрация: 09.01.2018
Сообщений: 22
11.01.2018, 16:23 3
Лучший ответ Сообщение было отмечено Ilvina как решение

Решение

Видимо, это три разных задания. Программа ниже для такого случая. Ilvina, уточните этот момент, пожалуйста.

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
program prog123;
 
const
  n = 12;
  arrAlowLim = -10;
  arrAtopLim = 60;
 
type
  arrOfInt = array [1..n] of integer;
 
function printRandomArr(topLim, lowLim: integer): arrOfInt;
var
  arrA: arrOfInt;
  cter: integer;
begin
  Write('Исходный массив: ');
  for cter := 1 to n do
  begin
    arrA[cter] := random(lowLim, topLim);
    Write(arrA[cter], ' ');
  end;
  printRandomArr := arrA;
end;
 
function LastOfNum(param: integer): shortint;
begin
  LastOfNum := abs(param) mod 10;
end;
 
function getUserK: shortint;
var
  k2, code: integer;
  k1: string;
begin
  repeat
    k2 := -1;
    Write(#10'2. Введите цифру k: ');  
    ReadLn(k1);
    val(k1, k2, code);
    if code <> 0 then begin
      WriteLn('Вы пытаетесь ввести не целое число.');
      continue;
    end;
    if abs(k2) > 9 then
      WriteLn('k больше допустимого.');
  until k2 in [0..9];
  getUserK := k2;
end;
 
function condition1(p1, p2: integer): boolean;
begin
  if p2 = 0 then 
    condition1 := false
    else
  if (p2 mod 2 = 0) and (p1 mod p2 = 0) then 
    condition1 := true
  else
    condition1 := false;      
end;
 
function condition2(p1, p2: shortint): boolean;
begin
  condition2 := false;
  if LastOfNum(p1) = p2 then
    condition2 := true;
end;
 
procedure DeleteWithCond1(arrA: arrOfInt);
var
  i, m: integer;
begin
  Write(#10'1. Массив после удаления: ');
  m := 0;
  for i := 1 to n do
    if condition1(arrA[i], LastOfNum(arrA[i])) then 
      inc(m)
    else
      arrA[i - m] := arrA[i];
  for i := 1 to n - m do
    Write(arrA[i], ' '); 
end;
 
procedure InsertWithCond2(k: shortint; arrA: arrOfInt);
var
  arrB: array of integer;
  i, j, p: integer;
begin
  Write('2.1. Массив после вставки (изменился, если есть элементы с последней цифрой', ' ', k, ')', ':'#10);
  p := 0;
  for i := 1 to n do 
    if condition2(arrA[i], k) then
      inc(p, 2);
  setlength(arrB, n + p);
  j := 0;
  for i := 1 to n do
    if condition2(arrA[i], k) then begin
      arrB[j] := k;
      arrB[j + 1] := arrA[i];
      arrB[j + 2] := k;
      inc(j, 3);
    end
    else begin
      arrB[j] := arrA[i];
      inc(j);
    end;
  for i := 0 to n + p - 1 do
    Write(arrB[i], ' ');
  arrB:=nil;
end;
 
procedure Reverse(arrA: arrOfInt);
var
  i, j: integer;
begin
  Write(#10'3. Массив после перестановки: ');
  i:=1;
  j:=n;
  while i<j do begin
      write(arrA[i],' ',arrA[j],' ');
      inc(i);
      dec(j);
  end;
end;
 
var
  arrA: arrOfInt;
  k: integer;
 
begin
  arrA := printRandomArr(arrAlowLim, arrAtopLim);
  DeleteWithCond1(arrA);
  k := getUserK();
  InsertWithCond2(k, arrA);
  Reverse(arrA);      
end.
Материалы: Удаление элемента в одномерном массиве Удаление элементов в одномерном несортированном массиве по условию
2
Модератор
9656 / 4976 / 3265
Регистрация: 17.08.2012
Сообщений: 15,476
02.03.2022, 22:45 4
LuckyGuys, на будущее: один вопрос - одна тема. Предполагается, что любая тема содержит один вопрос. Исключение для платных разделов. Если тема содержит более одного вопроса, пожалуйста, не отвечайте на вопросы, а просто сообщайте в теме о том, что тема нарушает правила форума. Но, часто бывает так, что вопрос состоит из нескольких частей, и нужна одна программа. В этом случае нужно задать уточняющий вопрос, или усомниться в том, что вопрос темы - один. Ссылка на правила есть на любой странице форума. Хотя, вообще-то, Вы поступили правильно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2022, 22:45
Помогаю со студенческими работами здесь

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

Дан двумерный массив А, заполненный случайным образом. Вставить после столбцов, содержащих максимальный элемен
Дан двумерный массив А, заполненный случайным образом. Вставить после столбцов, содержащих...

Заполнить массив из N целых чисел случайным образом из диапазона от -10 до 10
заполнить массив из n целых чисел случайным образом из диапазона от -10 до 10

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru