Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 3
Регистрация: 12.06.2011
Сообщений: 71

На основе класса WinSymb построить класс WinMov

15.10.2011, 18:27. Показов 890. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз, а то не как не получается(
На основе класса WinSymb построить класс WinMov(использовать механизмы наследования).Этот класс может передвигать исходное окно с символом на требуемое количество позиций по вертикали и горизонтали. Указание : Предусмотреть в классе WinMov поля dx,dy задающее число позиций , а также метод Mov(adx,ady) изменяющий значение x1,x2 на велечину dx, a y1,y2 на велечину dy.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Program mov;
Uses crt;
 Type
  Win = object
  x1,x2,y1,y2: byte;
  Color: byte;
  Procedure Init(ax1,ay1,ax2,ay2,aColor:byte);
  Procedure MakeWin;
  Procedure Print;
 End;
  Procedure Win.Init(ax1,ay1,ax2,ay2,aColor:byte);
   begin
    x1:=ax1;y1:=ay1;x2:=ax2;y2:=ay2;
    Color:=aColor;
   end;
  Procedure Win.MakeWin;
   begin
    Window(x1,y1,x2,y2);
    TextBackGround(Color);
    ClrScr;
   end;
  Procedure Win.Print;
   begin
    case color of
           1:writeln('–ўҐв нЄа*** - CЁ*Ё©');
           2:writeln('–ўҐв нЄа*** - ‡Ґ«Ґ*л©');
           3:writeln('–ўҐв нЄа*** - ѓ®«гЎ®©');
           4:writeln('–ўҐв нЄа*** - Ља*б*л©');
           5:writeln('–ўҐв нЄа*** - ђ®§®ўл©');
           6:writeln('–ўҐв нЄа*** - ‡®«®в®©');
           7:writeln('–ўҐв нЄа*** - ЃҐ«л©');
           8:writeln('–ўҐв нЄа*** - —Ґа*л©');
          end;
          writeln('ђ*§¬Ґа Ї® Ј®аЁ§®*в*«Ё - ',x2-x1+1,' ђ*§¬Ґа Ї® ўҐавЁЄ*«Ё - ',y2-y1+1);
       end;
   Type
    Winsymb = object(Win)
     CSymb,Line,Row:byte;
     Symb:char;
     procedure Init(ax1,ay1,ax2,ay2,aColor,aCSymb,aLine,aRow:byte;aSymb:char);
      procedure print;
     end;
      procedure WinSymb.Init(ax1,ay1,ax2,ay2,aColor,aCSymb,aLine,aRow:byte;aSymb:char);
       begin
        Win.Init(ax1,ay1,ax2,ay2,aColor);
        CSymb:=aCSymb;Line:=aLine;Row:=aRow;Symb:=aSymb;
        textcolor(Csymb);
        gotoxy(Line,Row);
       end;
        procedure winsymb.print;
       begin
        gotoxy(Line,Row);
        writeln (symb);
       end;
    Type
  WinMov = object(Winsymb)
     dx,dy:byte;
     procedure move(adx,ady:byte);
  end;
    procedure winmov.move(adx,ady:byte);
     begin
     adx:=dx;ady:=dy;
    end;
  Var
     Winmovobj:Winmov;
      Begin
      clrscr;
       Winmovobj.Init(1,1,44,20,1,2,18,7,'л');
       Winmovobj.Move(15,17);
       Winmovobj.Print;
       readln;
      End.
Добавлено через 17 часов 14 минут
что не кто не знает?(((

Добавлено через 8 часов 15 минут
Ну блин помогите!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2011, 18:27
Ответы с готовыми решениями:

Как построить экземпляр дочернего класса на основе готового экземпляра базового класса?
Если уже есть готовый объект базового класса. Могу я построить экземпляр дочернего на его основе, (напр., получив такой базовый объект...

Построить класс треугольник и на его основе создать класс параллелограмм, используя механизм наследования
Построить класс треугольник и на его основе создать класс параллелограмм, используя механизм наследования

Класс: Создать на основе базового класса Car три класса-автомобиля: Тойота, Феррари, Бугатти.
Всем привет! На днях дали эту задачу, пытался делать по-разному не хоть убей не могу сделать. К сожалению я пропустил пары по классам. А по...

2
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
15.10.2011, 19:54
Цитата Сообщение от P.S.I.X. Посмотреть сообщение
Помогите плиз, а то не как не получается(
Для того чтобы хоть сколько-нибудь рассчитывать на помощь, неплохо бы для начала указать, что именно у тебя не получается.
0
0 / 0 / 3
Регистрация: 12.06.2011
Сообщений: 71
16.10.2011, 15:40  [ТС]
Не получается переместить окно с символом на определенное количество позиций

Добавлено через 15 часов 46 минут
Получилось, нужно было так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Program mov;
Uses crt;
 Type
  Win = object
  x1,x2,y1,y2: byte;
  Color: byte;
  Procedure Init(ax1,ay1,ax2,ay2,aColor:byte);
  Procedure MakeWin;
  Procedure Print;
 End;
  Procedure Win.Init(ax1,ay1,ax2,ay2,aColor:byte);
   begin
    x1:=ax1;y1:=ay1;x2:=ax2;y2:=ay2;
    Color:=aColor;
   end;
  Procedure Win.MakeWin;
   begin
    Window(x1,y1,x2,y2);
    TextBackGround(Color);
    ClrScr;
   end;
  Procedure Win.Print;
   begin
    case color of
           1:writeln('–ўҐв нЄа*** - CЁ*Ё©');
           2:writeln('–ўҐв нЄа*** - ‡Ґ«Ґ*л©');
           3:writeln('–ўҐв нЄа*** - ѓ®«гЎ®©');
           4:writeln('–ўҐв нЄа*** - Ља*б*л©');
           5:writeln('–ўҐв нЄа*** - ђ®§®ўл©');
           6:writeln('–ўҐв нЄа*** - ‡®«®в®©');
           7:writeln('–ўҐв нЄа*** - ЃҐ«л©');
           8:writeln('–ўҐв нЄа*** - —Ґа*л©');
          end;
          writeln('ђ*§¬Ґа Ї® Ј®аЁ§®*в*«Ё - ',x2-x1+1,' ђ*§¬Ґа Ї® ўҐавЁЄ*«Ё - ',y2-y1+1);
       end;
   Type
    Winsymb = object(Win)
     CSymb,Line,Row:byte;
     Symb:char;
     procedure Init(ax1,ay1,ax2,ay2,aColor,aCSymb,aLine,aRow:byte;aSymb:char);
      procedure print;
     end;
      procedure WinSymb.Init(ax1,ay1,ax2,ay2,aColor,aCSymb,aLine,aRow:byte;aSymb:char);
       begin
        Win.Init(ax1,ay1,ax2,ay2,aColor);
        CSymb:=aCSymb;Line:=aLine;Row:=aRow;Symb:=aSymb;
        textcolor(Csymb);
        gotoxy(Line,Row);
       end;
        procedure winsymb.print;
       begin
        gotoxy(Line,Row);
        writeln (symb);
       end;
    Type
  WinMov = object(Winsymb)
     dx,dy:byte;
     procedure move(adx,ady:byte);
     procedure MakeWin;
  end;
    procedure winmov.move(adx,ady:byte);
     begin
      dx:=adx;dy:=ady;
     end;
    Procedure winmov.MakeWin;
     begin
        Window(x1+dx,y1+dy,x2+dx,y2+dy);
        TextBackGround(Color);
        ClrScr; 
      end;
  Var
     Winmovobj:Winmov;
      Begin
      clrscr;
       Winmovobj.Init(1,1,44,20,1,2,18,7,'л');
       Winmovobj.Move(15,17);
       Winmovobj.MakeWin;
       Winmovobj.Print;
       readln;
      End.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2011, 15:40
Помогаю со студенческими работами здесь

Класс-наследник на основе базового класса
-----

Организовать на основе существующего класса произвольный класс
осваиваю классы, но пока сложновато. Помогите пожалуйста с заданием: необходимо изменить код программы, организовав на основе существующего...

Определить на основе абстрактного класса производный класс
1. Определить произвольный базовый класс, содержащий конструктор, деструктор, данные (поля) и два метода класса, которые изменяют поля...

На основе класса Vector разработать класс Matrix
На основе класса Vector разработать класс Matrix (матрица, физически представляющая собой вектор, состоящий из заданного числа векторов)....

Я хочу создать пользовательский класс в C#, на основе класса button
Обращаюсь к профессионалам, имеющим опыт разработки приложений на C#, связанных с базами данных. Если честно, в C# я новичок, впрочем как и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru