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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Название темы должно адекватно отражать суть решаемой задачи/проблемы.
Старый 04.04.2012, 14:18   #1
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию в символьной матрице найдите номер первого по порядку столбца, содержащего наименьшее число пробелов - Ошибка в коде (Delphi)

Всем доброго времени суток! Помогите пожалуйста исправить ошибку в коде. Почему-то всегда печатается первый столбец. Почему так?

{Пусть дана символьная матрица размером 13х18. Найдите номер первого по порядку столбца, содержащего наименьшее число пробелов на пересечении со строками, номера которых четные.}

Код:

program Project24287;

{$APPTYPE CONSOLE}

uses
  SysUtils,windows;
const
  n=13;
  m=18;
type
  telem=char;
  mas=array[1..n] of telem;
  matr=array[1..m] of mas;
//Ввод элементов матрицы
procedure Vvod_Matr(a:matr);
  const
    n=13;
    m=18;
  var
    i,j:integer;
  begin
    writeln('Введите матрицу ',n,'x',m);
    for i:=1 to m do
      begin
        for j:=1 to n do
        read(a[i,j]);
        readln
      end
  end;
  //Выполнение условия задачи
procedure Poisk_Str(a:matr);
  const
    n=13;
    m=18;
  var
    i,j,k,min,kolstr:integer;
  begin
    min:=50;
    kolstr:=0;
    for j:=1 to n do
      begin
        i:=2;
        k:=0;
        while i<=m do
          begin
            if a[i,j]=' ' then
            k:=k+1;
            i:=i+2
          end;
        if k<min then
          begin
            min:=k;
            kolstr:=j
          end
      end;
    writeln(kolstr)
    end;
var
  a:matr;
  i,j,min,kolstr,k:integer;
begin
  setconsolecp(1251);
  setconsoleoutputcp(1251);
  Vvod_Matr(a);
  Poisk_Str(a);
  readln
end.
Начинающий програм вне форума Ответить с цитированием
Старый 04.04.2012, 14:33   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

потому что вы массив не вводите! Точнее вводите но его значения не изменяются!
Измените вот это
Цитата:
Код:
procedure Vvod_Matr(a:matr);
на вот это
Код:
procedure Vvod_Matr(var a:matr);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 04.04.2012, 14:41   #3
Начинающий програм
Форумчанин
 
Аватар для Начинающий програм
 
Регистрация: 22.11.2011
Сообщений: 201
По умолчанию

Да, работает! Я Вам очень благодарен!
Начинающий програм вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице найти число положительных элементов указанной строки и умножить это число на элементы указанного столбца. (Паскаль) Julichka1k Помощь студентам 4 18.12.2011 20:35
В матрице A[1..N,1..M] упорядочить по убыванию элементы столбца, содержащего наибольшее количество отрицательных чисел Hitzor Помощь студентам 1 25.10.2011 15:35
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
Найдите наибольшее и наименьшее значение функции xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 3 01.04.2008 17:20