Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
sir_90115
8 / 8 / 2
Регистрация: 08.11.2009
Сообщений: 78
#1

Из положительных элементов обеих векторов сформировать матрицу

29.03.2010, 16:55. Просмотров 854. Ответов 6
Метки нет (Все метки)

Задание:
Нужно с помощью подпрограмм выполнить задание...
Дан вектор А[1:30] и вектор B[1:15]. Если разность между максимальными элементами векторов больше 10, то из положительных элементов обеих векторов сформировать матрицу C[1:5,1:4]. Иначе в векторе А за максимальным элементом вставить все элементы вектора B.

Заранее благодарен, тем кто поможет...

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

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2010, 16:55
Ответы с готовыми решениями:

Из положительных элементов обеих векторов сформировать матрицу
Дан вектор А и вектор В. Если разность между максимальными элементами векторов...

Из положительных элементов матрицы N сформировать матрицу M
Дана задача. N(10.10) Из положительных элементов матрицы N сформировать...

Из положительных элементов матрицы A сформировать матрицу М
Из положительных элементов матрицы A сформировать матрицу М (10, KMAX),...

Сформировать третий вектор из нечетных элементов первого вектора и положительных элементов обоих векторов
Дан целочисленный вектора A(n) и целочисленный вектор B(m). Сформировать третий...

Из положительных элементов матрицы N сформировать матрицу M
помогите решить задачу.Буду очень благодарна N(10, 10) Из положительных...

6
unick12345
1345 / 1036 / 152
Регистрация: 27.03.2009
Сообщений: 3,869
29.03.2010, 17:06 #2
а если кол-во положительных меньше чем 20 (5*4) чем заполнять?
1
sir_90115
8 / 8 / 2
Регистрация: 08.11.2009
Сообщений: 78
29.03.2010, 17:59  [ТС] #3
Незнаю, мне такое задание дали, может нулями заполнить остальное
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,523
29.03.2010, 19:47 #4
Все-таки косяк с условием. А если все 45 элементов положительные? Какие выбирать?
1
sir_90115
8 / 8 / 2
Регистрация: 08.11.2009
Сообщений: 78
05.04.2010, 04:26  [ТС] #5
Исправленное задание:
Нужно с помощью подпрограмм выполнить задание...
Дан вектор А[1:30] и вектор B[1:15]. Если разность между максимальными элементами векторов больше 10, то из положительных элементов обеих векторов сформировать матрицу C[1:5,1:9]. Иначе в векторе А за максимальным элементом вставить все элементы вектора B. Если положительных элементов меньше 45, то остальное заполнить нулями.
0
sir_90115
8 / 8 / 2
Регистрация: 08.11.2009
Сообщений: 78
05.04.2010, 07:07  [ТС] #6
Показал преподу задание, что оно не корректно. Он сказал сделай как получиться, так получиться
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,523
05.04.2010, 09:15 #7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
uses crt;
const n=5;{размеры матрицы}
      m=9;
type mas=array[1..n*m] of integer;{тип массивов}
     matr=array[1..n,1..m] of integer;{тип матрицы}
{процедура ввода массивов, входные параметры - размер, диапазон значений, имя, выходной - масив}
procedure Vvod(var v:mas;x:byte;a,b:integer;c:char);
var i:byte;
begin
repeat
writeln('Введите диапазон элементов для массива ',c,' a<b');
readln(a,b);
until b>a;
for i:=1 to x do
v[i]:=random(b-a+1)+a;{вводим разные верхние диапазоны для того чтобы получать 
разность максимумов больше или меньше 10}
end;
{вывод массивов на экран}
procedure Vyvod(var v:mas;x:byte;c:char);
var i:byte;
begin
writeln(' массив ',c);
for i:=1 to x do
write(v[i]:4);
writeln;
writeln;
end;
{поиск индекса максимального элемента, он нужен для вставки массива, 
саио значение определим по индексу}
Function Max(v:mas;x:byte):byte;
var i,imx:byte;
begin
imx:=1;
for i:=1 to x do
if v[i]>v[imx] then imx:=i;
Max:=imx;
end;
{создание матрицы, входные - 2 массива и их размеры, выходной - матрица}
procedure Matrica(v1,v2:mas;x1,x2:byte; var mt:matr);
var i,j,a,b:byte;
begin
for i:=1 to n do
for j:=1 to m do
mt[i,j]:=0;{обнуляем матрицу}
for i:=1 to x2 do{объединяем массивы}
 begin
  x1:=x1+1;
  v1[x1]:=v2[i];
 end;
a:=1;b:=0;
for i:=1 to x1 do
if v1[i]>0 then{если положительный}
 begin
  b:=b+1;{считаем столбец}
  mt[a,b]:=v1[i];{записываем}
  if b=10 then{если вышли за границу}
   begin
    b:=1;{столбец 1}
    a:=a+1;{новая строка}
   end;
 end;
writeln('Матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(mt[i,j]:4);
  writeln;
 end;
end;
{вставка массива после максимального, вход - 2 масива, их размеры, 
индекс максимального в первом массиве, выход-новый массив и его размер }
procedure Vector(var v1:mas;v2:mas;x1,x2,imx:byte;var x3:byte);
var i,j:byte;
begin
x3:=x1;{размер первого массива}
if imx=x1 then{если макс последний}
 begin
  for i:=1 to x2 do
   begin
    x3:=x3+1;
    v1[x3]:=v2[i];{просто добавляем второй массив в первый}
   end
  end
else{иначе}
 begin
  for i:=1 to x2 do{по размеру второго массива}
   begin
    x3:=x3+1;{увеличиваем размер первого}
    for j:=x3 downto imx+i+1 do{сдвигаем х2 раз конец массива за максимальным на 1 вправо}
    v1[j]:=v1[j-1];
    v1[imx+i]:=v2[i];{записываем на свободное место элемент второго массива}
   end;
 end;
writeln('Вставка массива:');
for i:=1 to x3 do
write(v1[i]:4);
end;
var a,b:mas;
    c:matr;
    i1,i2:integer;
    k,t,ma,mb:byte;
begin
clrscr;
randomize;
Vvod(a,30,i1,i2,'A');
Vvod(b,15,i1,i2,'B');
Vyvod(a,30,'A');
ma:=Max(a,30);
writeln('Максимальный елемент a[',ma,']=',a[ma]);
Vyvod(b,15,'B');
mb:=Max(b,30);
writeln('Максимальный елемент=',b[mb]);
if abs(a[ma]-b[mb])>10 then
 begin
  writeln('Разность максимумов >10:');
  Matrica(a,b,30,15,c)
 end
else
 begin
  writeln('Разность максимумов <=10:');
  Vector(a,b,30,15,ma,t);
 end;
readln
end.
1
05.04.2010, 09:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2010, 09:15

Сформировать из положительных элементов файла квадратную матрицу максимально возможного размера
Дан файл f.Сформировать из его положительных элементов квадратную мутрицу...

Из положительных элементов матрицы N сформировать матрицу M, располагая их в строках матрицы подряд
Здравствуйте, подскажите как решить. Условие задачи: Из положительных...

суммы положительных элементов векторов
Даны два вектора R(8), F(10). Найти значение S=X1³+X2³+Y1³+Y2³, где X1, X2 –...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru