Не работает программа, не сходится ответ - Pascal ABC
Формулировка задачи:
Sample Input
475.6
10.9.27.4.14.98
6.
102.0 99.9
220.0 132.9
256.3 147.9
275.0 102.9
277.6 112.9
381.8 100.9
Sample Output
27.31
Решение задачи: «Не работает программа, не сходится ответ»
textual
Листинг программы
const naedu=2.00; var rasst,{до пункта назначения} vbaka,{объем бака} rasxod, stbaka:real;{стоимость бака в пункте отправления} n:integer;{количество заправочных станций на маршруте} rdozapr,{расстояние в километрах от исходного города до заправочной станции} stoimost:real;{цена в копейках за литр бензина на этой станции} i:integer; rez:real; vbake:real;{текущее количество бензина в баке} sl_rdozapr,sl_stoimost:real; pz:real;{расстояние до заправки на которой последний раз заправлялись} begin assign(input,'input.txt');reset(input); assign(output,'output.txt');rewrite(output); readln(rasst); readln(vbaka,rasxod,stbaka); readln(n); rez:=stbaka; readln(rdozapr,stoimost); i:=1;pz:=0; for i:=2 to n do begin vbake:=vbaka-(rdozapr-pz)/rasxod; readln(sl_rdozapr,sl_stoimost); if (vbake<vbaka/2)or((vbake>vbaka/2)and(vbake<((sl_rdozapr-pz)-(rdozapr-pz))/rasxod)) then begin rez:=rez+(vbaka-vbake)*(stoimost/100)+naedu; vbake:=vbaka; pz:=rdozapr; end; rdozapr:=sl_rdozapr;stoimost:=sl_stoimost; end; if vbake<((rasst-pz)-(sl_rdozapr-pz))/rasxod then rez:=rez+(vbaka-vbake)*(sl_stoimost/100)+naedu; writeln(rez:0:2) end.
Объяснение кода листинга программы
- const naedu=2.00;
- var rasst, vbaka, rasxod, stbaka, n, rdozapr, stoimost, i, rez, vbake, sl_rdozapr, sl_stoimost, pz;
- assign(input,'input.txt'); reset(input);
- assign(output,'output.txt'); rewrite(output);
- readln(rasst, vbaka, rasxod, stbaka);
- readln(n);
- rez:=stbaka;
- readln(rdozapr, stoimost);
- i:=1; pz:=0;
- for i:=2 to n do
- begin
- vbake:=vbaka-(rdozapr-pz)/rasxod;
- readln(sl_rdozapr, sl_stoimost);
- if (vbake<vbaka/2) or ((vbake>vbaka/2) and (vbake<((sl_rdozapr-pz)-(rdozapr-pz))/rasxod))
- then
- begin
- rez:=rez+(vbaka-vbake)*(stoimost/100)+naedu;
- vbake:=vbaka;
- pz:=rdozapr;
- end;
- rdozapr:=sl_rdozapr; stoimost:=sl_stoimost;
- end;
- if vbake<((rasst-pz)-(sl_rdozapr-pz))/rasxod then rez:=rez+(vbaka-vbake)*(sl_stoimost/100)+naedu;
- writeln(rez:0:2)
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д