IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> двумерный массив, С помощью двумерного массива символов 5*5
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


С помощью двумерного массива символов 5*5 задайте в псевдографическом виде числа от 1 до 10. Прочитайте с экрана число, выведите его в псевдографическом начертании.
Пробую так (сократил до 4 , что бы не занимать лишнее место):
var aa:array[1..5,1..5]of char;
a,i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
aa[i,j]:='.';
begin
writeln('Введите цифру от 1 до 4');
readln(a);
if (a>0)and(a<4) then

if a = 1 then
aa[2,2]:='*'; aa[1,3]:='*'; aa[2,3]:='*'; aa[3,3]:='*'; aa[4,3]:='*'; aa[5,3]:='*';

if a = 2 then
aa[1,2]:='*'; aa[1,3]:='*'; aa[1,4]:='*'; aa[2,4]:='*'; aa[3,3]:='*'; aa[3,4]:='*';
aa[3,2]:='*'; aa[4,2]:='*'; aa[5,2]:='*'; aa[5,3]:='*'; aa[5,4]:='*';

if a = 3 then
aa[1,2]:='*'; aa[1,3]:='*'; aa[1,4]:='*'; aa[2,3]:='*'; aa[3,3]:='*'; aa[3,4]:='*';
aa[3,2]:='*'; aa[4,3]:='*'; aa[5,2]:='*';

if a = 4 then
aa[1,2]:='*'; aa[2,2]:='*'; aa[3,2]:='*'; aa[3,3]:='*'; aa[3,4]:='*';
aa[1,4]:='*'; aa[2,4]:='*'; aa[3,4]:='*'; aa[4,4]:='*'; aa[5,4]:='*';

end;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
write(aa[i,j]:3);
end;
writeln;
end;
end.
Получается ерунда:
Введите цифру от 1 до 4
3
. * * * .
. * * * .
. * * * .
. * * * .
. * * * .
Если оставить любую ОДНУ цифру то всё нормально:
var aa:array[1..5,1..5]of char;
a,i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
aa[i,j]:='.';
begin
writeln('Введите цифру от 1 до 4');
readln(a);
if (a>0)and(a<4) then

if a = 4 then
aa[1,2]:='*'; aa[2,2]:='*'; aa[3,2]:='*'; aa[3,3]:='*'; aa[3,4]:='*';
aa[1,4]:='*'; aa[2,4]:='*'; aa[3,4]:='*'; aa[4,4]:='*'; aa[5,4]:='*';

end;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
write(aa[i,j]:3);
end;
writeln;
end;
end.
Что опять у меня не так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Как разделить действия?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Сделайте
type
TChar = array [1..5, 1..5] of char; {один символ}
TChars = array [0..9] of TChar; {символы от 0 до 9}

А теперь в виде типизированной константы задайте все цифры:
const
MyChars: TChars = ( ( ( '.', '*', '*', '*', '*'), {символ '0'}
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*')
),
( ().......... {символ '1'}
)
)

И после этого обращаться для вывода массива
  for i:=1 to 5 do
begin
for j:=1 to 5 do
write(MyChars[a,i,j]);
writeln;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Цитата(Федосеев Павел @ 1.06.2017 8:04) *

Сделайте
type
TChar = array [1..5, 1..5] of char; {один символ}
TChars = array [0..9] of TChar; {символы от 0 до 9}

А теперь в виде типизированной константы задайте все цифры:
const
MyChars: TChars = ( ( ( '.', '*', '*', '*', '*'), {символ '0'}
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*'),
(,'*', '*', '*', '*', '*')
),
( ().......... {символ '1'}
)
)

И после этого обращаться для вывода массива
  for i:=1 to 5 do
begin
for j:=1 to 5 do
write(MyChars[a,i,j]);
Получается вот что, но с ошибками задолбался , замучался совсем....
MyChars: TChars =(((' ',' ',' ',' ','*'), {символ'1'} пишет: ожидалось 10 элементов.... Но я 10 и вывел?


type TChar = array [1..5, 1..5] of char; {один символ}
TChars = array [1..10] of TChar; {символы от 1 до 10}
const
MyChars: TChars =(((' ',' ',' ',' ','*'), {символ'1'}
(' ',' ',' ','*','*'),
(' ',' ','*',' ','*'),
(' ',' ',' ',' ','*'),
(' ',' ',' ',' ','*'))
,
(' ',' ','*','*','*'),{символ'2'}
(' ',' ',' ',' ','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' '),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'3'}
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*',' ','*'),{символ'4'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ',' ',' ','*')
,
(' ',' ','*','*','*'),{символ'5'}
(' ',' ','*',' ',' '),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'6'}
(' ',' ','*',' ',' '),
(' ',' ','*','*','*'),
(' ',' ','*',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'7'}
(' ',' ',' ',' ','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' '),
(' ',' ','*',' ',' ')
,
(' ',' ','*','*','*'),{символ'8'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ','*',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'9'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' ')
,
(' ','*','*','*','*'),{символ'10'}
('*','*','*',' ','*'),
(' ','*','*',' ','*'),
(' ','*','*',' ','*'),
(' ','*','*','*','*')
) ;
var TChars:char;
TChars:a;
aa:array[1..5,1..5]of char;
a,i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(MyChars[a,i,j]);
writeln;
end;
end.
writeln;
end;


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Приводите всю программу, иначе невозможно тестировать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Павел, заранее извиняюсь за то что вы сейчас увидите , но запутался окончательно...
Вариант 1:
type TChar = array [1..5, 1..5] of char; {один символ}
TChars = array [1..10] of TChar; {символы от 1 до 10}
const
MyChars: TChars =(((' ',' ',' ',' ','*'), {символ'1'}
(' ',' ',' ','*','*'),
(' ',' ','*',' ','*'),
(' ',' ',' ',' ','*'),
(' ',' ',' ',' ','*'))
,
(' ',' ','*','*','*'),{символ'2'}
(' ',' ',' ',' ','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' '),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'3'}
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*',' ','*'),{символ'4'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ',' ',' ','*')
,
(' ',' ','*','*','*'),{символ'5'}
(' ',' ','*',' ',' '),
(' ',' ','*','*','*'),
(' ',' ',' ',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'6'}
(' ',' ','*',' ',' '),
(' ',' ','*','*','*'),
(' ',' ','*',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'7'}
(' ',' ',' ',' ','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' '),
(' ',' ','*',' ',' ')
,
(' ',' ','*','*','*'),{символ'8'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ','*',' ','*'),
(' ',' ','*','*','*')
,
(' ',' ','*','*','*'),{символ'9'}
(' ',' ','*',' ','*'),
(' ',' ','*','*','*'),
(' ',' ',' ','*',' '),
(' ',' ','*',' ',' ')
,
(' ','*','*','*','*'),{символ'10'}
('*','*','*',' ','*'),
(' ','*','*',' ','*'),
(' ','*','*',' ','*'),
(' ','*','*','*','*')
) ;
var TChars:char;
TChars:a;
aa:array[1..5,1..5]of char;
a,i,j:integer;
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
writeln('Введите символ от 1 до 10');
readln(a);
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
write(aa[i,j]:3);
end;
writeln;
end;
end;
write(MyChars[a,i,j]);
writeln;
end;
end.

Вариант 2
var aa:array[1..5,1..5]of char;
b,a,i,j:integer;

begin
for i:=1 to 5 do
for j:=1 to 5 do
aa[i,j]:=' ';
repeat
writeln('Введите символ от 1 до 10');
readln(a);
until a=a;
begin
begin
if (a = 1) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:=' '; aa[1,4]:=' '; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:=' '; aa[2,4]:='*'; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:=' '; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:=' '; aa[5,4]:=' '; aa[5,5]:='*';
end;
begin
if (a = 2) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:=' '; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:=' '; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:=' '; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:='*'; aa[4,5]:=' ';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:=' '; aa[5,4]:='*'; aa[5,5]:='*';
end;
begin
if (a = 3) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:=' '; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:=' '; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:=' '; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:=' '; aa[5,4]:='*'; aa[5,5]:='*';
end;
begin
if (a = 4) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:=' '; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:=' '; aa[5,4]:=' '; aa[5,5]:='*';
end;
begin
if (a = 5) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:=' ';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:='*'; aa[5,4]:='*'; aa[5,5]:='*';
end;
begin
if (a = 6) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:=' ';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:='*'; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:='*'; aa[5,4]:='*'; aa[5,5]:='*';
end;
begin
if (a = 7) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:=' '; aa[2,4]:=' '; aa[2,5]:=' ';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:=' '; aa[3,4]:='*'; aa[3,5]:=' ';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:=' '; aa[4,5]:=' ';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:='*'; aa[5,4]:=' '; aa[5,5]:=' ';
end;
begin
if (a = 8) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:='*'; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:='*'; aa[5,4]:='*'; aa[5,5]:='*';
end;
begin
if (a = 9) then
aa[1,1]:=' '; aa[1,2]:=' '; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:=' '; aa[2,2]:=' '; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:=' '; aa[3,3]:='*'; aa[3,4]:='*'; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:=' '; aa[4,3]:=' '; aa[4,4]:='*'; aa[4,5]:=' ';
aa[5,1]:=' '; aa[5,2]:=' '; aa[5,3]:='*'; aa[5,4]:=' '; aa[5,5]:=' ';
end;
begin
if (a = 10) then
aa[1,1]:=' '; aa[1,2]:='*'; aa[1,3]:='*'; aa[1,4]:='*'; aa[1,5]:='*';
aa[2,1]:='*'; aa[2,2]:='*'; aa[2,3]:='*'; aa[2,4]:=' '; aa[2,5]:='*';
aa[3,1]:=' '; aa[3,2]:='*'; aa[3,3]:='*'; aa[3,4]:=' '; aa[3,5]:='*';
aa[4,1]:=' '; aa[4,2]:='*'; aa[4,3]:='*'; aa[4,4]:=' '; aa[4,5]:='*';
aa[5,1]:=' '; aa[5,2]:='*'; aa[5,3]:='*'; aa[5,4]:='*'; aa[5,5]:='*';
end;
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
write(aa[i,j]:3);
end;
writeln;
end;
end;
end.


Добавлено через 3 мин.
Во втором варианте почему-то всё время 10..... не зависимо от того: присутствуют операторы repeat и until или нет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


program test;

type
TChar = array [1..5, 1..5] of char; {один символ}
TChars = array [1..10] of TChar; {символы от 1 до 10}

const
MyChars: TChars = (
(
(' ', ' ', ' ', ' ', '*'), {символ'1'}
(' ', ' ', ' ', '*', '*'),
(' ', ' ', '*', ' ', '*'),
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', ' ', ' ', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'2'}
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', ' ', '*', ' '),
(' ', ' ', '*', ' ', ' '),
(' ', ' ', '*', '*', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'3'}
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', '*', '*', '*'),
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', '*', '*', '*')),
(
(' ', ' ', '*', ' ', '*'),{символ'4'}
(' ', ' ', '*', ' ', '*'),
(' ', ' ', '*', '*', '*'),
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', ' ', ' ', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'5'}
(' ', ' ', '*', ' ', ' '),
(' ', ' ', '*', '*', '*'),
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', '*', '*', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'6'}
(' ', ' ', '*', ' ', ' '),
(' ', ' ', '*', '*', '*'),
(' ', ' ', '*', ' ', '*'),
(' ', ' ', '*', '*', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'7'}
(' ', ' ', ' ', ' ', '*'),
(' ', ' ', ' ', '*', ' '),
(' ', ' ', '*', ' ', ' '),
(' ', ' ', '*', ' ', ' ')),
(
(' ', ' ', '*', '*', '*'),{символ'8'}
(' ', ' ', '*', ' ', '*'),
(' ', ' ', '*', '*', '*'),
(' ', ' ', '*', ' ', '*'),
(' ', ' ', '*', '*', '*')),
(
(' ', ' ', '*', '*', '*'),{символ'9'}
(' ', ' ', '*', ' ', '*'),
(' ', ' ', '*', '*', '*'),
(' ', ' ', ' ', '*', ' '),
(' ', ' ', '*', ' ', ' ')),
(
(' ', '*', '*', '*', '*'),{символ'10'}
('*', '*', '*', ' ', '*'),
(' ', '*', '*', ' ', '*'),
(' ', '*', '*', ' ', '*'),
(' ', '*', '*', '*', '*')));

var
a: char;
i, j: integer;
begin
writeln('Введите символ от 1 до 10');
readln(a);
writeln;
for i := 1 to 5 do
begin
for j := 1 to 5 do
Write(MyChars[Ord(a) - Ord('0')][i, j]);
writeln;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Спасибо Павел огромное! Просто онлайн консультации раз в месяц, а у меня двусменная работа... Только один раз за 5 месяцев совпало!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 17:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name