Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

задача на двумерный массив(Pascal)

17K
02 мая 2006 года
сладкоежка
3 / / 02.05.2006
подскажите пожалуйста, как записать решение в Паскале:

Дана вещественная квадратная матрица порядка 5, все элементы которой различны. Найти наименьший элемент среди стоящих на побочной диагонали и поменять его местами с элементом, располагающимся в правом нижнем углу матрицы.
Сформировать массив, состоящий из наибольших элементов каждой строки матрицы.
242
02 мая 2006 года
Оlga
2.2K / / 04.02.2006
Уважаемый сладкоежка,
на форуме есть правило: давать название ветке тематически.
Читайте правила постинга , и предупреждаю что в следущий раз, если вы дадите подобное название, я закрою/удалю вашу тему без предупреждения.
2
02 мая 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by OlgaKr
Уважаемый сладкоежка,
на форуме есть правило: давать название ветке тематически.
Читайте правила постинга , и предупреждаю что в следущий раз, если вы дадите подобное название, я закрою/удалю вашу тему без предупреждения.


Оля, прокати тему в Студенческий раздел.

242
02 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by squirL
Оля, прокати тему в Студенческий раздел.



Слушаюсь :}

1.8K
02 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by сладкоежка
подскажите пожалуйста, как записать решение в Паскале:

Дана вещественная квадратная матрица порядка 5, все элементы которой различны. Найти наименьший элемент среди стоящих на побочной диагонали и поменять его местами с элементом, располагающимся в правом нижнем углу матрицы.
Сформировать массив, состоящий из наибольших элементов каждой строки матрицы.


Ищем минимальный элемент:

 
Код:
min:=A[1,5];
For i:=1 To 5 Do
 For j:=5 DownTo 1 Do
  If min>A[i,j] Then min:=A[i,j];

в итоге: min - минимальный элемент

теперь ищем элемент равный min т.е. минимальный элемент:
 
Код:
For i:=1 To 5 Do
 For j:=5 DownTo 1 Do
  If min=A[i,j] Then {если нашли}
   Begin
    A[i,j]:=A[5,5]; \  меняем
    A[5,5]:=min;    /  местами
   End;
242
02 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by LastSoul
Ищем минимальный элемент:
 
Код:
min:=A[1,5];
For i:=1 To 5 Do
 For j:=5 DownTo 1 Do
  If min>A[i,j] Then min:=A[i,j];

в итоге: min - минимальный элемент

теперь ищем элемент равный min т.е. минимальный элемент:
 
Код:
For i:=1 To 5 Do
 For j:=5 DownTo 1 Do
  If min=A[i,j] Then {если нашли}
   Begin
    A[i,j]:=A[5,5]; \  меняем
    A[5,5]:=min;    /  местами
   End;



не обижайся, но ты намудрил :)
нарисуй матрицу N*N (т.к. говорим о диагонали), и проследи как индексы меняются по побочнои диагонали
p.s.подсказка: двойной фор не нужен

1.8K
02 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Сформировать массив, состоящий из наибольших элементов каждой строки матрицы.


Ищем максимальные элементы в массиве A (или матрице) и записываем их в массив B:

 
Код:
For i:=1 To 5 Do
  For j:=1 To 5 Do
   Begin
    If j=1 Then B:=A[j,i] Else
     If B<A[j,i] Then B:=A[j,i];
   End;

Ну а теперь требуемый реультат выведем на экран:
For i:=1 To 5 Do Write(B:3);
242
02 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by LastSoul
Ищем максимальные элементы в массиве A (или матрице) и записываем их в массив B:
 
Код:
For i:=1 To 5 Do
  For j:=1 To 5 Do
   Begin
    If j=1 Then B:=A[j,i] Else
     If B<A[j,i] Then B:=A[j,i];
   End;

Ну а теперь требуемый реультат выведем на экран:
For i:=1 To 5 Do Write(B:3);


a mozet byt' tak:

Цитата:

For i:=1 To 5 Do
For j:=1 To 5 Do
Begin
If j=1 Then B:=A[i,j] Else
If B<A[i,j] Then B:=A[i,j];
End;


vse taki stroki issleduem :)

1.8K
02 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by OlgaKr
a mozet byt' tak:
 
Код:
For i:=1 To 5 Do
 For j:=1 To 5 Do
  Begin
   If j=1 Then B:=A[i,j] Else
    If B<A[i,j] Then B:=A[i,j];
  End;

vse taki stroki issleduem :)


Да ты права, я без паскаля писал и немного запутался между строками и столбцами :( P(

1.8K
02 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by OlgaKr
не обижайся, но ты намудрил :)
нарисуй матрицу N*N (т.к. говорим о диагонали), и проследи как индексы меняются по побочнои диагонали
p.s.подсказка: двойной фор не нужен


Уф, [SIZE=4]SORRY[/SIZE]
Здесь я действительно намудрил..., только проснулся, видимо еще сплю...

ВО:

 
Код:
min:=A[5,1];
 For i:=1 To 5 Do
  If min>A[6-i,i] Then min:=A[6-i,i];
 For i:=1 To 5 Do
  If min=A[6-i,i] Then
   Begin
    A[6-i,i]:=A[5,5];
    A[5,5]:=min;
   End;

исправил :}

При условии, что: A[[COLOR=red]строка[/COLOR],[COLOR=green]столбец[/COLOR]]
242
02 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by LastSoul
Уф, [SIZE=4]SORRY[/SIZE]
Здесь я действительно намудрил..., только проснулся, видимо еще сплю...

ВО:
 
Код:
min:=A[5,1];
 For i:=1 To 5 Do
  If min>A[6-i,i] Then min:=A[6-i,i];
 For i:=1 To 5 Do
  If min=A[6-i,i] Then
   Begin
    A[6-i,i]:=A[5,5];
    A[5,5]:=min;
   End;

исправил :}

При условии, что: A[[COLOR=red]строка[/COLOR],[COLOR=green]столбец[/COLOR]]


что то ты меня совсем запутал :

Цитата:
Дана вещественная квадратная матрица порядка 5, все элементы которой различны. Найти наименьший элемент среди стоящих на побочной диагонали и поменять его местами с элементом, располагающимся в правом нижнем углу матрицы.


eto zachem ?

 
Код:
For i:=1 To 5 Do
  If min=A[6-i,i] Then
   Begin
    A[6-i,i]:=A[5,5];
    A[5,5]:=min;
   End;


на мой взгляд достаточно в цикле сохранить i, j(row, column) минимума (само значение тогда сохранять не надо), а потом:
 
Код:
temp := A[row][column];
A[row][column] := A[5][5];
A[5][5] := temp;

{or}
 
Код:
A[row][column] := A[row][column] xor A[5][5];
A[5][5] := A[5][5] xor A[row][column];
A[row][column] := A[row][column] xor A[5][5];

vmesto
Цитата:

For i:=1 To 5 Do
If min=A[6-i,i] Then
Begin
A[6-i,i]:=A[5,5];
A[5,5]:=min;
End;



1.8K
02 мая 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by OlgaKr
 
Код:
temp := A[row][column];
A[row][column] := A[5][5];
A[5][5] := temp;


В принципе можно и так сделать, проге хоть поменьше операций придется выполнять.

Сладкоежке надо будет учесть, что в побочной диагонали может быть два (или более) минимальных элемента, в таком случае i,j(row, column) минимума
надо будет сохранять во второй массив (если хотим вместо ВСЕХ мин. эл. вставить A[5,5]).

если на сохранять в МАССИВ, т.е. сохранить ПОСЛЕДНИЙ встречающийся мин. эл. в данном случае это будет 2-йка перед 4-кой, т.к. в нашем случае нахождение мин. ведется слева направо
то это будет выглядеть вот так:
MATRIX:

 
Код:
0 0 0 0 4    0 0 0 0 4
0 0 0 [COLOR=green]2[/COLOR] 0    0 0 0 [COLOR=red]9[/COLOR] 0
0 0 7 0 0 => 0 0 7 0 0
0 3 0 0 0    0 3 0 0 0
[COLOR=green]2[/COLOR] 0 0 0 [COLOR=red]9[/COLOR]    [COLOR=green]2[/COLOR] 0 0 0 [COLOR=green]2[/COLOR]


Если сохранить все i,j(row, column) минимума, то можно будет сделать так:
MATRIX:
 
Код:
0 0 0 0 4    0 0 0 0 4
0 0 0 [COLOR=green]2[/COLOR] 0    0 0 0 [COLOR=red]9[/COLOR] 0
0 0 7 0 0 => 0 0 7 0 0
0 3 0 0 0    0 3 0 0 0
[COLOR=green]2[/COLOR] 0 0 0 [COLOR=red]9[/COLOR]    [COLOR=red]9[/COLOR] 0 0 0 [COLOR=green]2[/COLOR]

17K
02 мая 2006 года
сладкоежка
3 / / 02.05.2006
[QUOTE]Originally posted by LastSoul
В принципе можно и так сделать, проге хоть поменьше операций придется выполнять.

Сладкоежке надо будет учесть, что в побочной диагонали может быть два (или более) минимальных элемента....MATRIX:
 
Код:
0 0 0 0 4    0 0 0 0 4
0 0 0 [COLOR=green]2[/COLOR] 0    0 0 0 [COLOR=red]9[/COLOR] 0
0 0 7 0 0 => 0 0 7 0 0
0 3 0 0 0    0 3 0 0 0
[COLOR=green]2[/COLOR] 0 0 0 [COLOR=red]9[/COLOR]    [COLOR=green]2[/COLOR] 0 0 0 [COLOR=green]2[/COLOR]


в задачке говорилось что в матрице все элементы различны, т.е. один минимум
17K
02 мая 2006 года
сладкоежка
3 / / 02.05.2006
спасибо всем большое за помощь в решении!!!
54K
15 октября 2009 года
DaminaGX
1 / / 15.10.2009
Дан двумерный массив, содержащий N строк и M столбцов и заполненный числами в диапозоне от -4 до +4. Проссумировать элементы массива большие числа К
54K
21 октября 2009 года
Muroz
1 / / 20.10.2009
Вот простоя задачка для продвинутых гы гы

Задача:
Даны числа множество 1,2,3,4,5,6,7,8,9 всего 9-ть штук
Расставить их в шаблон вида XXX = XXX = XXX где X число из множества
Так чтобы равенство выполнялось, и найти все варианты.

Цель задачи:
Найти наиболее быстрый алгоритм скорость я померю и выложу результаты для тех решений, которые выдают все варианты верных ответов

Срок действия задачи:
Пока не будет придуман алгоритм круче моего, и тогда я выложу комментарии, ошибки и код…

Требование:
Программа должна быть написана на VBScript и выполняться программой cscript, никаких наворотов ненужно, всё выводить в консоль…

PS
size=9 - знак умножения гы гы
XX и XXX - двухзначное и трёхзначное число т.е. например XX -> 12
Кидать отлаженный текст проги мне в личку…
если хотите сказать что то неприятное или дельное всё в личку…
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог