С помощью двумерного массива символов 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. Что опять у меня не так?
bel100
1.06.2017 0:20
Как разделить действия?
Федосеев Павел
1.06.2017 13:04
Сделайте
type TChar = array [1..5, 1..5] of char; {один символ} TChars = array [0..9] of TChar; {символы от 0 до 9}
А теперь в виде типизированной константы задайте все цифры:
for i:=1 to 5 do begin for j:=1 to 5 do write(MyChars[a,i,j]); Получается вот что, но с ошибками задолбался , замучался совсем.... MyChars: TChars =(((' ',' ',' ',' ','*'), {символ'1'} пишет: ожидалось 10 элементов.... Но я 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.
bel100
7.06.2017 20:47
Спасибо Павел огромное! Просто онлайн консультации раз в месяц, а у меня двусменная работа... Только один раз за 5 месяцев совпало!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.