пятница, 22 февраля 2013 г.

Оформление пользовательского интерфейса в Lazarus

Общие правила описаны вот в этом сообщении.
  1. Настроить границу окна: Form1.BorderStyle
    bsSizeAble - размер окна можно менять;
    bsSingle - граница окна не изменяемая.
  2. Спрятать или показать иконки свернуть/развернуть/закрыть/помощь:
    Form1.BorderIcons:=[biMaximize, biMinimize,biSystemMenu];
    перечисляем включенные иконки: "Развернуть," "Свернуть", "Закрыть".
  3. Выравнивать компонент на форме(панели): свойство Align:
    alNone - по умолчанию;
    alTop - выровнять по верхней границе;
    alBottom - по нижней границе;
    alLeft - по левой границе;
    alRight - по правой границе;
    alClient - разметить на всей форме (панели).
  4. Видимость компонента на форме: свойство Visible.

Настройка параметров проекта

Меню "Проект" - "Параметры проекта":

  1. Заголовок: имя запускаемого приложением процесса;
  2. Значок: иконка, отображаемая на верхней границе окна.


понедельник, 11 февраля 2013 г.

Логические задачи


  1. В финале турнира Российской Армии по шахматам встретились представители шести воинских званий: майор, капитан, лейтенант, старшина, сержант и ефрейтор, причем разных специальностей: летчик, танкист, артиллерист, минометчик, сапер и связист. Определите специальность и звание каждого из шахматистов по следующим данным: 1) в первом туре лейтенант выиграл у летчика, майор — у танкиста, а сержант — у минометчика; 2) во втором туре капитан выиграл у танкиста; 3) в третьем и четвертом турах минометчик из-за болезни не участвовал в турнире, поэтому свободными от игры оказались капитан и ефрейтор; 4) в четвертом туре майор выиграл у связиста; 5) победителями турнира оказались лейтенант и майор, а хуже всех выступил сапер.
  2. Комендант переселял студентов на время ремонта общежития. Дело это не простое. Посудите сами. На очередную комнату было 8 кандидатов, а поселить в нее можно было только четырех. Пошел комендант расспрашивать студентов, кто с кем хочет жить. Вот что он услышал:
    Андрей согласен на любых соседей. Борис без Кости не переселится. Костя не хочет жить в одной комнате с Василием. Василий согласен жить с кем угодно.
    Дима не будет переселяться без Юры.  Федя не будет без Гриши жить в одной комнате с Димой, а без Димы не будет жить в одной комнате с Костей. Гриша не хочет, чтобы его соседями были и Борис и Костя вместе, а кроме того, он не желает жить в одной комнате ни с Андреем, ни с Василием.
    Юра дает согласие переехать в новую комнату, если туда же переберутся либо Борис, либо Федя. Кроме того, Юра не будет жить в одной комнате с Костей, если туда не переедет Гриша, и не желает жить в одной комнате ни с Андреем, ни с Василием. "Задали они мне задачу", - подумал комендант. Но в конце концов сумел учесть все пожелания. Каким образом?
  3. Поездная бригада состоит из кондуктора, проводника, машиниста и помощника машиниста. Их зовут Андрей, Петр, Дмитрий, Трофим.
    Дмитрий старше Андрея.
    У кондуктора нет родственников в бригаде.
    Машинист и помощник машиниста - братья. Других братьев у них нет.
    Дмитрий - племянник Петра.
    Помощник машиниста - не дядя проводника, а проводник - не дядя машиниста.
    Кто в качестве кого работает и какие родственные отношения существуют между членами бригады?
  4. В одном городе живут 5 человек. Их имена Леонид, Миха­ил, Николай, Олег и Петр. Их фамилии: Атаров, Бартенев, Кленов, Данилин и Иванов.
    Бартенев знаком только с двумя из перечисленных мужчин.
    Петр знаком со всеми, кроме одного.
    Леонид знает только одного из всех.
    Данилин и Михаил незнакомы. Николай и Иванов знают друг друга.
    Михаил, Николай и Олег знакомы между собой.
    Атаров незнаком только с одним из всех. Только один из всех знаком с Кленовым.
    Назовите имена и фамилии каждого? С кем знаком каждый из них?

пятница, 1 февраля 2013 г.

Основы работы в C++

Операции ввода-вывода

Для организации стандартного ввода-вывода данных в C++, необходимо подключить библиотеку iostream:
    #include <iostream>
Для вывода данных на экран используется поток вывода cout и оператор (<<), применяемый к этому потоку:
cout << "Hello world!"; //Выводит на экран текст Hello world!
Для вывода  нескольких переменных и констант разных типов в cout, разделяем их оператором (<<):
    int a=1, b=5;
    bool flag = true;
    cout << "Integer variables: " << a << " " << b << " Boolean variables: " << flag;
    return 0; 
На экран будет выведен: 
   Integer variables: 1 5 Boolean variables: 1
Для перевода на новую строку при выводе используем команду endl:
   cout << "Hello world!"<<endl;
Задать параметры потока вывода можно с помощью следующих функций:
   cout.width(n); // при следующем выводе под переменную будет отведено n знакомест
В том случае, если выводится вещественная переменная, содержащая больше чем n цифр, ее значение округлиться до n значащих цифр. 
   cout.precision(n); //задает точно для вывода вещественного числа
Продолжение следует ....