Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2011, 22:31   #1
evg94
Пользователь
 
Регистрация: 07.09.2011
Сообщений: 10
По умолчанию вывод массива без одного из столбцов

задача такова - в матрице 5х8 удалить самый левый столбец где встречается отрицательное четное число.
найти номер столбца я смогла. подскажите как вывести матрицу без него

Код:
program stolbcy;
const
  n=5;
  m=8;
type
  matrix = array[1..n,1..m]of integer;
var
a:matrix;
min,i,j,s,k:integer;
begin
  randomize;
  for i:=1 to n do
     begin
     for j:=1 to m do
       begin
       a[i,j]:=random(100)-50;
       writeln (a[i,j],' ');
       writeln;
       end;
     writeln;
     end;
begin
 k:=0;
 for j:=1 to m do
 while k=0 do
  begin
   for i:=1 to n do
   if (a[i,j]<0)and (a[i,j] mod 2 <> 0) then begin k:=j;; end;
  end;
  writeln ('столбец ',k);
end;
end.
извиняюсь за беспокойство) проблема решилась.
вот готовое решение
Код:
program stolbcy;
const
  n=5;
  m=8;
type
  matrix = array[1..n,1..m]of integer;
var
a:matrix;
min,i,j,s,k:integer;
begin
  randomize;
  for i:=1 to n do
     begin
     for j:=1 to m do
       begin
       a[i,j]:=random(150)-100;
       writeln (a[i,j],' ');
       writeln;
       end;
     writeln;
     end;
begin
 k:=0;
 for j:=1 to m do
 while k=0 do
  begin
   for i:=1 to n do
   if (a[i,j]<0)and (a[i,j] mod 2 <> 0) then k:=j;
   if i=n then break;
  end;
end;
begin
  if k=0 then begin writeln ( 'в массиве отсутствуют отрицательные четные элементы'); exit; end else writeln ( 'будет удален столбец № ', k);
end;
begin
  for i:=1 to n do
    begin
    for j:=1 to m do
      begin
      if (j<> k) then writeln (a[i,j],' ');
      writeln;
      end;
    writeln;
    end;
end;
writeln ( 'удален столбец № ', k);
end.

Последний раз редактировалось evg94; 11.09.2011 в 00:26. Причина: вопрос неактуален)
evg94 вне форума Ответить с цитированием
Старый 11.09.2011, 02:40   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от evg94 Посмотреть сообщение
проблема решилась.
вот готовое решение
Кхм.. Я бы так не спешил с выводами..
Во-первых, ты удаляешь столбец с первым нечетным элементом.
Во-вторых - ты же его не удаляешь, а просто не выводишь на печать. Ты уверена, что это то, что нужно?

И потом - ну, кто же так делает вывод матрицы?.. Тут и дисплея с километровой диагональю не хватит.. И еще - зачем столько begin/end'ов? Учись правильно форматировать код, это тебе ОЧЕНЬ поможет.

Вот тебе поправленное решение (все еще не с реальным удалением, а просто с невыводом столбца).
Код:
program stolbcy;
const
  n=2;
  m=8;
type
  matrix = array[1..n,1..m]of integer;
var
  a:matrix;
  min,i,j,s,k:integer;
begin
  randomize;
  for i:=1 to n do begin
    for j:=1 to m do begin
      a[i,j]:=random(150)-100;
      write (a[i,j]:4);
    end;
    writeln;
  end;
  k:=0;
  for j:=1 to m do begin
    for i:=1 to n do
      if (a[i,j]<0)and not Odd(a[i,j]) then begin
        k:=j;
        break
      end;
    if k>0 then break
  end;
  if k=0 then
    writeln ( 'в массиве отсутствуют отрицательные четные элементы')
  else begin
    writeln ( 'будет удален столбец № ', k);
    for i:=1 to n do begin
      for j:=1 to m do if (j<>k) then write(a[i,j]:4);
      writeln;
    end;
    writeln ( 'удален столбец № ', k)
  end;
  readln
end.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 13.09.2011, 20:11   #3
evg94
Пользователь
 
Регистрация: 07.09.2011
Сообщений: 10
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Во-первых, ты удаляешь столбец с первым нечетным элементом.
Извиняюсь, там if (a[i,j]<0)and (a[i,j] mod 2 = 0) then k:=j;
Цитата:
Сообщение от TinMan Посмотреть сообщение
ты же его не удаляешь, а просто не выводишь на печать. Ты уверена, что это то, что нужно?
для уровня 11 класса вполне достаточно)
Цитата:
Сообщение от TinMan Посмотреть сообщение
И потом - ну, кто же так делает вывод матрицы?..
кто.... 11 ин-тех класс лицея))) просто я к ним пришла в этом году... паскаль учила сама) и очень многое в моей и их записи отличается.... некоторые вещи начала писать как они дабы было меньше путаницы.
evg94 вне форума Ответить с цитированием
Старый 13.09.2011, 20:16   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А ты смотрела как у тебя она выводится? Все по 1 и через строчку.
Лучше так
Код:
  for i := 1 to n do 
  begin
    for j := 1 to m do
      write(a[i,j]:4);
    writeln;
  end;
upd: ой, не заметил, что выше уже был исправленный вариант
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.09.2011 в 20:18.
Alex11223 вне форума Ответить с цитированием
Старый 13.09.2011, 22:51   #5
evg94
Пользователь
 
Регистрация: 07.09.2011
Сообщений: 10
По умолчанию

Спасибо за советы) приму к сведению) надеюсь к олимпиаде успеть разобраться.... массивы вроде разобрала, остались файлы) пошла насиловать мозг)
evg94 вне форума Ответить с цитированием
Старый 14.09.2011, 02:25   #6
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от evg94 Посмотреть сообщение
Спасибо за советы) приму к сведению) надеюсь к олимпиаде успеть разобраться.... массивы вроде разобрала, остались файлы) пошла насиловать мозг)
Всегда пожалуйста ).
Если они там так лажают, держись поближе к нам )).
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод номеров столбцов матрицы и подсчитать количество этих столбцов Vitalina69 Помощь студентам 2 15.02.2011 21:52
определить количество столбцов, не содержащих ни одного нулевого элемента Larka12 Помощь студентам 1 07.02.2011 20:52
БД MySQL: вывод из 2-х столбцов solomusic PHP 1 14.11.2010 14:22
Возможно ли использование нескольких столбцов подстановки для одного поля? jonni Microsoft Office Access 10 20.05.2009 22:25
Вывод имен столбцов maxix БД в Delphi 2 29.09.2008 16:28