Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

прошу помощь

52K
05 ноября 2009 года
bavaria
8 / / 05.11.2009
Простите пожалуйста что прошу помощи но немогу понять пару задач по Паскалю. Уже неделю разбираюсь с ними но никак, а програмеру пару минут дела. Задачи легкие.
1.Входные данные: в текстовом файле price.in через пропуск записаны натуральные числа, которые не превышают 50 000.
Выходные данные: в текстовый файл price.out записать єдинствиное число – найменьшее уникальное . Если такого числа нету, то вывести «No»

2.Входные данные: в текстовом файле square.in в первой строчке записанок число N – количество вершин многоугольника, а в следующих N строчках пары чисел – координаты вершин.

Выходные данные: в текстовый файл square.out записать единственое число – площадь многоугольника. Результат вывести с одним знаком после запятой.

Ограничения: 3<=N<=50000. Координаты по модулю не превышают 20000. Время 1с. Стороны многоугольника без само пересечений и не имеют общих точек (кроме соседних – в вершинах )

3.Каждой осенью проводится выставка.На такую выставку поехали двое фермеров с своими кроликами. Их транспорт имеет ограниченую грузоподьемность. Вот они задумались над тем какую мин и макс сумы они получат продав свой товар. Им известна Е -маса автомобиля не нагруженого, F – полная маса автомобиля, маса одного кролика Мi и его стоимость Рi. Найдите максимальную та минимальную сумы, которые они могуть получить.

Входные данные: в текстовом файле market.in в первой строчке записаны числа E i F: 1<=E<=F<=10000. В второй строчке – число N: 1<=N<=500 - количество видов кроликов, а в следующих N строчках пары чисел Pi та Mi : 1<=Pi<=50000, 1<=Mi<=10000, которые разделены пропуском. Все числа натуральные.

Выходные данные: в текстовый файл market.out записать через пропуск два числа: максимальную та минимальную сумы. Если авто не может еметь точно заданый вес при условии что он нагружен задаными кроликами , то вывести «This is impossible.».


Если вы мне поможете с етими задачами буду очень вам признателен
325
05 ноября 2009 года
Franky
723 / / 10.08.2005
если разбираетесь неделю, то можно сюда наработки, хотя бы неправильные? Разберемся что именно не получается.
52K
06 ноября 2009 года
bavaria
8 / / 05.11.2009
первая задача-но она не правильно работает. Что нужно исправить?
Program z1;
uses crt;
const N=5000;
var c:array[1..N] of integer;
i,s:integer;
t1,t2:text; f:boolean;
begin
clrscr;
assign(t1, 'price.in');
reset(t1);
assign(t2, 'price.out');
rewrite(t2);
fillchar(c,sizeof(c),0);
f:=true;
i:=1;
while not eof(t1) do
begin
read(t1,s);
c:=c+1;
inc(i)
end;
for i:=1 to n do
if c=1 then begin write(t2,i); f:=false end;
if f then writeln('No');
close(t1);
close(t2);
readln;
end.

Пожалуйста помогите. Задачи нужно сегодня здать.
1.9K
06 ноября 2009 года
andriano
474 / / 10.01.2008
А что именно неправильно?

Навскидку в программе заметно три недостатка:
1. Если одинаковых чисел будет 65537, то такое число будет неверно распознано как уникальное.
2. По условию диапазон должен быть до 50000, а не до 5000.
3. Программа распечатывает все уникальные числа, а не только наименьшее. И, кстати, "No" пишет на экран, а не в файл.
52K
06 ноября 2009 года
bavaria
8 / / 05.11.2009
Цитата: andriano
А что именно неправильно?

Навскидку в программе заметно три недостатка:
1. Если одинаковых чисел будет 65537, то такое число будет неверно распознано как уникальное.
2. По условию диапазон должен быть до 50000, а не до 5000.
3. Программа распечатывает все уникальные числа, а не только наименьшее. И, кстати, "No" пишет на экран, а не в файл.


1.как ето исправить?
2.а ну ето протупил
3.вот как сделать чтоб найменшее уникальное распознавалось? а про Ноу понятно.
спасибо
вот как исправить 1 и 3 ?

1.9K
06 ноября 2009 года
andriano
474 / / 10.01.2008
1.
 
Код:
while not eof(t1) do begin
  read(t1,s);
  if c < 2 then
    inc(c);
end;

3.
 
Код:
for i:=1 to n do
  if c=1 then begin
    if f then write(t2,i);
    f:=false;
  end;

по поводу 2: если ты используешь TP 7.0, то организовать массив из 50000 integer у тебя не получится. Могу порекомендовать заменить на byte.
52K
06 ноября 2009 года
bavaria
8 / / 05.11.2009
Огромное спасибо тебе.
Работает.
Update:1 и 2 задачи решены. Кто знает 3- пишите код. Идей вообще нету=(
1.9K
06 ноября 2009 года
andriano
474 / / 10.01.2008
А третью невозможно решить, не зная сколько весят сами фермеры.
52K
06 ноября 2009 года
bavaria
8 / / 05.11.2009
Цитата: andriano
А третью невозможно решить, не зная сколько весят сами фермеры.


ну вес фермеров можно не учитывать))
ну а помочь может кто?

1.9K
06 ноября 2009 года
andriano
474 / / 10.01.2008
А собственные наработки?
52K
07 ноября 2009 года
bavaria
8 / / 05.11.2009
{Free Pascal}
Program z3;
uses crt;
const Maxn=500;
var Weight,Price:array[1..maxN] of integer;
Best,Now:array[1..maxN] of integer;
N,W ,W1,W2 ,i,j,k,s:integer; Maxprice,Minprice:longint;
t1,t2:text;
procedure Solvemax( k,w:integer; st:longint);
var i:integer;
begin
if (k>N) and (st>Maxprice) then
begin Best:=Now; Maxprice:=st; end
else if k<=N then
For i:=0 to W div Weight[k] do begin
Now[k]:=i;
Solvemax(k+1,W - i*Weight[k], st+i*price[k]);
end; end;

procedure Solvemin( k,w:integer; st:longint);
var i:integer;
begin
if k>N then
begin Best:=Now; Minprice:=st; end
else if k<=N then
For i:=0 to W div Weight[k] do begin
Now[k]:=i;
Solvemin(k+1,W - i*Weight[k], st+i*price[k]);
end; end;

begin
clrscr;
assign(t1, 'marcet.in');
reset(t1);
assign(t2, 'marcet.out');
rewrite(t2);
fillchar(Weight,sizeof(Weight),0);
fillchar(Price,sizeof(Price),0);
Readln(t1,W1,W2);

W:=W2-W1;
Readln(t1,N);
for i:=1 to N do
readln(t1,Price,Weight);
Solvemax(1,W,0);
Solvemin(1,W,0);
if (Maxprice<>0) and (Minprice<>0) then
Writeln(t2,Maxprice,' ',Minprice)
else writeln(t2,'This is impossible');
close(t1);
close(t2);
readln;
end.

почему то непровильно отображаеться This is impossible
52K
07 ноября 2009 года
bavaria
8 / / 05.11.2009
тут и данные неправильно считает.
Нужна помощ! Плс
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог