1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Pascal ёпта

Тема в разделе "Помощь по всем вопросам.", создана пользователем трахтенберг, 15 ноя 2013.

  1. TopicStarter Overlay
    трахтенберг

    трахтенберг

    Регистрация:
    17 дек 2012
    Сообщения:
    272
    Симпатии:
    197
    Всем привет. Помогите с задачкой по паскалю:

    [​IMG]
     
    Метки:
  2. deep_fox

    deep_fox Гость

    Чтобы выполнить эту задачу, достаточно иметь представление о том, что такое переменные, цикл, тип integer и char. Остаётся разобраться со следующими неимоверно критическими проблемами:
    1. Как считывать состояние клавиш
    2. Как рисовать окружность в графическом режиме
    Что, даже при практически нулевом знании языка, легко выясняется парой поисковых запросов.

    Покажите код: что конкретно не получается? Есть есть проблемы - помогу. Если нужно просто "сдать училке работу, чтобы отвязалась" - извините, но форум создан не для этого.

    Чтобы попасть в ВИП-группу нужно быть двоечником?
    В нашем государстве есть возможность бесплатного образования (что для многих людей, даже в западных странах, порой является мечтой). Так зачем учиться, если нету интереса? Хоть бы для приличия пальцем пошевелили и что-нибудь попытались сделать сами. Диагностирую у вас лень в последней стадии.
     
  3. Alex-ey

    Alex-ey

    Регистрация:
    26 май 2012
    Сообщения:
    513
    Симпатии:
    323
    Код:
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key=190 then r:=r+5;  // если нажата больше то увеличиваем
    if key=188 then r:=r-5;  // иначе уменьшаем
    canvas.fillrect(canvas.cliprect);  // очищаем канву формы
    Form1.Canvas.Ellipse(100-r,100-r,100+r,100+r);  // рисуем кружочек
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    r:=30;  // задаем стартовое значение радиуса
    end;
    --- добавлено: 15 ноя 2013 в 20:36 ---
    Please login or register to view links

    А причем тут данная задачка и знание типа char ?
    А циклы тут и рядом не стояли!
    --- добавлено: 15 ноя 2013 в 20:41 ---
    Немного повеселиться нужно, поэтому кидай на форму таймер с интервалом 50 и пиши так:
    Код:
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    if q=0 then r:=r+5 else r:=r-5;
    if abs(r)>=100 then if q<>0 then q:=0 else q:=1;
    canvas.fillrect(canvas.cliprect);
    Form1.Canvas.Ellipse(100-r,100-r,100+r,100+r);
    end;
    Веселье на 15 секунд гарантированно!
     
    • Like Like x 4
  4. Agulzex

    Agulzex

    Регистрация:
    23 окт 2012
    Сообщения:
    411
    Симпатии:
    375
    ты ему в делфях написал. а ему наверн надо в каком нить турбо паскале)))):D изучал в 9 классе. помог бы. но хуй помню
     
  5. TopicStarter Overlay
    трахтенберг

    трахтенберг

    Регистрация:
    17 дек 2012
    Сообщения:
    272
    Симпатии:
    197
    это делфи, чувак :D
    PascalABC у нас :(
     
    • Like Like x 1
  6. Alex-ey

    Alex-ey

    Регистрация:
    26 май 2012
    Сообщения:
    513
    Симпатии:
    323
    А как рисовать окружности в PaskalABC ?
    Это же консольные програмки!
     
  7. deep_fox

    deep_fox Гость

    В его учебной программе на паскале, почти уверен, не подразумевается использование функционала событий (и разного рода таймеров, собственно). Так что предполагается, что состояние клавиш будет считываться в просто в цикле.
    А для хранения кодов ASCII есть тип char.

    В "Paskal" есть графический режим. :)
    В Pascal ABC нужно подключить в uses-ах "GraphABC".
    Ещё вопросы?

    Проблема у Тратенберга не с паскалем/неистово сложным заданием/особенностями реализации, а с ленью и наглостью.
    Alex-ey, не стоит потакать людям в таких случаях: это медвежья услуга.
     
  8. killer17

    killer17

    Регистрация:
    16 янв 2013
    Сообщения:
    22
    Симпатии:
    36
    Если все правильно понял, то вот:

    Код:
    uses crt, graph;
    var d,m,r:integer;
        ch:char;
    begin
    clrscr;
    d:=detect;
    initgraph(d,m,'C:\Program Files (x86)\SchoolPak\pak\BP'); {Путь к драйверу}
    setcolor(12); {Цвет окружности}
    r:=20; {Первоначальный радиус}
    circle(100,100,r); {Рисуем окружность в координатах 100 100}
    while ch<>#27 do    {Пока не нажата клавиша Esc}
    begin
        ch:=readkey;    {Считываем нажатие}
        if ch='<' then r:=r-5; {Управление радиусом}
        if ch='>' then r:=r+5;
        clrscr;        {Отчищаем экран и рисуем окружность с новым радиусом}
        circle(100,100,r);
    end;
    end.
    P.S. Писал в турбо паскаль
     
    • Like Like x 1

Поделиться этой страницей

Загрузка...