2015a
Материал из PTHSWiki
(Различия между версиями)
Antonk (обсуждение | вклад) (→ООП) |
Antonk (обсуждение | вклад) |
||
(не показаны 9 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | == Работа с File == | ||
+ | |||
+ | <source lang="delphi"> | ||
+ | program Project2; | ||
+ | |||
+ | {$APPTYPE CONSOLE} | ||
+ | |||
+ | uses | ||
+ | SysUtils; | ||
+ | |||
+ | var | ||
+ | f, fout : File; | ||
+ | ch : char; | ||
+ | numRead, numWrite : integer; | ||
+ | |||
+ | begin | ||
+ | assignFile(f, 'input.txt'); | ||
+ | Reset(f, 1); | ||
+ | assignFile(fout, 'output.txt'); | ||
+ | Rewrite(fout, 1); | ||
+ | |||
+ | numRead := 1; | ||
+ | while (numRead <> 0) do | ||
+ | begin | ||
+ | BlockRead(f, ch, 1, numRead); | ||
+ | if (numRead <> 0) then | ||
+ | begin | ||
+ | BlockWrite(fout, ch, 1, numWrite); | ||
+ | end; | ||
+ | end; | ||
+ | readln; | ||
+ | |||
+ | closeFile(f); | ||
+ | closeFile(fout); | ||
+ | end. | ||
+ | </source> | ||
+ | |||
+ | == Задача про Годзиллу == | ||
+ | |||
+ | [[Медиа:2014b_FootBall2.zip|Архив с программой]] | ||
+ | |||
+ | <source lang="delphi"> | ||
+ | unit PlayerUnit; | ||
+ | |||
+ | interface | ||
+ | |||
+ | uses common; | ||
+ | |||
+ | type | ||
+ | Player = class | ||
+ | function move(height, lastNumber, sortedNumber : integer; arr : array of integer) : integer; | ||
+ | end; | ||
+ | |||
+ | |||
+ | implementation | ||
+ | |||
+ | { Player } | ||
+ | |||
+ | function Player.move(height, lastNumber, sortedNumber : integer; arr : array of integer): integer; | ||
+ | begin | ||
+ | if lastNumber < N-2-sortedNumber then | ||
+ | move := HIT(lastNumber+1) | ||
+ | else if lastNumber > 0 then | ||
+ | move := HIT(lastNumber-1) | ||
+ | else | ||
+ | move := STAY; | ||
+ | end; | ||
+ | |||
+ | end. | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == Задания == | ||
+ | |||
+ | = Задание на 16.01.2013 = | ||
+ | |||
+ | Напишите игру "Мемо" (см., например, [http://gamgama.ru/game/2724 http://gamgama.ru/game/2724]) | ||
+ | |||
+ | Вместо картинок используйте числа. | ||
+ | Для того, чтобы случайно заполнить массив парами чисел, делаете следующее: | ||
+ | # изначально весь массив заполняете -1 | ||
+ | # всего пар будет n^2/2, поэтому повторяете следующие действия циклом по i именно столько раз | ||
+ | # находите случайную клетку | ||
+ | # если она занята, то снова к пункту 3 (цикл :) ) | ||
+ | # ставите в клетку i | ||
+ | # находите случайную клетку | ||
+ | # если она занята, то снова к пункту 6 (цикл :) ) | ||
+ | # ставите в клетку i | ||
+ | |||
+ | При нажатии на кнопку открываете соответствующее число, если оно совпадает с запомненным, то прячете обе кнопки, если нет - закрываете запомненную кнопку и запоминаете текущее число и кнопку. | ||
+ | |||
+ | Задания необходимо сделать к следующему занятию. | ||
+ | |||
+ | При этом все, что Вы сделаете в классе необходимо выслать в конце урока - за это будет также выставлена оценка. | ||
+ | |||
== ООП == | == ООП == | ||
− | [[Медиа:2015a_OOP_Figures.zip|Проект с прямоугольниками]] | + | [[Медиа:2015a_OOP_Figures.zip|Проект с прямоугольниками]]<br /> |
+ | [[Медиа:2015a_Summator.zip|Сумматоры]]<br /> | ||
+ | [[Медиа:OOP_Button.zip|Генерация кнопок]] <br /> | ||
+ | [[Медиа:OOP_StringList.zip|Работа с StringList]] <br /> | ||
+ | [[Медиа:OOP_Buttons_OnLick.zip|Генерация кнопок с заданным действием на нажатие]] |
Текущая версия на 13:06, 24 января 2014
Содержание |
Работа с File
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
f, fout : File;
ch : char;
numRead, numWrite : integer;
begin
assignFile(f, 'input.txt');
Reset(f, 1);
assignFile(fout, 'output.txt');
Rewrite(fout, 1);
numRead := 1;
while (numRead <> 0) do
begin
BlockRead(f, ch, 1, numRead);
if (numRead <> 0) then
begin
BlockWrite(fout, ch, 1, numWrite);
end;
end;
readln;
closeFile(f);
closeFile(fout);
end.
Задача про Годзиллу
unit PlayerUnit;
interface
uses common;
type
Player = class
function move(height, lastNumber, sortedNumber : integer; arr : array of integer) : integer;
end;
implementation
{ Player }
function Player.move(height, lastNumber, sortedNumber : integer; arr : array of integer): integer;
begin
if lastNumber < N-2-sortedNumber then
move := HIT(lastNumber+1)
else if lastNumber > 0 then
move := HIT(lastNumber-1)
else
move := STAY;
end;
end.
Задания
Задание на 16.01.2013
Напишите игру "Мемо" (см., например, http://gamgama.ru/game/2724)
Вместо картинок используйте числа. Для того, чтобы случайно заполнить массив парами чисел, делаете следующее:
- изначально весь массив заполняете -1
- всего пар будет n^2/2, поэтому повторяете следующие действия циклом по i именно столько раз
- находите случайную клетку
- если она занята, то снова к пункту 3 (цикл :) )
- ставите в клетку i
- находите случайную клетку
- если она занята, то снова к пункту 6 (цикл :) )
- ставите в клетку i
При нажатии на кнопку открываете соответствующее число, если оно совпадает с запомненным, то прячете обе кнопки, если нет - закрываете запомненную кнопку и запоминаете текущее число и кнопку.
Задания необходимо сделать к следующему занятию.
При этом все, что Вы сделаете в классе необходимо выслать в конце урока - за это будет также выставлена оценка.
ООП
Проект с прямоугольниками
Сумматоры
Генерация кнопок
Работа с StringList
Генерация кнопок с заданным действием на нажатие