Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 111; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.210.196 (0.007 с.) |