0 / 0 / 0
Регистрация: 13.09.2017
Сообщений: 1
1

Модуль CRT: человечек, состоящий из звёздочек, двигает конечностями

13.09.2017, 19:36. Показов 513. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я студент и задали написать код с модулем uses crt и циклом i где человечек состоящий из звёздочек двигает конечностями, но везде это делают через Graph, а препод просит через crt
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2017, 19:36
Ответы с готовыми решениями:

Показать на экране прямоугольник, состоящий из звёздочек
Показать на экране прямоугольник размером MxN, состоящий из звёздочек. Затем сделать то же самое,...

Модуль CRT
У меня есть такого вида меню: uses crt; var s,s1,s2,s3,s4:string; x,y:integer; kod:char; begin...

Модуль CRT
Задание: 1. Напишите 3 подпрограммы, каждая из которых будет выдавать заданную ей строку в...

Модуль Crt
1. Сгенерировать случайным образом и вывести на экран 8 окон разного цвета и размера. ...

9
5077 / 2649 / 2349
Регистрация: 10.12.2014
Сообщений: 10,024
14.09.2017, 06:30 2
Цитата Сообщение от NiceDay1629 Посмотреть сообщение
Я студент
Молодец!
Цитата Сообщение от NiceDay1629 Посмотреть сообщение
задали написать код
Всем студентам что-то да задают.

А в чём, собственно, вопрос?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.09.2017, 15:35 3
Человечек поднимает правую руку и правую ногу, напишите процедуру с2 для левых конечностей, мне надоело, да и хоть какая-то практика будет.
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
uses crt;
procedure c0;
begin
for var i:=1 to 7 do
 begin
  gotoXY(11,i);
  write('*');
 end;
for var i:=1 to 5 do
 begin
  gotoXY(i+8,3);
  write('*');
 end; 
for var i:=1 to 3 do
 begin
  gotoXY(9,i+2);
  write('*');
 end;  
for var i:=1 to 3 do
 begin
  gotoXY(13,i+2);
  write('*');
 end;   
for var i:=1 to 3 do
 begin
  gotoXY(10,i+6);
  write('*');
 end; 
for var i:=1 to 3 do
 begin
  gotoXY(12,i+6);
  write('*');
 end;   
gotoXY(25,23); 
end;
procedure c1;
begin
for var i:=1 to 7 do
 begin
  gotoXY(11,i);
  write('*');
 end;
for var i:=1 to 6 do
  begin
   gotoXY(i+3,3);
   write('*');
  end; 
for var i:=1 to 3 do
 begin
  gotoXY(13,i+2);
  write('*');
 end;    
for var i:=1 to 5 do
 begin
  gotoXY(i+7,7);
  write('*');
 end;   
for var i:=1 to 3 do
 begin
  gotoXY(12,i+6);
  write('*');
 end;    
gotoXY(25,23); 
end;
begin
for var i:=1 to 3 do
 begin
  clrscr;
  c0;
  delay(1000);
  clrscr;
  c1;
  delay(1000);
  clrscr;
  c0;
 end;
 
end.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.09.2017, 16:19 4
Мне кажется, можно было бы применить алгоритм рисования линии, например - DDA (из-за его простоты).
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
uses System;
 
begin
  while true do
  begin
    System.Console.Title := 'Console';
    
    System.Console.Write('X: ');
    var x := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('Y: ');
    var y := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('X2: ');
    var x1 := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('Y2: ');
    var y1 := System.Convert.ToInt32(System.Console.ReadLine());
    
    var l := System.Math.Max(Math.Abs(x1 - x), Math.Abs(y1 - y));
    var incX := (x1 - x) / l;
    var incY := (y1 - y) / l;
    
    var cx := x * 1.0;
    var cy := y * 1.0;
    
    System.Console.BackgroundColor := System.ConsoleColor.Green;
    
    while not ((cy = y1) and (cx = x1)) do
    begin
      System.Console.SetCursorPosition(System.Convert.ToInt32(cx), System.Convert.ToInt32(cy));
      System.Console.Write(' ');
      cx += incX;
      cy += incY;
    end;
    
    System.Console.ReadKey();
    System.Console.BackgroundColor := System.ConsoleColor.Black;
    Console.Clear();
  end;
end.
Добавлено через 34 секунды
Оформите алгоритм в виде процедуры. А потом - рисуйте на здоровье.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.09.2017, 16:20 5
А где модуль CRT?
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.09.2017, 16:21 6
Crt не стал использовать. Мне кажется, что надо приучаться работать напрямую с System.Console, а не с урезанным вариантом. Это умение пригодится, например, в C#.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.09.2017, 16:21 7
Да и символа * не видно.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.09.2017, 16:23 8

Не по теме:

Хотя... Если для автора темы легче Crt - пусть пока использует. Пока сказал потому, что рано или поздно забыть Crt придется.



Добавлено через 34 секунды
Цитата Сообщение от Puporev Посмотреть сообщение
Да и символа * не видно.
Линия рисуется просто зеленым цветом. Подкорректировать код можно очень просто...
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.09.2017, 16:23 9
Volobuev Ilya, Найди препода автора темы и объясняй ему. А учатся программировать кое-где на Роботах и Черепашках.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.09.2017, 17:20 10
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
uses System;
 
begin
  System.Console.ForegroundColor := System.ConsoleColor.Green; // <-- Раз.
  while true do
  begin
    System.Console.Title := 'Console';
    
    System.Console.Write('X: ');
    var x := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('Y: ');
    var y := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('X2: ');
    var x1 := System.Convert.ToInt32(System.Console.ReadLine());
    System.Console.Write('Y2: ');
    var y1 := System.Convert.ToInt32(System.Console.ReadLine());
    
    var l := System.Math.Max(Math.Abs(x1 - x), Math.Abs(y1 - y));
    var incX := (x1 - x) / l;
    var incY := (y1 - y) / l;
    
    var cx := x * 1.0;
    var cy := y * 1.0;
    
    while not ((cy = y1) and (cx = x1)) do
    begin
      System.Console.SetCursorPosition(System.Convert.ToInt32(cx), System.Convert.ToInt32(cy));
      System.Console.Write('*');  // <-- Два.
      cx += incX;
      cy += incY;
    end;
    
    System.Console.ReadKey();
    //System.Console.BackgroundColor := System.ConsoleColor.Black; // <-- Три.
    Console.Clear();
  end;
end.
Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
А учатся программировать кое-где на Роботах и Черепашках.
Я не испытываю положительных чувств к данным модулям. Но если написал - зачем нам то об этом говорить?

Добавлено через 53 минуты
Через Crt:
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
uses Crt;
 
function ReadCoordinate(): integer;
begin
  Readln(Result);
end;
 
procedure DrawLine();
begin
  while true do
  begin
    Write('X: ');
    var x := ReadCoordinate();
    Write('Y: ');
    var y := ReadCoordinate();
    Write('X2: ');
    var x1 := ReadCoordinate();
    Write('Y2: ');
    var y1 := ReadCoordinate();
    
    var l := Max(Abs(x1 - x), Abs(y1 - y));
    var incX := (x1 - x) / l;
    var incY := (y1 - y) / l;
    
    var cx := x * 1.0;
    var cy := y * 1.0;
    
    TextBackground(LightGreen);
    
    while not ((cy = y1) and (cx = x1)) do
    begin
      GotoXY(Round(cx), Round(cy));
      Write(' ');
      cx += incX;
      cy += incY;
    end;
    
    ReadKey();
    TextBackground(Black);
    ClrScr();
  end;
end;
 
begin
  SetWindowCaption('Console');
  DrawLine();
end.
0
14.09.2017, 17:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2017, 17:20
Помогаю со студенческими работами здесь

Модуль crt
Написать программу которая двигала бы символ ( '*') по экрану по нажатию клавиш ( желательно...

модуль crt
Написать программу воспроизводящую произвольные 2 мелодии (по 10-20 нот каждая).

Модуль Crt....
немогу никак доделать задачку ... &quot;. Создать программу «Электронно - музыкальный инструмент»...

Модуль Crt
Нужно написать программу с использованием модуля CRT: Организовать перемещение буквы «Q»...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru