Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 04:05   #1
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
Вопрос Работа с модулем CRT

Доброй ночи =) я тут мучаюсь с одной задачкой не получается кое что доделать. Условие Вывести на экран массив из m строк и n столбцов в заданное пользователем координатами и размером окно, которое должно быть обрамлено двойной рамкой. )Не могу выделить ответ рамкой путаюсь в координатах , подскажите пожалуйста , как с помощью GoToxy нарисовать её , мне нужно еще сделать так , что бы она выводилась именно там где укажет пользователь

Код:
program dvmas;
  uses crt ;
  var i,j,m,n:integer;
  x1,y1,x2,y2:byte;
  a:array[1..100,1..100] of integer;

      begin
      clrscr;
         randomize;
           textbackground(blue);
           textcolor(7);
         writeln('верхний левый угол');readln(x1,y1);
           writeln('*нижний правый угол');readln(x2,y2);
         window(x1,y1,x2,y2); //положение окна

      writeln('количество строк матрицы');readln(m);
        writeln('количество столбцов матрицы');readln(n);
        for i:=1 to m do
         for j:=1 to n do
         begin
       a[i,j]:=random(10); // произвольное заполнение
       end;

       for i:=1 to m do
          begin
         for j:=1 to n do
        write(a[i,j],' '); //вывод матрицы
        writeln;
        end;
        readkey;
     end.
Вообщем ну трудно видеть что она просто красиво по заданным пользователем координатам выводи окошко с матрицей размер которой тоже задается пользователем. Мне не нужна готовая программа хотя бы покажите как эту таблицу рисовать в моем случае
ihimaru вне форума Ответить с цитированием
Старый 10.10.2012, 08:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рамку примерно так, если по простому:
Код:
gotoxy(1,1);for i:=1 to x2-x1 do write('-');
gotoxy(1,y2-y1);for i:=1 to x2-x1 do write('-');
for i:=1 to y2-y1 do gotoxy(1,i); write('|');
for i:=1 to y2-y1 do gotoxy(x2-x1,i); write('|');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.10.2012, 08:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрите мой пример вот тут
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2012, 14:46   #4
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
По умолчанию

Спасибо ! вы мне очень помогли ) теперь разобрался как рисовать рамки через goto , преподаватель придрался к острым углам у нее, еще мучаюсь. Сами символы нашел пытался вставить тупо после прорисовки границ рамки , но они выводились всегда рядом с ней, абракадабра блин.

Последний раз редактировалось ihimaru; 18.10.2012 в 14:48.
ihimaru вне форума Ответить с цитированием
Старый 18.10.2012, 16:48   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
преподаватель придрался к острым углам у нее
что значит - "острые угры" ?! в стандартно знакогенераторе символы псевдографики имеют прямые углы (под 90 градусов). А какие углы у вашего преподавателя, тупые?! сделайте скриншот (или сфоткайте), дайте посмотреть на её рамки!

Цитата:
Сами символы нашел пытался вставить тупо после прорисовки границ рамки , но они выводились всегда рядом с ней, абракадабра блин.
что именно нашли? Как пыетесь вставить? GotoXY не забываете предварительно делать?

Давайте Ваш код, посмотрим, что у Вас не получается!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.10.2012, 17:59   #6
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
По умолчанию

Я немного не правильно выразился проблема в том , что на углах рамки нужно вставить ╗ , ╝ , ╚ , ╔ вот что то вроде этого,
вот код с подсказанными мне исправлениями и скрин

Код:
program dvmas;
  uses crt ;
  var i,j,m,n:integer;
  x1,y1,x2,y2:byte;
  a:array[1..100,1..100] of integer;
 
      begin
      clrscr;
         randomize;
 
         textbackground(blue);
             textcolor(7);
 
              writeln('верхний левый угол');readln(x1,y1);
           writeln('нижний правый');readln(x2,y2);
         window(x1,y1,x2,y2); // положение окна
 
      writeln('строки ');readln(m);
        writeln('столбцы');readln(n);
        for i:=1 to m do
         for j:=1 to n do
         begin
       a[i,j]:=random(10);
       end; // заполнение массива
 
       for i:=1 to m do
          begin
         for j:=1 to n do
        write('  ',a[i,j],' ');
        writeln;
        end;  //вывод массива
 
     gotoxy(1,1);
         for i:=1 to x2-x1 do write('Н');
      gotoxy(1,y2-y1);
   for i:=1 to x2-x1 do write('Н');
 
             for i:=1 to y2-y1 do begin gotoxy(1,i);
            writeln('є');end;
           for i:=1 to y2-y1 do begin gotoxy(x2-x1,i);
                 writeln('є');end;   // прорисовывание массива рамкой 
 
        readkey;
     end.
вот так я пытался вставить уголок gotoxy(1,x2-x1); write('╗');отображался он чуть правее верхнего правого угла , скрин я приложил без попыток нарисовать уголки.
Изображения
Тип файла: jpg _var_www_s1_temp_12_291_15_ProjgbzH6TT0li36cct.jpg (29.1 Кб, 89 просмотров)
ihimaru вне форума Ответить с цитированием
Старый 20.10.2012, 02:34   #7
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
По умолчанию

Вот такие дела)
ihimaru вне форума Ответить с цитированием
Старый 29.10.2012, 09:23   #8
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
По умолчанию

Закрывайте тему , все равно уже никто не отпишется.
ihimaru вне форума Ответить с цитированием
Старый 29.10.2012, 10:29   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

блин, Вы ещё до сих пор не решили свою проблему?!?!?! я был на 146% уверен, что уже всё давно сделано и решено!

проверяйте:

Код:
   .....
  end; {вывод массива }


  gotoxy(1, 1);
  write(chr(201)); { левый верхний угол для двойных линий}
  for i := 2 to x2 - x1 - 1 do write(chr(205));
  write(chr(187)); { правый верхний угол для двойных линий}
  gotoxy(1, y2 - y1);
  write(chr(200)); {левый нижний угол для двойных линий}
  for i := 2 to x2 - x1 - 1 do write(chr(205));
  write(chr(188)); {правый нижний угол для двойных линий}

  for i := 2 to y2 - y1 - 1 do begin
    gotoxy(1, i);
    write(chr(186));
  end;
  for i := 2 to y2 - y1 - 1 do begin
    gotoxy(x2 - x1, i);
    write(chr(186));
  end; { прорисовывание массива рамкой }

  readkey;

Последний раз редактировалось Serge_Bliznykov; 29.10.2012 в 10:44.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.11.2012, 18:54   #10
ihimaru
Пользователь
 
Регистрация: 02.10.2011
Сообщений: 14
По умолчанию

Благодарю! все работает ! проанализировал каждую вашу строчку , все понятно разобрался) оставлю у себя в хранилище примеров) пригодится =))
ihimaru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с модулем Граф Kazak009 Помощь студентам 1 27.12.2010 10:02
Работа:модуль CRT (Pascal) Sikey Помощь студентам 1 26.01.2010 16:48
Работа с графическим модулем Graph на Паскале ifen Помощь студентам 0 09.06.2009 19:51
Работа с модулем Ke-USB24A на Delphi RockForr Общие вопросы Delphi 0 05.05.2009 18:05
Помогите с Модулем lex90 Паскаль, Turbo Pascal, PascalABC.NET 2 24.01.2009 18:26