Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 27.10.2019, 12:26   #1
daunina
 
Регистрация: 27.10.2019
Сообщений: 3
По умолчанию Получить одномерный массив,элементами которого будут номера максимальных отрицательных элементов в соответствующих строках матрицы

Код:
Program Lab2; 
uses crt; 
type matr = array[1..10,1..10] of integer; 
mass = array[1..10] of integer; 

procedure zadanie(); 
begin 
writeln('****'); 
writeln('№1-Получить одномерный массив,элементами которого будут номера максимальных отрицательных элементов в соответствующих строках матрицы.'); 
writeln('№2-В полученном векторе решить задачу поиска номера первого нулевого элемента'); 
writeln('№3-Отсортировать в матрице столбцы по убыванию значений элементов в первой строке.'); 
end; 

procedure InputMatr (var A: Matr; n,m:integer);
var i, j:integer;
begin
    for i:= 1 to n do 
    for j:=1 to m do 
    begin
      write ('Введите элементы');
      gotoxy (5*j, 13+i);
      readln(A[i,j]);
    end;
end;

procedure MatrToMas (var A: matr; n,m,max:integer; var B: mas);
var i, j: integer;
begin
  for i:= 1 to n do begin
    B[i]:=0;
    max := -maxint;
    for j:= 1 to m do
      if (A[i]<0) and (A[i]>max) then begin
        max:= A[i];
        B[i]:= j;
      end;
  end;
end;



Function FindPlus(var A:mas;n:integer):integer;
var i:integer;
begin
i:=1;
while (i<=m)and(A[i]<>0)do
j:=j+1;
if i<=n then FindPlus:=i
else FindPlus:=0;
writeln ('Таких нет');
end;



procedure Shell(var a:matr; n,m:integer);
const t:array[1..5] of integer = (9,5,3,2,1);
var i,k,v,g,j:integer;
begin
  for g:=1 to 5 do begin
    k := t[g];
    for i:=1 to n-k do begin
      if a[i,j]<a[i+t,j] then 
      
        v:=a[i,j]; a[i,j]:=a[i+t,j]; a[i+t,j]:=v;
      end; 
  end;
end;


Procedure OutputMatrMas(var a:matr;n,m:integer);
var i:integer;
begin
  for i:=1 to n do begin
    for j:=1 to m do begin
      gotoxy(5*j, 5+i);
      write(a[i,j]);
    end;
end;
end.
Что в этом коде не правильно?
может кто исправить?
daunina вне форума   Ответить с цитированием
Старый 27.10.2019, 15:52   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,225
По умолчанию

Цитата:
Сообщение от daunina Посмотреть сообщение
procedure InputMatr (var A: Matr; n,m:integer);
не проверял, но надпись 'Введите элементы' должна у Вас "скакать" по экрану.
Зачем это сделано?


Цитата:
Сообщение от daunina Посмотреть сообщение
procedure MatrToMas (var A: matr; n,m,max:integer; var B: mas);
тут вроде бы всё нормально.


Цитата:
Сообщение от daunina Посмотреть сообщение
Function FindPlus(var A:mas;n:integer):integer;
Это сделано неверно. Во-первых, индекс m для чего-то проверяется, хотя он там не нужнен, во-вторых, это не скомпилируется (т.к. m не передаётся в функцию - что правильно, т.к. он в ней не нужен). В-третьих ,как то сложно всё сделано.
В чётвёртных, j не описано, В-пятых, надпись "Таких нет" всегда будет выдаваться.

сравните:
Код:
Function FindPlus(var A:mas;n:integer):integer;
var i:integer;
begin
  FindPlus:=0;
  for i:=1 to n do
       if A[i]=0 then begin
         FindPlus:=i;
         Exit
       end;
end;
и всё.


сортировка, по моему, тоже неправильно написана. Или я её просто не понял.
Цитата:
Сообщение от daunina Посмотреть сообщение
(9,5,3,2,1);
это ещё что за волшебные числа?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 27.10.2019, 16:40   #3
daunina
 
Регистрация: 27.10.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это ещё что за волшебные числа?
Я сам понятия не имею. Написал так только потому, что у всей группе сортировка начинается именно так(да да, стадный инстинкт) и потому, что я вообще не понимаю сортировку шелла на паскале. А, ну еще также было написано в примере, который был записан на лекции.
В интернете вообще не нашел ничего по сортировке Шелла, которая хоть чуть чуть бы была похожа на тот пример, что я записал на лекции.

Последний раз редактировалось daunina; 27.10.2019 в 16:48.
daunina вне форума   Ответить с цитированием
Старый 28.10.2019, 14:50   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 24.11.2010
Сообщений: 512
По умолчанию

Цитата:
Сообщение от daunina Посмотреть сообщение
Я сам понятия не имею. Написал так только потому, что у всей группе сортировка начинается именно так(да да, стадный инстинкт) и потому, что я вообще не понимаю сортировку шелла на паскале. А, ну еще также было написано в примере, который был записан на лекции.
В интернете вообще не нашел ничего по сортировке Шелла, которая хоть чуть чуть бы была похожа на тот пример, что я записал на лекции.
есть подозрение, что это данные на примере которых разбирают алгоритм сортировки
unbanned вне форума   Ответить с цитированием
Старый 28.10.2019, 14:55   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,047
По умолчанию

Цитата:
Сообщение от daunina Посмотреть сообщение
потому, что я вообще не понимаю сортировку шелла на паскале
А в вики не пробовали смотреть? Она ж простая.

Цитата:
Сообщение от unbanned Посмотреть сообщение
есть подозрение, что это данные на примере которых разбирают алгоритм сортировки
Нет никаких подозрений для тех, кто в курсе про эту сортировку. Это расстояния для грубых проходов.
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 28.10.2019, 15:35   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,225
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет никаких подозрений для тех, кто в курсе про эту сортировку. Это расстояния для грубых проходов.
ага. и лично я тест на знание этой сортировки не прошёл...
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 28.10.2019, 15:38   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,047
По умолчанию

Обычно, не пишут их явно, а считаю по одной из формул, например, d = N/2, d/2, ...
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 28.10.2019, 16:53   #8
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 24.11.2010
Сообщений: 512
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет никаких подозрений для тех, кто в курсе про эту сортировку. Это расстояния для грубых проходов.
Цитата:
Сообщение от p51x Посмотреть сообщение
Обычно, не пишут их явно, а считаю по одной из формул, например, d = N/2, d/2, ...
вот как! Спасибо)
P.S. вот так в один пост от магии назад к программированию
unbanned вне форума   Ответить с цитированием
Старый 28.10.2019, 19:11   #9
daunina
 
Регистрация: 27.10.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А в вики не пробовали смотреть? Она ж простая.
Ну если что то знать, то, конечно, это кажется простым
daunina вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить массив В, элементы которого равны наименьшим значениям элементов строк матрицы А - C# Evelienn Помощь студентам 1 18.12.2017 22:07
Дан массив А, элементами которого являются n действительных чисел. Найти количество отрицательных элементов массива... ENTERPRISE2015 Паскаль, Turbo Pascal, PascalABC.NET 10 21.11.2015 21:20
сформировать одномерный массив как сумму отрицательных элементов строк матрицы Андрей564 Паскаль, Turbo Pascal, PascalABC.NET 10 20.06.2015 17:33
Найти одномерный массив элементы которого равны минимальным значениям в строках исходной матрицы и одномерный массив элементы... Richik123 Microsoft Office Excel 1 16.10.2013 15:45
Получить новый одномерный массив В,каждый элемент которого равен мин элементу строк исходной матрицы Artimbulidor Помощь студентам 6 29.12.2008 19:51


05:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.