Помогите пожалуйста решить задачи на паскале

Ответить
A13X
Сообщения: 2
Зарегистрирован: 08 мар 2008, 12:42

Помогите пожалуйста решить задачи на паскале

Сообщение A13X » 08 мар 2008, 12:49

Вот задачи, которіе надо решить. Помогите пожалуйста ;)
1)Дано координаты (целые от 1 до 8) двух разных полей шахматной доски. Если ферзь за один ход может перейти из одной части поля на другую, вывести логическое значение True, иначе вывести значение False.

2)Дан файл, каждая строка которого имеет даты в формате дд.мм.гггг. Создать новый файл, в котором даты будут записаны в порядке возростания.

3)http://static.diary.ru/userdir/6/4/7/0/ ... 172950.jpg

A13X
Сообщения: 2
Зарегистрирован: 08 мар 2008, 12:42

Re: Помогите пожалуйста решить задачи на паскале

Сообщение A13X » 08 мар 2008, 19:14

Очень нужны эти задачи, а то не допустят к экзамену :mad:

Vovchik
Сообщения: 190
Зарегистрирован: 28 фев 2008, 18:32
Контактная информация:

Re: Помогите пожалуйста решить задачи на паскале

Сообщение Vovchik » 08 мар 2008, 20:11

В задаче №3 число D задано ???

Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

Re: Помогите пожалуйста решить задачи на паскале

Сообщение Medved » 09 мар 2008, 16:34

#1
[syntax='Delphi']
program lalala;
var x1,y1,x2,y2:integer;
begin
read(x1,y1,x2,y2);
if (x1=x2)or(y1=y2)or( abs(x1-x2) = abs(y1-y2)) then writeln('true') else writeln('false');
end.
[/syntax]

#2
[syntax='Delphi']
program lalala;
const maxn=1000;
fin='file.in';
fout='file.out';
type date=record d,m,y:integer; end;
dates=array[1..maxn] of date;
var d:dates;
i:integer;

procedure swp(a,b:date);
var k:date;
begin
k:=a;
a:=b;
b:=k;
end;

procedure readdates;
var l,c:string;
inf:text;
begin
fillchar(d,sizeof(d),0);
assign(inf,fin);
reset(inf);
i:=1;
while not eof(inf) do
begin
readln(inf,l);
c:=l[1]+l[2];
val(c,d.d);
c:=l[4]+l[5];
val(c,d.m);
c:=l[7]+l[8]+l[9]+l[10];
val(c,d.y);
inc(i);
end;
close(inf);
end;

procedure sortdates;
var k,l:integer;
begin
for k:=1 to n-1 do
for l:=k+1 to n do
if (d[k].y>d[l].y)or((d[k].y=d[l].y)and((d[k].m>d[l].m)or((d[k].m=d[l].m)and(d[k].d>d[l].d))) then
swp(d[k],d[l]);
end;
procedure writeinfile;
var outf:text;
k:integer;
begin
assign(outf,fout);
rewrite(outf);
for k:=1 to i do
writeln(outf,d[k].d,'.',d[k].m,'.',d[k].y);
close(outf);
end;

begin
readdates;
sortdates;
writeinfile;
end.[/syntax]
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]

Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

Re: Помогите пожалуйста решить задачи на паскале

Сообщение Medved » 09 мар 2008, 16:42

#3
[syntax='Delphi']
program lalala;
var d:real;

function next(k,a1,a:real);
begin
if d<abs(a-a1) then writeln(k) else next(k+1,a,(a1+a)/2);
end;

begin
writeln('Enter D');
readln(d);
next(2,1,2);
end.[/syntax]
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]

Medved
Сообщения: 250
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

Re: Помогите пожалуйста решить задачи на паскале

Сообщение Medved » 09 мар 2008, 16:42

Задачи- делать нечего. Any questions?
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]

Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Re: Помогите пожалуйста решить задачи на паскале

Сообщение Хыиуду » 11 мар 2008, 11:21

#1. Код, недоступный пониманию :)
if abs(x1-x2)*abs(y1-y2) in [0, sqr(x1-x2)] then result:=true else result:=false;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.

Ответить