Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/50: Рейтинг темы: голосов - 50, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 14

Нарисовать смайлик

09.03.2011, 11:47. Показов 10467. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток дорогие форумчани и знатоки!
Помогите пожалуйста написать одну прогу!
Условия программы: С помощью Турбо паскаля 7.0 нарисовать 2D смайлик ( x0=0; y0=0; r=3(указаны начальные координаты и радиус данного смайлика)) и при нажатии клавиш (стрелочки лево, верх, право и низ) изображение смещалось в нужную сторону на 10

P.S. Если можно то сделайте весь смайлик как единый объект

P.S.S. Если можно скиньте исходники до завтра
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2011, 11:47
Ответы с готовыми решениями:

Нарисовать в паскале квадратный смайлик
Добрый. помогите нарисовать в паскале квадратный смайлик. раземеры совершенно любые !! Проблема у меня заключается в том, что есть...

Нарисовать смайлик, двигающийся вверх-вниз
Которая будет рисовать смайлик и что-бы он перемещался с верху вниз

Перемещать смайлик с одной стороны экрана на другую (Borland Pascal)
Нужно написать программу, что бы веселое лицо(смайлик) двигалось с левой стороны экрана в правую, и на середине становилось грустным...

4
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.03.2011, 12:19
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Принцип такой. Только я радиус взял=8, при =3 фиг что нарисуешь, только кружок один.
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
uses graph,crt;
procedure Smail(x,y,r,c:integer);
begin
setcolor(c);
circle(x,y,r);
circle(x-3,y-3,2);
circle(x+3,y-3,2);
Arc(x,y+5,0,180,3);
end;
var x,y,r:integer;
    k:char;
begin
x:=0;
initgraph(x,y,'');
x:=getmaxX div 2;
y:=getmaxY div 2;
outtextXY(x-50,20,'Exit - Esc');
Smail(x,y,8,12);
repeat
if keypressed then
  begin
    k:=readkey;
    if k=#80 then
      begin
        delay(100);
        Smail(x,y,8,0);
        y:=y+10;
        Smail(x,y,8,12);
      end;
    if k=#72 then
      begin
        delay(100);
        Smail(x,y,8,0);
        y:=y-10;
        Smail(x,y,8,12);
      end;
    if k=#77 then
      begin
        delay(100);
        Smail(x,y,8,0);
        x:=x+10;
        Smail(x,y,8,12);
      end;
    if k=#75 then
      begin
        delay(100);
        Smail(x,y,8,0);
        x:=x-10;
        Smail(x,y,8,12);
      end;
    if k=#27 then exit;
  end;
until k=#27;
end.
2
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 14
09.03.2011, 13:03  [ТС]
Puporev, спасибо Вам большое! А не могли бы дать коментарии (если Вам не трудно) к срокам и блокам кода?
0
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
09.03.2011, 13:16
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

uses graph,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
48
49
50
51
52
53
54
55
//процедура рисавания смайла,
//параметры-координаты центра фигуры, радиус, цвет
procedure Smail(x,y,r,c:integer);
begin
setcolor(c);
circle(x,y,r);
circle(x-3,y-3,2);
circle(x+3,y-3,2);
Arc(x,y+5,0,180,3);
end;
var x,y,r:integer;
    k:char;
begin
x:=0;
initgraph(x,y,'');
x:=getmaxX div 2;
y:=getmaxY div 2;
outtextXY(x-50,20,'Exit - Esc');
Smail(x,y,8,12); //рисуем исходную фигуру
repeat  //повторяем
if keypressed then //если нажата клавиша
  begin
    k:=readkey; //читаем ее код
    if k=#80 then //стрелка вниз
      begin
        delay(100); //задержка изображения
        Smail(x,y,8,0); //рисуем цветом
        y:=y+10;//смещаем вниз
        Smail(x,y,8,12);//рисуем черным цветом-стираем
      end;
    if k=#72 then //вверх
      begin
        delay(100);
        Smail(x,y,8,0);
        y:=y-10;
        Smail(x,y,8,12);
      end;
    if k=#77 then//вправо
      begin
        delay(100);
        Smail(x,y,8,0);
        x:=x+10;
        Smail(x,y,8,12);
      end;
    if k=#75 then //влево
      begin
        delay(100);
        Smail(x,y,8,0);
        x:=x-10;
        Smail(x,y,8,12);
      end;
    if k=#27 then exit; //если Esc-выход
  end;
until k=#27; //пока не нажата Esc
end.
Все стандартные процедуры и функции добро пожаловать в Хелп, учебники и справочники.
1
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 14
09.03.2011, 13:21  [ТС]
Puporev, спасибо еще раз, выручили очень сильно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2011, 13:21
Помогаю со студенческими работами здесь

Нарисовать флаг, нарисовать график y=ctg x Нарисовать анимацию
Дело таково у меня сейчас практика, где я очень не успиваю сделать все свои задания... Большая просьба кто готов помочь, пишите а кто...

Нарисовать смайлик

Нарисовать смайлик
1) 2) 3)

Нарисовать смайлик в Codebloks
Добрый вечер, мне очень нужна ваша помощь в написании программы с графикой и отладкой кода. Задание: В соответствии с условиями задачи,...

Работа с графикой в Codeblock - C++. Нарисовать смайлик!
Здравствуйте, вот наткнулся на ваш форум, и мне нужна ваша помощь. Я не долго изучаю язык С++, но с графикой не сталкивался, и если честно,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru