Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Взаємодія програми з операційною системоюСодержание книги Поиск на нашем сайте Програмування під DOS зв'язано з частим звертанням до ресурсів, наприклад, до відеокарти, прямо без виклику функцій операційної системи, що підвищує швидкодію програм за рахунок відмовлення від універсальності. Однак такий підхід до програмування в Windows неможливий, тому що може порушити цілісність інших додатків. Ще один недолік прямого підходу складається в необхідності самостійної роботи з пристроями, що іноді істотно відрізняються один від одного, особливо в даний час. В Windows ця проблема вирішена за допомогою універсального програмного інтерфейсу операційної системи, що забезпечує однаковий доступ до пристроїв одного типу за допомогою набору так званих API-функцій (від англ. API - Application Programming Interface - інтерфейс прикладного програмування). Наприклад, незалежно від відеокарти, встановленої на конкретному комп'ютері, для виведення зображення використовуються ті самі функції. Незважаючи на зниження швидкодії, визване більш складним шляхом при виконанні операції «програма - операційна система -драйвер - пристрій», програма стає абсолютно переносною, тобто може бути запущена на комп'ютері з будь-якою конфігурацією. Таким чином, Windows-програми значно тісніше зв'язані з операційною системою, чим програми, що працюють у DOS. Програма-тест unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Button2: TButton; Button3: TButton; Memo2: TMemo; Label3: TLabel; Label4: TLabel; Edit2: TEdit; Label5: TLabel; Edit3: TEdit; Label6: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm} Var k,km,m: Integer; Sk,Skm: String; procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; Memo2.Clear; Edit1.Clear; Edit2.Clear; Edit3.Clear; Memo1.ReadOnly:= True; Memo2.ReadOnly:= True; Edit2.ReadOnly:= True; Edit3.ReadOnly:= True; k:= 1; m:= 0; Label3.Caption:= ''; Label3.Caption:= 'Основні елементи програми:'; Memo1.Lines.Add('1. Дійсні'); Memo1.Lines.Add('2. Цілочисельні'); Memo1.Lines.Add('3. Літерні'); Memo1.Lines.Add('4. Оператори, ключові слова, директиви компілятору'); Memo1.Lines.Add('5. Логічні'); end;
procedure TForm1.Button1Click(Sender: TObject); Var i: Integer; Si: String; begin Si:= Edit1.Text; i:= StrToInt(Si); Case k of 1: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 2: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 3: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 4: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; end; 5: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 6: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 7: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 8: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 9: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 10: Case I of 1: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 11: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 12: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 13: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; end; 14: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 4: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; 15: Case I of 1: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 2: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 3: Begin Memo2.Lines.Add (' Відповідь вірна'); m:= m + 1; End; 4: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; 5: Begin Memo2.Lines.Add (' Відповідь не вірна'); Memo2.Lines.Add ('Опрацюйте матеріал спочатку'); End; end; end; end; procedure TForm1.Button3Click(Sender: TObject); begin Close; end;
procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Clear; Memo2.Clear; Edit1.Clear; Label3.Caption:= ''; k:= k + 1; Case k of 2: Begin Label3.Caption:= 'З чого складається програма?'; Memo1.Lines.Add('1. StringAnsi'); Memo1.Lines.Add('2. StringShort'); Memo1.Lines.Add('3. З основної частини і декількох модулів'); Memo1.Lines.Add('4. Short'); Memo1.Lines.Add('5. WideShort'); End; 3: Begin Label3.Caption:= 'Яким ключовим словом починається заголовок програми?'; Memo1.Lines.Add('1. Статистичні і динамічні'); Memo1.Lines.Add('2. Формальні і статичні'); Memo1.Lines.Add('3. Типові і динамічні'); Memo1.Lines.Add('4. Program'); Memo1.Lines.Add('5. Логічні і формальні'); End; 4: Begin Label3.Caption:= 'Чим починається і закінчується розділ опису логіки програми?'; Memo1.Lines.Add('1. Об'+'"'+'єднання множин: +'); Memo1.Lines.Add('2. Пересічення множин: *'); Memo1.Lines.Add('3. Еквівалентність: ='); Memo1.Lines.Add('4. Перевірка входження: <='); Memo1.Lines.Add('5. Begin..End.'); End; 5: Begin Label3.Caption:= 'Який розділ програми є обовязковим?'; Memo1.Lines.Add('1. нефіксованої кількісті різних типів'); Memo1.Lines.Add('2. фіксованої кількісті тільки однакових типів'); Memo1.Lines.Add('3. розділ опису логіки програми'); Memo1.Lines.Add('4. нефіксованої кількісті однакових типів'); Memo1.Lines.Add('5. однакової кількісті різних типів'); End; 6: Begin Label3.Caption:= 'Яким ключовим словом починається розділ опису констант? '; Memo1.Lines.Add('1. Файлова константа'); Memo1.Lines.Add('2. Const'); Memo1.Lines.Add('3. Файловий оператор'); Memo1.Lines.Add('4. Файловий масив'); Memo1.Lines.Add('5. Файлові записи'); End; 7: Begin Label3.Caption:= 'Яким ключовим словом починається заголовок модуля?'; Memo1.Lines.Add('1. Дійсного типу'); Memo1.Lines.Add('2. Unit '); Memo1.Lines.Add('3. Типу множина'); Memo1.Lines.Add('4. Типу масив'); Memo1.Lines.Add('5. Файлового типу'); End; 8: Begin Label3.Caption:= 'Яким ключовим словом починається інтерфейсна секція?'; Memo1.Lines.Add('1. mass[1..5] of real'); Memo1.Lines.Add('2. real[1..5] of real'); Memo1.Lines.Add('3. interface'); Memo1.Lines.Add('4. readmass[1..5] of real'); Memo1.Lines.Add('5. matr[1..5] of real'); End; 9: Begin Label3.Caption:= 'Яким ключовим словом починається описова секція?'; Memo1.Lines.Add('1. 128'); Memo1.Lines.Add('2. Implementation'); Memo1.Lines.Add('3. 32767'); Memo1.Lines.Add('4. 65535'); Memo1.Lines.Add('5. 2147483647'); End; 10: Begin Label3.Caption:= 'Яким ключовим словом починається секція ініціалізації? '; Memo1.Lines.Add('1. initialization'); Memo1.Lines.Add('2. елементи другої множини, що не містяться в першій множині'); Memo1.Lines.Add('3. елементи множини, що містяться в другій множині'); Memo1.Lines.Add('4. елементи множини, що містяться в першій множині'); Memo1.Lines.Add('5. елементи першої множини, що містяться в другій множині'); End; 11: Begin Label3.Caption:= 'Яким ключовим словом починається секція деініціалізації?'; Memo1.Lines.Add('1. одним'); Memo1.Lines.Add('2. finalization'); Memo1.Lines.Add('3. трьома'); Memo1.Lines.Add('4. чотирма'); Memo1.Lines.Add('5. п'+'"'+'ятьма'); End; 12: Begin Label3.Caption:= 'Яка схема програм реалізується у Windows?'; Memo1.Lines.Add('1. 4 Гб'); Memo1.Lines.Add('2. Керованих подіями'); Memo1.Lines.Add('3. 512 Кб'); Memo1.Lines.Add('4. 256 Кб'); Memo1.Lines.Add('5. 64 Кб'); End; 13: Begin Label3.Caption:= 'Як розшифровується абревіатура API?'; Memo1.Lines.Add('1. LengthSet'); Memo1.Lines.Add('2. SetString'); Memo1.Lines.Add('3. StringSet'); Memo1.Lines.Add('4. StringLength'); Memo1.Lines.Add('5. Інтерфейс прикладного програмування'); End; 14: Begin Label3.Caption:= 'Який розділ програми є обовязковим?'; Memo1.Lines.Add('1. f1: TextFile'); Memo1.Lines.Add('2. f2: File of integer'); Memo1.Lines.Add('3. f3: File of real'); Memo1.Lines.Add('4. Begin..End.'); Memo1.Lines.Add('5. f5: System.Text'); End; 15: Begin Label3.Caption:= 'Яким ключовим словом починається розділ опису типів?'; Memo1.Lines.Add('1. Low'); Memo1.Lines.Add('2. SetLow'); Memo1.Lines.Add('3. Type'); Memo1.Lines.Add('4. High'); Memo1.Lines.Add('5. LowHigh'); End;
end; if k > 15 then Begin if (m>=0)and(m<4) then km:= 1; if (m>=4)and(m<7) then km:= 2; if (m>=7)and(m<9) then km:= 3; if (m>=9)and(m<12) then km:= 4; if (m>=12)and(m<=15) then km:= 5; Str(km:7,Skm); Edit3.Text:= Skm; Exit; End; Sk:= IntToStr(k); Edit2.Text:= Sk; Edit1.SetFocus; Form1.Button1.Enabled:= False; end;
procedure TForm1.FormActivate(Sender: TObject); begin Edit1.SetFocus; Sk:= IntToStr(k); Edit2.Text:= Sk; Form1.Button1.Enabled:= False; end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['1'..'5']) then Begin Key:= #0; Beep; Exit; End; Form1.Button1.Enabled:= True;
end;
end.
|
||
|
Последнее изменение этой страницы: 2020-03-02; просмотров: 162; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |