Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.65/209: Рейтинг темы: голосов - 209, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 11.03.2010
Сообщений: 5
1

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

04.04.2010, 19:40. Просмотров 42120. Ответов 24
Метки нет (Все метки)

как вывести результат двумерного массива на экрант в виде таблицы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2010, 19:40
Ответы с готовыми решениями:

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

Ввести элементы двумерного массива с клавы С++.Нужно вывести его на экран в виде таблицы, в конце каждой строки надо вывести самый большой элемент
Вот мой код : #include <iostream> #include <Windows.h> using namespace std; using std::cout;...

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

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

24
Студент
497 / 343 / 162
Регистрация: 15.03.2010
Сообщений: 601
04.04.2010, 20:58 2
а какой должна быть таблица...?пример приведи

Добавлено через 1 час 5 минут
Pascal
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
2
1 / 1 / 0
Регистрация: 11.03.2010
Сообщений: 5
05.04.2010, 13:47  [ТС] 3
для этой программы как вывести результат в виде таблицы


Pascal
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;
1
Студент
497 / 343 / 162
Регистрация: 15.03.2010
Сообщений: 601
05.04.2010, 17:55 4
Pascal
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;
1
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3
12.10.2019, 11:59 5
Цитата Сообщение от Жека-старший Посмотреть сообщение
а какой должна быть таблица...?пример приведи

Добавлено через 1 час 5 минут
Pascal
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
Pascal
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;
Вот так будет правильнее
0
Модератор
62530 / 46708 / 32193
Регистрация: 18.05.2008
Сообщений: 113,022
12.10.2019, 13:13 6
Цитата Сообщение от shirokovigor Посмотреть сообщение
Вот так будет правильнее
Не фига, writeln должно быть в конце, что бы получить отступ после последней строки.
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3
12.10.2019, 13:55 7
но тот код, который я комментировал, не работает. и если использовать мою версию, то все ок.
0
Модератор
62530 / 46708 / 32193
Регистрация: 18.05.2008
Сообщений: 113,022
12.10.2019, 14:20 8
Цитата Сообщение от shirokovigor Посмотреть сообщение
но тот код, который я комментировал, не работает
Не ври. Просто там массив не инициирован.
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3
12.10.2019, 14:43 9
ты что, тролишь меня? Сам проверь.
0
Модератор
62530 / 46708 / 32193
Регистрация: 18.05.2008
Сообщений: 113,022
12.10.2019, 14:47 10
Что проверить? Который код?
0
2014 / 705 / 507
Регистрация: 15.01.2019
Сообщений: 2,190
12.10.2019, 21:19 11
Цитата Сообщение от shirokovigor Посмотреть сообщение
ты что, тролишь меня? Сам проверь.
Предложенный модератором код является лишь частью полного кода.
Вот полный код, который является "классикой" и его можно найти на любом сайте по программированию языка Pascal.
Код, что показал вам Puporev, не может не работать, потому что проверен "в бою" миллионами школьников и студентов!
Pascal
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.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5665 / 3385 / 2424
Регистрация: 22.11.2013
Сообщений: 9,512
Записей в блоге: 1
13.10.2019, 13:13 12
ValentinNemo,
там разница только в том, где WriteLn, перед строкой или после.
Соответственно разница будет только в том, будет разрыв строки после последней строки матрицы или курсор останется в той же строке.
Иногда второй подход полезен, например, если нужно показать на 25-строчном экране 25 строк матрицы ;-) В первом варианте первая строка уйдет за экран, внизу будет пустая строка; а во втором -- курсор останется на строке с последним элементом.
Pascal
1
2
3
for i:=1 to 25 do begin
  WriteLn; Write(i:2);
end;
Добавлено через 56 секунд
С точки зрения файлового вывода, первый вариант правильнее.
0
2014 / 705 / 507
Регистрация: 15.01.2019
Сообщений: 2,190
13.10.2019, 18:08 13
bormant, раз заговорили про размеры информации, которые не помещаются в экран, то у меня такая проблема. Когда я вывожу достаточно большую информацию на экран консоли (1000 строк и больше), верхняя часть информации уходит вверх и исчезает. Движком прокрутки справа вернуть ее на экран не получается, хотя по идее так должно быть. Я уже плясал плясал вокруг настроек консоли, но этот эффект никуда не делся. Оно конечно не критично, просто стараюсь не раздувать вывод информации в консоль.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5665 / 3385 / 2424
Регистрация: 22.11.2013
Сообщений: 9,512
Записей в блоге: 1
13.10.2019, 18:30 14
ValentinNemo,
про какой клмпилятор речь?
Например, в Turbo Pascal код инициализации Crt содержал явный вызов установки видеорежима 80x25; не будет uses Crt — не будет подобного эффекта.
0
2014 / 705 / 507
Регистрация: 15.01.2019
Сообщений: 2,190
13.10.2019, 21:08 15
bormant, компилятор у меня один - Lazarus/FPC.
Огромное вам спасибо! Да, именно CRT и вызывает это явление. А я то думал, что я что-то косячу в коде!
Я предполагаю, что изменить это свойство CRT невозможно? Может есть какая функция, которая убирает эту неприятность.
Не знаю как для вас, но меня фокус с пропаданием части текста сильно нервирует.
Модуль CRT позволяет работать с клавишами и делать примитивные интерфейсы с меню, но когда информация разрастается, на экран выводятся куча табличек, то - раз... а самой первой таблички и нет уже.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5665 / 3385 / 2424
Регистрация: 22.11.2013
Сообщений: 9,512
Записей в блоге: 1
14.10.2019, 09:12 16
ValentinNemo,
Возьмите исходники crt, исправьте, пересоберите.
Предупреждаю, на эти 80х25 завязаны Window, WhereX, WhereY, GotoXY их логику, по хорошему, стоило бы поправить тоже, правда непонятно как — относительно оконного буфера, его видимой части, или даже может быть нижней части оконного буфера... в любом случае это вызовет те или иные свои несовместимости с существующим кодом. Поэтому в основном проекте это не правят. А для себя почему бы и нет.
0
2014 / 705 / 507
Регистрация: 15.01.2019
Сообщений: 2,190
15.10.2019, 11:28 17
bormant, а способов работать с клавишами без CRT, я так понимаю, нет.
0
3159 / 1738 / 463
Регистрация: 28.02.2015
Сообщений: 3,532
15.10.2019, 12:22 18
Цитата Сообщение от ValentinNemo Посмотреть сообщение
а способов работать с клавишами без CRT, я так понимаю, нет
Тут есть исходник CRT для ТР 7.0, с исправленой ошибкой 200.
Можно вырезать нужное и подключать не весь модуль, а только свой с нужным кодом.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5665 / 3385 / 2424
Регистрация: 22.11.2013
Сообщений: 9,512
Записей в блоге: 1
15.10.2019, 17:55 19
ValentinNemo,
Почему же нет, есть. Самый простой путь — выкусить соответствующую часть crt в отдельный модуль и использовать его.
Просто для разных платформ (linux, windows, dos) будет разный код, эта разница скроется внутри модуля.

Добавлено через 2 минуты
Constantin Cat,
Под Dos и того не нужно, int 16h достаточно и для ReadKey, и для KeyPressed.
2
3159 / 1738 / 463
Регистрация: 28.02.2015
Сообщений: 3,532
15.10.2019, 18:02 20
Цитата Сообщение от bormant Посмотреть сообщение
Под Dos и того не нужно, int 16h достаточно и для ReadKey, и для KeyPressed
Я знаю, что можно элементарно написать две асм-функции, но я выложил ссылку на исходник, пусть берет, анализирует, творит, как ему нужно.


Добавлено через 1 минуту
А ещё проще свой обработчик 09, именно под свои нужды.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2019, 18:02

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

Вывести на экран первоначальные случайные значения элементов двумерного массива от -5 до 9 в виде матрицы 6х4
Составить программу, которая выводит на экран первоначальные случайные значения элементов...

Как результат вывести в виде таблицы с помощью print
Всем доброго времени суток. У меня есть к вам огромная просьба - помочь разобраться в двух вопросах...

Вывести на экран в виде таблицы по три элемента из каждого упорядоченного массива.
Помогите пожалуйста найти и исправить ошибке в программе: Ну или показать где глобальные ошибки)...

Как сделать, чтобы при вводе двумерного массива он сразу отображался в виде таблицы?
Желательно использовать оператор setw().


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.