Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Массив данных


Автор: CIBRAIKER 25.8.2010, 22:55
Доброго времени суток! Попалось задание по Паскалю, а программер из меня никакой, помогите кот чем сможет, плюсик в репу не пожалею, зарание спасибо.  smile 

Задание: Дан массив NxM. Составить программу вычисления.
Сколько рядков содержат значения К, вывести на экран номера этих рядков.

Автор: Данкинг 25.8.2010, 23:20
Не помню синтаксиса Паскаля, да и нет у меня его компилятора. Могу примерно накидать:
Код

var
 mas: array [1..n,1..m] of integer;
 k,x,y:integer;
begin
 for y:=1 to n do
  for x:=1 to m do
   if mas[y,x]=k then
    begin
    writeln(x);
    break;
    end;
end;

Если что не так - сильно меня не материть. smile 

Автор: CIBRAIKER 26.8.2010, 00:13
О, класс, нуна проверить...
ЗЫ: есть ещё какие-нибудь варианты, но что б со 100% уверенностью в синтаксисе?

Автор: Keeper89 26.8.2010, 00:19
Цитата(Данкинг @  25.8.2010,  23:20 Найти цитируемый пост)
Не помню синтаксиса Паскаля

Цитата(CIBRAIKER @  25.8.2010,  22:55 Найти цитируемый пост)
а программер из меня никакой

Ну хотя бы запустить надо суметь smile

Автор: Данкинг 26.8.2010, 00:39
Цитата(CIBRAIKER @  26.8.2010,  01:13 Найти цитируемый пост)
ЗЫ: есть ещё какие-нибудь варианты, но что б со 100% уверенностью в синтаксисе? 

Цитата(Keeper89 @  26.8.2010,  01:19 Найти цитируемый пост)
Ну хотя бы запустить надо суметь

Если программа хотя бы раз не запущена, то на 100% быть уверенным в правильности её работы нельзя. smile 

Автор: THandle 26.8.2010, 11:29
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена!

Добавлено через 1 минуту и 57 секунд
Данкинг, у тебя ж никакие данные не введены, так не заработает)

Вот полная программа:

С выводом массива:
Код


program Project1;

const
  M = 5;
  N = 5;
var
  K: Integer;
  I, J: Integer;
  A: Array [1..M, 1..N] of Integer;

begin
  Randomize;
  for I := 1 to M do
  begin
    for J := 1 to N do
    begin
      A[I, J] := Random(10);
      Write(A[I, J], ' ');
    end;
    WriteLn;
  end;
  Write('Enter K: ');
  ReadLn(K);
  for I := 1 to M do
    for J := 1 to N do
      if A[I, J] = K then
      begin
        WriteLn('K in line ', I);
        Break;
      end;
  ReadLn;
end.



Или без вывода:

Код


program Project1;

const
  M = 5;
  N = 5;
var
  K: Integer;
  I, J: Integer;
  A: Array [1..M, 1..N] of Integer;

begin
  Randomize;
  for I := 1 to M do
    for J := 1 to N do
      A[I, J] := Random(10);
  Write('Enter K: ');
  ReadLn(K);
  for I := 1 to M do
    for J := 1 to N do
      if A[I, J] = K then
      begin
        WriteLn('K in line ', I);
        Break;
      end;
  ReadLn;
end.

Автор: Данкинг 26.8.2010, 11:37
Цитата(THandle @  26.8.2010,  12:29 Найти цитируемый пост)
Данкинг, у тебя ж никакие данные не введены, так не заработает)

Ну так понятно, что не введены, я подразумевал, что массив уже заполнен. smile 

Автор: CIBRAIKER 26.8.2010, 13:03
Цитата(THandle @  26.8.2010,  10:29 Найти цитируемый пост)
Для домашних заданий, курсовых, существует "Центр Помощи".
 Понятненько, бум знать. smile 

Цитата(THandle @  26.8.2010,  10:29 Найти цитируемый пост)
Вот полная программа:
О, а оказывается она не такая уже и сложная, если посидеть и поразбираться в ней, осталось только в компилятор запихнуть. smile 

Автор: CIBRAIKER 8.9.2010, 15:48
Спасибо, работает. THandle +1.   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)