С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
1

Массивы и их сортировка...

21.12.2010, 18:17. Просмотров 647. Ответов 11
Метки нет (Все метки)

Условия:
1) найти среднее арифметическое элементов массива и поставить это число на место минимального элемента. сортировать методом вставки по возрастанию и методом нахождения минимума по убыванию.

2)вводится квадратная матрицв (n*n) c клавиатуры. найти сумму элементов главной диагонали матрицы. определить в каждой строке минимальный элемент и его индексы поменять его местами с элементом главной диагонали

Програмы:
1)
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
const N = 10
type
 
  TElement:array [1..N] of integer;
 
function Sred(elem:^TElement):integer;
var
 sum,i:integer;
begin
sum:=0;
 for i:=1 to N do 
    sum:=sum + elem^[i];
Sred:=sum div N;
end;
 
function GetIndexMin(var elem:TElement):integer;
var
 min,i:integer;
begin
min:=elem[i];
 for i:=2 to N do 
    if min > elem[i] then
        min:=elem[i];
GetIndexMin:=min;
end;
 
 
procedure Sort1(var elem:TElement);
var
 i,j,t:integer;
begin
 
for i:=1 to N do
begin
    j:=i;
    while j>0 do
    if elem[j-1]<elem[j] then
    begin
        t:=elem[j-1];
        elem[j-1]:=elem[j];
        elem[j]:=t;
        j:= j - 1;  
    end;
end;
end;
 
 
procedure Sort2(elem:TElement);
var
 j,t:integer;
 b:boolean;
begin
repeat
 b:=true;
 for j:=2 to N do
    if elem[j-1] > elem[j] then
    begin
        t:=elem[j-1];
        elem[j-1]:=elem[j];
        elem[j]:=t;
        b:=false;       
    end; 
until b;
end;
 
var
 Elem:TElement;
 i,s:integer;
begin
 for i:=1 to N do
  readln(elem[i]);
 
s := Sred(elem);
i:=GetIndexMin(elem);
elem[i]:=s;
 
Sort1(Elem,N);
Sort2(Elem,N);
end.
--------------------------------------------------

2)
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
const
 n = 2;
var
 
 i,j,sum:integer;
 MATRIX:array [1..N,1..N] of integer;
 IndexMinElement:array [1..N] of integer;
 
begin
for i:=1 to n do
 for j:=1 to n do
  read(Matrix[i,j]);
 
sum:=0;
 for i:=1 to N  do
  sum:=sum + MATRIX[i,i];
 
{ в массиве IndexMinElement будут записаны индексы(столбцы) в которых находится минимальный елемент каждой строки}
for i:=1 to N do
begin
IndexMinElement[i]:=1;
 
 for J:=2 to N do
 if Matrix[i,IndexMinElement[i]]>Matrix[i,j] then
  IndexMinElement[i]:=j;
 
end;
 
writeln;
writeln('summa:',sum);
writeln('Min element index:');
 
for i:=1 to n do
 write(IndexMinElement[i],' ');
 
 
 readln;
 readln;
end.
-------------------------------------------

Помогите устранить ошибки( первая совсем что-то,а во второй матрица не правильно вводится...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 18:17
Ответы с готовыми решениями:

Массивы.Обменная сортировка
Задан массив AX (N). Добавить массив С(К). Выполнить обменную сортировку. В...

массивы (сортировка по убыванию)
отсортировать по убыванию элементы массива стоящи после 2-ого нулевого вектроа

Двумерные массивы. Сортировка.
Доброго времени суток! Ребята помогите дописать программу. Застопорился и не...

Двумерные массивы - сортировка и произведение
Помогите, пожалуйста, решить задачу: Учусь на заочке. Спрашивал, можно ли на...

Сортировка числел по убыванию. Массивы
Здравствуйте! Прошу о помощи) Надо с помощью массивов сделать сортировку чисел...

11
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 18:38 2
Среднее арифметическое исходя из определения - не целое число. Матрица вводится неправильно потому что вы читаете по столбцам а не по строкам. Переставьте цикл по i и по j местами. С этим разобрались. Первая ошибка какая? Не сортирует?
0
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
21.12.2010, 18:59  [ТС] 3
или не то переставил,или я не пойму...)) всё равно так же вводится матрица не квадратная,я могу вести 3х2,в ряд 6 или в столбик 6...надо как то границы что ли задать,с рандомом всё проще... а в первой много ошибок(

Добавлено через 31 секунду
и минимальные элементы в матрице не видит...
0
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 19:13 4
ввод
Pascal
1
2
3
for j:=1 to M do
for i:=1 to N do
readln(Matrix[i,j]);
...
вывод:
Pascal
1
2
3
4
5
for j:=1 to M do
begin
for i:=1 to N do write(Matrix[i,j],' ');
writeln;
end;
вывод соответствует вводимой матрице. В чем проблема? Опишите точнее!
0
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
21.12.2010, 19:17  [ТС] 5
ты можешь весь передаланый код кинуть? проблема в том,что матрица квадратная не вводится,и минимальные элементы не видит...
0
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 19:38 6
...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const
N=2;
M=3;
var
i,j:integer;
MATRIX:array [1..N,1..M] of integer;
begin
for j:=1 to M do
for i:=1 to N do
readln(Matrix[i,j]);
writeln;
for j:=1 to M do
begin
for i:=1 to N do write(Matrix[i,j],' ');
writeln;
end;
readln;
end.
Добавлено через 1 минуту
А вы часом не пытаетесь вводить вводить матрицу произвольного размера?
0
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
21.12.2010, 19:47  [ТС] 7
матрица квадратная всё равно не работает...квадратная матрица,это когда число строк равняется число столбцов =) ничё не пойму...

Добавлено через 49 секунд
ну так я ввожу и нажимаю энтер,если я ввожу первую строчку 4элемента,нажимаю энтер,то оно сразу выдаёт ответ,а не ждёт,пока матрица станет квадратной...
0
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 20:20 8
Ввод идет в моем примере поэлементно.
Цитата Сообщение от Predator_2004 Посмотреть сообщение
readln(Matrix[i,j]);
читает один элемент с переходом на новую строку
0
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
21.12.2010, 20:30  [ТС] 9
в твоём примере вообще делает не то что надо((
0
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 20:31 10
А что надо?
0
-=West=-
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9
21.12.2010, 20:44  [ТС] 11
вводится квадратная матрицв (n*n) c клавиатуры. найти сумму элементов главной диагонали матрицы. определить в каждой строке минимальный элемент и его индексы поменять его местами с элементом главной диагонали
0
HighPredator
5689 / 2008 / 723
Регистрация: 10.12.2010
Сообщений: 5,774
Записей в блоге: 3
21.12.2010, 21:36 12
Так-с разобьем на блоки.
1)заполнение квадратной матрицы размером N:
Pascal
1
2
for j:=1 to N do
for i:=1 to N do readln(Matrix[i,j]);
2)ищем сумму элементов главной диагонали в матрице:
Pascal
1
2
sum:=0;
for i:=1 to N do sum:=sum+Matrix[i,i];
3)определяем минимальный элемент и меняем с элементом главной диагонали
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for j:=1 to N do
begin
  min:=Matrix[1,j];
  minIndex:=1;
  for i:=2 to N do
  begin
    if Matrix[i,j]<min then
    begin
      min:=Matrix[i,j];
      minIndex:=i;
    end;
  end;
  temp:=Matrix[j,j];
  Matrix[j,j]:=Matrix[minIndex,j];
  Matrix[minIndex,j]:=temp;
end;
как-то так
0
21.12.2010, 21:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2010, 21:36

Массивы и сортировка
Помогите, написать код, не успеваю выполнить все из контрольной. =/ 1....

Массивы и сортировка
Здравствуйте, дана вот такая задача: Заполните случайным образом массив (100...

Запись, сортировка, массивы
Описать запись с именем zodiac, которая содержит поля: ФИО, знак зодиака, день...


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

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

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