Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Как вывести массив на экран?

Автор: amebka 3.04.2006 15:17

Задача:
Вводится размерность одномерного массива A(N) и его элементы. Составить и вывести на экран массив со значениями элементов в исходном массиве больших 10.

Код

const n_max=100;
      m_max=100;
var  i,j,m,n:integer;
     a:array[1..n_max] of integer;
     b:array[1..m_max] of integer;
begin
  write ('Razmer massiva A(N) raven ');
  read (n);
  j := 0;
  m := 0;
  writeln ('Elementy massiva A(N):');
  for i := 1 to n do

   readln(a[i]);
    if a[i] > 10 then begin
                      m := m + 1;
                      j := j + 1;
                      b[j] := a[i];
                      end;
  for j := 1 to m do
writeln ('Massiv B(M) = ', b[m]);
end.

Автор: volvo 3.04.2006 15:21

Writeln(' Massiv B: ');
for j := 1 to m do
write(b[j]:6);
Writeln;
?

Автор: amebka 3.04.2006 15:27

Цитата(volvo @ 3.04.2006 11:21) *

Writeln(' Massiv B: ');
for j := 1 to m do
write(b[j]:6);
Writeln;
?

он выводит только последнее число... а мне нужны все числа...
а что это еще за цифра 6?

Автор: Ozzя 3.04.2006 15:30

Цитата(amebka @ 3.04.2006 12:27) *

он выводит только последнее число... а мне нужны все числа...
а что это еще за цифра 6?

А m у тебя случайно не равно 1? (То есть кол-во элементов, больших 10 = 1?)
Write(b[j]:6);
Означает, что на вывод числа отводится 6 позиций

Автор: amebka 3.04.2006 15:33

Цитата(Ozzя @ 3.04.2006 11:30) *

А m у тебя случайно не равно 1? (То есть кол-во элементов, больших 10 = 1?)
Write(b[j]:6);
Означает, что на вывод числа отводится 6 позиций

нет... я делаю 3 числа:
7
11
456
выводится только 456

а зачем, кстатит, такое ограничение (т.е. почему только 6) ?

Автор: Ozzя 3.04.2006 15:36

А-а-а! give_rose.gif
Тебе же Вольво уже подсказал!
b[m]);
b[j]!

Почему именно 6? А сколько хочешь! Количество позиций для вывода назначает сам программист.

Автор: amebka 3.04.2006 15:38

Цитата(Ozzя @ 3.04.2006 11:35) *

А-а-а! give_rose.gif
Тебе же Вольво уже подсказал!
b[m]);
b[j]!

так я уже это попробовала - не помогло dry.gif

Цитата(Ozzя @ 3.04.2006 11:36) *

А-а-а! give_rose.gif
Тебе же Вольво уже подсказал!
b[m]);
b[j]!

Почему именно 6? А сколько хочешь! Количество позиций для вывода назначает сам программист.

а зачем вообще ограничение?

Автор: volvo 3.04.2006 15:39

amebka
Ну ты же begin end забыла !!!

for i := 1 to n do begin

readln(a[i]);
if a[i] > 10 then begin
m := m + 1;
j := j + 1;
b[j] := a[i];
end;

end;

Автор: Ozzя 3.04.2006 15:42

const n_max=100;
m_max=100;
var i,j,m,n:integer;
a:array[1..n_max] of integer;
b:array[1..m_max] of integer;
begin
write ('Razmer massiva A(N) raven ');
read (n);
j := 0;
m := 0;
writeln ('Elementy massiva A(N):');
for i := 1 to n do
begin {<- Из-за этого ошибка}
readln(a[i]);
if a[i] > 10 then begin
m := m + 1;
j := j + 1;
b[j] := a[i];
end;
end;
for j := 1 to m do
writeln ('Massiv B(M) = ', b[m]);
end.


Это не ограничение!
Это указание на количество позиций для вывода - применяется для красивого (форматированного вывода).

Автор: amebka 3.04.2006 19:08

Всем спасибо за помощь, конечный вариант программы:

Код

const n_max=100;
      m_max=100;
var  i,j,m,n:integer;
     a:array[1..n_max] of integer;
     b:array[1..m_max] of integer;
begin
  writeln;
  write ('Razmer massiva A(N) raven ');
  read (n);
  j := 0;
  m := 0;
  writeln ('Elementy massiva A(N):');
  for i := 1 to n do
   begin
   write('Element A(', i, ') =');
   read(a[i]);
    if a[i] > 10 then begin
                      m := m + 1;
                      j := j + 1;
                      b[j] := a[i];
                      end;
   end;
writeln;
writeln ('Elementy massiva B(M):');
  for j := 1 to m do
writeln ('Element B(', j, ') = ', b[j]);
end.