Как вывести массив в виде таблицы
Перейти к содержимому

Как вывести массив в виде таблицы

  • автор:

Представить массив в виде таблицы

В этом коде нет никакого массива, есть просто набор чисел, которые печатаются один раз. PS. eval не требуется.

12 дек 2019 в 20:11

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

import random random.seed() m = input('Количество столбцов > ') # количество столбцов n = input('Количество строк > ') # количество рядов M = [[random.randint(-100, 100) for _ in range(eval(m))] for _ in range(eval(n))] for V in M: for e in V: print(e, end=', ') print() 
85, -79, 30, -4, -68, 56, -69, -57, -48, 77, 49, 88, -68, 29, -87, 

Если нужен более структурированный вывод (с табуляциями), можно использовать библиотеку Pandas

P.s. m и n были местами перепутаны. m — столбцы, n — строки. Если обязательно наоборот — в генераторе поменяй их местами.

Как вывести массив объектов таблицу js?

Здравствуйте, хочу вывести массив объектов в таблицу с помощью js в html страницу. На странице есть форма, с помощью которой массив наполняется объектами, т е. длина массива, как и таблицы неизвестна. Я сделала функцию, которая по идее должна заполняться по клику в форме, то есть создается объект, он попадает в массив и далее выводится в таблицу. Но каждый раз появляется строчка но пустая, хотя по консоли объект в массиве есть. Как заполнить строки свойствами объектов массива, в чём может быть проблема?

   
let Students = [], submitbtn = document.querySelector('#submit'), table = document.getElementById('table'); class Student < constructor() < this.Fullname = document.getElementById('Fullname').value; this.birthday = document.getElementById('Birthday').value; this.year = document.getElementById('YearEd').value; this.faculty = document.getElementById('Faculty').value; >> function createStudentArr(array) < array.push(new Student); >function getTable(table, arr) < for (let i = 0; i < arr.length; i++) < let tr = document.createElement('tr'); for (let j = 0; j < arr[i].length; j++) < let td = document.createElement('td'); td.innerHTML = arr[i][j]; tr.appendChild(td); >table.appendChild(tr); > > submitbtn.addEventListener('click', (event) => < event.preventDefault(); createStudentArr(Students); console.log(Students); getTable(table, Students); >)
  • Вопрос задан более года назад
  • 742 просмотра

Как вывести на экран двумерный массив в виде таблицы? Pascal

program checkmate;
const n=8;
var i,j: integer;
a,b: array [1..n] of string;
st: string;
begin
for j:=1 to n do begin
str(j,b[j]);
end;
st:=’ABCDEFGH’;
for i:=1 to n do
begin
a:=copy(st,i,1);
end;
Write (‘ ‘);
for i:=1 to n do begin
Write (a:2, ‘ ‘);
end;
WriteLn;
for j:=1 to n do begin
Write(b[j], ‘ ‘);
for i:=1 to n do
Write (a,b[j], ‘ ‘);
writeLn;
end;

Как вывести результат двумерного массива на экран в виде таблицы?

Как вывести результат двумерного массива в виде таблицы
Дан двумерный массив, надо чтобы результат был выведен в виде таблици оператором Print Option.

Как результат вывести не в виде матрице, а в виде таблицы?
Подскажите, плиз, как здесь результат вывести не в виде матрице, а в виде таблице. Ни как не.

Вывести на экран в виде матрицы все элементы заданного двумерного массива
Составить программу которая выводит на экран в виде матрицы элементы двумерного массива, состоящего.

498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601

а какой должна быть таблица. пример приведи

Добавлено через 1 час 5 минут

1 2 3 4 5 6
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end;

если так надо:
1 2 3 4
5 6 7 8
1 2 3 4
Регистрация: 11.03.2010
Сообщений: 5

для этой программы как вывести результат в виде таблицы

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
program lab5; const n=10; var i, j:integer; max, min, z,y:real; a:array [1..n, 1..n] of real; x: array [1..n] of real; begin writeln ('первая часть'); for j:=1 to n do for i:=1 to n do a[j,i]:=ln(j+1)/(ln(i+1)+ln(j+1)); for j:=1 to n do begin for i:=1 to n do writeln (a[j,i]:10:2); writeln; end;

498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
program lab5; const n=10; var i, j:integer; max, min, z,y:real; a:array [1..n, 1..n] of real; x: array [1..n] of real; begin writeln ('первая часть'); for j:=1 to n do for i:=1 to n do a[j,i]:=ln(j+1)/(ln(i+1)+ln(j+1)); for j:=1 to n do begin for i:=1 to n do write(a[j,i]:10:2); writeln; end; end.

Добавлено через 2 минуты
строку ты выводишь как write(a[i,j]);- вывод в одну строку будет.
затем ты по окончанию строкипереводишь курсор на новую строку(вниз) writeln;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]);
writeln;
end;

Регистрация: 17.03.2016
Сообщений: 3

ЦитатаСообщение от Жека-старший Посмотреть сообщение

а какой должна быть таблица. пример приведи

Добавлено через 1 час 5 минут

1 2 3 4 5 6
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end;

если так надо:
1 2 3 4
5 6 7 8
1 2 3 4

1 2 3 4 5 6
for i:=1 to n do begin writeln; for j:=1 to m do write(a[i,j]:4); end;

Вот так будет правильнее
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181

ЦитатаСообщение от shirokovigor Посмотреть сообщение

Вот так будет правильнее
Не фига, writeln должно быть в конце, что бы получить отступ после последней строки.
Регистрация: 17.03.2016
Сообщений: 3
но тот код, который я комментировал, не работает. и если использовать мою версию, то все ок.
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181

ЦитатаСообщение от shirokovigor Посмотреть сообщение

но тот код, который я комментировал, не работает
Не ври. Просто там массив не инициирован.
Регистрация: 17.03.2016
Сообщений: 3
ты что, тролишь меня? Сам проверь.
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
Что проверить? Который код?
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394

ЦитатаСообщение от shirokovigor Посмотреть сообщение

ты что, тролишь меня? Сам проверь.

Предложенный модератором код является лишь частью полного кода.
Вот полный код, который является «классикой» и его можно найти на любом сайте по программированию языка Pascal.
Код, что показал вам Puporev, не может не работать, потому что проверен «в бою» миллионами школьников и студентов!

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
program Project1; const n = 5; m = 5; var i,j: integer; a: array [1..n,1..m] of integer = ((9,1,3,6,3), (4,7,2,0,4), (2,6,9,2,4), (3,8,4,8,8), (4,2,8,4,6)); begin for i:= 1 to n do begin for j:= 1 to m do write(a[i,j]:4); writeln; end; readln; end.

Эксперт Pascal/DelphiЭксперт NIX

7655 / 4494 / 2811
Регистрация: 22.11.2013
Сообщений: 12,840
Записей в блоге: 1

ValentinNemo,
там разница только в том, где WriteLn, перед строкой или после.
Соответственно разница будет только в том, будет разрыв строки после последней строки матрицы или курсор останется в той же строке.
Иногда второй подход полезен, например, если нужно показать на 25-строчном экране 25 строк матрицы 😉 В первом варианте первая строка уйдет за экран, внизу будет пустая строка; а во втором — курсор останется на строке с последним элементом.

1 2 3
for i:=1 to 25 do begin WriteLn; Write(i:2); end;

Добавлено через 56 секунд
С точки зрения файлового вывода, первый вариант правильнее.
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394

bormant, раз заговорили про размеры информации, которые не помещаются в экран, то у меня такая проблема. Когда я вывожу достаточно большую информацию на экран консоли (1000 строк и больше), верхняя часть информации уходит вверх и исчезает. Движком прокрутки справа вернуть ее на экран не получается, хотя по идее так должно быть. Я уже плясал плясал вокруг настроек консоли, но этот эффект никуда не делся. Оно конечно не критично, просто стараюсь не раздувать вывод информации в консоль.

Эксперт Pascal/DelphiЭксперт NIX

7655 / 4494 / 2811
Регистрация: 22.11.2013
Сообщений: 12,840
Записей в блоге: 1

ValentinNemo,
про какой клмпилятор речь?
Например, в Turbo Pascal код инициализации Crt содержал явный вызов установки видеорежима 80×25; не будет uses Crt — не будет подобного эффекта.

2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394

bormant, компилятор у меня один — Lazarus/FPC.
Огромное вам спасибо! Да, именно CRT и вызывает это явление. А я то думал, что я что-то косячу в коде!
Я предполагаю, что изменить это свойство CRT невозможно? Может есть какая функция, которая убирает эту неприятность.
Не знаю как для вас, но меня фокус с пропаданием части текста сильно нервирует.
Модуль CRT позволяет работать с клавишами и делать примитивные интерфейсы с меню, но когда информация разрастается, на экран выводятся куча табличек, то — раз. а самой первой таблички и нет уже.

Эксперт Pascal/DelphiЭксперт NIX

7655 / 4494 / 2811
Регистрация: 22.11.2013
Сообщений: 12,840
Записей в блоге: 1

ValentinNemo,
Возьмите исходники crt, исправьте, пересоберите.
Предупреждаю, на эти 80х25 завязаны Window, WhereX, WhereY, GotoXY их логику, по хорошему, стоило бы поправить тоже, правда непонятно как — относительно оконного буфера, его видимой части, или даже может быть нижней части оконного буфера. в любом случае это вызовет те или иные свои несовместимости с существующим кодом. Поэтому в основном проекте это не правят. А для себя почему бы и нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *