Ооп основано на понятиях класса и экземпляра





Скачать 176.25 Kb.
НазваниеОоп основано на понятиях класса и экземпляра
Дата публикации07.10.2013
Размер176.25 Kb.
ТипКонспект
100-bal.ru > Информатика > Конспект



Конспект и задания по основам программирования на Delphi

1. Общие определения

Объектно-ориентированное программирование (ООП) основано на понятиях класса и экземпляра. Класс представляет собой объединенный набор данных и подпрограмм, предназначенных для обработки этих данных. Например, класс данных «ученик» мог бы включать набор переменных, содержащих информацию об ученике (имя и фамилия, класс, в котором он учится, баллы по предметам и т.д.) – их называют свойства класса данных, и набор операций (их называют методами), предназначенных для управления данными класса «ученик» (перевод в другой класс, выставление оценки и т.д.). Экземпляр представляет собой реализацию класса, например, ученик Иванов реализует класс "ученик". Общие принципы ООП:

Инкапсуляция – объединение данных и методов их обработки; разделение доступа к данным между классами.

Наследование – классы объектов могут наследовать свойства друг друга; пример – классы «ученик» и «преподаватель» наследуют некоторые свойства класса «человек».

Полиморфизм – методы объектов могут переопределяться. Пример – классы объектов «прямоугольник» и «круг» могут иметь разные методы рисования с одним и тем же именем Draw()

В ООП программа представляет собой не последовательно исполняемый набор инструкций, а совокупность подпрограмм, реагирующих на внешние события, такие как нажатие клавиши, кнопки мыши и т.д.

Все современные языки программирования основаны на концепции ООП, позволяющий значительно увеличить сложность программ и сократить время их разработки за счет более эффективного повторного использования кода.

2. Типы файлов Delphi:

Текстовые: *.dpr – файл проекта, *.pas – исходные тексты модулей; *.dof – опции компилятора

Двоичные: *.dcu – откомпилированный файл модуля; *.dfm – файл формы; *.res – файл ресурсов программы, *.exe – файл приложения (жирным выделены типы файлов, стирать которые не стоит для сохранения целостности проекта). Таким образом, Delphi создает довольно много файлов и при разработке следует всегда соблюдать принцип "один проект – одна папка".

3. Окно Delphi:



1. Окно формы – главное окно нашей будущей программы;

2. Окно редактора (окно текстов программ) – по одной закладке на каждый программный модуль;

3. Окно Инспектора Объектов – в этом окне мы управляем свойствами (вкладка Properties) и событиями (Events) объекта, выбранного в окне формы;

4. Панель инструментов (SpeedBar);

5. Палитра компонентов (Component Palette) – готовые элементы интерфейса для программы (кнопки, переключатели, поля ввода, диалоги и т.п.)

Меню View – его пункты позволяют включить и выключить отдельные окна Delphi:

Project Manager - включить окно «состав проекта» (список файлов)

Units – вывести окно текстов программ

Forms – вывести список форм

Project Source - добавить в окно формы файл проекта *.dpr

Object Inspector – включить инспектор объектов

SpeedBar – включить кнопки панели инструментов

Component Palette – включить палитру компонентов

4. Файл проекта по умолчанию (Project1.dpr):

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

В простых проектах вмешательство в файл проекта и его редактирование, как правило, не требуются.

Текст модуля по умолчанию (Unit1.pas):

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

{элементы интерфейса – описания добавляются сюда автоматически}

Edit1: TEdit;

Button1: TButton;

{заголовки подпрограмм – добавляются сюда автоматически}

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

{здесь можно описать свои глобальные константы}

var

Form1: TForm1;

{здесь можно также описывать свои глобальные переменные}

implementation

{$R *.DFM}

{Здесь начинаются тексты подпрограмм модуля}

procedure TForm1.Button1Click(Sender: TObject);

begin {Подпрограмма-обработчик события OnClick создается автоматически при двойном щелчке по }

end; {элементу управления в окне формы – в данном случае щелчок был произведен по кнопке Button1}

end.

Таким образом, Delphi автоматически создает процедуры обработки событий от элементов управления, и от программиста требуется лишь написать соответствующий код. Имя Button1Click образовано системой от имени интерфейсного элемента (кнопки) Button1 и названия события OnClick.

5. Основные свойства формы (окна программы):

Name – имя, Caption – заголовок окна, Width, Height - ширина и высота, Font.Name – имя основного шрифта, Font.Size – размер основного шрифта, BorderIcons – вкл. или выкл. стандартные кнопки управления окном, BorderStyle – стиль границы окна (значение bsSizeable – размер можно менять, bsDialog - нет), Position – позиция окна при старте программы (poScreenCenter - по центру экрана)

6. Стандартные компоненты интерфейса:

- выделенный компонент, свойства которого показаны в инспекторе объектов.

Общие свойства: Name – имя компонента, Left, Top – координаты левого верхнего угла компонента относительно клиентской части окна формы, Width, Height – ширина и высота компонента, Font.Name, Font.Size – имя и размер шрифта, Visible – видимость компонента, Enabled – доступность компонента, TabOrder – номер компонента в последовательности обхода клавишей Tab, Align – выравнивание компонента (значения alNone, alLeft, alTop, alRight, alBottom, alClient), Color – цвет области компонента

Пока мы будем использовать следующие компоненты:

Текстовая метка. Используется для создания надписей на форме. AutoSize – автоматический размер, Caption – текст метки, WordWrap – перенос по словам, TransParent – прозрачность фона метки;

Текстовое поле редактирования. Используется для ввода строки данных. Text – отображаемый текст, MaxLength – максимальная длина текста (0 – нет ограничений), ReadOnly – только для чтения, AutoSelect – выделять текст при переходе в поле

Многострочное текстовое поле. Используется для редактирования большого объема данных. Maxlength; ReadOnly; ScrollBars – показывать ли полосы прокрутки; Lines – контейнер для строк, содержащихся в поле. Его основные методы: Lines.Clear – очистить поле; Lines.Add(‘строка’) – добавить строку в конец; Lines.Insert(номер,строка) – вставить строку после строки с указанным номером (0 – в начало); Lines.Delete(номер) – удалить строку после строки с указанным номером (0 - первую); Lines.LoadFromFile('путь к файлу') – загрузить строки поля из файла; Lines.SaveToFile('путь к файлу') – сохранить строки в файл.

Кнопка. Как правило, нажатие кнопки запускает какую-либо процедуру обработки данных. Caption – надпись на кнопке.

Переключатель. Имея 2 состояния (включено и выключено), как правило, используется для включения какой-либо настройки в программе. Checked – состояние переключателя; Caption – название переключателя.

Список. Используется для выбора одного или более значений из заранее заданного набора вариантов. MultiSelect – можно ли выбирать несколько элементов (если да – при нажатой Ctrl); Sorted – сортировать ли список; ItemIndex – номер выбранного элемента (с 0); Items – контейнер для элементов списка; Items.Count – количество элементов; Items.Clear – метод для очистки списка; Items.Add(строка) – метод для добавления элемента; Items.Delete (номер) – удалить элемент с указанным номером (с 0); Items.Insert(номер;элемент) – вставить элемент перед элементом с указанным номером (с 0).

7. Типы и преобразования данных

В Delphi поддерживаются все базовые типы данных и операции Паскаля. Для строк допустимо сложение:

Var s,s2,name:string; Name:=’Иван’; S2:=’Привет,’+#13+Name;

Для преобразования типов используют следующие функции:

IntToStr (Выражение):String;

FloatToStr(Выражение):String;

FloatToStrF(Выражение,Формат,Точность,КоличествоЗнаков):String;

Формат – именованная константа (ffGeneral – общий числовой, ffExponent – научный, ffFixed – всегда с десятичной точкой, ffCurrency – денежный формат). Точность показывает количество знаков в дробной части, используемых в расчетах (используются значения 7,15,18). КоличествоЗнаков показывает отображаемое количество знаков в дробной части.

StrToInt (Строка):integer; - преобразование строки в целое число

StrToFloat (Строка):Extended; - преобразование строки в вещественное число

8. Ввод данных:

1) из диалогового окна сообщения:

Переменная:=InputBox (ЗаголовокОкна, Подсказка, ЗначениеПоУмолчанию)

s:=InputBox (‘Сантиметры и дюймы’,’Введите длину в сантиметрах:’,’’);

sm:=StrToFloat(s);

Кнопка OK: s=введенному значению

Кнопка Отмена: s=ЗначениеПоУмолчанию

2) из поля окна диалога: ввод осуществляется обращением к свойству Text этого поля

a:=StrToFloat(Edit1.Text);

3) из текстового файла, открытого для чтения

var f:TextFile;

AssignFile (f,’путь к файлу’); Reset (f); ReadLn (f,s); Edit1.Text:=s;

CloseFile(f);

9. Вывод данных:

1) В окно сообщения: ShowMessage (Сообщение);

MessageDlg (Сообщение, Тип, Кнопки, КонтекстСправки):integer;

Тип – это вид сообщения. Задается именованной константой: mtWarning (внимание), mtError (ошибка), mtInformation (сообщение), mtConfirmation (подтверждение), mtCustom (без значка).

Кнопки – список именованных констант в квадратных скобках. mbYes, mbNo, mbOK, mbCancel, mbHelp, mbAbort, mbRetry, mbIgnore, mbAll

Возвращаемое значение – также именовання константа: mrAbort, mrYes, mrOK, mrRetry, mrNo, mrCancel, mrIgnore, mrAll

2) в поле диалогового окна – Обращение к свойству Caption текстовой метки

Label1.Caption:=’Уравнение не имеет корней’;

Или к свойству Text поля ввода

Edit1.Text:=’OK’;

Или к свойству Lines многострочного поля:

Memo1.Lines.Clear;

Memo1.Lines.Add ('OK');

3) в текстовый файл, открытый для записи

10. События и обработка событий

Событие – реакция приложения на операции ввода (перемещение мыши, нажатие клавиши и т.п.). Приложение Delphi строится как набор реакций программы на те или иные события. Основные события:

OnClick – щелчок кнопкой мыши

OnDblClick – двойной щелчок кнопкой мыши

OnEnter – перед тем, как элемент получает фокус

OnError – элемент контроля обнаруживает ошибку

OnExit - перед тем, как элемент управления теряет фокус

OnKeyDown – при нажатии на клавишу

OnKeyPress – при нажатой клавише

OnKeyUp – при отпускании клавиши

OnMouseDown – при нажатии кнопки мыши

OnMouseMove – при перемещении мыши

OnMouseUp – при отпускании кнопки мыши

У формы есть дополнительные события:

OnActivate – перед тем, как форма получает управление

OnCreate – после того, как форма создается

OnClose – перед закрытием окна формы

OnDeactivate – перед тем, как форма теряет управление

OnDestroy – перед тем, как форма удаляется

OnPaint – после отрисовки формы

OnResize – при изменении размера окна формы

При двойном щелчке на событии в окне инспектора объектов создается пустая процедура-обработчик этого события.

11. Обработка исключений

Исключение – это возникшая в процессе выполнения программы ошибка (например, пользователь ввел недопустимое значение, произошло деление на ноль и т.п.) Основные исключения:

EOutOfMemory - не удалось выделить память

EInOutError – ошибка операции ввода или вывода

EConvertError - ошибка преобразования типа (например, при преобразовании строки в число)

EDivByZero - целочисленное деление на 0

EZeroDivide - вещественное деление на ноль

EIntOverflow - переполнение при работе с целыми числами

EOverflow - переполнение при работе с вещественными числами

EMathError - математическая ошибка

EListError - ошибка работы со списком

EFileNotFound – файл не найден

EInvalidFileName - указано неверное имя файла

EEndOfFile – попытка чтения за концом файла

EFCreateError - не удалось создать файл

EFOpenError - не удалось открыть файл

EPrinter - ошибка печати

ERangeError - индекс за пределами диапазона (например, выход за границу массива)

Обработка исключений выполняется конструкцией try-except. Рассмотрим ее на примерах:

procedure TForm1.Button1Click(Sender: TObject);

var a:real;

begin

try

a:=StrToFloat(Edit1.Text);

except

on EConvertError do ShowMessage ('Извините, '+ Edit1.Text +' – это не число');

end;

end;

еще пример:

try

{некие действия с файлом}

except

on E:EInOutError do

case E.ErrorCode of

2:MessageDlg(‘Файл не найден!’, mtWarning, [mbOk], 0);

3:MessageDlg(‘Путь не найден!’, mtWarning, [mbOk], 0);

32:MessageDlg(‘Ошибка совместного доступа!’, mtWarning, [mbOk], 0);

107:MessageDlg(‘Файл уже открыт!’, mtWarning, [mbOk], 0);

end;

end;
Приведем пример приложения, использующего изученные возможности Delphi (только основные подпрограммы).
function f(x:real):real;

begin

f:=sin(x)+1;

end;
procedure TForm1.Button1Click(Sender: TObject);

var a,b,x,fx:real;

s0,s:string;

begin

try

a:=StrToFloat(Text1.Text);

except

on EConvertError do begin

if Text1.Text='' then ShowMessage ('Введите значение A!')

else ShowMessage ('Ошибка: '+ Text1.Text +' - это не число');

Exit;

end;

end;

try

b:=StrToFloat(Text2.Text);

if a>=b then

ShowMessage ('a не должно быть больше b!')

else begin

Memo1.Lines.Clear;

x:=a;

while x<=b do begin

s0:=FloatToStrF(x,ffFixed,15,3);

fx:=f(x);

s:=FloatToStrF(fx,ffFixed,15,3);

Memo1.Lines.Add (s0+#9+s);

x:=x+0.1;

end;

end;

except

on EConvertError do begin

if Text2.Text='' then ShowMessage ('Введите значение B!')

else ShowMessage ('Ошибка: '+ Text2.Text +' - это не число');

Exit;

end;

end;

end;
12. Работа с таблицами

Панель Дополнительная (Additional): StringGrid – таблица . Основные свойства таблицы:

RowCount, ColCount – число строк и столбцов, включая заголовок

Row,Col – текущие строка и столбец, в которых находится курсор

ColWidths[], RowHeights[] – массивы ширины столбцов и высоты строк

Cells[столбец, строка] – данные ячейки таблицы (строковый тип)

FixedCols, FixedRows – число зафиксированных столбцов слева и строк сверху. Нумеруются с нуля, причем нулевые строка и столбец по умолчанию отведены для заголовков

Options – контейнер для настроек таблицы со значениями True/False (.goEditing – допустимость редактирования, goRowSizing, goColSizing – можно ли пользователю менять размеры строк и столбцов)

DefaultColWidth, DefaultRowHeight – ширина и высота ячейки по умолчанию

GridLineWidth –ширина линий, ограничивающих ячейки

Пример: Приложение для работы с таблицей успеваемости



unit Unit1;
interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, StdCtrls;

type TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;
var Form1: TForm1; implementation {$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);

begin

with StringGrid1 do begin

RowCount:=2;

ColCount:=5;

ColWidths[0]:=200; Cells[0,0]:='Фамилия';

ColWidths[1]:=100; Cells[1,0]:='Математика';

ColWidths[2]:=100; Cells[2,0]:='Информатика';

ColWidths[3]:=100; Cells[3,0]:='Иcтория';

ColWidths[4]:=100; Cells[4,0]:='Средний балл';

end;

end;
procedure TForm1.Button1Click(Sender: TObject); {Добавить}

var i:integer;

begin

StringGrid1.RowCount:=StringGrid1.RowCount+1;

for i:=StringGrid1.RowCount downto StringGrid1.Row do

StringGrid1.Rows[i]:=StringGrid1.Rows[i-1];

for i:=0 to StringGrid1.ColCount do

StringGrid1.Cells[i,StringGrid1.Row]:='';

end;
procedure TForm1.Button2Click(Sender: TObject); {Удалить}

var i:integer;

begin

if StringGrid1.RowCount>2 then begin

for i:=StringGrid1.Row to StringGrid1.RowCount do

StringGrid1.Rows[i]:=StringGrid1.Rows[i+1];

StringGrid1.RowCount:=StringGrid1.RowCount-1;

end;

end;
procedure TForm1.Button3Click(Sender: TObject); {Вычислить}

var i,j:integer; b:real; s:String;

begin

for i:=1 to StringGrid1.RowCount-1 do begin

b:=0;

for j:=1 to StringGrid1.ColCount-2 do

try

b:=b+StrToInt(StringGrid1.Cells[j,i]);

except

on EConvertError do begin

ShowMessage ('"'+StringGrid1.Cells[j,i]+'" - не число');

Exit;

end;

end;

Str ((b/(StringGrid1.ColCount-2)):4:2,s);

StringGrid1.Cells[StringGrid1.ColCount-1,i]:=s;

end;

end;

end.
13. Работа с рисунками

Панель Дополнительная: Image – рисунок . Основные свойства рисунка:

Picture – ссылка на файл с рисунком

AutoSize – переключатель автомасштабирования области вывода (Истина/Ложь)

Stretch – переключатель автоматического сжатия или растяжения картинки по размеру области вывода (Истина/Ложь)

TransParent – прозрачный фон (Истина/Ложь)

Picture.LoadFromFile (‘ПутьКФайлу’) – метод для загрузки рисунка из файла.

Типы загружаемых рисунков по умолчанию: BMP, ICO, WMF




Пример: закроем форму рисунком

procedure TForm1.FormActivate(Sender: TObject);

var BitMap:TBitmap;

begin

with Image1 do begin

AutoSize:=False;

Left:=0;

Top:=0;

Width:=Form1.ClientWidth;

Height:=Form1.ClientHeight;

Stretch:=True;

Picture.LoadFromFile ('c:\Windows\Паркет.bmp');

end;

end;
14. Работа с графикой в окне формы

Canvas – клиентская область формы; изучим ее основные свойства:

Brush – цвет и шаблон заполнения для кисти;

Brush.Color:=clYellow;

Brush.Style:=bsBdiagonal;

//Другие стили: сплошная - bsSolid нет заливки - bsClear

ClicpRect – координаты отсекающего прямоугольника на экране (только чтение)

Rectangle (ClipRect.Left,ClipRect.Top,ClipRect.Right,ClipRect.Bottom);

Var R: TRect;

R := Canvas.GetClientRect;

Canvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom);

CopyMode – режим вывода графики

cmSrcCopy – обычное наложение, cmNotSrcCopy – инверсия цвета, cmMergeCopy – наложение «И»

Font – шрифт для вывода на форму

With Canvas do begin

Font.Color:=clBlue;

Font.Name:=’Arial’;

Font.Size:=14;

Font.Style:=[fsItalic];

end;

Pen – тип карандаша для отрисовки линий и границ фигур

Pen.Width – ширина в пикселах, Color – цвет, Mode – режим наложения рисования линий (pmCopy, pmNotCopy, pmMerge), Style – тип линии (psSolid, psDash, psDot)

Pixels[x,y] – массив цветов пикселов

и методы :

Arc(Left,Top, Right,Bottom, x3, y3, x4, y4); рисует дугу

Left,Top, Right,Bottom, - координаты прямоугольника, в который вписана дуга, (x3,y3),(x4,y4) – через эти точки проходят прямые из центра эллипса, определяющие начало и конец дуги

Ellipse (Left,Top, Right,Bottom); рисует эллипс

FillRect – заливка области цветом кисти

Var R:TRect;

R:=Rect(20,20,150,150);

Canvas.Brush.Color:=clRed;

Canvas.FillRect (R);

LineTo (X,Y) – линия из позиции пера в точку (X,Y)

MoveTo (X,Y) – установить перо в точку (X,Y)

Polygon – отрисовка замкнутого прямоугольника

Canvas.Brush.Color:=clRed;

Canvas.Polygon ([Point(10,10),Point (30,10),Point(130,30)];

PolyLine – незамкнутый многогранник

Rectangle (x1,y1,x2,y2); прямоугольник по 2 указанным углам

TextHeight, TextWidth – определяют высоту и ширину строки в пикселах:

procedure TForm1.FormPaint(Sender: TObject);

var s:String;

begin

s:='Delphi';

with Canvas do begin

Pen.Color:=clRed;

Brush.Style:=bsClear;

TextOut (10,10,s);

Rectangle (10,10,10+TextWidth(s),10+TextHeight(s));

end;

end;

Draw – отрисовка графики на форме:

procedure TForm1.FormPaint(Sender: TObject);

var BitMap:TBitmap;

begin

Bitmap := TBitmap.Create;

Bitmap.LoadFromFile('c:\Windows\Паркет.bmp');

Canvas.Draw(0, 0, Bitmap);

Bitmap.Free;

end;
Варианты индивидуального задания № 1 по теме

«Разработка простого проекта Delphi»

Разработать форму и интерфейс приложения, реализовать алгоритмы решения задачи, проверить правильность работы программы.

Задача 1. Простое приложение.

1. Вводится денежная сумма в рублях и копейках. Программа печатает введенную сумму с правильной формой слов "рубли" и "копейки", например, "123 рубля 15 копеек".

2. Программа начисления торговой скидки. Вводится сумма покупок, программа выдает сумму к оплате с учетом того, что при покупке товара на сумму от 500 до 1000 руб. предоставляется скидка 5%, на сумму от 1001 до 10000 руб. – 7%, на сумму свыше 10000 руб. – 9%

3. Программа «Треугольники» определяет, может ли быть построен прямоугольный треугольник по заданным длинам сторон a,b,c и выводит соответствующее сообщение

4. Написать элементарный калькулятор для выполнения четырех арифметических действий. Программа должна проверять корректность вводимых данных, например, исключать деление на ноль.

5. Написать программу, которая по введенному возрасту, росту и весу пользователя вычисляет оптимальный для него вес и выдает рекомендации вида "Ваш вес оптимален", "Вам надо поправиться" или "Вам надо похудеть". Оптимальный вес для лиц в возрасте до 30 лет вычисляется по формуле "Рост-105", для лиц после 30 – по формуле "Рост-100", допустимы отклонения ±3 кг.

6. Написать программу простого тестирования. Тест состоит из 5 вопросов, на которые предполагаются ответы в виде чисел. Программа выставляет оценку в зависимости от числа правильных ответов.

7. В университете города N принято, что старшая цифра трехзначного номера студенческой группы обозначает номер факультета, средняя – последнюю цифру года поступления, младшая – порядковый номер группы. Программа по заданному номеру группы студента определяет, в каком году он поступил и на каком факультете учится. Номера факультетов следующие: 1 – исторический, 2 – экономический, 3 – юридический, 4 – математический, 5 – физический, 6 – химический, 7 – биологический, 8 – филологический, 9 – географический.

8. Для возраста человека, заданного в годах, вывести фразу вида "Мне 21 год", "мне 32 года", "мне 12 лет" и т.п. Предусмотреть проверку корректности вводимых данных.

9. Написать программу, вычисляющую стоимость междугороднего телефонного разговора. Стоимость разговора определяется его продолжительностью и стоимостью минуты. Стоимость минуты определяется программой по введенному коду города (предусмотреть несколько городов). Программа должна проверять корректность вводимых данных.

10. Написать калькулятор для перевода градусов в радианы и радиан в градусы.

Пример. Определить, в каком квадранте находится точка с координатами (x,y). Вывести на печать номер квадранта. (часть пользователя выделена в листинге жирным шрифтом)




procedure TForm1.Button1Click(Sender: TObject);

var X,Y:real;

Code,Q:integer;

s:string;

begin

{$R-} Val(Edit1.Text, X, Code); {$R+}

if Code<>0 then ShowMessage ('Извините, ' +Edit1.Text+' - это не число')

else begin

{$R-} Val(Edit2.Text, Y, Code); {$R+}

if Code<>0 then ShowMessage ('Извините, ' +Edit2.Text+' - это не число')

else begin

if (X=0) or (Y=0) then Q:=0

else if Y>0 then begin

if X>0 then Q:=1

else Q:=2;

end

else begin

if X>0 then Q:=4

else Q:=3;

end;

Str (Q,s);

Label1.Caption:='Номер квадранта='+s;

end;

end;

end;

Задача 2. Массивы

1. Для заданного массива вычислить и напечатать сумму, произведение и количество его положительных элементов.

2. Для заданного массива вычислить и напечатать величины A и n, где A - наибольший элемент массива, n – его порядковый номер.

3. В заданных массивах A и B поменять местами максимальные элементы. Вывести на экран преобразованные массивы.

4. В заданном массиве A поменять местами максимальный и минимальный элементы. Вывести преобразованный массив на экран.

5. Координаты вершин многоугольника заданы массивами {Xi,Yi}, i=1,2,…,n Считается, что вершины упорядочены в порядке обхода по часовой стрелке или против нее. Найти периметр многоугольника.

6. Написать программу сортировки элементов массива по возрастанию или убыванию (пользователь выбирает способ сортировки).

7. Даны два массива A и B. Вычислить массив , элементы которого находятся по правилу:

8. Задан вектор T. Вывести на экран только те его компоненты, которые отклоняются от арифметического среднего элементов вектора не более, чем на заданную величину E

9. Задан вектор T. Вывести на экран только те его компоненты, значения которых попадают в заданный интервал [A,B]

10. Вводится массив. Программа вычисляет отдельно произведение его положительных и отрицательных элементов.

Пример. Задан вектор A. Найти отношение суммы положительных элементов вектора к сумме отрицательных элементов.

interface

{…}

const MaxSize=100;

var

Form1: TForm1;

a:array [1..MaxSize] of real;

implementation

{…}

function DeleteSpaces(var s:string):string;

var p:integer; {удаление лишних пробелов}

begin

repeat

p:=pos(' ',s);

if p>0 then delete (s,p,1);

until p=0;

if s[1]=' ' then delete (s,1,1);

if s[length(s)]=' ' then delete (s,length(s),1);

DeleteSpaces:=s;

end;
function getArray (s:String):integer;

var n,p,code:integer; {разбор строки в массив}

ch,stemp:string;

begin

n:=0;

s:=DeleteSpaces (s);

repeat

p:=pos (' ',s);

if p>0 then begin

ch:=copy (s,1,p-1);

delete (s,1,p);

end

else ch:=s;

n:=n+1;

{$R-} Val (ch,a[n],code); {$R+}

if code<>0 then begin

Str (n,stemp);

ShowMessage ('Ошибка в числе номер '+stemp);

getArray:=0;

exit;

end;

until p=0;

getArray:=n;

end;
procedure TForm1.Button1Click(Sender: TObject);

var n,i:integer;

s1,s2,otn:real;

result:string;

begin

n:=getArray (Edit1.Text);

if n>0 then begin

s1:=0; s2:=0;

for i:=1 to n do begin

if a[i]>0 then s1:=s1+a[i]

else if a[i]<0 then s2:=s2+a[i];

end;

if s2<>0 then begin

otn:=s1/s2;

Str (otn:6:2,result);

end

else result:='Число отрицательных элементов=0,'+

'отношение не может быть вычислено!';

Edit2.Text:=result;

end;

end;
Задача 3. Таблицы и графика.

1. Составление таблиц по заданию преподавателя (например, таблица стоимости товара, таблица для перевода из радиан в градусы).

2. Программа, выполняющая рисование на канве. Рисунок по заданию преподавателя.

Добавить документ в свой блог или на сайт

Похожие:

Ооп основано на понятиях класса и экземпляра iconПоложением о представлении обязательного экземпляра диссертации
Внимание! Диссертация представляется на регистрацию в течение 30 дней с момента ее защиты в соответствии с Положением о представлении...
Ооп основано на понятиях класса и экземпляра iconПрограмма учебной дисциплины «web-технологии»
Изучение данной дисциплины базируется на успешно усвоенных понятиях программирования и базовых понятиях информатики дисциплины «Алгоритмизация...
Ооп основано на понятиях класса и экземпляра iconОсновная образовательная программа (ооп) магистратуры. Нормативные...
Нормативно-методическое обеспечение системы оценки качества освоения обучающимися ооп
Ооп основано на понятиях класса и экземпляра iconПрограмма подготовки и защиты магистерской диссертации 30 Список...
Нормативные документы для разработки ооп по направлению подготовки магистров 080100. 68 «Экономика» 3
Ооп основано на понятиях класса и экземпляра iconРабочая программа по истории для 6 класса на 2013 2014 учебный год
...
Ооп основано на понятиях класса и экземпляра iconО. А. Батурина
Финансовый менеджмент, ооп 080200. 62 Менеджмент. Управление малым бизнесом, ооп 080200. 62 Менеджмент. Совместная международная...
Ооп основано на понятиях класса и экземпляра iconОсновная образовательная программа высшего профессионального образования...
Общие положения (цель ооп, срок освоения ооп, трудоемкость ооп, требования к абитуриенту)
Ооп основано на понятиях класса и экземпляра iconОсновная образовательная программа (определение) Нормативные документы...
Компетенции выпускника как совокупный ожидаемый результат образования по завершении освоения ооп впо
Ооп основано на понятиях класса и экземпляра iconЭвентус рассказы
До получения на руки экземпляра трудового договора работник не вправе приступать к работе
Ооп основано на понятиях класса и экземпляра iconТема: Эволюция менеджмента
До получения на руки экземпляра трудового договора работник не вправе приступать к работе
Ооп основано на понятиях класса и экземпляра iconМенеджмент Тестовые задания
До получения на руки экземпляра трудового договора работник не вправе приступать к работе
Ооп основано на понятиях класса и экземпляра iconФормы рабочей программы дисциплины Базовая рабочая программа
Базовая рабочая программа (разрабатывается при проектировании новых ооп на все годы обучения преподавателем, которого руководитель...
Ооп основано на понятиях класса и экземпляра iconВиды контроля знаний студентов на занятиях по экономическим
До получения на руки экземпляра трудового договора работник не вправе приступать к работе
Ооп основано на понятиях класса и экземпляра iconОчной формы обучения, включая последипломный отпуск, – 4 года. Трудоемкость ооп —
Цель ооп — ооп имеет своей целью развитие у обучающихся личностных качеств, а также формирование общекультурных и профессиональных...
Ооп основано на понятиях класса и экземпляра iconОсновная образовательная программа
Ооп 080200. 62 Менеджмент. Совместная международная программа, ооп 080200. 62 Менеджмент. Практико-ориентированная программа, ооп...
Ооп основано на понятиях класса и экземпляра iconВиртуальная безнравственность как условие становления реальной нравственности
До получения на руки экземпляра трудового договора работник не вправе приступать к работе


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск