2015a
Материал из PTHSWiki
(Различия между версиями)
Antonk (обсуждение | вклад) (Новая страница: «== ООП == Медиа:2015a_OOP_Figures.zip Проект с прямоугольниками») |
Antonk (обсуждение | вклад) |
||
| (не показаны 11 промежуточных версий 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
Генерация кнопок с заданным действием на нажатие