Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Тема3. Циклические алгоритмы.




4А. Припишите к числу ***999 такие три цифры, чтобы полученное шестизначное число делилось на 13,17,19.

procedure TForm1.Button1Click(Sender: TObject);

var a,n, i:integer; нет

begin

for i:=100 to 999 do begin

n:=1000*i+999;

if ((n mod 13)=0) and ((n mod 17)=0) and ((n mod 19)=0) да

then

memo2.lines.add(inttostr(n));

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

memo2.clear;

end;

end.

 

// 1) – n:= 100000, 999999,1

// 2) if ((n mod 13)=0) and ((n mod 17)=0) and ((n mod 19)=0)

9В. Женщина шла на базар и разбила яйца, лежавшие у нее в корзине. Она сказала, что не знает сколько яиц было, но когда она брала по 2,3,4,5 и 6 яиц то оставалось в остатке одно. Когда же она брала по 7 яиц, то ничего не оставалось в остатке. Сколько яиц могло быть в корзине.

procedure TForm1.Button1Click(Sender: TObject);

var n:integer;

begin

n:=strtoint(edit1.Text);

for n:=1 to n do

if (n mod 2=1) and (n mod 3=1) and (n mod 4=1) and (n mod 5=1) and (n mod 6=1)

and (n mod 7=0)

then memo1.Lines.Add(inttostr(n))

end;

procedure TForm1.edit1onkeypress(Sender: TObject; var Key: Char);

begin

case key of

'0'..'9',#8:;

#13: button1.setfocus;

else key:=chr(0);

end;

end;

procedure TForm1.Button2Click(Sender: TObject); нет

begin

memo1.Clear;

end;

end. да

 

// 1) n:=1,500,1

// 2) if (n mod 2=1) and (n mod 3=1) and

(n mod 4=1) and (n mod 5=1) and (n mod 6=1)

 

Тема4. Массивы

4А. Найти номер максимального элемента таблицы a[1..10]. (Глобальное объявление:

Var form1: tform1;

a:array[1..10] of integer

max, i, k:integer;

procedure TForm1.Button1Click(Sender: TObject);

begin

max:=a[i-1];

for i:=2 to 10 do

if a[i]>max then

begin

max:=a[i]; нет

k:=i;

end; да

label1.caption:=inttostr(max);

label2.caption:=inttostr(k);

end;

// 1) for i:=2 to 10 do

If a[i]>max then

Кнопка Random для задач 4А и 9А:

procedure TForm1.Button2Click(Sender: TObject);

begin

randomize;

for i:=1 to 10 do

begin

a[i]:=random(100); (в задаче 9А добавим -10, для отрицательных чисел)

stringgrid1.cells[i-1,0]:=inttostr(a[i]);

end;

end;

end.(? Блок схема)

 

9А. Найти сумму третьего и шестого положительных элементов одномерного массива.

procedure TForm1.Button1Click(Sender: TObject);

var i,k:integer;

begin

randomize;

for i:=1 to 25 do

begin

a[i]:=random(20)-10;

stringgrid1.Cells[i-1,0]:=inttostr(a[i]);

end;

end;

procedure TForm1.Button2Click(Sender: TObject); нет да

var i,k,l:integer;

begin

k:=1;

for i:=1 to 25 do begin

if (a[i]>0) then

begin

b[k]:=a[i];

k:=k+1;

end;

stringgrid2.cells[k-1,0]:=inttostr(b[k]);

begin

for l:=1 to k do begin

n:=b[3]+b[6];

label1.caption:=inttostr(n);

end;

end;

end;

end;

procedure TForm1.Button3Click(Sender: TObject); // очиста ячеек в стинг гриде 2 для конечных цифр

var

m, n: Integer;

begin

with StringGrid2 do

for m:= 0 to ColCount - 1 do

for n:= 0 to RowCount - 1 do

Cells[m, n]:= '';

end;

end.

//1)- n:=1,25,1 2) - a[i]>0 3) - l:=1,k,1

Тема5. Строки и файлы.

4В. Ввести фамилию, имя и отчество как одно данное строкового типа. Определить сколько букв «а» есть в фамилии. (для исходной информаций нужно создать файл input.txt и output.txt).

procedure TForm1.Button2Click(Sender: TObject);

begin

if opendialog1.Execute then

memo1.Lines.LoadFromFile(opendialog1.FileName);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if savedialog1.execute then

memo1.Lines.SaveToFile(savedialog1.filename+'.txt');

end;

procedure TForm1.Button1Click(Sender: TObject);

var n,i,k:integer;s:string;

begin

assignfile(f1,'input.txt');

assignfile(f2,'output.txt');

reset(f1);

read(f1,s);

rewrite(f2); да

k:=0;

for i:=1 to length(s) do

begin нет

if ((s[i]='а') or (s[i]='А')) then

k:=k+1;

end;

writeln(f2,k);

memo2.lines.add(inttostr(k));

closefile(f1);

closefile(f2);

end;

end.

// 1) – i:=1,length(s),1

// 2) – if ((s[i]='а') or (s[i]='А'))

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

procedure TForm1.Button1Click(Sender: TObject);

var i,c:integer;s:string;

begin

assignfile(f1,'input.txt');

assignfile(f2,'output.txt');

reset(f1);

read(f1,s);

rewrite(f2);

for i:=1 to length(s) do

begin

if (s[i]='.') then

delete(s,i,c);

c:=length(s)-i;

end;

writeln(f2,s);

memo2.Lines.add(s);

closefile(f1); да

closefile(f2);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin нет

if opendialog1.Execute then

memo1.Lines.LoadFromFile(opendialog1.FileName);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if savedialog1.execute then

memo1.Lines.SaveToFile(savedialog1.filename+'.txt');

end;

end.

//1) – i:=1,length(s),1

//2) – if (s[i]='.')

 

Тема6. Графика

4В. Нарисовать 100 линий, расходящихся в разные места, начиная с центра экрана.

procedure TForm1.Button1Click(Sender: TObject);

var

i:integer;

x,y:real;

begin

for i:= 1 to 100 do // 1)

begin

x:=Image1.Width div 2+(Image1.Width div 2)*sin(i/2); //2)

y:=Image1.Height div 2+(Image1.Height div 2)*cos(i/2); //3)

with Image1.Canvas do

begin

MoveTo(Image1.Width div 2, Image1.Height div 2); //4)

LineTo(round(x),round(y)); // 5)

end;

end;

end;

end.

9С. Создать титульный лист и построить график кубической параболы.

function f(x:real):real;

begin

f:=x*x*x;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

x1, x2, y1, y2, x, y, dx, mx, my: real;

l, b, w, h, x0, y0: integer;

begin

l:= 10;

b:= Form1.image1.ClientHeight - 20;

h:= Form1.image1.ClientHeight - 40;

w:= Form1.image1.Width - 40;

x1:= 0;

x2:= 5;

dx:= 0.01;

y1:= f(x1);

y2:= f(x1);

x:= x1;

repeat

y:= f(x);

if y < y1 then y1:= y; //2)

if y > y2 then y2:= y; //3)

x:= x + dx;

until (x >= x2); //1)

my:= h / abs(y2 - y1);

mx:= w / abs(x2 - x1);

x0:= l;

y0:= b - Abs(Round(y1 * my));

with form1.Canvas do

begin

MoveTo(l, b); LineTo(l, b - h);

MoveTo(x0, y0); LineTo(x0 + w, y0);

x:= x1;

repeat

y:= f(x);

Pixels[x0 + Round(x * mx), y0 – Round(y * my)]:= clRed;

x:= x + dx;

until (x >= x2); //4)

end;

end;

procedure TForm1.formresize(Sender: TObject);

begin

form1.image1.Canvas.FillRect(Rect

(0, 0, ClientWidth, ClientHeight));

end;

end.

end;

end;

end.

 

 

Выводы:

Мы научились создавать программы на Delphi, интерфейс программ, изучили разные алгоритмы необходимые для решения разных типов задач. Ознакомились с такими элементами как: button, edit, memo, stringgrid, label, opendialog, savedialog. А так же ознакомились с их свойствами такими как: caption, text, lines. Научились блокировать кнопки, путем создания onkeypress, и использовать showmessage. Останавливать программу(halt), переходить с формы на форму(form(номер).show), очищать memo(memo(номер memo).clear). Так же мы научились пользоваться таким

графическим элементом Delphi как canvas.

 

Список используемой литературы:

1.Культин Н.Б. Delphi в задачах и примерах. – СПб.: БВХ - Петербург, 2004.-299 с.:ил.

2. Симонович С., Ессеев Г., Алексеев А. Общая информатика. – М.: АСИ-ПРЕСС; Инфорком Пресс, 1998,592 с.

3.Хомоненко А.Д. Самоучитель Delphi.-2-е изд., перераб. и доп./А.Д. Хомоненко, В.Э. Гофман. – СПб.БХВ-Петербург, 2008.-576с.:ис. +CD-ROM

4. Поисковая система Google

 

 





Поделиться с друзьями:


Дата добавления: 2017-01-28; Мы поможем в написании ваших работ!; просмотров: 203 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2382 - | 2132 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.