Форум «Всё о Паскале» _ Задачи _ Как вывести массив на экран?
Автор: 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
А-а-а! Тебе же Вольво уже подсказал! b[m]); b[j]!
Почему именно 6? А сколько хочешь! Количество позиций для вывода назначает сам программист.
Автор: amebka 3.04.2006 15:38
Цитата(Ozzя @ 3.04.2006 11:35)
А-а-а! Тебе же Вольво уже подсказал! b[m]); b[j]!
так я уже это попробовала - не помогло
Цитата(Ozzя @ 3.04.2006 11:36)
А-а-а! Тебе же Вольво уже подсказал! 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.